linux停amq命令的简单介绍-成都快上网建站

linux停amq命令的简单介绍

《Linux下部分常用指令笔记》

一、创建linux维护用户

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册、网页空间、营销软件、网站建设、上栗网站维护、网站推广。

登录root用户

创建新用户

useradd 新用户名

设置用户密码

passwd 新用户密码

二、安装jdk和配置环境变量

建议在root用户下直接安装jdk,并直接配置环境变量,同时给非root用户设置读和执行权限

解压包

tar xvf jdk包名.tar

配置全局变量

编辑/etc/profile文件

vi /etc/profile

按I键,切换成编辑模式。

在文件未加入一下配置

export JAVA_HOME=jdk的解压文件目录

export JRE_HOME=jdk的解压文件目录/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${ JRE_HOME}/lib:$CLASSPATH

export JAVA_PATH=${JAVA_HOME}/bin:${ JRE_HOME}/bin

export PATH=$PATH:${JAVA_PATH}

保存并退出

Esc   

:wq

重载配置文件使其生效

source /etc/profile

检查是否安装成功

Javac

Java version

权限修改

读4写2执行1,顺序所有者、组成员、其他用户

Chomd  755  jdk的解压文件目录

三、安装tomcat

安装tomcat和放入war包使用非root的维护用户

如果使用root安装的话记得设置权限。( chomd -r 外层文件目录 )

su - 用户名

1、解压包

tar  xvf  tomcat包名.tar

2、将war包放入tomcat/webapps目录下

3、Tomcat启动服务和停止服务

查看进程

ps -ef | grep java

启动应用

Tomcat bin目录下.startup.sh

停止应用

建议使用

Kill -9 进程号

注:解压出应用文件后,注意配置信息的修改

四、IBM MQ部署 (7.5之后的版本)

(以下是使用9.0版本的正确部署命令)

一、 卸载旧版本IBM MQ (可选)

因为部署环境没有安装过mq,卸载这部分命令我没有亲自测试过

设置环境

以用户身份登录到组mqm,找到mq的安装位置 /opt/mqm

source ./setmqenv -s

查看队列管理器的状态

dspmq -o installation

停止与要卸载的安装关联的所有正在运行的队列管理器

endmqm SXRECV

停止与队列管理器关联的所有侦听器。

endmqlsr -m SXRECV

查看系统上当前安装的软件包(组件)

sudo rpm -qa | grep MQSeries

列出软件包并一次性卸载

sudo rpm -qa | grep MQSeries | xargs rpm -ev

再将对应的用户及安装目录给删除

rm -rf /opt/mqm

userdel -r mqm

检查MQ license

license文件在安装目录中 /opt/mqm/lib 可以找到

amqtcert.lic - is a trial license

amqbcert.lic - is a beta license

amqpcert.lic - is the production license

——————————————————————————————————————

二、安装新版本ibm mq

解压,解压文件都在MQServer中

tar –xzvf IBM_MQ_9.1.5_LINUX_X86-64.tar.gz

进入MQServer文件夹中:

cd MQServer/

运行MQ许可证程序

./mqlicense.sh

安装WebSphere MQ for Linux服务器(Runtime、SDK 和 Server 软件包):

rpm -U MQSeriesRuntime-9.1.5-0.x86_64.rpm

rpm -U MQSeriesSDK-9.1.5-0.x86_64.rpm

rpm -U MQSeriesServer-9.1.5-0.x86_64.rpm

安装WebSphere MQ for Linux客户机:

rpm -U MQSeriesClient-9.0.0-0.x86_64.rpm

安装WebSphere MQ样本程序:

rpm -U MQSeriesSamples-9.0.0-0.x86_64.rpm

创建组和用户

安装过程创建了一个名为mqm的用户和一个同样名为 mqm 的组。设置一个密码来解锁。

passwd mqm

——————————————————————————————————————

三、 配置

(这部分队列管理器、通道、队列等根据实际情况自行配置)

切换用户:

su mqm

创建队列管理器

使用crtmqm命令来创建一个名为 SXRECV

的队列管理器。我们把它作为缺省队列,并且将不在创建时指定死信队列。然后使用strmqm命令启动队列管理器。

crtmqm -q  SXRECV

strmqm  SXRECV

——————

如果执行crtmqm命令时提示

