MQ开发C教程

MQ开发C教程
MQ开发C教程

MQ发送消息和接收消息例子,

/////////////

//MQ初始化

MQHOBJ hObj;

MQLONG O_options, CompCode, Reason;

MQOD od = {MQOD_DEFAULT}; // Object Descriptor

MQMD md = {MQMD_DEFAULT}; // Message Descriptor

MQPMO pmo = {MQPMO_DEFAULT}; // put message options

MQGMO gmo = {MQGMO_DEFAULT}; // get message options

memcpy(md.Format,MQFMT_STRING,

(size_t)MQ_FORMAT_LENGTH);

strncpy(od.ObjectName, "QRECV_CL.TELECOM", (size_t)MQ_Q_NAME_LENGTH); O_options = MQOO_INPUT_AS_Q_DEF /* open queue for receive */

+ MQOO_BROWSE

+ MQOO_FAIL_IF_QUIESCING; /* but not if MQM stopping */

MQOPEN(hConn, &od, O_options, &hObj, &CompCode, &Reason);

if ( CompCode==MQCC_FAILED ) {

sprintf(sErrMsg, "打开队列: %s 失败, MQ_ERR_CODE: %d", sRecvQueue, Reason);

return -1;

}

//发送消息

md.Expiry = 60*10;

strncpy( od.ObjectName, "QSEND_SR.ICBC", sizeof(od.ObjectName) );

//sMsgBuf 消息内容 piMsgLen 消息长度

MQPUT1(hConn, &od, &md, &pmo, *piMsgLen, sMsgBuf, &CompCode, &Reason); if(CompCode == MQCC_FAILED) {

sprintf(sErrMsg, "发送消息失败, MQ_ERR_CODE: %d", Reason);

if(hObj != MQHO_UNUSABLE_HOBJ)

MQCLOSE(hConn, &hObj, MQCO_NONE, &CompCode, &Reason);

return -2;

}

dwStartTime = GetTickCount();

Sleep(1000);

bGetFistMsg = TRUE;

memcpy(md.MsgId, MQMI_NONE, sizeof(md.MsgId));

memcpy(md.CorrelId, MQCI_NONE, sizeof(md.CorrelId));

md.Version = MQMD_VERSION_2 ;

gmo.Version = MQGMO_VERSION_2;

// gmo.Options = MQGMO_BROWSE_NEXT;

//取回应消息

while(1)

{

if(GetTickCount() - dwStartTime > (unsigned)iGetResExpiry*1000) break;

if(bGetFistMsg == TRUE)

{

gmo.Options = MQGMO_BROWSE_FIRST;

}

else

{

gmo.Options = MQGMO_BROWSE_NEXT;

}

md.Encoding = MQENC_NATIVE;

md.CodedCharSetId = MQCCSI_Q_MGR;

memcpy(md.MsgId, MQMI_NONE, sizeof(md.MsgId));

memcpy(md.CorrelId, MQCI_NONE, sizeof(md.CorrelId));

MQGET(hConn, hObj, &md, &gmo, MAX_THEEAD_BUF, sMsgBuf, (long *)piMsgLen, &CompCode, &Reason);

if(CompCode==MQCC_FAILED) {

if(Reason==MQRC_NO_MSG_AVAILABLE) {

Sleep(1000);

bGetFistMsg = TRUE;

// DisplayMsg("无消息可取",TRUST_MSG);

continue;

}

else {

sprintf(sErrMsg, "取消息错误, MQ_ERR_CODE: %d", Reason);

if(hObj != MQHO_UNUSABLE_HOBJ)

MQCLOSE(hConn, &hObj, MQCO_NONE, &CompCode, &Reason);

return -3;

}

}

//分析消息内容,如果是需要的回应,则取出

gmo.Options = MQGMO_MSG_UNDER_CURSOR;

MQGET(hConn, hObj, &md, &gmo, MAX_THEEAD_BUF, sMsgBuf, (long

*)piMsgLen, &CompCode, &Reason);

if(CompCode==MQCC_FAILED) {

sprintf(sErrMsg, "取回应消息错误, MQ_ERR_CODE: %d", Reason); if(hObj != MQHO_UNUSABLE_HOBJ)

MQCLOSE(hConn, &hObj, MQCO_NONE, &CompCode, &Reason);

return -4;

}

bGetFistMsg = FALSE;

Sleep(10);

}

if(hObj != MQHO_UNUSABLE_HOBJ)

MQCLOSE(hConn, &hObj, MQCO_NONE, &CompCode, &Reason);

if(bGetResMsgSuc)

return 0;

else {

sprintf(sErrMsg, "取回应消息超时");

return -5;

}

/////////////

索引消息格式vc例子:

/////////////

head:

#define NULL_POINTER (void*)0L

#define MAX_FILENAME_LENGTH 256

#define MAX_MQRMH_LENGTH 1000

typedef struct tagMQRMHX{

MQRMH ref;

MQCHAR SrcName[MAX_FILENAME_LENGTH];

MQCHAR DestName[MAX_FILENAME_LENGTH];

} MQRMHX;

int prmGetQMgrCCSID (MQCHAR48 QMgrName

,MQHCONN HConn

,PMQLONG pQMgrCCSID

);

////////////

main:

MQOD od = {MQOD_DEFAULT}; /* Object

Descriptor */

MQMD md = {MQMD_DEFAULT}; /* Message

Descriptor */

MQPMO pmo = {MQPMO_DEFAULT}; /* put message

options */

MQGMO gmo = {MQGMO_DEFAULT}; /* get message

options */

MQRMHX refx = {{MQRMH_DEFAULT}}; /* reference

message */

/** note, sample uses defaults where it can **/

MQHCONN Hcon; /* connection

handle */

MQHOBJ Hobj = MQHO_UNUSABLE_HOBJ;

/* object

handle */

MQLONG CompCode ; /* completion code */ //MQLONG OpenCompCode; /* MQOPEN completion code */

MQLONG ConnCode ; /* MQCONN completion code */

//int rc = 0; /* Return

code */

MQLONG Reason; /* reason

code */

MQLONG CReason; /* reason code for MQCONN */

//MQLONG oo; /* MQOPEN

options */

MQLONG co = MQCO_NONE; /* MQCLOSE

options */

