使用wsadmin脚本创建MQQueueConnectionFactory - JACL篇第一部分
在处理冗长的Java代码时,我遇到了令人崩溃的配置难题——这是我们每隔一天就会面临的困境。每次在RAD(Rational Application Developer)中创建新配置文件时,我都需要手动进入管理控制台配置MQ、工厂、数据源等。
作为熟悉Linux的用户,我无法忍受在编程时频繁点击操作。幸运的是,IBM为WebSphere提供了两种脚本语言:JACL和Jython(未来版本中JACL将被弃用,Jython将成为主要工具)。
什么是JACL?
JACL(Java Command Language,发音为"JACKAL")是类似于Tcl的Java脚本语言,运行在JVM上,解释器完全用Java编写。
实战:使用JACL创建WebSphere MQ连接工厂
步骤1:标识提供者
1
|
set tmp1 "WebSphere MQ JMS Provider"
|
步骤2:获取服务器单元和节点名称
通过配置文件路径确定单元名称(如BNode05Cell)和节点名称(如BNode05)
1
|
set newjmsp [$AdminConfig getid /Cell:CELLNAMECell/Node:NODENAME/JMSProvider:$tmp1/]
|
步骤3:设置工厂属性
可配置属性包括:名称、jndi名称、队列管理器、主机名、端口、通道、传输类型、XA支持等
查看必需参数:
1
|
$AdminConfig required WASQueueConnectionFactory
|
查看所有参数(必需和可选):
1
|
$AdminConfig attributes WASQueueConnectionFactory
|
属性设置示例:
1
2
3
4
5
6
7
8
|
set name [list name NAME]
set jndi [list jndiName jms/JNDINAME]
set qManager [list queueManager QMANAGER]
set sname [list host HOSTNAME]
set port [list port 1414]
set channel [list channel CHANNEL]
set ttype [list transportType CLIENT]
set xa [list XAEnabled false]
|
步骤4:合并所有参数
1
|
set mqcfAttrs [list $name $jndi $qManager $sname $port $channel $ttype $xa]
|
步骤5:创建工厂并保存
1
2
|
$AdminConfig create MQQueueConnectionFactory $newjmsp $mqcfAttrs
$AdminConfig save
|
完整代码示例
1
2
3
4
5
6
7
8
9
10
11
12
13
|
set tmp1 "WebSphere MQ JMS Provider"
set newjmsp [$AdminConfig getid /Cell:CELLNAMECell/Node:NODENAME/JMSProvider:$tmp1/]
set name [list name NAME]
set jndi [list jndiName jms/JNDINAME]
set qManager [list queueManager QMANAGER]
set sname [list host HOSTNAME]
set port [list port 1414]
set channel [list channel CHANNEL]
set ttype [list transportType CLIENT]
set xa [list XAEnabled false]
set mqcfAttrs [list $name $jndi $qManager $sname $port $channel $ttype $xa]
$AdminConfig create MQQueueConnectionFactory $newjmsp $mqcfAttrs
$AdminConfig save
|
运行脚本
可以将脚本保存到本地文件,然后通过以下命令运行:
1
|
wsadmin -profileName test_wsp -f $SCRIPT_FILENAME_LOCATION$
|
wsadmin工具通常位于服务器安装目录的bin文件夹中,例如:../Rational/SDP/6.0/runtimes/base_v6/bin