您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 市场营销 > WebShpereMQ入门教程
WebShpereMQ入门教程(20):MQ通道的维护下图显示了所有可能的通道状态层次结构,在WebSphereMQforAIX,iSeries,HP-UX,Linux,Solaris,和Windowssystems,和WebSphereMQV5.1forOS/2Warp平台,这些状态对服务器连接通道也适用。图,通道状态如果通道的状态分为inactive和current两大类;“current”可以是Stopped,Starting,Retrying和Active的情况。通道Acitve的情况又可分为Initializing,Binding,Requesting,Running,Paused或Stopping的状态。下图显示通道状态之间的变化关系。注意:1.当通道处于INITIALIZING,BINDING,REQUESTING,RUNNING,PAUSED,or或STOPPING状态时,这将消耗系统资源,并且通道的进程或线程正在运行;因为通道是Active状态。2.当通道是STOPPED状态时,会话可能是active,因为下一个状态时未知的。6.3.2通道维护命令下面将详细地介绍通道有关的维护命令。创建通道为创建一个新通道,您需要创建两个通道定义,在通信的双方各定义一个。这两个通道的名字必须时相同的,而且两端的通道类型必须匹配,例如:发送和接收。可以使用MQSC命令“DEFINECHANNEL”来创建通道,在命令中需要指定通道名,通道类型,连接名,通道描述(可选),传输队列名(可选)和传输协议,等还有许多可选的属性可以设置。注意:建议在WebSphereMQ的网络中所有的通道名唯一,并且通道名中最好包含了源队列管理器名和目标队列管理器名。创建通道的例子DEFINECHANNEL(QM1.TO.QM2)CHLTYPE(SDR)+DESCR(’SenderchanneltoQM2’)+CONNAME(QM2)TRPTYPE(TCP)XMITQ(QM2)CONVERT(YES)I修改通道可以使用MQSC命令“ALTERCHANNEL”来修改现有通道定义,但是通道名和通道类型不能修改。删除通道可以使用MQSC命令“DELETECHANNEL”来删除现有通道定义。查看通道定义可以使用MQSC命令“DISPLAYCHANNEL”来查看现有通道定义。可以说明通道名,通道类型(可选),和其它属性,或查看所有的属性。查看通道定义的例子DISPLAYCHANNEL(QM1.TO.QM2)TRPTYPE,CONVERTDISPLAYCHANNEL(QM1.TO.*)TRPTYPE,CONVERTDISPLAYCHANNEL(*)TRPTYPE,CONVERTDISPLAYCHANNEL(QM1.TO.QMR34)ALL查看通道状态可以使用MQSC命令“DISPLAYCHSTATUS”来查看现有通道状态。显示的通道信息包括:通道名通信连接名通道的In-doubt状态上一个消息序号传输队列名in-doubt标识上一个提交消息序号逻辑工作单元标识进程ID线程ID(仅OS/2和Windows支持)查看通道状态的例子DISPLAYCHSTATUS(*)CURRENTDISPLAYCHSTATUS(QM1.TO.*)SAVEDPing通道使用MQSC命令“PINGCHANNEL”用固定的数据消息来测试和远端的连接.ping通道并没有使用传输队列和目标队列。它只是使用了通道定义、通讯链路和网络设置。只用通道当前状态不是active的情况下才使用它。这个命令只能在发送通道和服务器通道方使用。命令返回的结果是“Pingcomplete”或错误消息。启动通道使用MQSC命令“STARTCHANNEL”启动发送通道、服务器通道和请求器通道。如果通道是采用触发方式启动,那么不用手工执行启动命令。当接收通道处在disabled的状态时,也可以使用“STARTCHANNEL”命令启动它。在WebSphereMQforAIX,iSeries,HP-UX,Linux,Solaris,和Windowssystems,和WebSphereMQV5.1forCompaqTru64UNIX,和OS/2Warp,如果服务器连接通道处在disabled状态,也可以使用“STARTCHANNEL”命令启动它。启动处在disabled状态的接收通道或服务器连接通道,即是复位通道和允许通道被远程启动。当通道被启动时,发送MCA读通道定义文件并打开传输队列,并远程启动相应的接收或服务器通道。通道启动成功的条件:1,本地和远端的通道定义必须存在。2,传输队列必须存在,并且没有其它通道使用它。3,本地和远程的MCA必须存在。4,通讯链路必须可用。5,本地和远程队列管理器必须是处在运行状态。6,消息通道一定不在运行。停止通道使用MQSC命令“STOPCHANNEL”停止通道。停止通道的命令只能对除客户连接之外的通道进行操作。停止通道的方式:静态停止(Stopquiesce)STOPCHANNEL(QM1.TO.QM2)MODE(QUIESCE)这种方式将顺序地停止通道,必须完成当前的消息处理并确保事务的一致性。注意:如果通道是空闲的,将不终止接收通道。强制停止(Stopforce)STOPCHANNEL(QM1.TO.QM2)MODE(FORCE)这种方式立即停止通道,但不终止通道的线程或进程。通道并没有完成当前的消息处理,因此可能使通道处在可疑的状态。通常,推荐系统管理员使用静态停止通道。终止停止(Stopterminate)STOPCHANNEL(QM1.TO.QM2)MODE(TERMINATE)这种方式立即停止通道,并终止通道的线程或进程。复位通道可以使用MQSC命令“RESETCHANNEL”改变消息序号。这个命令可以适用于任何消息通道,但不能用在MQI通道(客户连接或服务器连接)。通道被启动后,将使用新的消息序号。如果是对发送通道或服务器通道进行复位,当下次通道重新启动时将通知通道的另一方。Resolve通道从发送通道或服务器通道使用MQSC命令“RESOLVECHANNEL”来处理可疑的消息。“RESOLVECHANNEL”命令可以接受BACKOUT或COMMIT参数,Backout将把可疑消息恢复到传输队列,而Commit将丢弃可疑消息。6.3.3设置MaxChannels和MaxActiveChannels属性MaxChannels和MaxActiveChannels分别代表队列管理器允许配置的通道的最大个数和允许同时运行的通道的个数,MaxChannels的缺省值是100,MaxActiveChannels的缺省值与MaxChannels相同。如果您的并发通道连接个数超过了100,您需要修改这两个参数。这对于大并发的Client/Server间通讯尤为重要。例如,在unix平台,修改qm.ini文件如下所示:CHANNELS:MaxChannels=200;MaximumnumberofChannelsallowed.MaxActiveChannels=150;MaximumnumberofChannelsallowedtobe;activeatanytime.
本文标题:WebShpereMQ入门教程
链接地址:https://www.777doc.com/doc-2855710 .html