MQLONG DataLength; /* Length of report message */

MQLONG WaitInterval = 15 ;

/* Wait

interval */

MQLONG QMgrCCSID; /* QMgr

CodedCharSetId */

PMQRMH pMQRMH; /* -> MQRMH structure */

PMQXQH pMQXQH; /* -> MQXQH

structure */

char QMName[MQ_Q_MGR_NAME_LENGTH+1] = "ICBC" ;

/* local queue manager

name */

char DestQName[MQ_Q_NAME_LENGTH+1] = "QSEND_FL.TELECOM" ;

/* destination queue

name */

// char DestQMName[MQ_Q_MGR_NAME_LENGTH+1] = "ZHTELECOM";

/* destination qmgr

name */

char SourceFileName[MAX_FILENAME_LENGTH+1] = "TK02200309.15" ; /* source file

name */

char TargetFileName[MAX_FILENAME_LENGTH+1] = "TK02200309.15" ; /* target file

name */

char ObjectType[sizeof(refx.ref.ObjectType)];

/* Object

type */

char Buffer[sizeof(MQXQH)+MAX_MQRMH_LENGTH];

strcpy(QMName, sMQManager);

strcpy(DestQName, sMQSendQueue);

strcpy(SourceFileName, sFileName);

strcpy(TargetFileName, sFileName);

MQCONN( QMName /* queue manager */ ,&Hcon /* connection

handle */

,&ConnCode /* completion

code */

,&CReason ); /* reason

code */

CompCode = ConnCode;

if (CompCode == MQCC_FAILED)

{

cout << "connect MQManger failed!" << endl;

return -1;

}

rc = prmGetQMgrCCSID(QMName

,Hcon

,&QMgrCCSID

);

if (rc != 0)

{

cout << "Get QMgrCCSID failed!" << endl;

goto EXIT;

}

// strncpy(od.ObjectName

// ,"QUEUE_REPORT"

// ,(size_t)MQ_Q_NAME_LENGTH

// );

// oo = MQOO_FAIL_IF_QUIESCING +

// MQOO_INPUT_AS_Q_DEF;

// MQOPEN(Hcon /* connection

handle */

// ,&od /* object descriptor for queue */

// ,oo /*

options */

// ,&Hobj /* object

handle */

// ,&OpenCompCode /* MQOPEN completion code */

// ,&Reason); /* reason

code */

// if( OpenCompCode == MQCC_FAILED && Reason != MQRC_NONE ) // {

// cout << "open report queue failed!" << endl;

// goto EXIT;

// }

// cout << "open report queue succeed!" << endl;

memset(ObjectType,' ',sizeof(ObjectType));

memcpy(ObjectType, "FLATFILE", sizeof("FLATFILE") - 1 );

refx.ref.StrucLength = sizeof(refx);

refx.ref.Encoding = MQENC_NATIVE;

refx.ref.CodedCharSetId = QMgrCCSID;

memcpy(refx.ref.Format,MQFMT_STRING

,(size_t)MQ_FORMAT_LENGTH);

refx.ref.Flags = MQRMHF_LAST;

memcpy(refx.ref.ObjectType,ObjectType,

sizeof(refx.ref.ObjectType));

memset(refx.SrcName

,' '

,sizeof(refx.SrcName)+sizeof(refx.DestName));

memcpy(refx.SrcName

,SourceFileName

,strlen(SourceFileName)

);

memcpy(refx.DestName

,TargetFileName

,strlen(TargetFileName)

);

refx.ref.SrcNameLength = strlen(SourceFileName);

refx.ref.SrcNameOffset = offsetof(MQRMHX,SrcName);

refx.ref.DestNameLength = strlen(TargetFileName);

refx.ref.DestNameOffset = offsetof(MQRMHX,DestName);

memcpy(md.ReplyToQ

,"QUEUE_REPORT"

, strlen( "QUEUE_REPORT" )

);

strncpy(od.ObjectName

,DestQName

,sizeof(od.ObjectName)

);

/* strncpy(od.ObjectQMgrName

, "ZHTELECOM"

, strlen( "ZHTELECOM" )

);

strncpy(md.ReplyToQMgr

, "TEST"

, strlen( "TEST" )

); */

md.Report = MQRO_COA_WITH_FULL_DATA +

MQRO_EXCEPTION_WITH_FULL_DATA;

pmo.Options = MQPMO_FAIL_IF_QUIESCING;

memcpy(md.Format,MQFMT_REF_MSG_HEADER

,(size_t)MQ_FORMAT_LENGTH);

// md.Report = MQRO_COA + MQRO_EXCEPTION;

MQPUT1(Hcon, /* connection

handle */

&od, /* object descriptor for queue */

&md, /* message

descriptor */

&pmo, /*

options */

sizeof(refx), /* buffer

length */

&refx, /*

buffer */

&CompCode, /* MQPUT1 completion code */

&Reason); /* reason

code */

if (Reason != MQRC_NONE)

{

cout << "MQPUT1 failed! " << endl;

rc = -1;

goto EXIT;

}

else cout << "发送索引消息成功!" << endl;

////////////////

UNIX分段发送例子

char sFilePath[300];

char sErrMsg[1024] = "";

int nRec = 0;

//

//MQMD mqMd;

//MQ初始化

MQHCONN hConn;

MQLONG CompCode, Reason;

MQOD od = {MQOD_DEFAULT}; // Object Descriptor

MQMD md = {MQMD_DEFAULT}; // Message Descriptor

MQPMO pmo = {MQPMO_DEFAULT}; // put message options

memcpy(md.Format,MQFMT_STRING,

(size_t)MQ_FORMAT_LENGTH);

MQAgent agent;

int agentRec;

agentRec = agent.Init(sMQManager, &hConn);

if ( agentRec != 0 )

{

cout<<"连接队列管理器失败"<

goto EXIT1;

}

//

GetPrivateProfileString("FileTransSet", "FileTransPath", "NULL", sFilePath, 100, "BankInterface.ini");

strcat(sFilePath, sFileName);

nRec = agent.PutFile(sMQSendQueue, sFilePath);

if(nRec != 0)

