1. 使用endmqm 命令无法停止MQ队列管理器,怎么办
一、WebSphere MQ命令行命令
1、停止队列管理器
endmqm [-z] [([-c | -w | -i | -p] [-r] [-s]) | -x] QMgrName
endmqm mqm_name 使用默认选项停止队列管理器需要等待当前的应用连接完成并断开。
-i 立即停止队列管理器。
-w 需要等待所有的应用停止以后才会真正关闭队列管理器
-p 使用以上参数都无法正常停止队列管理器的情况下可以使用该参数
2、启动队列管理器
strmqm [-z] [-a | -c | -r | -x] [-d none|minimal|all] [-f] [-ns] QMgrName
队列管理器必须在完全停止时才能被启动。
3、创建队列管理器
crtmqm [-z] [-q] [-c Text] [-d DefXmitQ] [-h MaxHandles]
[-md DataPath] [-g ApplicationGroup]
[-t TrigInt] [-u DeadQ] [-x MaxUMsgs] [-lp LogPri] [-ls LogSec]
[-lc | -ll] [-lf LogFileSize] [-ld LogPath] QMgrName
队列管理器名大小写敏感且不支持空字符串,长度为48字节,同一网络中不能有重名。
创建队列管理器的时侯最好创建死信队列用于存放无法发送的信息,保证通道不会因为无法发送信息而被关闭。
crtmqm -u deadq_name mqm_name
4、删除队列管理器
dltmqm [-z] QMgrName
删除队列管理器会完全删除其所拥有的对象和相关信息,并且是不可恢复的。要删除一个队列管理器首先要保证他是停止的。
二、WebSphere MQ Script. (MQSC) commands
WebSphere MQ Script. (MQSC) commands是常常用来管理队列管理器对象的。这些对象包括队列管理器本身,队列,名称列表,通道,客户端通道,监听,服务等。使用runmqsc 队列管理名来启动,可以运行单个的命令,也可以通过命令集的脚本来运行。
本地队列管理器的作用是接收远程或本地的信息流,并将本地队列中的信息流取出以供应用程序使用。在做这些工作之前需要定义相关的队列管理器,队列和通道等,而这些工作是由WebSphere MQ Script. (MQSC) commands来完整的。在Windows及linux环境下也可以通过WebSphere MQ Explorer来完成。
启动WebSphere MQ Script. (MQSC) :runmqsc [-e] [-v] [-w WaitTime [-x] [-m LocalQMgrName]] [QMgrName]
runmqsc mqm_name。通过命令runmqsc启动队列管理器的命令服务器。WebSphere MQ Explorer也能完成相同的任务。runmqsc的相关命令有三种运行方式,Verify a command without running it,Run a command on a local queue manager,Run a command on a remote queue manager。runmqsc的相关命令在解释的时候都会以大写来解释,比如DEFINE,ALTER,RESET等。但是这些命令并不是大小写敏感的。每行runmqsc命令最长只能到8个字符,可以通过-或者+连接下一行,-是从下一行的第一个字符开始,+是从下一行的第一个非空字符开始。而且所有命令与平台无关。runmqsc的标准输入是键盘,标准输出时屏幕,我们可以通过<,>重定向。例如从脚本输入命令runmqsc </path/filename.in,将结果重定向到文件runmqsc>/path/filename.out。
1、显示队列管理器属性(DISPLAY QMGR):
DISPLAY QMGR显示当前队列管理器的所有属性,也可以使用DISPLAY QMGR 属性名,单独查看当前队列管理器的某个特定属性。
2、 更改队列管理器属性(ALTER QMGR ):
ALTER QMGR 用于更改队列管理器的相关属性,例如 ALTER QMGR MAXHANDS(255),这个命令将默认队列管理器的MAXHANDS由256更改为255。
3、创建本地队列(DEFINE QLOCAL ):
DEFINE QLOCAL Q_LOCAL_NAME,在创建队列的时候可以定义相关属性的值,如果没有定义则使用默认值。也可以全部使用默认值,最后通过ALTER QLOCAL命令来修改相关属性。在同一个队列管理器中不能有同名的队列,可以使用REPLACE关键字重建已有的队列。
4、修改本地队列属性(ALTER QLOCAL):
ALTER QLOCAL Q_LOCAL_NAME NEW_ATTRIBUTE。已经定义了的本地队列可以使用ALTER QLOCAL 命令对其属性进行修改。
5、显示本地队列属性(DISPLAY QLOCAL):
DISPLAY QLOCAL Q_LOCAL_NAME ATTRIBUTE。此命令用于显示本地队列的属性,可以使用默认的显示全部属性,也可以显示指定的属性。
6、复制本地队列(DEFINE QLOCAL NEW LIKE OLD):
DEFINE QLOCAL NEW LIKE OLD。此命令可以创建一个属性与OLD完全一样的本地队列。当然,我们也可以在语句后面指定属性的详细信息,没有指定的则继承OLD的对应属性,指定了的则使用新的属性。
7、清除本地队列中的消息(CLEAR QLOCAL):
CLEAR QLOCAL Q_LOCAL_QUEUE。此命令用于清除本地队列中存储的信息。在清除信息的时候系统不会给出任何提示,而是直接把信息删除。在一下两种情况下不能使用CLEAR QLOCAL,本地队列中存储的有在最近一次队列同步以后未提交的信息,有应用程序打开使用本地此队列。
8、删除本地队列(DELETE QLOCAL):
DELETE QLOCAL Q_LOCAL_QUEUE。此命令用于删除本地队列,当本地队列中存在有没有提交的数据此队列不能删除。如果队列中存在数据,且数据是提交了的,可以使用PURGE关键字删除本地队列。例如DELETE QLOCAL (Q_LOCAL_QUEUE) PURGE,在删除的时候可以指定NOPURGE关键字代替PURGE以保护删除的队列中可能存在的已提交数据。
三、PCF commands
PCF commands允许管理员通过编程的方式将MQ的日常管理任务集成在程序中。包括创建队列,预定义队列,更改队列管理器等, PCF commands与MQSC锁实现的功能是相同。
2. 如何使用 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 <QMNAME>
4、队列管理器需要启动侦听:
DEFINE LISTENER(TCP.LSTENER) TRPTYPE(TCP) PORT(1414)
START LISTENER(TCP.LISTENER)
如果远程队列管理器是在Windows下用图形界面建立的,则1、2、3步都已经默认做好了。只需要做第4步即可
完成以上步骤后,就可以在 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 点击完成即可。
3. websphere自带jdk能使用jps,jstat等命令吗
试试这个方法:
不能,jps和jstat皆为sun jdk的命令,IBM jdk没有这些命令!
4. 如何在linux中安装websphere
按照以下步骤下载和安装示例 SysVInit 脚本:下载示例脚本。
作为根用户(或通过使用 sudo 命令)把此文件保存到系统上的 /etc/init.d 目录中,把它命名为 websphere_sysvinit.sh。
使用文本编辑器编辑它,把 ADMINUSER 和 PASSWORD 改为 在安装过程中定义的管理用户名和密码 并保存这些修改。
作为根用户或使用 sudo 命令,使用以下命令设置文件的可执行权限:
chmod 755 /etc/init.d/websphere_sysvinit.sh
通过使用下面这样的命令,在与系统的默认运行级相关联的目录中创建此文件的符号链接(/etc/rc5.d 目录通常用于图形化系统,/etc/rc3.d 目录用于使用文本控制台的系统):
ln -s /etc/init.d/websphere_sysvinit.sh /etc/rc5.d/S85ibm-was
ln -s /etc/init.d/websphere_sysvinit.sh /etc/rc5.d/K15ibm-was
在下一次关闭系统时,这里创建的 K15ibm-was 符号链接会在关闭过程中自动停止 WebSphere Application Server。在下一次启动系统时,S85ibm-was 符号链接会在启动过程中自动启动 WebSphere Application Server。