zOS

連線能力 > 容器 > 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=//\* //\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* //\* //\* 在 JZOS 下執行 Tomcat 的批次作業 //\* //\* 為您的安裝客製化 proc 和 job: //\* 1.) 根據您安裝的要求修改 Job 卡 //\* 2.) 修改 PROCLIB 卡以指向 JZOS proclib //\* 3.) 為 Java 1.4 設定 VERSION='14',或為 Java 5 設定 VERSION='50' //\* 4.) 設定 JAVA_HOME 以指向 Java SDK 的位置 //\* 5.) 設定 CATALINA_HOME 以指向共用的 Tomcat 安裝目錄 //\* 6.) (可選)設定 CATALINA_BASE 以指向特定實例的 //\* Tomcat 基本目錄 //\* //\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* //\* //JAVA EXEC PROC=JVMPRC50, // LOGLVL='+D', // JAVACLS='org.apache.activemq.console.Main', // ARGS='start' //STDENV DD * \# 這是一個 shell script,用於設定 \# Java JVM 的任何環境變數。 \# 必須匯出變數,啟動器才能看到它們。 . /etc/profile export JAVA\_HOME=/space/javaV5\_31/J5.0 AMQ_HOME=/home/user/activemq/amq ACTIVEMQ\_BASE="$AMQ\_HOME"

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 收集有關代理程式的資訊。

Apache、ActiveMQ、Apache ActiveMQ、Apache 羽毛標誌和 Apache ActiveMQ 專案標誌是 Apache 軟體基金會的商標。Copyright © 2024, The Apache Software Foundation. 根據 Apache License 2.0 授權。