{

sprintf(sErrMsg, "发送文件(%s)失败-->%s",

sFilePath,agent.m_strErrText);

cout<

rc = -1;//return -1;

}else{

sprintf(sErrMsg, "发送文件(%s)成功------", sFilePath);

cout<

}

EXIT1:

if(hConn != MQHC_UNUSABLE_HCONN)

MQDISC(&hConn, &CompCode, &Reason);

////////////////////////////

int prmGetQMgrCCSID (MQCHAR48 QMgrName

,MQHCONN HConn

,PMQLONG pQMgrCCSID

)

{

int rc = 0; /* Function return code */ MQLONG CompCode;

MQLONG Reason;

MQOD ObjDesc = {MQOD_DEFAULT}; /* Object

descriptor */

MQLONG Selectors[1];

MQLONG flags;

MQHOBJ Hobj;

/***************************************************************** ***/

/* Open the queue manager

object */

/***************************************************************** ***/

ObjDesc.ObjectType = MQOT_Q_MGR;

memcpy(ObjDesc.ObjectQMgrName

,QMgrName

,MQ_Q_MGR_NAME_LENGTH

);

flags = MQOO_INQUIRE;

MQOPEN(HConn

,&ObjDesc

,flags

,&Hobj

,&CompCode

,&Reason

);

if (CompCode == MQCC_FAILED)

{

cout << "open MQManger failed !" << endl;

rc = -1;

goto MOD_EXIT;

}

/***************************************************************** ***/

/* Use MQINQ to get the queue manager CCSID */ /***************************************************************** ***/

Selectors[0] = MQIA_CODED_CHAR_SET_ID;

MQINQ(HConn

,Hobj

,1 /* Number of

selectors */

,Selectors

,1 /* Number of integer

selectors */

,pQMgrCCSID

,0 /* length of character

attributes */

,NULL /* character attributes */ ,&CompCode

,&Reason

);

if (CompCode == MQCC_FAILED)

{

cout << "MQINQ failed!" << endl;

rc = -1;

goto MOD_EXIT;

}

MOD_EXIT:

if (Hobj != MQHO_UNUSABLE_HOBJ)

{

MQCLOSE(HConn

,&Hobj

,MQCO_NONE

,&CompCode

,&Reason

);

}

return rc;

}

-----------------------

msgexit.dll 存放路径:$MQ安装路径 \IBM\WebSphere MQ\Exits

系统环境变量 FILE_DIRECTORY_VAR 值:文件存放路径.

MQ基础知识及操作指南

MQ通讯机制 一.MQ基本操作 MQ中有几个很重要的组件:队列管理器(QueueManager)、队列(Queue)和通道(Channel)。其基本的操作方法如下: 创建队列管理器 crtmqm –q QMgrName -q是指创建缺省的队列管理器 删除队列管理器 dltmqm QmgrName 启动队列管理器 strmqm QmgrName 如果是启动默认的队列管理器,可以不带其名字

停止队列管理器 endmqm QmgrName 受控停止 endmqm –i QmgrName 立即停止 endmqm –p QmgrName 强制停止 显示队列管理器 dspmq –m QmgrName 运行MQSeries命令 runmqsc QmgrName 如果是默认队列管理器,可以不带其名字 往队列中放消息 amqsput QName QmgrName 如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字 从队列中取出消息 amqsget QName QmgrName 如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字 启动通道 runmqchl –c ChlName –m QmgrName 启动侦听 runmqlsr –t TYPE –p PORT –m QMgrName 停止侦听 endmqlsr -m QmgrName MQSeries命令 定义死信队列 DEFINE QLOCAL(QNAME) DEFPSIST(YES) REPLACE 设定队列管理器的死信队列 ALTER QMGR DEADQ(QNAME) 定义本地队列 DEFINE QL(QNAME) REPLACE 定义别名队列

MQ通道的维护及常用命令

WebShpere MQ入门教程(20):MQ通道的维护 AIXWebsphereHPLinuxOS 6.3.1通道的状态 下图显示了所有可能的通道状态层次结构,在WebSphere MQ for AIX, iSeries, HP-UX, Linux, Solaris, 和Windows systems, 和 WebSphere MQ V5.1 for OS/2 Warp平台,这些状态对服务器连接通道也适用。 图,通道状态 如果通道的状态分为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命令“DEFINE CHANNEL”来创建通道,在命令中需要指定通道名,通道类型,连接名,通道描述(可选),传输队列名(可选)和传输协议,等还有许多可选的属性可以设置。

WebSphere MQ 命令

附录WebSphere MQ 命令一览表 队列管理器(Queue Manager) crtmqm 创建队列管理器(Create Queue Manager) [-c Text] 描述,最多64 个字符 [-d DefaultTransmissionQueue] 缺省传输队列 [-h MaximumHandleLimit] 一个应用程序可以MQOPEN 的最大句柄数min=1,max=999,999,999,default=256 [-lc | -ll] Log 类型 -lc Circular Logging,环型日志 -ll Linear Logging,线型日志 [-ld LogPath] Log 文件的目录,mqm 用户必须有访问权限,缺省为:Windows X:\Program Files\IBM\WebSphere MQ\log\qmgr UNIX /var/mqm/log [-lf LogFileSize] Log 文件大小,4KB 的倍数. Windows min=32,max=16,384,default=256 (1 MB) UNIX min=64,max=16,384,default=1024 (4 MB) [-lp LogPrimaryFiles] 主Log 文件数量,min=2,max=62,default=3 [-ls LogSecondaryFiles] 备用Log 文件数量,min=1,max=61,default=2 注意:LogPrimaryFiles + LogSecondaryFiles <= 63 [-q] 缺省队列管理器 [-g ApplicationGroup] 应用组。Application Group 中的用户可以运行MQI 应用,更新IPCC 资源,改变Queue Manager 目录中的内容。 仅对WMQ for AIX,Solaris,HPUX,Linux 有效。会反 映到qm.ini 中。mqm 必须是Application Group 中的 用户。缺省-g all [-t IntervalValue] min=0,max=999,999,999,default=999,999,999,单位: 毫秒。触发间隔(Trigger Time Interval) [-u DeadLetterQueue] 死信队列(Dead Letter Queue)) [-x MaximumUncommittedMessages] 最大的未提交的消息数量 min=1,max=999,999,999,default=10,000 在一个交易中的消息最大数量,为MQPUT + MQGET + LUW 中 产生的Trigger Message 数量之和 [-z] 抑止出错信息 QMgrName 队列管理器名 例: crtmqm -t 5000 -u SYSTEM.DEAD.LETTER.QUEUE -ll QM dltmqm 删除队列管理器(Delete Queue Manager) [-z] 抑止出错信息 QMgrName 队列管理器名 例: dltmqm -z QM strmqm 启动队列管理器(Start Queue Manager) [-c] 启动队列管理器,覆盖重建所有的系统对象,再停止该队列管理器

