精华内容
下载资源
问答
  • 关闭mq队列管理器
    2021-08-17 09:20:20

    1、先用su - mqm进入mq用户,然后输入dspmq查看当前已经创建了的mq队列管理器

    [root@db ~]# su - mqm
    上一次登录:四 8月 12 16:22:11 CST 2021pts/0 上
    -bash-4.2$ dspmq
    QMNAME(T_QM_105)             STATUS(Ended unexpectedly)
    QMNAME(T_QM_011)             STATUS(Ended unexpectedly)
    -bash-4.2$ 
    

    上面的T_QM_105_YTH_510000和T_QM_011_YTH_510000就是我系统里面现有的mq队列管理器。

    2、使用dltmqm命令删除这些有问题的队列管理器。

    -bash-4.2$ dltmqm T_QM_105
    -bash-4.2$ dltmqm T_QM_011
    

    3、新建队列管理器(将下列命令行逐个运行)

    注:T表示测试;105表示银行编码(建行);011表示财政厅;L表示本地队列;S表示传输队列;R表示远程队列
    创建第一个队列管理器(模拟银行端):
    	创建队列管理器:crtmqm -q T_QM_105 
    	#T_QM_105:队列管理器名称
    	运行队列管理器:strmqm T_QM_105 
    	打开运行管理器:runmqsc T_QM_105                                                    
    	定义本地队列:DEFINE QLOCAL(T_L_105 ) share   #T_L_105:本地队列名称
    	定义传输队列(建行传输到财政):DEFINE QL(T_S_105_011 ) usage(xmitq) SHARE   #T_S_105_011:远程队列名称
        定义远程队列(建行到财政):DEFINE QREMOTE(T_R_105_011 ) RNAME(T_L_011 ) RQMNAME(T_QM_011 ) XMITQ(T_S_105_011 ) REPLACE        
        #T_R_105_011:远程队列名称;T_L_011表示对端(财政)的本地队列;T_QM_011表示对端财政的队列管理器;T_S_105_011表示通过T_S_105_011传输队列进行传输。
        定义发送通道(建行发送到财政):DEFINE CHANNEL(T_011 ) CHLTYPE(SDR) TRPTYPE(TCP) CONNAME('192.168.29.150(1515)') XMITQ(T_S_105_011 ) REPLACE
        # T_011发送通道名称;192.168.29.150(1515)对端的(财政)mq所在服务器的IP地址和监听的mq端口;T_S_105_011表示通过T_S_105_011传输队列进行传输。
        定义接受通道:DEFINE CHANNEL(T_105 ) CHLTYPE(RCVR) TRPTYPE(TCP) REPLACE
        #T_105表示创建一个名为T_105的接收通道
    	定义服务器通道:define CHANNEL(DC.SVRCONN) chltype(SVRCONN) trptype(TCP) mcauser('mqm')
    	#DC.SVRCONN表示服务器通道名称
    	定义监听端口,以及监听名字:DEFINE LISTENER(T_QM105) TRPTYPE(TCP) CONTROL(QMGR) PORT(1414)
    	#T_QM105监听名称;1414表示为T_QM_105队列管理器定义一个1414端口
    	开启端口监听:start LISTENER(T_QM105)
    	开启传输通道(财政):start chl(T_011 )
        创建通道触发器(财政):alter ql(T_S_105_011 ) TRIGDATA('T_011 ') TRIGTYPE(FIRST) TRIGGER initq('SYSTEM.CHANNEL.INITQ')
        关闭认证
    	alter qmgr CHLAUTH(DISABLED)
    	alter qmgr CONNAUTH('')
    	refresh security type(CONNAUTH)
    
    创建第二个队列管理器(模拟财政端):
    	创建队列管理器:crtmqm -q T_QM_011 
    	运行队列管理器:strmqm T_QM_011 
    	打开运行管理器:runmqsc T_QM_011 
    	定义本地队列:DEFINE QLOCAL(T_L_011 ) share
    	定义传输队列(建行):DEFINE QL(T_S_011_105 ) usage(xmitq) SHARE
        定义远程队列(建行):DEFINE QREMOTE(T_R_011_105 ) RNAME(T_L_105 ) RQMNAME(T_QM_105 ) XMITQ(T_S_011_105 ) REPLACE	
        定义发送通道(建行):DEFINE CHANNEL(T_105 ) CHLTYPE(SDR) TRPTYPE(TCP) CONNAME('192.168.29.150(1414)') XMITQ(T_S_011_105 ) REPLACE
        定义接受通道:DEFINE CHANNEL(T_011 ) CHLTYPE(RCVR) TRPTYPE(TCP) REPLACE
    	定义服务器通道:define CHANNEL(DC.SVRCONNT) chltype(SVRCONN) trptype(TCP) mcauser('mqm')
    	定义监听端口,以及监听名字:DEFINE LISTENER(T_QM011) TRPTYPE(TCP) CONTROL(QMGR) PORT(1515)			
    	开启端口监听:start LISTENER(T_QM011)
    	开启传输通道(建行):start chl(T_105 )
        创建通道触发器(建行):alter ql(T_S_011_105 ) TRIGDATA('T_105 ') TRIGTYPE(FIRST) TRIGGER initq('SYSTEM.CHANNEL.INITQ')
        关闭认证
    	alter qmgr CHLAUTH(DISABLED)
    	alter qmgr CONNAUTH('')
    	refresh security type(CONNAUTH)
    
    
    

    4、测试(命令行方式)

    -bash-4.2$ cd /opt/mqm/samp/bin  #切换到/opt/mqm/samp/bin目录
    #测试发送消息(从银行端发送到财政端)
    -bash-4.2$./amqsput T_R_105_011 T_QM_105  #./amqsput 银行端到财政端的远程队列名称 银行端的队列管理器名称
    Sample AMQSPUT0 start
    target queue is R_01_02
    jianhang!!              #随便输入发送的内容,输入完测试内容后连续两次enter键退出并发送
    Sample AMQSPUT0 end
    #查看是否接收到消息(需要在财政端查看是否收到来自银行端的消息)
    -bash-4.2$ ./amqsget T_L_011 T_QM_011    #./amqsget 财政端的本地队列 财政端的队列管理器
    Sample AMQSGET0 start
    message <jianhang!!>   #接收到的内容
    no more messages
    Sample AMQSGET0 end
    

    反之也需要测试从财政端发送消息到银行端,看银行端能不能正常接收消息。

    更多相关内容
  • MQ队列管理器_PMTS命令

    千次阅读 2021-01-20 10:50:25
    显示结果中QMNAME表示MQ队列管理器的名称,STATUS表示当前运行状态。 运行状态有如下几种: Starting 正在启动 Running 正在运行 Ending 正在停止 Ended normally 已经正常终止 Ended immediately 已经立即...

    1、查看队列管理器运行状态

    对MQ 5.2或以上版本,执行如下命令检查队列管理器运行状态

    $ dspmq

    显示结果中QMNAME表示MQ队列管理器的名称,STATUS表示当前运行状态。

    运行状态有如下几种:

    Starting    正在启动

    Running    正在运行

    Ending    正在停止

    Ended normally  已经正常终止

    Ended immediately  已经立即终止

    Ended preemtively  已经强制终止

    Ended unexpectively 异常终止

    注:停止MQ后建议使用dspmq命令进行状态检查是否成功关闭。

    dspmq查询结果示例

    QMNAME(QM00)    STATUS(Running)

     

    2、查看通道运行状态与启停通道

    $ runmqsc

    • dis chl(*);     查看所有通道定义
    • dis chs(*);     查看所有通道状态,如果没有查询到通道状态,或报错AMQ8420: Channel Status not found,请启动通道
    • dis chs(ChannelName);  查看通道ChannelName的状态

    通道状态有如下几种:

    STARTING  正在启动

    BINDING    正在绑定

    INITIALIZING  正在初始化

    RUNNING   正常

    STOPPING 正在停止

    RETRYING  重试

    PAUSED  等待

    STOPPED 已停止

    REQUESTING  请求

    3、启停通道与重置通道序号的方法:

    $ runmqsc

    • start chl(ChannelName);  启动通道
    • stop chl(ChannelName);  停止通道
    • reset channel(ChannelName);  重置通道序号。当本地与其他MQ队列管理器的通道无法正常启动的情况,检查日志发现是通道序号不一致,此时就需要先停止发送方通道,并在发送方和接收方进行通道计数的重置,重置后启动通道即可恢复通讯。想了解为什么要重置通道,请查看本站文章:Websphere MQ消息序号Message Sequence详解

    4、查看通道监听状态与启停监听

    $ runmqsc

    • dis listner(*);     查看通道监听定义
    • dis lsstatu(listnerName);   查看监听状态

    5、启动与停止监听的方法:

    $ runmqsc

    • start lstr(listnerName);   启动监听
    • stop lstr(listnerName);   停止监听 

    6、查看队列深度

    如果队列深度不断增加,不见减少,那么可能就有问题了,请检查并分析其原因。

    $runmqsc

    • dis q(*);    查看所有各类队列的属性
    • dis qlocal(QName);   查看所有本地队列的属性

    队列深度属性为:CURDEPTH

    7、查看死信队列深度

    如果死信队列深度不断增加,那就需要分析其原因。

    $runmqsc

    • dis qlocal(DEADQName)

    8、查看PMTS

    • pmtsstat disp qrinfo
    • pmtsstat disp dttinfo
    • pmtsstat log dtt 9
    • pmtsstat switch dtt on
    • pmtsstat switch enc off

    9、重启PMTS

    • pmtsstat stop_i
    • pmtsstat start cold
    展开全文
  • When I try to create connection to WebSpereMQ I get MQJE001: An MQException occurred: Completion Code 2, Reason 2009 MQJE016: MQ queue manager closed channel immediately during connect Closure reason...

    I have read many articles according to my issue, but I stiil have no solution.

    When I try to create connection to WebSpereMQ I get

    MQJE001: An MQException occurred: Completion Code 2, Reason 2009

    MQJE016: MQ queue manager closed channel immediately during connect

    Closure reason = 2009

    After reading different articles I tried to change CCSID by doing

    MQEnvironment.properties.put(MQC.CCSID_PROPERTY, 1208);

    // also tried other CCSIDs like 1200,819,500

    but I had no success. Than I read that a good idea is to look at MQ log files to find out if there is another process wich interrupt the connection. But I am not able to investigate that log files since they are encoded and I don't how to read them.

    Questions:

    1) Do you know how to read MQ logs? How to make them readable?

    2) Do you know what else could cause that kind of problem?

    Logs from file AMQERR01.txt :

    ----- amqxfdcp.c : 773 --------------------------------------------------------

    04.07.2013 10:41:01 - Process(2880.3) User(Anton.Kasianchuk) Program(javaw.exe)

    AMQ6118: An internal WebSphere MQ error has occurred (20806211)

    EXPLANATION:

    An error has been detected, and the MQ error recording routine has been called.

    ACTION:

    Use the standard facilities supplied with your system to record the problem

    identifier, and to save the generated output files. Contact your IBM support

    center. Do not discard these files until the problem has been resolved.

    ----- amqxfdcp.c : 735 --------------------------------------------------------

    04.07.2013 10:41:01 - Process(2880.3) User(Anton.Kasianchuk) Program(javaw.exe)

    AMQ6184: An internal WebSphere MQ error has occurred on queue manager MMSG01Q2.

    EXPLANATION:

    An error has been detected, and the WebSphere MQ error recording routine has

    been called. The failing process is process 2880.

    ACTION:

    Use the standard facilities supplied with your system to record the problem

    identifier, and to save the generated output files. Contact your IBM support

    center. Do not discard these files until the problem has been resolved.

    ----- amqxfdcp.c : 773 --------------------------------------------------------

    04.07.2013 10:41:05 - Process(2880.1) User(Anton.Kasianchuk) Program(javaw.exe)

    AMQ6118: An internal WebSphere MQ error has occurred (20806211)

    EXPLANATION:

    An error has been detected, and the MQ error recording routine has been called.

    ACTION:

    Use the standard facilities supplied with your system to record the problem

    identifier, and to save the generated output files. Contact your IBM support

    center. Do not discard these files until the problem has been resolved.

    ----- amqxfdcp.c : 735 --------------------------------------------------------

    04.07.2013 10:41:05 - Process(2880.1) User(Anton.Kasianchuk) Program(javaw.exe)

    AMQ6184: An internal WebSphere MQ error has occurred on queue manager MMSG01Q2.

    EXPLANATION:

    An error has been detected, and the WebSphere MQ error recording routine has

    been called. The failing process is process 2880.

    ACTION:

    Use the standard facilities supplied with your system to record the problem

    identifier, and to save the generated output files. Contact your IBM support

    center. Do not discard these files until the problem has been resolved.

    ----- amqxfdcp.c : 773 --------------------------------------------------------

    04.07.2013 10:41:05 - Process(2880.1) User(Anton.Kasianchuk) Program(javaw.exe)

    AMQ6118: An internal WebSphere MQ error has occurred (20806211)

    EXPLANATION:

    An error has been detected, and the MQ error recording routine has been called.

    ACTION:

    Use the standard facilities supplied with your system to record the problem

    identifier, and to save the generated output files. Contact your IBM support

    center. Do not discard these files until the problem has been resolved.

    ----- amqxfdcp.c : 735 --------------------------------------------------------

    04.07.2013 10:41:05 - Process(2880.1) User(Anton.Kasianchuk) Program(javaw.exe)

    AMQ6184: An internal WebSphere MQ error has occurred on queue manager MMSG01Q2.

    EXPLANATION:

    An error has been detected, and the WebSphere MQ error recording routine has

    been called. The failing process is process 2880.

    ACTION:

    Use the standard facilities supplied with your system to record the problem

    identifier, and to save the generated output files. Contact your IBM support

    center. Do not discard these files until the problem has been resolved.

    ----- amqxfdcp.c : 773 --------------------------------------------------------

    04.07.2013 10:41:05 - Process(2880.1) User(Anton.Kasianchuk) Program(javaw.exe)

    AMQ6118: An internal WebSphere MQ error has occurred (20806211)

    EXPLANATION:

    An error has been detected, and the MQ error recording routine has been called.

    ACTION:

    Use the standard facilities supplied with your system to record the problem

    identifier, and to save the generated output files. Contact your IBM support

    center. Do not discard these files until the problem has been resolved.

    ----- amqxfdcp.c : 735 --------------------------------------------------------

    04.07.2013 10:41:05 - Process(2880.1) User(Anton.Kasianchuk) Program(javaw.exe)

    AMQ6184: An internal WebSphere MQ error has occurred on queue manager MMSG01Q2.

    EXPLANATION:

    An error has been detected, and the WebSphere MQ error recording routine has

    been called. The failing process is process 2880.

    ACTION:

    Use the standard facilities supplied with your system to record the problem

    identifier, and to save the generated output files. Contact your IBM support

    center. Do not discard these files until the problem has been resolved.

    ----- amqxfdcp.c : 773 --------------------------------------------------------

    04.07.2013 10:41:05 - Process(2880.1) User(Anton.Kasianchuk) Program(javaw.exe)

    AMQ6118: An internal WebSphere MQ error has occurred (20806211)

    EXPLANATION:

    An error has been detected, and the MQ error recording routine has been called.

    ACTION:

    Use the standard facilities supplied with your system to record the problem

    identifier, and to save the generated output files. Contact your IBM support

    center. Do not discard these files until the problem has been resolved.

    ----- amqxfdcp.c : 735 --------------------------------------------------------

    04.07.2013 10:41:05 - Process(2880.1) User(Anton.Kasianchuk) Program(javaw.exe)

    AMQ6184: An internal WebSphere MQ error has occurred on queue manager MMSG01Q2.

    EXPLANATION:

    An error has been detected, and the WebSphere MQ error recording routine has

    been called. The failing process is process 2880.

    ACTION:

    Use the standard facilities supplied with your system to record the problem

    identifier, and to save the generated output files. Contact your IBM support

    center. Do not discard these files until the problem has been resolved.

    ----- amqxfdcp.c : 773 --------------------------------------------------------

    04.07.2013 10:45:41 - Process(3192.1) User(Anton.Kasianchuk) Program(crtmqm.exe)

    AMQ6119: An internal WebSphere MQ error has occurred (Failed to create mapped

    memory segment: [rc=536895769 errorCode=5])

    EXPLANATION:

    MQ detected an unexpected error when calling the operating system. The MQ error

    recording routine has been called.

    ACTION:

    Use the standard facilities supplied with your system to record the problem

    identifier, and to save the generated output files. Contact your IBM support

    center. Do not discard these files until the problem has been resolved.

    ----- amqxfdcp.c : 735 --------------------------------------------------------

    04.07.2013 10:45:41 - Process(3192.1) User(Anton.Kasianchuk) Program(crtmqm.exe)

    AMQ6183: An internal WebSphere MQ error has occurred.

    EXPLANATION:

    An error has been detected, and the WebSphere MQ error recording routine has

    been called. The failing process is process 3192.

    ACTION:

    Use the standard facilities supplied with your system to record the problem

    identifier, and to save the generated output files. Contact your IBM support

    center. Do not discard these files until the problem has been resolved.

    ----- amqxfdcp.c : 779 --

    logs from file amqtsivt.txt

    10:45:39 IVT Started

    10:45:41 Setup IVT Environment...

    10:45:41 Creating Queue Manager...

    10:45:42 Starting Queue Manager...

    10:45:42 Ready.

    10:45:42 Connect to QueueManager(1), CC:2 - RC:2058

    10:45:42 Connect to QueueManager(2), CC:2 - RC:2058

    10:45:42 Open queue, CC:2 - RC:2018

    10:45:42 Put Message, CC:2 - RC:2018

    10:45:42 Message Put: AMQMTSIVT

    10:45:42 Get Message, CC:2 - RC:2018

    10:45:42 Message Returned:

    10:45:42 Close queue, CC:2 - RC:2018

    10:45:42 Started thread 01

    10:45:42 MQOpen in Child Thread, CC:2 - RC:2018

    10:45:42 MQPut in Child Thread, CC:2 - RC:2018

    10:45:42 MQGet in Child Thread, CC:2 - RC:2018

    10:45:42 MQClose in Child Thread, CC:2 - RC:2018

    10:45:42 Child Thread finished 43 cycles

    10:45:43 Started thread 02

    10:45:43 MQOpen in Child Thread, CC:2 - RC:2018

    10:45:43 MQPut in Child Thread, CC:2 - RC:2018

    10:45:43 MQGet in Child Thread, CC:2 - RC:2018

    10:45:43 MQClose in Child Thread, CC:2 - RC:2018

    10:45:43 Child Thread finished 46 cycles

    10:45:44 Started thread 03

    10:45:44 MQOpen in Child Thread, CC:2 - RC:2018

    10:45:44 MQPut in Child Thread, CC:2 - RC:2018

    10:45:44 MQGet in Child Thread, CC:2 - RC:2018

    10:45:44 MQClose in Child Thread, CC:2 - RC:2018

    10:45:44 Child Thread finished 49 cycles

    10:45:45 Started thread 04

    10:45:45 MQOpen in Child Thread, CC:2 - RC:2018

    10:45:45 MQPut in Child Thread, CC:2 - RC:2018

    10:45:45 MQGet in Child Thread, CC:2 - RC:2018

    10:45:45 MQClose in Child Thread, CC:2 - RC:2018

    10:45:45 Child Thread finished 3 cycles

    10:45:45 Started thread 05

    10:45:45 MQOpen in Child Thread, CC:2 - RC:2018

    10:45:45 MQPut in Child Thread, CC:2 - RC:2018

    10:45:45 MQGet in Child Thread, CC:2 - RC:2018

    10:45:45 MQClose in Child Thread, CC:2 - RC:2018

    10:45:45 Child Thread finished 3 cycles

    10:45:45 Started thread 06

    10:45:45 MQOpen in Child Thread, CC:2 - RC:2018

    10:45:45 MQPut in Child Thread, CC:2 - RC:2018

    10:45:45 MQGet in Child Thread, CC:2 - RC:2018

    10:45:45 MQClose in Child Thread, CC:2 - RC:2018

    10:45:45 Child Thread finished 3 cycles

    10:45:45 Started thread 07

    10:45:45 MQOpen in Child Thread, CC:2 - RC:2018

    10:45:45 MQPut in Child Thread, CC:2 - RC:2018

    10:45:45 MQGet in Child Thread, CC:2 - RC:2018

    10:45:45 MQClose in Child Thread, CC:2 - RC:2018

    10:45:45 Child Thread finished 3 cycles

    10:45:45 Started thread 08

    10:45:45 MQOpen in Child Thread, CC:2 - RC:2018

    10:45:45 MQPut in Child Thread, CC:2 - RC:2018

    10:45:45 MQGet in Child Thread, CC:2 - RC:2018

    10:45:45 MQClose in Child Thread, CC:2 - RC:2018

    10:45:45 Child Thread finished 3 cycles

    10:45:46 Started thread 09

    10:45:46 MQOpen in Child Thread, CC:2 - RC:2018

    10:45:46 MQPut in Child Thread, CC:2 - RC:2018

    10:45:46 MQGet in Child Thread, CC:2 - RC:2018

    10:45:46 MQClose in Child Thread, CC:2 - RC:2018

    10:45:46 Child Thread finished 6 cycles

    10:45:47 User cancelled action

    10:45:47 Started thread 10

    10:45:47 MQOpen in Child Thread, CC:2 - RC:2018

    10:45:47 MQPut in Child Thread, CC:2 - RC:2018

    10:45:47 MQGet in Child Thread, CC:2 - RC:2018

    10:45:47 MQClose in Child Thread, CC:2 - RC:2018

    10:45:47 Child Thread finished 9 cycles

    10:45:48 Error(s) encountered during thread execution

    10:45:48 All threads terminated

    10:45:48 Disconnect from QueueManager (1), CC:2 - RC:2018

    10:45:48 Disconnect from QueueManager (2), CC:2 - RC:2018

    10:45:48 Ready.

    10:45:49 Cleaning Up...

    10:45:49 Deleting MTS Package

    10:45:49 Access MTS Admin Catalog, OK

    10:45:52 Get MTS Packages, OK

    10:45:52 Ending Queue Manager...

    10:45:52 Deleting Queue Manager...

    10:45:53 Ready.

    logs from \Qmgrs\MMSG01Q2\errors\AMQERR01.txt

    ----- amqrmrsa.c : 468 --------------------------------------------------------

    05.07.2013 09:41:10 - Process(6004.21) User(j2mquser) Program(amqrmppa.exe)

    AMQ9502: Type of channel not suitable for action requested.

    EXPLANATION:

    The operation requested cannot be performed on channel 'CLOUD.MMSG01Q2.S1'.

    Some operations are only valid for certain channel types. For example, you can

    only ping a channel from the end sending the message.

    ACTION:

    Check whether the channel name is specified correctly. If it is check that the

    channel has been defined correctly.

    ----- amqrmsaa.c : 1072 -------------------------------------------------------

    05.07.2013 09:41:10 - Process(6004.21) User(j2mquser) Program(amqrmppa.exe)

    AMQ9999: Channel program ended abnormally.

    EXPLANATION:

    Channel program 'CLOUD.MMSG01Q2.S1' ended abnormally.

    ACTION:

    Look at previous error messages for channel program 'CLOUD.MMSG01Q2.S1' in the

    error files to determine the cause of the failure.

    ----- amqrmrsa.c : 468 --------------------------------------------------------

    解决方案

    I use this for client mode connections

    MQEnvironment.properties.put(MQConstants.TRANSPORT_PROPERTY, MQConstants.TRANSPORT_MQSERIES);

    展开全文
  • 您可以使用多实例队列管理器来基于IBM MQ配置自己的高可用性消息传递系统 2. 多实例管理器结构   如图显示了队列管理器QM1的多实例配置的示例,IBMMQ安装在两台服务器上,其中一台为备用服务器。服务器上已创建...

    1. 多实例管理器的作用

      在两台或多台计算机上配置的同一队列管理器的实例。通过启动多个实例,一个实例将成为活动实例,而其他实例将成为备用实例。如果活动实例失败,则在另一台计算机上运行的备用实例将自动接管。您可以使用多实例队列管理器来基于IBM MQ配置自己的高可用性消息传递系统

    2. 多实例管理器结构

    在这里插入图片描述
      如图显示了队列管理器QM1的多实例配置的示例,IBMMQ安装在两台服务器上,其中一台为备用服务器。服务器上已创建队列管理器QM1。QM1的一个实例处于活动状态,并且在一台服务器上运行。QM1的另一个实例在另一台服务器上处于待机状态,不做任何活动处理,当活动的实例发生故障时,当前的任务会由备用实例接管。两个队列管理器实例的数据和日志保存在一个共享的网络存储中

      当您打算将队列管理器用作多实例队列管理器时,请使用crtmqm命令在其中一台服务器上创建一个队列管理器,并将其队列管理器数据和日志存储在共享网络存储中。在另一台服务器上,而不是再次创建队列管理器,请使用addmqinf命令创建对队列管理器数据的引用并登录网络存储。

      现在,您可以从任一服务器运行队列管理器。每个服务器都引用相同的队列管理器数据和日志。只有一个队列管理器,并且一次仅在一台服务器上处于活动状态。

      队列管理器既可以作为单个实例队列管理器运行,也可以作为多实例队列管理器运行。在这两种情况下,只有一个队列管理器实例正在运行,正在处理请求。区别在于,当作为多实例队列管理器运行时,未运行队列管理器活动实例的服务器将作为备用实例运行,如果活动服务器发生故障,则可以自动从活动实例接管。

      您对哪个实例首先变为活动状态的唯一控制权是在两个服务器上启动队列管理器的顺序。第一个获取对队列管理器数据的读/写锁定的实例成为活动实例

      一旦启动了活动实例,就可以使用切换选项将活动实例停止以将控制权转移到备用服务器,从而将活动实例交换到其他服务器。

      QM1的活动实例在运行时具有对共享队列管理器数据和日志文件夹的独占访问权。QM1的备用实例检测活动实例何时发生故障,并成为活动实例。它接管QM1数据,并记录它们由活动实例留下的状态,并接受来自客户端和通道的重新连接。

      活动实例可能由于各种原因而失败,导致备用实例接管:

    • 托管活动队列管理器实例的服务器发生故障。
    • 托管活动队列管理器实例的服务器与文件系统之间的连接失败。
    • IBM MQ检测到队列管理器进程无响应,然后关闭队列管理器。

      您可以将队列管理器配置信息添加到多个服务器,然后选择任意两个服务器作为主/备用对运行。总共有两个实例的限制。您不能有两个备用实例和一个活动实例。

    3.创建一个多实例队列管理器

    本人使用linux环境,不再在win环境上进行搭建测试,win环境请移步windows创建多实例队列管理器

    3.1 网络文件系统

    3.1.1 为什么要创建网络文件系统

      多实例队列管理器使用网络文件系统来管理队列管理器实例。

    3.1.2 多实例队列管理器高可用原理

      多实例队列管理器使用文件系统锁以及共享队列管理器数据和日志的组合来自动执行故障转移。队列管理器只有一个实例可以对共享的队列管理器数据和日志具有独占访问权。当它获得访问权限时,它将成为活动实例。未能成功获得排他访问的另一个实例将作为备用实例等待,直到队列管理器数据和日志变得可用为止。
      联网文件系统负责释放它为活动队列管理器实例持有的锁。如果活动实例以某种方式失败,则网络文件系统将释放它为活动实例持有的锁。排他锁释放后,等待该锁的备用队列管理器将尝试获取它。如果成功,它将成为活动实例,并且具有对队列管理器数据的独占访问权,并登录到共享文件系统上。然后它继续开始。

    3.1.3 安装并启用网络文件系统

      在linux系统中,安装rpcbind与nfs来实现网络文件系统

    3.1.3.1 服务划分

    在这里插入图片描述
      如图所示,我准备了三台机器,FIle Server做网络文件系统,MQ Server1和MQ Server2 做多实例队列管理器

    3.1.3.2 File Server 安装rpcbind和nfs
    1. 查看是否安装了nfs和rpcbind
      rpm -aq | grep nfs
      rpm -aq | grep rpcbind
      在这里插入图片描述
    2. 若没有安装nfs与rpcbind,则安装两个服务
      yum install nfs-utils rpcbind
    3. 创建共享文件夹
      mkdir -p /share/HQM1
      在这里插入图片描述
    4. 将共享文件夹给出权限777
      chmod 777 /share/HQM1
      本以为给出666读写权限即可,但是实际测试中不行,在MQ Server1中无法创建目录,哪位大神知道原因的可以指导一下
    5. 修改NFS配置文件,添加共享信息
      vim /etc/exports
      添加
      /share/HQM1 192.168.137.0/24(rw,sync,no_wdelay,fsid=0)
      rw表示可读写;sync表示同步写,fsid=0表示将/data找个目录包装成根目录
      在这里插入图片描述
    6. 读取配置文件,并检测配置是否正确
      exportfs -rv
      在这里插入图片描述
    7. 启动rpcbind与nfs服务(先启动rpcbind,nfs须在rpcbing上进行注册)
      systemctl start rpcbind
      systemctl start nfs
    8. 查看服务状态
      systemctl status rpcbind
      在这里插入图片描述
      systemctl status nfs
      在这里插入图片描述
    9. 查看自己共享的服务
      showmount -e 在这里插入图片描述
    10. 查看rpc服务的注册情况
      rpcinfo -p localhost
      在这里插入图片描述
    11. 固定端口
      在NFS提供服务时,111端口与2049端口是固定的,但是其他端口的不固定给我们在服务器上开发端口带来很大的麻烦,服务器直接管理防火墙又会带来安全性的问题,所以对其他端口进行固定(重启系统后生效)
      vim /etc/sysconfig/nfs
      添加以下内容:
      RQUOTAD_PORT=30001
      LOCKD_TCPPORT=30002
      LOCKD_UDPPORT=30002
      MOUNTD_PORT=30003
      STATD_PORT=30004
      在这里插入图片描述
    12. 重新查看rpc绑定情况,可看出端口均已改变
      在这里插入图片描述
    13. 重启nfs和rpcbind
      systemctl restart rpcbind
      systemctl restart nfs
    14. 防火墙开放端口
    firewall-cmd --add-port=111/tcp --permanent
    firewall-cmd --add-port=111/udp --permanent
    firewall-cmd --add-port=2049/tcp --permanent
    firewall-cmd --add-port=2049/udp --permanent
    firewall-cmd --add-port=30001/tcp --permanent
    firewall-cmd --add-port=30001/udp --permanent
    firewall-cmd --add-port=30002/tcp --permanent
    firewall-cmd --add-port=30002/udp --permanent
    firewall-cmd --add-port=30003/tcp --permanent
    firewall-cmd --add-port=30003/udp --permanent
    firewall-cmd --add-port=30004/tcp --permanent
    firewall-cmd --add-port=30004/udp --permanent
    systemctl restart firewalld
    
    3.1.3.3 MQ Server1 挂载网络文件系统并创建队列管理器
    1. 创建挂载目录
      mkdir -p /share/HQM1
      注:如果只是使用网络文件系统,则创建的挂载目录可以不与File Server上的共享目录一致,但是这里使用网络文件系统创建队列管理器,挂载目录与File Server上的共享目录须一致。
    2. 查看FileServer共享的文件
      showmount -e 192.168.137.12
      在这里插入图片描述
      若遇到‘Port mapper failure - Unable to receive: errno 113 (No route to host)’错误,则为端口未开放的错误,请检查端口开放操作是否成功。
    3. 挂载网络文件系统目录
      mount 192.168.137.12:/share/HQM1 /share/HQM1在这里插入图片描述
    4. 创建IBMMQ日志目录和队列管理器数据目录
      mkdir /share/HQM1/logs
      mkdir /share/HQM1/qmgrs
      在这里插入图片描述
    5. 验证共享网络系统中的文件是否真正进行了共享,在File Server中打开共享目录,查看是否存在了logs和qmgrs文件夹 在这里插入图片描述
    6. File Server上修改文件夹归属于用户mqm,并将访问权限设置为用户和组可以读写
      chown mqm:mqm -R /share/HQM1
      chmod -R ug+rwx /share/HQM1
    7. 回到MQ Server1,切换到mqm用户下,创建队列管理器HQM1
      crtmqm -ld /share/HQM1/logs -md /share/HQM1/qmgrs HQM1在这里插入图片描述
    8. 获取在MQ Server2创建队列管理器HQM1的命令
      dspmqinf -o command HQM1在这里插入图片描述
      记录输出的内容备用
    3.1.3.4 MQ Server2 挂载网络文件系统并创建队列管理器
    1. 创建挂载目录
      mkdir -p /share/HQM1在这里插入图片描述
    2. 查看共享的文件
      showmount -e 192.168.137.12
    3. 挂载网络文件系统
      mount 192.168.137.12:/share/HQM1 /share/HQM1
    4. 切换用户为mqm,输入3.1.3.3最后一步记录的命令,创建备用队列管理器
      addmqinf -s QueueManager -v Name=HQM1 -v Directory=HQM1 -v Prefix=/var/mqm -v DataPath=/share/HQM1/qmgrs/HQM1在这里插入图片描述
      到这里,队列管理器创建完毕
    3.1.3.5 启动队列管理器
    1. 使用-x参数以任一顺序启动队列管理器实例
      strmqm -x HQM1
      在两个MQ Server上都要云翔
    2. 查看两个MQ Server中的服务状态(两个MQ Server中都要执行)
      dspmq
      MQ Server2 中的结果在这里插入图片描述
      MQ Server1中的结果
      在这里插入图片描述
      服务启动完成后,两个队列管理器会呈现一个运行状态(running),一个备用状态(running as standby)
    3.1.3.6 验证搭建的多实例队列管理器

      我们在队列管理器HQM1上创建队列Q1通道TESTCHANNEL,监听TCP.LISTENER,并保证端口为1418,然后使用客户端工具向Q1上发送消息,发送消息中间停止当前运行的队列管理器,查看备用管理器是否会接管当前队列管理器的任务。

    1. 创建队列,通道与监听,并关闭用户安全检测
      runmqsc HQM1进入管理器,输入以下内容(不要完全复制,注释部分在管理器中会报错)
    #定义一个服务器连接通道
    DEFINE CHANNEL('TESTCHANNEL') CHLTYPE(SVRCONN) TRPTYPE(TCP) MCAUSER('mqm')
    #定义监听
    DEFINE LISTENER(LISTENER.TCP) TRPTYPE(TCP) PORT(1418)
    #队列管理器权限,禁用认证
    SET CHLAUTH(*) TYPE(BLOCKUSER) USERLIST(*MQADMIN) ACTION(REMOVE)
    SET CHLAUTH(SYSTEM.ADMIN.SVRCONN) TYPE(ADDRESSMAP) ADDRESS(*) ACTION(REMOVE)
    SET CHLAUTH(SYSTEM.*) TYPE(ADDRESSMAP) ADDRESS(*) ACTION(REMOVE)
    ALTER AUTHINFO(SYSTEM.DEFAULT.AUTHINFO.IDPWOS) AUTHTYPE(IDPWOS) CHCKCLNT(OPTIONAL)
    #启动监听器
    START LISTENER(LISTENER.TCP)
    #禁用通道验证
    alter qmgr chlauth(disabled)
    #刷新安全策略
    REFRESH SECURITY TYPE(CONNAUTH)
    #创建队列Q1
    DEFINE QLOCAL(CQ1)
    end
    
    1. MQ Server1,MQ Server2 开放端口 1418 (须在root用户下执行)
      firewall-cmd --add-port=1418/tcp --permanent
      systemctl restart firewalld

    2. 使用客户端连接工具连接队列管理器在这里插入图片描述
      在这里插入图片描述

    3. 使用endmqm -s HQM1命令,主动发起停止正在运行的队列管理器并切换的操作
      endmqm -s HQM1在队列管理器状态为running的服务器上运行,本人的是MQ Server2服务器。
      在这里插入图片描述
      提示当所用工作完成后,将切换为备用队列管理器
      在当前服务器上执行dspmq命令,查看队列管理器状态,当HQM1状态变为running elsewhere时,说明切换成功,然后去之前的备用队列管理器所在的服务器执行dspmq命令,查看队列管理器状态。
      MQ Server2 状态在这里插入图片描述
      MQ Server1状态在这里插入图片描述
      结论:在主动切换的情况下,主备队列管理器切换成功

    4. 服务器宕机的情况下,测试主备管理器切换情况
      将队列管理器恢复为一个正在运行,一个备用的状态。
      在这里插入图片描述
      然后切断正在运行的服务器的电源,查看切换情况。
      在这里插入图片描述
      本人这里关闭的时MQ Server1,一段事件之后查看MQ Server2的队列管理器状态,发现队列管理器状态已变为running
      在这里插入图片描述
      说明主备切换成功。(本人在这个地方等待了将近有半个小时,虽说最后的结果是切换成功了,但是切换时间超出了预期太多)

    展开全文
  • 所需的MQ软件包 WMQv600Trial-x86_linux_2.tar.gz. >安装jdk(自行安装,已安装可以忽略) 1、将MQ软件包上传到home目录下,并解压 [root@localhost home]# ll 总用量 864416 -rw-r--r--. 1 root root ...
  • IBM Webshere MQ 队列配置

    2021-08-06 15:57:53
    对端MQ队列管理器:QM_A 本地队列:L_QA 接收通道:C_SendB IP端口:1.1.1.1:15303 山东测试MQ队列管理器:QM_B 本地队列:L_QB 远程队列:R_QB 传输队列:S_QB --发送通道:C_SendB 接收通道:C_RecvB IP端口:1.1...
  • 当时正在排查问题原因(单纯查看日志未做其他操作),IBMMQ命令服务器异常关闭,2分钟左右后队列管理器也异常关闭关闭期间MQ的error日志没有更新报错。安装MQ软件的服务器操作系统版本为Windows2003,因涉密相关...
  • 本人前面文章一提到MQ 在linux下的安装,在此只描述队列管理器的配置,实现MQI通道的双向通讯。一下方法我已亲测!!贴出A,B两机的MQ配置记录:A机:#**----------------------------...
  • 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文...MQ集群及网关队列管理器的搭建 描述: 如上图所示,为MQ的集群搭建部署图。CLUSTERA、CLUSTERB分别是两个集群,其中Qm1-Qm3、Ga...
  • 关闭MQ队列管理器安全认证

    千次阅读 2012-12-07 11:17:53
    C:\Program Files (x86)\IBM\WebSphere MQ\bin>runmqsc B2C_QM 5724-H72 (C) Copyright IBM Corp. 1994, 2011.... 启动队列管理器 B2C_QM 的 MQSC。 alter qmgr chlauth(disabled) 1 : alter...
  • MQ常用管理命令

    千次阅读 2021-05-26 05:38:26
    1-说明本文参考MQ 9.0官方文档,结合平时使用整理,主要是Linux平台下的命令为主,部分平台(例如windows)会特别注明。2-语法规则命名规则与限制- Queue,Process,namelists,clusters,topics,services,...
  • 在实际环境中遇到这样的问题:系统重新启动后MQ队列管理器,以及相关的传输程序都没有启动的问题,经过一段时间的折腾后,发现了如下解决方案,简单跟大家分享下。  对于IBM MQ,安装之后它本身就是开机自启动的,...
  • IBM创建队列管理器

    千次阅读 2018-12-17 16:33:15
    1.创建队列管理器 crtmqm MQ_Transaction_Server   2.启动 strmqm MQ_Transaction_Server   3.进入命令控制台 runmqsc MQ_Transaction_Server   4.创建服务器连接通道[分开执行] def chl(SYSTEM.ADMIN....
  • :JMSWMQ0018:连接到队列管理器失败 原因码为2538 IDE使用JMS配置连接时,在检测ip.port.队列管理器,通道均无误的情况下,尝试使用telnet连接远程的ip时,发现无效。以为是防火墙的原因,然后关闭了之后还是无效。 ...
  • MQ消息队列

    2022-04-16 11:16:36
    MQ全称message queue(消息队列),是在消息的传输过程中保存消息的容器,多用于分布式系统之间进行通信。 总结 MQ,消息队列,存储消息的中间件。 分布式系统通信两种方式:直接远程调用和借助第三方完成间接...
  • (四)IBM MQ 远程队列的创建与使用

    千次阅读 2020-03-09 14:59:12
    准备工作 两台linux机器或者虚拟机 保证两天机器在同一网段内,并保证能够相互ping通 ...注意:发送方机器创建的远程队列中rqmname为该队列管理器,注意名称要一致 2.启动队列管理器QM_APPLE strmqm QM_APPLE...
  • 解决方法 :  首先确定好服务器连接通道是否正常,如SERVER_CHL; 修改其相关属性 :  ALTER CHL('SERVER_CHL') CHLTYPE(SVRCONN) MCAUSER('mqm') ... 然后再连接该远程队列管理器时,在属性用户标识中填写 mqm ...
  • MQ队列管理器命令

    万次阅读 2011-11-26 19:02:21
    MQ V7 INFO center 每个轨道图以两个右箭头开始,以一对右箭头和左箭头结束。以单个右箭头开始的行是连续行。阅读轨道图时应按从左至右和从上至下的顺序,按箭头的方向进行。 轨道图中使用的其他约定包括: ...
  • IBM MQ 9.1 教程三:远程访问IBM MQ队列

    千次阅读 2019-01-28 15:33:16
    IBM MQ 9.1 教程三:远程访问IBM MQ队列 2019年01月04日 14:43:48 可还记得你我的誓言 阅读数:34 版权声明:本文为博主原创文章,未经博主允许不得转载。 ...
  • MQ启动与关闭

    千次阅读 2021-06-07 15:21:20
    如果启动默认队列管理器,strmqm后可以忽略队列管理器名称。 2、MQ关闭 一般情况下,我们使用如下命令来停止mq $ endmqm -i QM1 如果停止或 关闭失败,可以使用如下步骤: 步骤1): $ endmqm -p QM1 清楚程序的...
  • 超详细的本地队列和远程队列的配置步骤。配不会来找我
  • 自从前几天写了一篇websphere MQ安装以后,今天打算再写一篇java连接本地MQ队列实现put,get操作,希望可以给大家带来一些帮助,同时也给自己做一个总结。先windows,后linux。八戒(本人)下载的版本是WS_MQ_V7.5.0.2...
  • websphere mq 死信队列测试
  • ibm mq 常用命令
  • windows、linux下java连接本地MQ队列实现输入(二),上一篇文章环境为windows,这一篇将说一下linux环境下java连接本地队列实现输入输出,其实大同小异,但是八戒在这里有很多心得感悟,想和大家做一分享,八戒将尽...
  • 查看MQ运行状态

    千次阅读 2020-12-23 01:33:27
    查看MQ运行状态1、查看队列管理器运行状态对MQ 5.2或以上版本,执行如下命令检查队列管理器运行状态:# dspmq显示结果中QMNAME表示MQ队列管理器的名称,STATUS表示当前运行状态。运行状态有如下几种:Starting 正在...
  • IBM MQ介绍

    2021-03-05 10:59:52
    BM MQ(IBM Message Queue)是IBM的一款商业消息中间产品,适用于...队列管理器MQ系统中最上层的一个概念,由它为我们提供基于队列的消息服务。 2、消息 在MQ中,我们把应用程序交由MQ传输的数据定义为消息,我们可

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,325
精华内容 5,730
关键字:

关闭mq队列管理器