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 文件中将其禁用。
- 将 ActiveMQ Classic 安装目录中的 conf 目录下的 activemq.xml 文件通过 FTP 方式传输到您的 PC,传输模式为二进制。
- 使用 XML 编辑器或像 Wordpad 这样的文本编辑器编辑 XML 文件。
- 在 XML 中搜索“jetty”。
- 更改注释块,使 jetty 完全被注释掉。
- 保存文件。
- 将文件通过 FTP 方式传输回 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 # 使用此变量向主程序提供其他参数 #export JZOS_MAIN_ARGS=””
# 配置 JVM 选项 # 请注意,ActiveMQ Classic 需要默认的 ASCII 文件编码 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 收集有关代理的信息。