MQ通道的维护及常用命令

M Q通道的维护及常用命 令 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

6.3.1通道的状态 下图显示了所有可能的通道状态层次结构,在 MQ for AIX, iSeries, HP-UX, , Solaris, 和 systems, 和 WebSphere MQ for OS/2 Warp平台,这些状态对连接通道也适用。 ? 图,通道状态 如果通道的状态分为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,因为下一个状态时未知的。 下面将详细地介绍通道有关的维护命令。

创建通道 为创建一个新通道,您需要创建两个通道定义,在通信的双方各定义一个。这两个通道的名字必须时相同的,而且两端的通道类型必须匹配,例如:发送和接收。可以使用MQSC命令“DEFINE CHANNEL”来创建通道,在命令中需要指定通道名,通道类型,连接名,通道描述(可选),传输队列名(可选)和传输协议,等还有许多可选的属性可以设置。 注意: 建议在WebSphere MQ的网络中所有的通道名唯一,并且通道名中最好包含了源队列器名和目标队列管理器名。 创建通道的例子 PE(SDR) + DESCR(’Sender channel to QM2’) + CONNAME(QM2) TRPTYPE(TCP) XMITQ(QM2) CONVERT(YES) I 修改通道 可以使用 MQSC命令“ALTER CHANNEL”来修改现有通道定义,但是通道名和通道类型不能修改。 删除通道 可以使用 MQSC命令“DELETE CHANNEL”来删除现有通道定义。 查看通道定义 可以使用 MQSC命令“DISPLAY CHANNEL”来查看现有通道定义。可以说明通道名,通道类型(可选),和其它属性,或查看所有的属性。

IBM mq 常用命令

IBM MQ常用命令 常用命令 创建队列管理器 crtmqm –q QMgrName -q是指创建缺省的队列管理器 删除队列管理器 dltmqm QmgrName 启动队列管理器 strmqm QmgrName 如果是启动默认的队列管理器,可以不带其名字 停止队列管理器 endmqm QmgrName 受控停止 endmqm –i QmgrName 立即停止 endmqm –p QmgrName 强制停止 显示队列管理器 dspmq –m QmgrName 运行MQSeries命令 runmqsc QmgrName 如果是默认队列管理器,可以不带其名字 往队列中放消息 amqsput QName QmgrName 如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字从队列中取出消息 amqsget QName QmgrName 如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字启动通道 runmqchl –c ChlName –m QmgrName 启动侦听 runmqlsr –t TYPE –p PORT –m QmgrName 停止侦听 endmqlsr -m QmgrName MQSeries命令 定义死信队列 DEFINE QLOCAL(QNAME)DEFPSIST(YES)REPLACE 设定队列管理器的死信队列 ALTER QMGR DEADQ(QNAME) 定义本地队列 DEFINE QL(QNAME)REPLACE 定义别名队列 DEFINE QALIAS(QALIASNAME) TARGQ(QNAME)

远程队列定义 DEFINE QREMOTE(QRNAME)+ RNAME(AAA)RQMNAME(QMGRNAME)+ XMITQ(QTNAME) 定义模型队列 DEFINE QMODEL(QNAME)DEFTYPE(TEMPDYN) 定义本地传输队列 DEFINE QLOCAL(QTNAME) USAGE(XMITQ) DEFPSIST(YES) + INITQ(SYSTEM.CHANNEL.INITQ)+ PROCESS(PROCESSNAME) REPLACE 创建进程定义 DEFINE PROCESS(PRONAME)+ DESCR(‘STRING’)+ APPLTYPE(WINDOWSNT)+ APPLICID(’runmqchl -c SDR_TEST -m QM_ TEST’) 其中APPLTYPE的值可以是:CICS、UNIX、WINDOWS、WINDOWSNT等 创建发送方通道 DEFINE CHANNEL(SDRNAME)CHLTYPE(SDR)+ CONNAME(‘100.100.100.215(1418)’)XMITQ(QTNAME)REPLACE 其中CHLTYPE可以是:SDR、SVR、RCVR、RQSTR、CLNTCONN、SVRCONN、CLUSSDR和CLUSRCVR。 创建接收方通道 DEFINE CHANNEL(SDR_ TEST)CHLTYPE(RCVR)REPLACE 创建服务器连接通道 DEFINE CHANNEL(SVRCONNNAME)CHLTYPE(SVRCONN)REPLACE 显示队列的所有属性 DISPLAY QUEUE(QNAME)[ALL] 显示队列的所选属性 DISPLAY QUEUE(QNAME)DESCR GET PUT DISPLAY QUEUE(QNAME)MAXDEPTH CURDEPTH 显示队列管理器的所有属性 DISPLAY QMGR [ALL] 显示进程定义 DISPLAY PROCESS(PRONAME) 更改属性 ALTER QMGR DESCR(‘NEW DESCRIPTION’)

MQ通道的维护及常用命令精选文档

M Q通道的维护及常用 命令精选文档 TTMS system office room 【TTMS16H-TTMS2A-TTMS8Q8-

6.3.1通道的状态 下图显示了所有可能的通道状态层次结构,在 MQ for AIX, iSeries, HP-UX, , Solaris, 和 systems, 和 WebSphere MQ for OS/2 Warp平台,这些状态对连接通道也适用。 图,通道状态

如果通道的状态分为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,因为下一个状态时未知的。 通道维护命令 下面将详细地介绍通道有关的维护命令。 创建通道 为创建一个新通道,您需要创建两个通道定义,在通信的双方各定义一个。这两个通道的名字必须时相同的,而且两端的通道类型必须匹配,例如:发送和接收。可以使用MQSC命令“DEFINE CHANNEL”来创建通道,在命令中需要指定通道名,通道类型,连接名,通道描述(可选),传输队列名(可选)和传输协议,等还有许多可选的属性可以设置。