-bash-3.2$ crtmqm

-bash: crtmqm: command not found

find / -name crtmqm

则需要配置mqm用户的环境变量,编辑如下文件,并添加下面的内容,如下:

第一种方法:相对第二种较安全仅对mqm用户有效

方法一:

(1) -bash-3.2$ vi /var/mqm/.bash_profile --有可能会在文件夹下看不到这个文件,通过编辑即可看到

PATH=$PATH:/opt/mqm/samp/bin:/opt/mqm/bin:bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin

(2)执行“.”命令,使这个文件生效

-bash-3.2$ source  .bash_profile

(3)再次尝试实行crtmqm或是dspmqm命令,即可发现已经生效。

方法二:

( 1)

su  root

[if !supportLists](2)[endif]

vim /etc/profile

[if !supportLists](3)[endif] 在最后面加上:

PATH=$PATH:/opt/mqm/samp/bin:/opt/mqm/bin:bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/bin

( 4)关闭远程终端重新打开,无需重启服务器

——————

运行队列管理器

runmqsc SXRECV

创建通道和队列

DEFINE QLOCAL (XYDATA) REPLACE USAGE (NORMAL) DEFPSIST (YES) MAXDEPTH (300000) DESCR('兴业银行')

DEFINE QLOCAL (XYTRANS) REPLACE USAGE (XMITQ) DEFPSIST (YES) MAXDEPTH (300000) DESCR('兴业银行')

DEFINE QREMOTE (XYACK) REPLACE DEFPSIST (YES) RQMNAME (SXSEND)  RNAME (XYACK) XMITQ (XYTRANS) DESCR('XXXX')

DEFINE CHANNEL (XYDATA) CHLTYPE (RCVR) TRPTYPE (TCP) REPLACE DESCR('XXXX')

DEFINE CHANNEL (XYACK) CHLTYPE (SDR) CONNAME ('166.1.1.8(2214)') XMITQ (XYTRANS) TRPTYPE (TCP) DISCINT (0) CONVERT (NO) SHORTRTY (30) SHORTTMR (10) LONGRTY (999999999) LONGTMR (20) REPLACE DESCR('XXXX')

DEFINE CHANNEL (SVRCONN) CHLTYPE (SVRCONN) MCAUSER('mqm')

创建监听

DEFINE LISTENER (RECLISTENER) TRPTYPE (TCP) CONTROL(QMGR) PORT (2214)

启动监听

start LISTENER(RECLISTENER)

启动通道

start channel(SVRCONN)

start channel(XYDATA)

start channel(XYACK)

———————————————————————————————————————————————————

四、2035错误码 说明

如果程序连接mq报错2035,则需要对权限认证做设置,则进行以此操作

1、

ALTER QMGR CHLAUTH(DISABLED)

2、

ALTER CHL(通道名) CHLTYPE(SVRCONN) MCAUSER('mqm')

3、

ALTER AUTHINFO(SYSTEM.DEFAULT.AUTHINFO.IDPWOS) AUTHTYPE(IDPWOS) CHCKCLNT(OPTIONAL)

或者直接将连接认证选项置为空,将其完全关闭,指令如下:

ALTER QMGR CONNAUTH('')

在执行完上述两条命令中的任一条后,都需要刷新连接认证的缓存,指令如下:

REFRESH SECURITY TYPE(CONNAUTH)

五、mq操作命令

一、MQ的启动与停止

1、MQ的启动

strmqm QMgrName

如果启动默认队列管理器,strmqm后可以忽略队列管理器名称。

2、MQ的关闭

endmqm -i QMgrName

停止mq

二、MQ运行状态查看与常用操作

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

su mqm

执行如下命令检查队列管理器运行状态:dspmq显示结果中QMNAME表示MQ队列管理器的名称,STATUS表示当前运行状态。运行状态有如下几种:Starting正在启动Running正在运行Ending正在停止Ended normally已经正常终止Ended immediately已经立即终止Ended preemtively已经强制终止Ended unexpectively异常终止

注意:停止MQ后必须使用dspmq命令进行状态检查

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

runmqsc

dis chl(*);查看所有通道定义

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

dis chs(ChannelName); 查看通道ChannelName的状态

通道状态有如下几种:

