要检索邮件,请执行以下操作:
%Net.MQRecv
的实例。Connection
对象有一个消息队列,可以从中检索消息。%Get()
-通过引用返回字符串消息作为第一个参数。%GetStream()
-给定初始化的文件字符流,此方法从队列中检索消息,并将其放入与该流关联的文件中。请注意,必须设置流的Filename
属性才能对其进行初始化。不支持二进制流。WebSphere MQ
返回2033
。Connection
对象的%Close()
方法以释放动态链接库的句柄。示例1:ReceiveString()
下面的类方法从mqtest
队列检索消息。
///Method returns string or null or error message
ClassMethod ReceiveString() As %String
{
Set recv=##class(%Net.MQRecv).%New()
Set queue="mqtest"
Set qm="QM_antigua"
Set chan="S_antigua/TCP/antigua(1414)"
Set logfile="c:\mq-recv-log.txt"
Set check=recv.%Init(queue,qm,chan,logfile)
If 'check Quit recv.%GetLastError()
Set check=recv.%Get(.msg)
If 'check {
Set reasoncode=recv.%GetLastError()
If reasoncode=2033 Quit ""
Quit "ERROR: "_reasoncode
}
Quit msg
}
示例2:ReceiveCharacterStream()
以下方法可以检索更长的消息,因为它使用%GetStream()
:
/// Method returns reason code from IBM WebSphere MQ
ClassMethod ReceiveCharacterStream() As %Integer
{
Set recv=##class(%Net.MQRecv).%New()
Set queue="mqtest"
Set qm="QM_antigua"
Set chan="S_antigua/TCP/antigua(1414)"
Set logfile="c:\mq-recv-log.txt"
Set check=recv.%Init(queue,qm,chan,logfile)
If 'check Quit recv.%GetLastError()
//initialize the stream and tell it what file to use
//make sure filename is unique we can tell what we received
Set longmsg=##class(%FileCharacterStream).%New()
Set longmsg.Filename="c:\mq-received"_$h_".txt"
Set check=recv.%GetStream(longmsg)
If 'check Quit recv.%GetLastError()
Quit check
}
%Net.MQSend
和%Net.MQRecv
类还提供以下方法:
(通过引用)更新上次读取的邮件的关联ID。
(通过引用)更新上次读取的消息的回复队列管理器名称。
(通过引用)更新上次读取的消息的回复队列名称。
如果在使用IBM WebSphere MQ
的InterSystems IRIS接口时遇到问题,应该首先确定客户端是否安装正确并且可以与服务器通信。要执行这样的测试,可以使用IBM WebSphere MQ
提供的示例程序。可执行文件位于IBM WebSphere MQ
客户端的bin目录中。
以下步骤介绍如何在Windows
上使用这些示例程序。在其他操作系统上,细节可能会有所不同;请参考IBM文档并检查您的客户端中存在的文件的名称。
MQSERVER
的环境变量。它的值的格式应该是channel_name/Transport/server
,其中channel_name
是要使用的通道的名称,Transport
是指示要使用的传输的字符串,而server
是服务器的名称。例如:S_Antigua/TCP/Antigua
amqsputc queue_name queue_manager_name
其中,QUEUE_NAME
是要使用的队列的名称,QUEUE_MANAGER_NAME
是队列管理器的名称。例如:
amqsputc mqtest QM_antigua
如果amqsputc
命令无法识别,请确保已更新PATH
环境变量以包括IBM WebSphere MQ
客户端的bin目录。
Sample AMQSPUT0 start
target queue is mqtest
sample message 1
sample message 2
Sample AMQSPUT0 end
amqsgetc queue_name queue_manager_name
其中,QUEUE_NAME
是要使用的队列的名称,QUEUE_MANAGER_NAME
是队列管理器的名称。例如:
Sample AMQSGET0 start
message <sample message 1>
message <sample message 2>
no more messages
Sample AMQSGET0 end
如果测试失败,请参考IBM文档。问题的可能原因包括以下几个方面:
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。