MQ常用命令

1.查看所有队列管理器dspmq 查看所有的通道dis chl(name)/dis chl(*)/dis chl(*) all/dis channel(name) 查看通道状态dis chs(name)/dis chs(*)/dis chs(*) all 查看队列display queue(name) 查看队列管理器信息(包括CCSID等信息)dis qmgr 启动队列管理器runmqsc 队列管理器——name 2.重置通道序号reset chl(通道name) seqnum(1) 3.一段时间没有消息,通道会变为不活动状态,有消息时通道会变为running状态 4.查看队列里面是否有消息dis ql('队列名称') curdepth 5.日志目录:MQ安装目录/qmgrs/队列管理器名/errors/AMQERR01.LOG 6.修改ccsid alter qmgr ccsid(“XXX”) 一、MQ的启动与停止 用root用户启/停需要root用户包含在mqm组中。 1、MQ的启动 strmqm QMgrName 如果启动默认队列管理器,strmqm后可以忽略队列管理器名称。 在意外情况停止队列管理器后,启动可能会失败,此时可以检查上次停止后是否有IPC资源未释放,若有请予以删除,删除方法参考下面的“C.清理所有残留在系统内部的信号灯和共享内存”。 2、MQ的关闭 一般情况下,我们使用“endmqm -i QMgrName”来停止mq,如果停止失败,可以使用如下步骤: 步骤1:endmqm -p QMgrName,如果停不掉,继续步骤2; 步骤2:杀死有关进程,清理残留在系统内部的信号灯和共享内存 A.找到队列管理器程序进程 ps -ef|grep QMgrName B.使用kill命令终止1>中找到的程序进程,无法停止的进程可以用kill -9来终止,终止进程的顺序如下(不存在的进程可以忽略): kill amqpcsea 命令服务器 kill amqhasmx 记录器 kill amqharmx 日志格式化器(仅LINEAR日志) kill amqzllp0 检查点处理器 kill amqzlaa0 队列管理器代理 kill amqzxma0 处理控制器 kill amqrrmfa 库进程(用于群集) C.清理所有残留在系统内部的信号灯和共享内存(其属主和组均为mqm) ipcs -s| grep mqm | awk '{print $2}'|xargs -i ipcrm -s {} ipcs -m| grep mqm | awk '{print $2}'|xargs -i ipcrm -m {}

mq操作命令

1. 启动命令行QMEMBFE是QM名字 runmqsc QMEMBFE (进入MQ的命令行) 显示队列DISPLAY QUEUE(*) 显示通道DISPLAY CHANNEL(*) 显示侦听器DISPLAY LISTENER(*) SDR发送方通道,RCVR接收方通道 2. 创建MQM crtmqm -lf 16384 -lp 10 -ls 10 QMEMBFE 3. 启动MQM strmqm QMEMBFE 3.1删除MQM Dltmqm QMEMBFE Start chl(通道名) 启动通道 4. 运行脚本 runmqsc QMEMBFE < mbfemq.sc 5. 确定测试商业银行所对应接入点的通道状态是否为running #runmqsc QMEMBFE dis chs(5012900001.GW2900) dis chs(GW2900.5012900001) dis chstatus(ChannelName) 查看通道状态 dis chs(5012900001.GW2900) 1 : dis chs(5012900001.GW2900) AMQ8420: 通道状态未找到。 dis chs(GW2900.5012900001) 2 : dis chs(GW2900.5012900001) AMQ8417: 显示通道状态细节。 CHANNEL(GW2900.5012900001) CHLTYPE(RCVR) CONNAME(172.26.190.4) CURRENT RQMNAME(QME2900) STATUS(RUNNING) SUBSTATE(RECEIVE) XMITQ( ) 172.26.190.4 1418 1. 创建队列管理器 crtmqm -q QMA (-q表示QMA为默认队列管理器)

ibm mq常用命令

创建队列管理器 crtmqm –q QMgrName -q是指创建缺省的队列管理器 删除队列管理器dltmqm QmgrName 启动队列管理器strmqm QmgrName 如果是启动默认的队列管理器,可以不带其名字 停止队列管理器 endmqm QmgrName 受控停止 endmqm –i QmgrName 立即停止 endmqm –p QmgrName 强制停止 显示队列管理器 dspmq –m QmgrName 运行MQSeries命令 runmqsc QmgrName 如果是默认队列管理器,可以不带其名字 往队列中放消息 amqsput QName QmgrName 如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字从队列中取出消息 amqsget QName QmgrName 如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字启动通道 runmqchl –c ChlName –m QmgrName 启动侦听runmqlsr –t TYPE –p PORT –m QmgrName 停止侦听endmqlsr -m QmgrName MQSeries命令 定义死信队列 DEFINE QLOCAL(QNAME) DEFPSIST(YES) REPLACE 设定队列管理器的死信队列 ALTER QMGR DEADQ(QNAME) 定义本地队列 DEFINE QL(QNAME) REPLACE 定义别名队列 DEFINE QALIAS(QALIASNAME) TARGQ(QNAME) 远程队列定义 DEFINE QREMOTE(QRNAME) + RNAME(AAA) RQMNAME(QMGRNAME) + XMITQ(QTNAME) 定义模型队列 DEFINE QMODEL(QNAME) DEFTYPE(TEMPDYN) 定义本地传输队列 DEFINE QLOCAL(QTNAME) USAGE(XMITQ) DEFPSIST(YES) + INITQ(SYSTEM.CHANNEL.INITQ)+ PROCESS(PROCESSNAME) REPLACE 创建进程定义

MQ常用命令