STARTING正在启动BINDING正在绑定INITIALIZING正在初始化RUNNING正常STOPPING 正在停止RETRYING重试PAUSED等待STOPPED已停止REQUESTING请求

start chl(ChannelName);启动通道

stop chl(ChannelName);停止通道

* 重置通道

reset channel(ChannelName); 重置通道序号。当本地与其他MQ队列管理器的通道无法正常启动的情况,检查日志发现是通道序号不一致,此时就需要先停止发送方通道,清空队列深度并在发送方和接收方进行通道计数的重置,重置后启动通道即可恢复通讯。

注意:重置成功mq序列号一般相同或相差1

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

runmqsc

dis listner(*);查看通道监听定义

dis lsstatu(listnerName);查看监听状态

start lstr(listnerName); 启动监听

stop lstr(listnerName); 停止监听 

4、查看队列深度

runmqsc

dis q(*);查看所有各类队列的属性

dis qlocal(QName);查看所有本地队列的属性

队列深度属性为:CURDEPTH

查看队列深度display ql('队列名')  curdepth

*清空队列深度

清空队列深度

clear ql(‘队列名’)

三、MQ发送和接收消息

su mqm

发送消息

amqsput  队列名  队列管理器

获取消息

amqsget  队列名  队列管理器

可通过配合查看队列深度命令,完成mq的联调

六、其他维护中常用linux命令

1、测试端口连接

telnet ip port

2、查看已启动的端口

netstat -an | grep 端口号

3、查看应用进程

ps -ef |grep java

4、修改权限

chomd  XXX(对应的权限)  文件目录

5、修改文件或目录下所有文件所有者和组

Chomd -R 用户名:组名  文件目录

6、查看目录内容

ls 或者ls -l (简写ll)

7、查看文件输出

cat 目录/文件名

或者

Vi 目录/文件名 按i可进入编辑

按 G 到文档末尾

按 gg 到文件首行

不保存退出

Esc   :q!

保存退出

Esc   :wq

vi 进入文档文档后查找关键字

Esc 进入命令行

/关键字

按n向下继续查找

按N向上继续查找

8、杀进程

Kill -9 进程号

9、复制

cp -r 源目录  目标目录

10、移动

mv  -i 源文件或目录 目标文件或目录

11、删除

rm -R 文件目录

12、 切换工作目录

cd  相对路径或绝对路径

~也表示为 home 目录 的意思, . 则是表示目前所在的目录, .. 则表示目前目录位置的上一层目录。

linux下安装MQ mqlisence.sh-accept这个命令执行不了怎么办?

如果MQ的安装包是ISO,所以需要将ISO文件mount到Linux的一个目录下面,具体操作如下:

假如选定的mount目录为根目录下mnt/下面,或者下面新建一个目录可以mkdir一个目录。在此是直接放在mnt目录下面的:

ISO文件放在/home/afe/MQinstall/下面,名字为MQ_6.0_Linux_x86-64.iso 那么可以用命令:

mount -o loop /home/afe/MQinstall/MQ_6.0_Linux_x86-64.iso /mnt/cd1

这个时候,ISO文件中的rpm文件都出现在了/mnt下面。

备注:使用mount需要root权限。

如果你的安装包是.tar.gz文件,那就可以省略以上一个步骤:直接解压

tar -zxvf MQ_6.0_Linux_x86-64.tar.gz

接下来步骤如下:

1:创建WebSphere MQ 必需的文件系统,命令如下:

mkdir /opt/mqm # for product code

mkdir /var/mqm # for working data

MQ安装时候默认的目录就是这两个,意思可以没必要建,但是为了保险还是自己手工建立一下。

2:创造MQ用户和用户组,命令如下:

groupadd mqm

useradd -d /var/mqm -g mqm -G mqm mqm

passwd mqm # change password to "password"

只有把mqm密码改了,才能使以上生效。

3:为mqm用户组添加root组

cd /etc

vi group

修改 mqm:!:1007:mqm ? mqm:!:1007:mqm,root

这里的gid要依据各个系统的建立用户设定而为。此处是1007

4:调整系统参数(视需要而定)

修改最大共享内存,命令如下:

cat /proc/sys/kernel/shmmax

echo 268435456 /proc/sys/kernel/shmmax

修改最大文件句柄,命令如下:

cat /proc/sys/fs/file-max

echo 32768 /proc/sys/fs/file-max

