在WebSphere MQ应用程序中使用Python

Python MQ接口

Python MQ接口(PyMQI)是IBM®WebSphere®MQ的开源Python扩展库。 PyMQI通过提供易于使用的Python界面扩展了MQI库。 ,它包括一个用C编写的用于访问MQI C库的低级库,以及一个位于低级库之上的,面向Python程序员的高级面向对象的接口。 PyMQI使开发人员可以在WebSphere MQ工具和解决方案中使用强大的Python语言,从而为所有WebSphere MQ开发人员提供Python的好处。 Python主页上的一句话引述了这一点:

“ Python是一种动态的面向对象的编程语言...带有大量的标准库,并且可以在几天之内学会...程序员报告了可观的生产率提高...该语言鼓励开发更高质量,更易维护的代码”。

编译PyMQI

PyMQI是作为源分发的,因此在将包下载并解压缩到目录后,您需要做的第一件事就是对其进行编译。 通常,Python扩展使用与Python本身相同的编译器进行编译。 Python发行版是使用Microsoft®Visual Studio构建的,如果安装了正确的版本,则可以使用命令python setup.py build server (对于WebSphere MQ Server V5)或python setup.py build client (对于WebSphere MQ Client)来构建PyMQI。 V5)

如果您没有Microsoft Visual Studio并且使用的是WebSphere MQ V6,则在使用PyMQI之前,编译需要其他步骤:

  1. 为Windows®C编译器安装MinGW32(极简GNU)。
  2. 修改WebSphere MQ C头文件。
  3. 编译PyMQI。
  4. 安装PyMQI作为Python扩展。

编译要求在您的计算机中安装Windows,Python V2.5.1和WebSphere MQ V5或V6 Server或Client。 对于本文,环境包括Windows XP 2003,WebSphere MQ V6 Server和Python V2.5.1。

安装MinGW32

下载MinGW-5.1.3.exe并执行以开始安装。 安装程序会从Web下载所需的软件包并进行安装。 完整安装会安装所有编译器,尽管最低安装可能就足够了。 安装MinGW之后,将MinGW \ bin目录添加到PATH环境变量中。

修改WebSphere MQ C头文件

如果使用的是WebSphere MQ V6,则需要对MQ C头文件进行一些小的更改,因为MinGW无法理解几个64位类型定义。

在文本编辑器中打开头文件<MQ_INSTALL_DIR>\Tools\c\include\cmgc.h ,然后找到清单1中的代码:

清单1.要替换的Typedef
typedef _int64 MQINT64;
typedef unsigned _int64 MQUINT64;

删除或注释掉清单1中的typedef。 然后添加清单2中所示的新的typedef,并保存文件。

清单2.要替换的Typedef
typedef long long _int64;
typedef unsigned long long _uint64;
typedef _int64 MQINT64;
typedef _uint64 MQUINT64;

编译PyMQI

在提取PyMQI源文件的目录中打开命令提示符,并使用命令setup.py build -cmingw32 server编译PyMQI。 该命令编译PyMQI扩展,以准备将其安装为Python扩展。

将PyMQI安装为Python扩展

要将PyMQI安装为Python扩展,请使用命令setup.py install --skip-build 。 PyMQI现在已安装并可以使用。

用PyMQI编程

PyMQI具有多个一起使用的模块:

  • CMQC和CMQCFC定义MQI常数。
  • pymqe是用C编写的MQI的低级Python扩展接口。
  • pymqi是使用pymqe的MQ的高级Python接口。

实际上,在开发WebSphere MQ应用程序时使用pymqi。 清单3显示了将消息放入队列的最少代码:

清单3.将消息放入队列
import pymqi 
qmgr = pymqi.QueueManager()
putQ = pymqi.Queue(qmgr, 'QNAME')
putQ.put('Hello world!')

从队列中获取消息也很简单:

清单4.从队列获取消息
import pymqi 
qmgr = pymqi.QueueManager()
getQ = pymqi.Queue(qmgr, 'QNAME')
print 'Message:', getQ.get()

PyMQI支持主要的MQI调用,例如MQCONN/MQCONNX, MQDISC, MQOPEN, MQCLOSE, MQPUT, MQGET,等。 PCF命令以及事务也受支持。

下一部分包括一些用PyMQI编写的有用工具:PyPut,PyGet和PyBrowse。 在执行任何程序之前,将创建一个名为TEST_QM的WebSphere MQ队列管理器和一个名为TESTQ的本地队列。

PyMQI实用程序

本节包含PyMQI的示例,并为WebSphere MQ开发人员和管理员提供有用的工具。 PyPut是一种将一个或多个消息(指定为参数或文件)放入队列的工具。 PyGet从队列中获取消息,并将其打印到系统中,或者一次发送一个消息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值