物理定义 ################################################## --查看MQ版本-- dspmqver --查看队列状态-- dspmq --创建队列管理器-- crtmqm -q ECIS_QM --删除队列管理器-- dltmqm ECIS_QM --启动队列管理器-- strmqm ECIS_QM --关闭队列管理器-- endmqm -i ECIS_QM 立即停止 endmqm -p ECIS_QM 强制停止 --运行队列管理器-- runmqsc ECIS_QM --定义监听器-- DEFINE LISTENER(LSR_4_ECIS_QM) TRPTYPE(TCP) PORT(1616) CONTROL(QMGR) REPLACE START LISTENER(LSR_4_ECIS_QM) --定义通道-- DEFINE CHANNEL(ECIS.SVRCONN) CHLTYPE(SVRCONN) MCAUSER('mqm') REPLACE --启动通道-- runmqchl –c ChlName –m ECIS_QM --启动侦听-- runmqlsr –t TCP –p 1616 –m ECIS_QM endmqlsr -m ECIS_QM --定义队列-- DEFINE QL(Q_SVC2ADP_4_TELNET) REPLACE DEFINE QL(Q_SVC2ADP_4_JDBC) REPLACE DEFINE QL(Q_SVC2ADP_4_HTTP) REPLACE DEFINE QL(Q_SVC2ADP_4_SOCKET) REPLACE --删除队列--

IBM MQ常用命令

1. 队列管理器 1.1. 创建队列管理器 命令:crtmqm 示例: 1.2. 启动队列管理器 命令:strmqm 停止队列管理器 命令:endmqm -c|-w|-i|-p 参数说明: -c 受控关闭(或停顿关闭)。这是缺省值。 队列管理器停止,但仅当所有应用程序已断开连接后才停止。当前正在处理的任何MQI 调用已完成。 立即将控制权返回给您,并且不通知您队列管理器是何时停止的。 对通过服务器连接通道连接的任何客户机应用程序的影响等效于以QUIESCE 方式发出的STOP CHANNEL 命令。 -w 等待关闭。 此类型的关闭等效于受控关闭(除了仅当队列管理器已停止后才将控制权返回给您之外)。当执行关闭时,您将接收到消息:等待队列管理器qmName 结束。 对通过服务器连接通道连接的任何客户机应用程序的影响等效于以QUIESCE 方式发出的STOP CHANNEL 命令。 -i 立即关闭。队列管理器在完成所有当前正在处理的MQI 调用后停止。任何在该命令发出后发出的MQI 请求都将失败。当队列管理器再次启动时,任何未完成的工作单元将回滚。 队列管理器结束后返回控制权。 对通过服务器连接通道连接的任何客户机应用程序的影响等效于以FORCE 方式发出的STOP CHANNEL 命令。 -p 抢先关闭。 仅在意外情况下使用此类型的关闭。例如,当队列管理器在常规 endmqm 命令下未停止。 队列管理器可以停止而不等待应用程序断开连接或MQI 调用完成。这可能会产生WebSphere MQ 应用程序的不可预测的结果。关闭方式设置为立即关闭。如果队列管理器稍后未停止,关闭方式将升级,且终止所有剩余的的队列管理器进程。 对通过服务器连接通道连接的任何客户机应用程序的影响等效于以TERMINATE 方式发出的 STOP CHANNEL 命令。

常用MQ命令

常用的MQ命令 最近在配置MQ,记下了一些常用的MQ命令,如下: 创建队列管理器 crtmqm –q QMgrName -q是指创建缺省的队列管理器 删除队列管理器 dltmqm QmgrName 启动队列管理器 strmqm QmgrName 如果是启动默认的队列管理器,可以不带其名字 停止队列管理器 endmqm QmgrName 受控停止 endmqm –i QmgrName 立即停止 endmqm –p QmgrName 强制停止 显示队列管理器 dspmq –m QmgrName 运行MQ命令 runmqsc QmgrName 如果是默认队列管理器,可以不带其名字 往队列中放消息 amqsput QName QmgrName 如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字 从队列中取出消息 amqsget QName QmgrName 如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字 启动通道 runmqchl –c ChlName –m QmgrName 启动侦听 runmqlsr –t TYPE –p PORT –m QMgrName 停止侦听

endmqlsr -m QmgrName 下面是在MQ环境中可以执行的MQ命令(即在runmqsc环境下可以敲的命令) 定义持久信队列 DEFINE QLOCAL(QNAME)DEFPSIST(YES)REPLACE 设定队列管理器的持久信队列 ALTER QMGR DEADQ(QNAME) 定义本地队列 DEFINE QL(QNAME)REPLACE 定义别名队列 DEFINE QALIAS(QALIASNAME) TARGQ(QNAME) 远程队列定义 DEFINE QREMOTE(QRNAME)+ RNAME(AAA)RQMNAME(QMGRNAME)+ XMITQ(QTNAME) 定义模型队列 DEFINE QMODEL(QNAME)DEFTYPE(TEMPDYN) 定义本地传输队列 DEFINE QLOCAL(QTNAME) USAGE(XMITQ) DEFPSIST(YES) + INITQ(SYSTEM.CHANNEL.INITQ)+ PROCESS(PROCESSNAME) REPLACE 创建进程定义 DEFINE PROCESS(PRONAME)+ DESCR(‘STRING’)+ APPLTYPE(WINDOWSNT)+ APPLICID(’ runmqchl -c SDR_TEST -m QM_ TEST’) 其中APPLTYPE的值可以是:CICS、UNIX、WINDOWS、WINDOWSNT等 创建发送方通道 DEFINE CHANNEL(SDRNAME)CHLTYPE(SDR)+ CONNAME(‘100.100.100.215(1418)’)XMITQ(QTNAME)REPLACE 其中CHLTYPE可以是:SDR、SVR、RCVR、RQSTR、CLNTCONN、SVRCONN、CLUSSDR和CLUSRCVR。 创建接收方通道 DEFINE CHANNEL(SDR_ TEST)CHLTYPE(RCVR)REPLACE

MQ命令

