zOS
在 z/OS 上執行 ActiveMQ Classic
在 z/OS 上執行 ActiveMQ Classic 代理程式相對簡單。
有幾個步驟
1. 將 ActiveMQ Classic 複製到 z/OS
2. 修改組態
3. 使用 JZOS 執行
4. 測試
將 ActiveMQ Classic 複製到 z/OS
- 確保 z/OS 上可以使用 1.5 JVM,以及 JZOS 元件。
- 從 Apache 下載 ActiveMQ Classic 的 .zip 版本。
- 使用 FTP 將代理程式傳輸到 USS 中合適的目錄。
- 使用 rlogin 或您站點配置的其他方式登入 USS。
- 使用以下命令解壓縮 zip 檔案:jar -xvf apache-activemq-5.0.0.zip
- 這會以 ASCII 格式解壓縮整個套件,因此除了使用適用於 ASCII 的特殊編輯器外,不要期望可以在 z/OS 上檢視任何檔案。
- 或許將檔案解壓縮到的目錄重新命名為較短的名稱,或建立符號連結以方便存取。
修改組態
目前,Jetty 外掛程式在 z/OS 上無法運作,因此需要在 activemq.xml 檔案中停用。
- 使用 FTP 以二進位模式將 ActiveMQ Classic 安裝目錄中 conf 目錄下的 activemq.xml 檔案傳輸到您的 PC。
- 使用您的 XML 編輯器或像 Wordpad 這樣的文字編輯器編輯 XML 檔案。
- 在 XML 中搜尋 “jetty”。
- 變更註解區塊,使 Jetty 完全被註解掉。
- 儲存檔案。
- 再次以二進位模式將檔案傳輸回 z/OS 上它原本所在的位置,使其保留為 ASCII 檔案。
使用 JZOS 執行
我已重新命名 USS 中的 lib/optional 目錄,並縮短了一些 lib/optional jar 名稱,以使 JCL 更易於處理。執行 ActiveMQ Classic 代理程式的 JCL 如下:
`ACTIVEMQ.JCL**
//ACTIVEMQ JOB (), // CLASS=A,
// MSGCLASS=X,
// MSGLEVEL=(1,1),
// NOTIFY=&SYSUID,
// REGION=0M,
// TIME=1440
//PROCLIB JCLLIB ORDER=
export PATH=/bin:”${JAVA_HOME}”/bin
LIBPATH=/lib:/usr/lib:”${JAVA_HOME}”/bin LIBPATH=”$LIBPATH”:”${JAVA_HOME}”/bin/classic export LIBPATH=”$LIBPATH”
CLASSPATH=”${JAVA_HOME}/lib/tools.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/conf” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/activemq-all-5.0.0.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/bin/run.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/bin/wrapper.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/lib/activation-1.1.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/lib/activemq-console-5.0.0.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/lib/activemq-core-5.0.0-tests.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/lib/activemq-core-5.0.0.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/lib/activemq-jaas-5.0.0.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/lib/activemq-web-5.0.0.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/lib/camel-core-1.2.0.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/lib/camel-jms-1.2.0.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/lib/camel-spring-1.2.0.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/lib/commons-logging-1.1.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/lib/geronimo-j2ee-management_1.0_spec-1.0.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/lib/geronimo-jms_1.1_spec-1.0.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/lib/geronimo-jta_1.0.1B_spec-1.0.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/lib/jaxb-api-2.0.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/lib/jaxb-impl-2.0.3.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/lib/stax-1.2.0.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/lib/stax-api-1.0.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/lib/opt/spring-2.0.6.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/lib/opt/xbean.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/lib/opt/jetty-6.1.4.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/lib/opt/jetty-util-6.1.4.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/lib/opt/activeio-core-3.1.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/lib/opt/geronimo-j2ee-connector.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/lib/opt/activeio-core-tests.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/lib/opt/geronimo-j2ee-jacc.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/lib/opt/activemq-optional-5.0.0.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/lib/opt/activemq-xmpp-5.0.0.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/lib/opt/jmdns-1.0-RC2.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/lib/opt/commons-beanutils-1.6.1.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/lib/opt/log4j-1.2.14.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/lib/opt/commons-collections-3.1.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/lib/opt/servlet-api-2.5-6.1.4.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/lib/opt/commons-dbcp-1.2.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/lib/opt/commons-httpclient-2.0.1.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/lib/opt/commons-pool-1.2.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/lib/opt/xmlpull-1.1.3.4d_b4_min.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/lib/opt/derby-10.1.3.1.jar” CLASSPATH=”$CLASSPATH”:”$AMQ_HOME/lib/opt/xstream-1.1.2.jar” export CLASSPATH=”$CLASSPATH”
# 設定 JZOS 特定選項 # 使用此變數為 DD STDOUT 和 STDERR 指定編碼 #export JZOS_OUTPUT_ENCODING=IBM-1047 # 使用此變數以防止 JZOS 處理 MVS 運算子命令 #export JZOS_ENABLE_MVS_COMMANDS=false # 使用此變數向 main 提供其他引數 #export JZOS_MAIN_ARGS=””
# 設定 JVM 選項 # 請注意,ActiveMQ Classic 需要預設的 ASCII file.encoding IJO=”-Xms64m -Xmx512m” IJO=”$IJO -Dfile.encoding=ISO8859-1” IJO=”$IJO -Dcom.sun.management.jmxremote” IJO=”$IJO -Dorg.apache.activemq.UseDedicatedTaskRunner=true” IJO=”$IJO -Dderby.system.home=${ACTIVEMQ_BASE}/data” IJO=”$IJO -Dderby.storage.fileSyncTransactionLog=true” IJO=”$IJO -Djavax.net.ssl.keyStorePassword=password” IJO=”$IJO -Djavax.net.ssl.trustStorePassword=password” IJO=”$IJO -Djavax.net.ssl.keyStore=${ACTIVEMQ_BASE}/conf/broker.ks” IJO=”$IJO -Djavax.net.ssl.trustStore=${ACTIVEMQ_BASE}/conf/broker.ts” IJO=”$IJO -Dactivemq.classpath=${CLASSPATH}” IJO=”$IJO -Dactivemq.base=${ACTIVEMQ_BASE}” IJO=”$IJO -Dactivemq.home=${AMQ_HOME}” IJO=”$IJO -Djava.io.tmpdir=${ACTIVEMQ_BASE}/temp”
# 將 SDK5.0 設定為使用共用類別(在群組層級) # 如果您未執行 SDK 5,則必須註解掉此行 groupname=`id -gn` IJO=”$IJO -Xshareclasses:name=$groupname,groupAccess” export IBM_JAVA_OPTIONS=”$IJO “
export JAVA_DUMP_HEAP=false export JAVA_PROPAGATE=NO export IBM_JAVA_ZOS_TDUMP=NO //
測試
一旦在 z/OS 上啟動代理程式,請修改其中一個範例應用程式,使其具有 z/OS 系統的主機名稱,並執行它以確認代理程式是否正常運作。
您也可以像平常一樣使用 jmx 收集有關代理程式的資訊。