MQSeries Client 连接Server配置对服务器的要求:
1.正确安装MQSeries Server,启动侦听器;
2.建⽴服务器连接通道(即通道类型为SVRCONN的通道),以接受MQI的连接;如:
DEF CHL(PBC.CHL.YH13) CHLTYPE(SVRCONN) MCAUSER('administrator') REPLACE3.异构平台的连接需指定MCA⽤户标识;对客户机要求:
1.正确安装MQSeries Client;
2.设置系统设置环境变量MQSERVER
MQSERVER=channel_name/protocol_type/hostname(port)说明:
channel_name: MQSeries Server的服务器连接通道
protocol_type: Client与Server连接使⽤的⽹络协议,⼀般为TCPhostname: Server的主机名称或IP地址port: Server的侦听端⼝,默认1414⽰例:
unix/linux 平台在~/.bash_profile添加
export MQSERVER=PBC.CHL.YH13/TCP/'10.50.10.241(22222)' win32平台在控制⾯板⾥设置环境变量
3.在MQSeries Client的安装⽬录下有mqclient.ini,⽤来定义Client连接Server 的详细配置参数。(具体配置见后⾯)4.linux平台客户端程序采⽤⽤于⾮线程应⽤程序的libmqic.so 库或⽤于线程应⽤程序的libmqic_r.so 库进⾏编译链接,其它平台参见⼿册。如:
$gcc -o -lmqic
如何使⽤WebSphere MQ 6.0 资源管理器管理远程队列管理器
WebSphere MQ 6.0 for Windows & Linux 使⽤Eclipse 3.0 作为资源管理器平台。当⽤户希望使⽤Windows 或Linux 上的MQ 资源管理器管理位于远程的队列管理器时如何进⾏配置?
与WebSphere MQ 5.3 for Windows 的版本类似,WebSphere MQ 6.0 的资源管理器远程管理也通过远程队列管理器的服务器连接通道实现远程管理。直接连接设置步骤:
1、队列管理器需要定义⼀个⽤于连接队列管理器的服务器连接通道。与5.3版本
不同的是,这个通道不⼀定是SYSTEM.ADMIN.SVRCONN。该通道的名字可以随意定义,在设置远程管理的时候在
WebSphere MQ 资源管理器中指定即可。需要注意的是,启动WebSphere MQ 资源管理器的机器上的当前⽤户可能没有访问队列管理器对象的权限,导致MQ 资源管理器⽆法管理远程队列管理器。简单的⽅法是在定义服务器连接通道的时候设置该通
道的MCAUSER 属性为'mqm'。DEFINE CHANNEL(SYSTEM.ADMIN.SVRCONN) CHLTYPE(SVRCONN) TRPTYPE(TCP)MCAUSER('mqm')
2、队列管理器需要定义⼀个名为SYSTEM.MQEXPLORER.REPLY.MODEL 的临时模型队列以和MQ 资源管理器通信:DEFINE QM(SYSTEM.MQEXPLORER.REPLY.MODEL) DEFTYPE(TEMPDYN)3、队列管理器需要启动命令服务器strmqcsv
4、队列管理器需要启动侦听:
DEFINE LISTENER(TCP.LISTENER) TRPTYPE(TCP) PORT(1414)START LISTENER(TCP.LISTENER)
完成以上步骤后,就可以在MQ 资源管理器中按照下⾯步骤连接队列管理器:1、打开WebSphere MQ 资源管理器;右键点击队列管理器导航器中的队列管理器⽂件夹,选择“显⽰/隐藏队列管理器”:
2、在弹出的“显⽰/隐藏队列管理器”对话框中选择“添加”按钮:
3、在“添加队列管理器”对话框中选择直接连接,并输⼊队列管理器名称,然后点击下⼀步:
4、填⼊主机名或IP 地址、队列管理器侦听端⼝、以及服务器连接通道,然后点击完成即可。
间接接连接设置步骤
WebSphere MQ 资源管理器不但可以通过直接连接管理远程队列管理器,还可以通过队列管理器间接管理⼀个队列管理器。其基本原理为:作为间接队列管理器的队列管理能将消息路由⾃动到⽬标队列管理器。其设置⽅法如下:
仍然延续前⾯的例⼦,我们将实现MQ 资源管理器对与ERP.QM1 在同⼀台机器的另外⼀个队列管理器ERP.QM2 的远程管理。
1、在队列管理器ERP.QM2 上进⾏如下设置:/* 定义/启动侦听*/
DEF LISTENER(TCP.LISTENER) TRPTYPE(TCP) PORT(1415)START LISTENTER(TCP.LISTENER)/* 定义与ERP.QM1 同名的传输队列*/
DEF QL(ERP.QM1) USAGE(XMITQ) TRIGGER TRIGTYPE(FIRST)INITQ(SYSTEM.CHANNEL.INITQ) TRIGDATA(QM2.TO.QM1)/* 定义ERP.QM2 到ERP.QM1 的发送通道*/
DEF CHANNEL(QM2.TO.QM1) CHLTYPE(SDR) TRPTYPE(TCP) CONNAME(9.181.159.231) XMITQ(ERP.QM1)/* 定义ERP.QM1 到ERP.QM2 的接收通道*/
DEF CHANNEL(QM1.TO.QM2) CHLTYPE(RCVR) TRPTYPE(TCP)2、在队列管理器ERP.QM1 上进⾏如下设置:/* 定义与⽬标队列管理器同名的传输队列*/
DEF QL(ERP.QM2) USAGE(XMITQ) TRIGGER TRIGTYPE(FIRST)
INITQ(SYSTEM.CHANNEL.INITQ) TRIGDATA(QM1.TO.QM2)/* 定义ERP.QM1 到ERP.QM2 的发送通道*/
DEF CHANNEL(QM1.TO.QM2) CHLTYPE(SDR) TRPTYPE(TCP)CONNAME('9.181.159.231(1415)') XMITQ(ERP.QM2)/* 定义ERP.QM1 到ERP.QM2 的接收通道*/
DEF CHANNEL(QM2.TO.QM1) CHLTYPE(RCVR) TRPTYPE(TCP)3、启动队列管理器ERP.QM2 的命令服务器:strmqcsv ERP.QM2配置远程管理:
1、打开WebSphere MQ 资源管理器;右键点击队列管理器导航器中的队列管理器⽂件夹,选择“显⽰/隐藏队列管理器”:2、在弹出的“显⽰/隐藏队列管理器”对话框中选择“添加”按钮:
3、在“添加队列管理器”对话框中选择“使⽤中间队列管理器进⾏连接”,并输⼊队列管理器名称,然后点击下⼀步:
4、在中间队列管理器下拉选项中选择ERP.QM1 点击完成即可。参考资料:
以下信息来⾃IBM Websphere信息中⼼.使⽤WebSphere MQ 环境变量
本章描述了可与WebSphere? MQ 客户机应⽤程序配合使⽤的环境变量。
对于那些尚未设置的变量,WebSphere MQ 会使⽤缺省值。使⽤环境变量,您可以更新您的系统概要⽂件进⾏永久的更改,从命令⾏发出命令进⾏仅对此会话的更改,或者如果您想根据正在运⾏的应⽤程序,给⼀个或多个变量设置特定的值,您可以把命令添加到应⽤程序使⽤的命令脚本⽂件中。WebSphere MQ 环境变量如下:MQCCSIDMQCHLLIBMQCHLTABMQIPADDRVMQNAMEMQSERVERMQSSLCRYPMQSSLFIPSMQSSLKEYRMQSSLRESET
除⾮另有说明,否则,命令在所有WebSphere MQ 客户机平台上都可⽤。注:
1.WebSphere MQ for z/OS? 不⽀持任何WebSphere MQ 环境变量。如果您使⽤
这个平台作为您的服务器,请参阅客户机通道定义表以获取有关客户机通道定义表是如何在z/OS 上⽣成的信息。仍然可以在您的客户机平台上使⽤WebSphere MQ 环境变量。
对于每个环境变量,使⽤与您的平台相关的命令来显⽰当前设置或重新设置变量的值。例如:命令效果SET
从Windows? 环境中除去变量MQSERVER=unset
从UNIX? 系统环境中除去变量MQSERVERSET
显⽰Windows 上的当前设置MQSERVER
echo 显⽰UNIX 系统上的当前设置命令效果$MQSERVER
set 显⽰会话的所有环境变量MQCCSID
它指定所要使⽤的编码字符集数并覆盖机器的已配置CCSID。MQCHLLIB
这指定包含客户机通道定义表的⽂件的⽬录路径。MQCHLTAB
这指定包含客户机通道定义表的⽂件的名称。MQIPADDRV
它指定要将哪个IP 协议⽤于通道连接。MQNAME
它指定WebSphere MQ 进程可以使⽤的本地NetBIOS 名称。MQSERVER
此环境变量⽤于定义⼩型通道。MQSSLCRYP
此变量带有⼀个参数字符串,该字符串允许您配置系统上存在的加密硬件。允许的值与ALTER QMGR 命令的SSLCRYP 参数的相同。MQSSLFIPS
如果密码术在WebSphere MQ 中执⾏,那么此变量指定是否仅使⽤FIPS 认证的算法。值与ALTER QMGR 命令的SSLFIPS参数的值相同。MQSSLKEYR
此变量以主⼲格式指定保存⽤户数字证书的密钥库的位置。即,它包括完整路径和不带扩展名的⽂件名。要了解完整的详细信息,请参阅ALTER QMGR 命令的SSLKEYR 参数。
MQSSLRESET
它表⽰在重新协商SSL 密钥之前在SSL 通道上发送和接收的未加密字节的数⽬。客户机配置⽂件的CHANNELS 节使⽤CHANNELS 节以指定有关客户机通道的信息。CHANNELS 节中可包括下列属性:CCSID=number
将使⽤的编码字符集数量。这等同于MQCCSID 环境参数。ChannelDefinitionDirectory=path
指向包含客户机通道定义表的⽂件的⽬录路径。
在Windows 上,缺省值为WebSphere MQ 安装⽬录,通常为C:\\ProgramFiles\\IBM\\WebSphere MQ;在Unix 系统上,缺省值为/var/mqm。这等同于MQCHLLIB 环境参数。
ChannelDefinitionFile=filename|AMQCLCHL.TAB包含客户机通道定义表的⽂件的名称。这等同于MQCHLTAB 环境参数。DefRecon=NO|YES|QMGR|DISABLED
DefRecon 属性提供管理选项,以启⽤⾃动重新连接的客户机程序,或禁⽤客户机程序(已经⾃动写⼊重新连接)的⾃动重新连接。如果程序使⽤诸如MQPMO_LOGICAL_ORDER的选项(与重新连接不兼容),那么您可能需要选择执⾏此操作。DefRecon 选项的解释决于MQCNO_RECONNECT_*值是否仍在客户机程序中设置以及设置为何值。
如果客户机程序使⽤MQCONN进⾏连接,或使⽤MQCONNX设置MQCNO_RECONNECT_AS_DEF选项,那么DefRecon 设置的重新连接值将会⽣效。
如果程序中没有设置重新连接值,或DefRecon 选项没有设置重新连接值,那么客户机程序不会⾃动重新连接。NO
除⾮MQCONNX覆盖此选项,否则客户机不会⾃动重新连接。YES
除⾮MQCONNX覆盖此选项,否则客户机将⾃动重新连接。QMGR
除⾮MQCONNX覆盖此选项,否则客户机将⾃动重新连接,但仅⾄同⼀队列管理器。QMGR选项与MQCNO_RECONNECT_Q_MGR的作⽤相同。DISABLED
禁⽤重新连接,即使客户机程序使⽤MQCONNX MQI 调⽤进⾏请求。MQReconnectTimeout
重试客户机重新连接的超时值(以秒计)。缺省值为1800 秒(30 分钟)。XAReconnectTimeout
重试事务性客户机重新连接的超时值(以秒计)。缺省值为 5 秒。ServerConnectionParms
ServerConnectionParms 指定WebSphere MQ 服务器的位置以及要使⽤的通信⽅法。此属性仅定义简单的通道;您不能将它⽤于定义SSL 通道或具有通道出⼝的通道。它是格式为ChannelName/TransportType/ConnectionName的字符串。
ConnectionName必须是标准⽹络名。因为正斜杠(?)字符⽤于分隔通道名称、传输类型和连接名称,所以ChannelName不能包含此字符。当
ServerConnectionParms ⽤于定义客户机通道时,可使⽤的最⼤消息长度为100 MB。因此,通道的有效最⼤消息⼤⼩为服务器上SVRCONN 通道中指定的值。这等同于MQSERVER 环境参数。
将ConnectionName指定为已声明TransportType的机器名称(以逗号分隔)
列表。通常,只需要⼀个机器名称。您可以提供多个机器名称来配置具有相同属性的多个连接。将按照连接列表中指定的顺序来尝试连接,直⾄成功建⽴连接为⽌。如果没有连接成功,那么客户机会开始重试处理。连接列表是队列管理器组为可重新连接客户机配置连接的备选⽅案。
客户机配置⽂件的ClientExitPath 节
使⽤ClientExitPath 节来指定客户机上通道出⼝的缺省位置。ClientExitPath 节中可包括下列属性:ExitsDefaultPath=string
指定客户机的32 位通道出⼝的位置。ExitsDefaultPath64=string
指定客户机的64 位通道出⼝的位置。JavaExitsClassPath=string
当运⾏Java 出⼝时将添加⾄类路径的值。这在任何其他语⾔中将被出⼝忽略。在JMS 配置⽂件中,将为JavaExitsClassPath 名称提供标准的com.ibm.mq.cfg.
前缀,并且在Websphere MQ V7.0 系统属性上也使⽤此完整名称。在版本 6.0 中,使⽤系统属性com.ibm.mq.exitClasspath来指定此属性,该系统属性已记录在版本
6.0 ⾃述⽂件中。现在不推荐使⽤com.ibm.mq.exitClasspath。如果
JavaExitsClassPath 和exitClasspath 均存在,那么将采⽤JavaExitsClassPath。如果仅存在exitClasspath ⽤法,那么在Websphere MQ V7.0 中仍会采⽤它。客户机配置⽂件的LU62、NETBIOS 和SPX 节
仅限于在Windows 系统上,使⽤这些节来为已指定的⽹络协议指定配置参数。LU62
使⽤LU62 节来指定SNA LU 6.2 协议配置参数。此节中可包括下列属性:Library1=DLLName|WCPIC32APPC DLL 的名称。
Library2=DLLName|WCPIC32
与Library1 相同,如果代码存储在两个独⽴的库中,那么将使⽤它。.
TPName
要在远程站点上启动的TP 名称。NETBIOS
使⽤NETBIOS 节来指定NetBIOS 协议配置参数。此节中可包括下列属性:AdapterNum=number|0LAN 适配器的编号。
Library1=DLLName|NETAPI32NetBIOS DLL 的名称。LocalName=name
LAN 上此计算机为⼈所知的名称。这等同于MQNAME 环境参数。NumCmds=number|1要分配的命令的数量。NumSess=number|1要分配的会话的数量。SPX
使⽤SPX 节来指定SPX 协议配置参数。此节中可包括下列属性:BoardNum=number|0LAN 适配器的编号。KeepAlive=YES|NO打开或关闭KeepAlive 功能。
KeepAlive=YES使SPX 定期检查连接的另⼀端是否仍可⽤。如果不可⽤,那么将关闭该通道。Library1=DLLName|WSOCK32.DLLSPX DLL 的名称。
Library2=DLLName|WSOCK32.DLL
与Library1 相同,如果代码存储在两个独⽴的库中,那么将使⽤它。Socket=number|5E86
采⽤⼗六进制表⽰法的SPX 套接字编号。客户机配置⽂件的MessageBuffer 节
使⽤MessageBuffer 节以指定有关消息缓冲区的信息。MessageBuffer 节中可包括下列属性:MaximumSize=integer|1
介于范围 1 - 999 999 的预读缓冲区的⼤⼩(以千字节计)。存在下列特殊值:-1
客户机确定适当的值。对客户机禁⽤预读。PurgeTime=integer|600
清除预读缓冲区中留下的消息之前的时间间隔(以秒计)。
当客户机应⽤程序根据MsgId 或CorrelId 选择消息时,预读缓冲区可能包含带有先前请求的MsgId 或CorrelId 且被发送⾄客户机的消息。然后,这些消息将滞留在预读缓冲区中,直到发出带有相应MsgId 或CorrelId 的MQGET 为⽌。通过设置
PurgeTime,可以清除预读缓冲区中的消息。在预读缓冲区中保留的时间超过清除时间间隔的任何消息都会被⾃动清除。已从队列管理器上的队列中除去这些消息。因此,除⾮⽤户正在浏览它们,否则它们将丢失。有效范围是1 - 999 999 秒,或者是表⽰不进⾏清除的特殊值0。UpdatePercentage=integer|-1
介于范围 1 - 100 的更新百分⽐值,⽤于计算阈值以确定客户机应⽤程序何时对服务器进⾏新的请求。特殊值-1 指⽰客户机确定适当的值。
客户机定期将请求发送⾄服务器,从⽽指出客户机应⽤程序已使⽤的数据量。当客户机通过MQGET 调⽤检索到的字节数n超过阈值T时,会发送请求。每次新请求被发送⾄服务器时,n都复位为零。阈值T 的计算如下:T = Upper - Lower
上限与预读缓冲区⼤⼩相同,由MaximumSize属性指定,以千字节计。其缺省值是100 Kb。
下限⼩于上限,由UpdatePercentage属性指定。此属性为介于 1 与100 之间的数字,缺省值是20。下限的计算如下:Lower = Upper x UpdatePercentage / 100⽰例1:
MaximumSize 和UpdatePercentage 属性的缺省值分别为100 Kb 和20。
客户机调⽤MQGET 来检索消息并重复此操作。将⼀直持续此操作,直到MQGET 已使⽤n 个字节为⽌。在使⽤上述计算⽅法的情况下,T 为100 减20,等于80 Kb。
因此,当MQGET 调⽤已从队列中除去80 Kb 时,客户机会⾃动发出新请求。⽰例2:
MaximumSize 属性的缺省值为100 Kb,为UpdatePercentage 选择的值则为40。
客户机调⽤MQGET 来检索消息并重复此操作。将⼀直持续此操作,直到MQGET 已使⽤n 个字节为⽌。在使⽤上述计算⽅法的情况下,T 为100 减40,等于60 Kb。
因此,当MQGET 调⽤已从队列中除去60 Kb 时,客户机会⾃动发出新请求。在使⽤缺省值的情况下,此⽰例所⽤时间⽐⽰例1 更少。
因此,选择较⼤阈值T将有助于降低客户机向服务器发送请求的频率。相反,选择较⼩阈值T将有助于提⾼客户机向服务器发送请求的频率。
但是,选择较⼤阈值T意味着,随着预读缓冲区为空的可能性增⼤,预读的性能增益减⼩。当此情况发⽣时,MQGET 调⽤可能必须暂停,以等待服务器发出的数据到达。客户机配置⽂件的SSL 节
使⽤SSL 节以指定有关使⽤SSL 的信息。SSL 节中可包括下列属性:
OCSPAuthentication=OPTIONAL|REQUIRED|WARN
定义在启⽤OCSP 且OCSP 撤销检查⽆法确定证书撤销状态时WebSphere MQ 的⾏为。有三个可能的值:OPTIONAL
接受OCSP 检查⽆法确定其撤销状态的任何证书,并且不会⽣成警告或错误消息。SSL 连接会继续,就好像未执⾏撤销检查⼀样。REQUIRED
OCSP 检查必须为已检查的每个SSL 证书⽣成明确的撤销结果。⽆法验证其撤销状态的任何SSL 证书将被拒绝,且显⽰错误消息。如果队列管理器SSL 事件消息已启⽤,那么将⽣成具有MQRQ_SSL_HANDSHAKE_ERROR 的ReasonQualifier 的MQRC_CHANNEL_SSL_ERROR 消息。该SSL 连接已关闭。这是缺省值。WARN
如果OCSP 撤销检查⽆法确定任何SSL 证书的撤销状态,那么队列管理器错误⽇志中将报告警告。如果队列管理器SSL 事件消息已启⽤,那么将⽣成具有MQRQ_SSL_UNKNOWN_REVOCATION 的ReasonQualifier 的MQRC_CHANNEL_SSL_WARNING 消息。该SSL 连接被允许继续。SSLCryptoHardware=string
设置配置系统上存在的加密硬件所需的参数字符串的名称。
指定下列格式的字符串:GSK_PKCS11=driver path and filename;tokenlabel;token password;symmetric cipher setting;
驱动程序路径是为PKCS #11 卡提供⽀持的共享库的绝对路径。驱动程序⽂件名是共享库的名称。例如,PKCS #11 驱动程序路径和⽂件名所需的值为/usr/lib/pkcs11/PKCS11_API.so。要通过GSKit 访问对称密码运算,请指定对称密码设置参数。此参数值为以下任何⼀个:SYMMETRIC_CIPHER_OFF不访问对称密码运算。这是缺省设置。SYMMETRIC_CIPHER_ON访问对称密码运算。
该字符串的最⼤长度为256 个字符。缺省值为空⽩。如果指定的字符串未采⽤以上列出的格式,那么将会出错。SSLFipsRequired=YES|NO
指定当密码术在WebSphere MQ 中执⾏时是否仅使⽤FIPS 认证的算法。如果配置
了加密硬件,那么使⽤的加密模块是硬件产品所提供的那些模块,它们可能是也可能不是FIPS 认证的特定级别。这取决于正在使⽤的硬件产品。
SSLKeyRepository=pathname
保存⽤户数字证书的密钥库的位置(采⽤主⼲格式)。即,它包括完整路径和不带扩展名的⽂件名。SSLKeyResetCount=integer|0
在重新协商SSL 密钥之前在SSL 通道上发送和接收的未加密字节的数⽬。该值必须介于范围0 - 999 999 999。
缺省值为0,它表⽰从不会重新协商密钥。
如果指定介于 1 与32768 之间的值,那么SSL 和TLS 通道将使⽤密钥复位计数32768(32Kb)。这是为了避免由于密钥复位值很⼩⽽出现的过多密钥复位。客户机配置⽂件的TCP 节
使⽤TCP 节来指定TCP ⽹络协议配置参数。TCP 节中可包括下列属性:ClntRcvBuffSize=number|32768
TCP/IP 接收缓冲区的⼤⼩(以字节为单位)。ClntSndBuffSize=number|32768
TCP/IP 发送缓冲区的⼤⼩(以字节为单位)。Connect_Timeout=number
尝试连接套接字超时之前的秒数;除⾮您使⽤⾮零客户机通道权重配置通道,在这种情况下,缺省值将为5,否则,缺省值为0。
IPAddressVersion=MQIPADDR_IPV4|MQIPADDR_IPV6指定要⽤于通道连接的IP 协议。
它具有的字符串值可能是MQIPADDR_IPV4或MQIPADDR_IPV6。这些值在ALTER QMGR IPADDRV中分别与IPV4和IPV6的含义相同。KeepAlive=YES|NO
打开或关闭KeepAlive 功能。KeepAlive=YES 使TCP/IP 定期检查连接的另⼀端是否仍可⽤。如果不可⽤,那么将关闭该通道。
Library1=DLLName|WSOCK32
(仅限于Windows)TCP/IP 套接字DLL 的名称。
因篇幅问题不能全部显示,请点此查看更多更全内容