MQ命令.txt两个男人追一个女人用情浅的会先放弃。两个女人追一个男人用情深的会先放弃。╰︶ ̄—你的话,我连标点符号都不信男女授受不亲,中国哪来13亿人口。================================================== ---------队列管理器------------------------------- ================================================== 1、通过输入以下命令来创建名为 QM_APPLE 的缺省队列管理器: crtmqm -q QM_APPLE 此时会显示消息,告诉您已经创建了队列和缺省 WebSphere MQ 对象。 ***启动队列管理器: 通过输入以下命令来启动此队列管理器(因为新创建的队列管理器还没有启动): strmqm 此时会显示一条消息,告诉您何时启动了该队列管理器。 注:如果启动指定的队列管理器则用strmqm QM_APPLE,如果是启动默认的队列管理器,可以不带其名字 -q是指创建缺省的队列管理器 注:删除队列管理器:dltmqm QM_APPLE **停止队列管理器 endmqm QmgrName 受控停止 endmqm –i QmgrName 立即停止 endmqm –p QmgrName 强制停止 **显示队列管理器 dspmq –m QmgrName 运行MQ命令 runmqsc QmgrName 如果是默认队列管理器,可以不带其名字 注:dspmq 则是显示所有的队列管理器 ================================================== ---------MQ命令------------------------------- ================================================== 运行MQ命令 runmqsc QmgrName 如果是默认队列管理器,可以不带其名字 输入end命令来停止 MQSC:

MQ测试常用命令

测试1 本地通道测试 1、使用mqadmin用户登录 2、执行crtmqm -q TEST_QM,建立测试用的消息管理器。 3、执行strmqm TEST_QM,启动测试用的消息管理器。 4、执行runmqsc TEST_QM 5、输入define ql(DATA),回车,建立本地队列DATA 6、输入end回车 至此,本地测试通道搭建完成,下面进行测试。 1、执行amqsput DATA TEST_QM 2、随便输入一些内容,一行为一条消息,可输入多条。 3、输入完毕连续按两次回车退出。 4、执行amqsget DATA TEST_QM,看看能否收到刚才输入的消息,如果能收到,证明MQ 本地通道是正常的。如果收不到,则MQ安装有问题。 测试2 远程通道测试 如果测试1通过,继续进行远程通道测试。 1、执行runmqsc TEST_QM 2、输入define chl(TO.TEST) chltype(RCVR) trptype(tcp),创建接收方通道。 3、输入end并回车。 4、执行crtmqm TEST_RQM,建立模拟的远程通道。 5、执行strmqm TEST_RQM 6、执行runmqsc TEST_RQM 7、输入define ql(TEST) usage(xmitq) 8、输入define qr(REMOTE.DA TA) rname(DATA) rqmname(TEST_QM) xmitq(TEST) 9、输入define chl(TO.TEST) chltype(sdr) conname('127.0.0.1(1111)') xmitq(TEST) trptype(tcp),创建发送方通道。 10、输入end 11、执行runmqlsr -t tcp -m TEST_QM -p 1111,启动接收方的监听。 12、新打开一个telnet会话,用mqadmin登录,执行runmqsc TEST_RQM 13、输入start chl(TO.TEST) 14、输入end 至此,模拟的远程测试通道建立完成,以下进行测试。 1、执行amqsput REMOTE.DATA TEST_RQM 2、随便输入一些内容,一行为一条消息,可输入多条。 3、输入完毕连续按两次回车退出。 4、执行amqsget DATA TEST_QM,看看能否收到刚才输入的消息,如果能收到,证明MQ 本地通道是正常的。如果收不到,则MQ安装有问题。

MQ常用命令与实操练习

一、队列管理器常用操作命令 1、通过输入以下命令来创建名为 QM_APPLE 的缺省队列管理器: crtmqm -q QM_APPLE 此时会显示消息,告诉您已经创建了队列和缺省 WebSphere MQ 对象。 ***启动队列管理器: 通过输入以下命令来启动此队列管理器(因为新创建的队列管理器还没有启动): strmqm QmgrName 此时会显示一条消息,告诉您何时启动了该队列管理器。QmgrName 为需要启动的队列管理器名称。 注:如果启动指定的队列管理器则用strmqm QM_APPLE,如果是启动默认的队列管理器,可以不带其名字 -q是指创建缺省的队列管理器 注:删除队列管理器:dltmqm QM_APPLE **停止队列管理器 endmqm QmgrName 受控停止 endmqm –i QmgrName 立即停止 endmqm –p QmgrName 强制停止 **显示队列管理器 dspmq –m QmgrName 运行MQ命令 runmqsc QmgrName 如果是默认队列管理器,可以不带其名字 注:dspmq 则是显示所有的队列管理器

二、队列管理器对象常用操作命令(MQSC) MQSC命令是用来管理队列管理器对象,包括队列管理器本身、通道、队列和进程定义。可以使用runmqsc QmgrName向队列管理器QmgrName发出 MQSC 命令。命令的输入有两种方式,一种是交互式命令,另一种是从ASCII 文本文件中重定向输入命令。在这两种方式中,命令的格式是相同的。 运行MQSC命令 runmqsc QmgrName 如果是默认队列管理器,可以不带其名字 输入end命令来停止 MQSC: ***队列管理***** 1:创建本地队列: define qlocal (Q1) replace 注:定义持久性队列: DEFINE QLOCAL(QNAME) DEFPSIST (YES) REPLACE 如果已经定义好了队列,但需要修改该队列的属性,可以使用later命令操作。如,现在将已经定义好的队列Q1定义为持久性队列可以做如下操作: ALTER QLOCAL (Q1) DEFPSIST (YES) 可使用alter ?察看可修改对象,再用 alter 对象名?察看可修改对象的参数。 2:往队列中放消息 amqsput QName QmgrName 如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字 比如:amqsput Q1 QM_APPLE 3:从队列中取出消息 amqsget QName QmgrName 如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字 注:在运行该命令时,不要先运行 runmqsc等。。而是在普通的命令窗口,启动MS-DOS窗口,进入到c:\Program Files\IBM\WebSphere MQ\bin目录下,需要根据实际情况填写安装目录。 4:清除队列中的所有消息

MQ日常维护文档

MQ日常维护文档

一. 简介 (3) 1. MQ目录结构 (3) 二. 常用MQ系统命令 (3) 1. 观察MQ队列管理器运行状态 (3) 三. 使用MQSC脚本命令管理 (4) 1. 进入指定队列管理器脚本命令控制台 (4) 2. 常用MQSC脚本命令 (4) 查看所有通道状态 (4) 检查通道具体状态 (4) 检查队列配置和深度 (4) 四. 维护项目 (4) 1. 实时监控以下文件系统使用情况: (4) 2. 定期报告MQ系统错误,备份清理MQ系统错误记录 (5) 3. 监控队列深度 (5) 4. 检查死信队列 (5) 5. 检查日志个数是否增长 (5) 6. 检查MQ队列管理器错误日志 (5) 7. 清理队列管理器IPC资源............................................................. 错误!未定义书签。 8. 检查、处理队列管理器pending事务 (6)

