文章目录

  • 第十二章 IBM WebSphere MQ检索邮件
  • 检索邮件
  • 更新消息信息
    • %CorId()
    • %ReplyQMgrName()
    • %ReplyQName()
  • Troubleshooting

第十二章 IBM WebSphere MQ检索邮件

检索邮件

要检索邮件,请执行以下操作:

  1. 按照“创建连接对象”中的说明创建连接对象。在这种情况下,请创建%Net.MQRecv的实例。Connection对象有一个消息队列,可以从中检索消息。
  2. 根据需要调用以下方法:
  • %Get()-通过引用返回字符串消息作为第一个参数。
  • %GetStream()-给定初始化的文件字符流,此方法从队列中检索消息,并将其放入与该流关联的文件中。请注意,必须设置流的Filename属性才能对其进行初始化。不支持二进制流。
  1. 检查调用的方法返回的值。请参阅“获取错误代码”。请记住,当队列为空时,IBM WebSphere MQ返回2033
  2. 检索完消息后,调用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 receivedSet 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类还提供以下方法:

%CorId()

(通过引用)更新上次读取的邮件的关联ID。

%ReplyQMgrName()

(通过引用)更新上次读取的消息的回复队列管理器名称。

%ReplyQName()

(通过引用)更新上次读取的消息的回复队列名称。

Troubleshooting

如果在使用IBM WebSphere MQ的InterSystems IRIS接口时遇到问题,应该首先确定客户端是否安装正确并且可以与服务器通信。要执行这样的测试,可以使用IBM WebSphere MQ提供的示例程序。可执行文件位于IBM WebSphere MQ客户端的bin目录中。

以下步骤介绍如何在Windows上使用这些示例程序。在其他操作系统上,细节可能会有所不同;请参考IBM文档并检查您的客户端中存在的文件的名称。

  1. 创建一个名为MQSERVER的环境变量。它的值的格式应该是channel_name/Transport/server,其中channel_name是要使用的通道的名称,Transport是指示要使用的传输的字符串,而server是服务器的名称。例如:S_Antigua/TCP/Antigua
  2. 在命令行中,输入以下命令:
amqsputc queue_name queue_manager_name

其中,QUEUE_NAME是要使用的队列的名称,QUEUE_MANAGER_NAME是队列管理器的名称。例如:

amqsputc mqtest QM_antigua

如果amqsputc命令无法识别,请确保已更新PATH环境变量以包括IBM WebSphere MQ客户端的bin目录。

  1. 应该会看到几行代码,如下所示:
Sample AMQSPUT0 start
target queue is mqtest
  1. 现在可以发送消息了。只需键入每条消息,然后在每条消息后按Enter键即可。例如:
sample message 1
sample message 2
  1. 发送完邮件后,按两次Enter键。然后,将看到如下所示的行:
Sample AMQSPUT0 end
  1. 要完成此测试,我们将检索发送到队列的消息。在命令行中键入以下命令:
amqsgetc queue_name queue_manager_name

其中,QUEUE_NAME是要使用的队列的名称,QUEUE_MANAGER_NAME是队列管理器的名称。例如:

  1. 然后,应该看到一个起始行,后跟之前发送的消息,如下所示:
Sample AMQSGET0 start
message <sample message 1>
message <sample message 2>
  1. 此示例程序短暂等待接收任何其他消息,然后显示以下内容:
no more messages
Sample AMQSGET0 end

如果测试失败,请参考IBM文档。问题的可能原因包括以下几个方面:

  • 安全问题
  • 队列定义不正确
  • 队列管理器未启动