如果自己系统比这个大,没必要改。

5:转到WebSphere MQ解压后的目录中,获得WebSphere MQ授权,命令如下:

./mqlicense.sh -text_only

阅读全文后,选择1接受授权。

6:安装WebSphere MQ客户端和服务端,命令如下:

rpm -ivh MQSeriesRuntime-6.0.0-0.i386.rpm

rpm -ivh MQSeriesSDK-6.0.0-0.i386.rpm

rpm -ivh MQSeriesJava-6.0.0-0.i386.rpm

rpm -ivh MQSeriesClient-6.0.0-0.i386.rpm

rpm -ivh MQSeriesSamples-6.0.0-0.i386.rpm

rpm -ivh MQSeriesServer-6.0.0-0.i386.rpm(如果只装客户端,这个没必要安装)

7:安装校验

rpm -qa | grep MQSeries

结果如下则表明MQ 客户端的安装已成功。

MQSeriesRuntime-6.0.0-0

MQSeriesSDK-6.0.0-0

MQSeriesJava-6.0.0-0

MQSeriesClient-6.0.0-0

MQSeriesSamples-6.0.0-0

MQSeriesServer-6.0.0-0(只装客户端,是没有这一项的)

到这里MQ就已经安装完成了。

验证安装

1、mqm用户登录

创建队列venus.queue.manager

crtmqm -q venus.queue.manager

启动队列管理器

strmqm

启用MQSC命令

runmqsc

进入环境后,定义名为ORANGE.QUEUE的本地队列

define qlocal (orange.queue)

end (停止MQSC)

转到/opt/mqm/samp/bin目录下,使用amqsput样本程序来将消息放入队列,以且使用amqsget样本程序来从队列取回消息

dspmq 命令可显示MQM队列状态

./amqsput ORANGE.QUEUE

(注意,队列名称为大写 否则会找不到队列,报错MQOPEN ended with reason code 2085)

输入一行文字,然后以空行结束,退出

./amqsget ORANGE.QUEUE

可显示刚才放入队列的消息,成功提示即证明完成。

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

创建服务器连接通道

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’)

ALTER QLOCAL(QNAME) PUT(DISABLED)

ALTER QALIAS(QNAME) TARGQ(TARGQNAME)

删除队列

DELETE QLOCAL(QNAME)

DELETE QREMOTE(QRNAME)

清除队列中的所有消息

CLEAR QLOCAL(QNAME)

查看CCSID

DISPLAY QMGR CCSID

修改CCSID为1381

ALTER QMGR CCSID(1381)

以下是一些高级配置的命令:

amqmcert 配置SSL证书

amqmdain 配置windows上的MQ服务

crtmqcvx 转换数据

dmpmqaut 转储对象权限管理

dmpmqlog 转储日志管理

dspmq 显示队列管理器

dspmqaut 显示打开对象的权限

dmpmqcap 显示处理程序容量和处理程序数

dspmqcsv 显示命令服务器状态

dspmqfls 显示文件名

dspmqtrc 跟踪MQ输出(HP-UNIX LINUX Solaris)

dspmqrtn 显示事务的详细信息

endmqcsv 停止队列管理器上的命令服务器

strmqcsv 启动队列管理器上的命令服务器

endmqtrc 停止跟踪

rcdmqimg 向日志写对象的映像

rcmqobj 根据日志中的映像重新创建一个对象

rsvmqtrn 提交或逆序恢复事务

MQ监控问题

这根本不是问题,你在网上一搜MQ命令就出来了。

我给你列几个常用的命令吧:

启动队列管理器:strmqm

停止队列管理器

endmqm QmgrName 受控停止

endmqm –i QmgrName 立即停止

endmqm –p QmgrName 强制停止

dspmq查看所有的队列管理器的状态,找异常通常用这个命令。

running表示正常,正在运行。

Ended unexpectedly也是正常状态,表示已停止。具体什么原因导致停止你可以去查

Not available就是不正常了,表示不可用。

通常出现异常会有以 “AMQ+4个数字” 给以提示,你可以根据给的提示去找原因。

命令很多不给你一一列出了,出异常就去网上搜或者查资料,弄的多了,你自然就会了。


分享名称:linux停amq命令的简单介绍
分享地址:http://kswjz.com/article/hpiijg.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流