一.简介 1. MQ目录结构 MQ系统错误记录目录: /var/mqm/errors MQ队列管理器目录(缺省情况下) /var/mqm/qmgrs/ 注意:必须保证该目录下的任何文件不被修改,不被删除,否则MQ队列管理器将遭到致命破坏,无法恢复,本地消息全部丢失。 二.常用MQ系统命令 1. 观察MQ队列管理器运行状态 对于MQ 5.1及以下版本,通过ps –ef | grep 看下面进程是否存在:#amqzxma0 -m 对MQ 5.2或以上版本,执行如下命令检查队列管理器运行状态: #dspmq 显示结果中表示MQ队列管理器的名称,STATUS表示当前运行状态。 运行状态有: Starting 正在启动 Running 正在运行 Ending 正在停止 Ended normally 已经正常终止 Ended immediately 已经立即终止 Ended preemtively 已经强制终止 Ended unexpectively 异常终止 注意:停止系统后必须使用dspmq命令进行状态检查 例: $dspmq 显示结果

MQ常用命令

创建队列管理器 crtmqm qmgrname 删除队列管理器 dltmqm [-z] qmgrname 启动队列管理器 strmqm qmgrname 停止队列管理器 endmqm –i QmgrName 立即停止 endmqm –p QmgrName 强制停止 显示队列管理器 dspmq 查看全部队列 dspmq -m qmgrname ----显示具体的队列管理器 启动代理: strmqbrk -m GCP_QM 启动监听器 runmqlsr -m qmgrname -p port -t tcp exp runmqlsr -m GCP_QM -p 1414 -t tcp & 停止监听 endmqlsr -m qmgrname 选择队列管理器 runmqsc Qmgrname 退出队列管理器 end 显示队列属性 DISPLAY QLOCAL (Q)

查看全部队列 dis q(*) AIX查看系统版本: lslpp -ah mqm.server.rte linux查看系统版本: rpm -qa |grep mq endmqm QmgrName 受控停止 endmqm –i QmgrName 立即停止 endmqm –p QmgrName 强制停止 dis qmgr 查看队列管理器属性 dis q(GCP_NOTIFY_Q_RECOL) 显示全部属性 dis qs(GCP_NOTIFY_Q_RECOL) 显示主要属性 修改队列属性 ALTER QMGR CCSID (1381) 定义队列属性 DEFINE CHANNEL (C) CHLTYPE (SDR) CONNAME ('127.0.0.1 (1414)') XMITQ (XQ) exp define channel(CH1) chltype(SVRCONN) trptype(TCP) mcauser('mqm') 创建本地队列 define qlocal(QueueName) 修改队列属性 alter qlocal(Qname) maxdepth(5)

消息中间件MQ常用命令

WebShpere MQ 常用命令 创建队列管理器 crtmqm –q QMgrName -q是指创建缺省的队列管理器 删除队列管理器 dltmqm QmgrName 启动队列管理器 strmqm QmgrName 如果是启动默认的队列管理器,可以不带其名字 停止队列管理器 endmqm QmgrName 受控停止 endmqm –i QmgrName 立即停止 endmqm –p QmgrName 强制停止 显示队列管理器 dspmq –m QmgrName 运行MQ命令 runmqsc QmgrName 如果是默认队列管理器,可以不带其名字 往队列中放消息 amqsput QName QmgrName 如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字 从队列中取出消息 amqsget QName QmgrName 如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字

启动通道 runmqchl –c ChlName –m QmgrName 启动侦听 runmqlsr –t TYPE –p PORT –m QMgrName 停止侦听 endmqlsr -m QmgrName 下面是在MQ环境中可以执行的MQ命令(即在runmqsc环境下可以敲的命令) 定义持久信队列 DEFINE QLOCAL(QNAME)DEFPSIST(YES)REPLACE 设定队列管理器的持久信队列 ALTER QMGR DEADQ(QNAME) 定义本地队列 DEFINE QL(QNAME)REPLACE 定义别名队列 DEFINE QALIAS(QALIASNAME) TARGQ(QNAME) 远程队列定义 DEFINE QREMOTE(QRNAME)+ RNAME(AAA)RQMNAME(QMGRNAME)+ XMITQ(QTNAME) 定义模型队列 DEFINE QMODEL(QNAME)DEFTYPE(TEMPDYN) 定义本地传输队列 DEFINE QLOCAL(QTNAME) USAGE(XMITQ) DEFPSIST(YES) +

MQ常用命令1

MQ常用命令创建队列管理器 crtmqm qmgrname 删除队列管理器 dltmqm [-z] qmgrname 启动队列管理器 strmqm qmgrname 停止队列管理器 endmqm –i QmgrName 立即停止 endmqm –p QmgrName 强制停止 显示队列管理器 dspmq 查看全部队列 dspmq -m qmgrname ----显示具体的队列管理器 启动代理: strmqbrk -m GCP_QM 启动监听器

runmqlsr -m qmgrname -p port -t tcp exp runmqlsr -m GCP_QM -p 1414 -t tcp & 停止监听 endmqlsr -m qmgrname 选择队列管理器 runmqsc Qmgrname 退出队列管理器 end 显示队列属性 DISPLAY QLOCAL (Q) 查看全部队列 dis q(*) AIX查看系统版本: lslpp -ah mqm.server.rte linux查看系统版本:

rpm -qa |grep mq endmqm QmgrName 受控停止 endmqm –i QmgrName 立即停止 endmqm –p QmgrName 强制停止 dis qmgr 查看队列管理器属性 dis q(GCP_NOTIFY_Q_RECOL) 显示全部属性 dis qs(GCP_NOTIFY_Q_RECOL) 显示主要属性 修改队列属性 ALTER QMGR CCSID (1381) 定义队列属性 DEFINE CHANNEL (C) CHLTYPE (SDR) CONNAME ('127.0.0.1 (1414)') XMITQ (XQ) exp define channel(CH1) chltype(SVRCONN) trptype(TCP)

相关主题
相关文档
最新文档