Linux 上的 WebSphere MQ 开发快速入门(4)
- UID
- 1066743
|
Linux 上的 WebSphere MQ 开发快速入门(4)
示例用例以下是一些用例,均使用 WMQ1 作为发送方,WMQ2 作为接收方,说明了如何使用 MQSend 和 MQGet 应用程序。
准备工作在使用示例前,您需要进行一些准备工作,如设置属性和编写一些 Helper 脚本等。为 WMQ1 中的 MQSend 应用程序使用以下属性:
1
2
3
| queue.manager=WMQ1QM
queue.manager.host=127.0.0.1
queue.name=WMQ1OutputQ
|
为 WMQ2 中的 MQGet 应用程序使用以下属性:
1
2
3
| queue.manager=WMQ2QM
queue.manager.host=127.0.0.1
queue.name=WMQ2InputQ
|
为了节约键入的时间,以下提供了用于进行发送和接收的两个脚本。
1
| /opt/IBMJava2-142/bin/java -cp .:com.ibm.mq.jar mqconn.MQSend "$@"
|
1
| /opt/IBMJava2-142/bin/java -cp .:com.ibm.mq.jar mqconn.MQGet "$@"
|
使用 chmod 755 mqsend 和 chmod 755 mqget 将这些脚本转换为可执行文件。本文中的所有类和文件都位于 /var/mqm/bin 目录中,其中 /var/mqm 是 mqm 用户的主目录。
命令第一个示例命令将消息发送到上面指定的队列。下面的示例清单给出了实际的命令,另外还给出了命令的输出。
1
2
3
| mqm@wmq1:~/bin> ./mqsend "This is test message"
MQJE001: Completion Code 2, Reason 2045
Message sent.
|
MQJE001 是预期出现的内容。Reason 2045 表示在本例中无法将要打开的队列作为输入队列打开,因为此队列是远程队列。MQJE001 由 WebSphere MQ 类输出到标准错误。如果不希望看到这些错误消息,请将标准错误重新定向到 /dev/null ./mqsend "This is test message" 2> /dev/null。若要了解原因代码的含义,请使用 mqrc 2045。
在 WMQ2 上,使用 mqget 命令接收消息:
1
2
| mqm@wmq2:~/bin> ./mqget
This is test message
|
如果再次执行 mqget,会看到预期的 MQJE001 消息。mqrc 2033 中的 2033 表示“MQRC_NO_MSG_AVAILABLE”。检索消息并将其从队列删除。以下代码说明了如何发送多个消息:
1
2
3
4
5
6
7
| mqm@wmq1:~/bin> ./mqsend "This is test message" This is another message
MQJE001: Completion Code 2, Reason 2045
Message sent.
Message sent.
Message sent.
Message sent.
Message sent.
|
接收消息与上面所示的 mqget 命令相同。以下代码说明了如何接收多个消息:
1
2
3
4
5
6
7
8
9
10
11
12
| mqm@wmq2:~/bin> ./mqget
This is test message
mqm@wmq2:~/bin> ./mqget
This
mqm@wmq2:~/bin> ./mqget
is
mqm@wmq2:~/bin> ./mqget
another
mqm@wmq2:~/bin> ./mqget
message
mqm@wmq2:~/bin> ./mqget
MQJE001: Completion Code 2, Reason 2033
|
下一个示例将发送所有 Java 文件的内容:
1
2
3
4
| mqm@wmq1:~/bin> ls -1 mqconn/*.java | awk '{print "mqsend -f "$1""}' | sh 2> /dev/null
Message sent.
Message sent.
Message sent.
|
下一个示例读取消息并将其保存到文件中:
1
| mqm@wmq2:~/bin> ./mqget > msg1.txt
|
mqget 命令的输出被定向到 msg1.txt。 |
|
|
|
|
|