第十二章 IBM WebSphere MQ检索邮件相关推荐

  1. IBM WebSphere MQ 系列(二)安装MQ

    2019独角兽企业重金招聘Python工程师标准>>> 一.安装WebSphere MQ之前Linux系统的配置 1.创建MQ安装目录 shell命令: mkdir /opt/mqm ...

  2. IBM WebSphere MQ 7.5基本用法

    一.下载7.5 Trial版本 http://www.ibm.com/developerworks/downloads/ws/wmq/ 这是下载网址,下载前先必须注册IBM ID,下载完成后一路Nex ...

  3. MQ原理、使用场景、IBM WebSphere MQ介绍及spring集成配置

    一.MQ简介及特点 MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需专用连接来链接它们 ...

  4. 常用MQ原理、使用场景和IBM WebSphere MQ介绍

    一.MQ简介及特点 MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需专用连接来链接它们 ...

  5. 数字图像处理:第二十二章 基于模型的编码

    第二十二章基于模型的编码 目录 引言 基于对象的编码 基于模型的编码 作业 1. 引言 为了获得更高的压缩效率并保持一定的视频质量以支持超低码率(大约10kbps)双向视频应用,不考虑内容特点的仅仅针 ...

  6. 高级shell编程笔记(第十二章 外部过滤器,程序和命令)

    第十二章 外部过滤器,程序和命令 标准的UNIX命令使得脚本更加灵活.通过简单的编程结构把shell指令和系统命令结合起来,这才是脚本能力的所在. 12.1 基本命令 新手必须掌握的初级命令 ls 基 ...

  7. python 宝典 笔记 第十二章 存储数据和对象 (各种对象转换成字符串)

    第十二章 存储数据和对象 12.1数据存储概述 12.1.1文本与二进制对比 文本格式易于阅读和调试,跨平台性能好.二进制格式占用空间小,适于按记录存取. 12.1.2压缩 假如对象的大小开始成为问题 ...

  8. IBM Websphere MQ 基础0:Linux下安装IBM MQ 7.5

    背景 无.公司就是用的IBM WebSphere MQ作为消息中间件,本文记载how install it. 一. 安装包检查与准备 1. 检查 通过rpm –qa检查是否已经安装 IBM MQ,若已 ...

  9. Android群英传笔记——第十二章:Android5.X 新特性详解,Material Design UI的新体验

    Android群英传笔记--第十二章:Android5.X 新特性详解,Material Design UI的新体验 第十一章为什么不写,因为我很早之前就已经写过了,有需要的可以去看 Android高 ...

最新文章

  1. 《Redis官方文档》事件库
  2. C语言用字符串sex储存,2005年计算机等级考试二级C语言全真标准预测试卷(2)
  3. 干货!操作系统基础知识汇总!转给要面试的同学吧
  4. Redis中的批量删除数据库中的Key
  5. 网易严选搜索推荐实践之:“全能选手”召回表征算法实践
  6. Docker web管理界面——Shipyard
  7. 自适应自旋锁--吞吐量和延迟以及管理开销的折中
  8. Java 并发 —— Thread、Executor、线程池
  9. gdb php-fpm,用gdb分析段错误(Segmentation fault)
  10. 手机腾讯网mt2.0增量更新算法优化小记
  11. Typora实现标题居中,且放大
  12. 如何删除微软拼音输入法2003(转)
  13. Ubuntu护眼软件F.lux
  14. 页面静态化的优点及缺点
  15. Android 使用Loader轻松实现仿微信图片加载
  16. 无人值守安装linux操作系统
  17. 性能测试---如何确定最大并发用户数
  18. pytorch官方文档(中文版)
  19. flowable相关的一些名词说明
  20. HTML小白起步(一、闲聊篇)

热门文章

  1. 关于取出关键词并且计算出相关长度
  2. C/C++记录程序运行时间
  3. 快递查询Api接口(快递鸟)
  4. 极空间Docker安装Centos 开启SSH
  5. 程序算法艺术与实践:基础知识之函数的渐近的界
  6. 没有基础的人学java开发难吗_零基础的人怎么学习Java
  7. 新一代iPad当做WiFi热点 可续航24个小时
  8. 根据关键词抓取淘宝信息
  9. 巴比特 | 元宇宙每日必读:从“派对岛”到“抖音仔仔”,通过虚拟身份切入元宇宙社交赛道,字节这条路是否行得通?...
  10. 概率与统计分析练习题