IBM MQ出口程序在64位windows操作系统上遇到的问题

来源:互联网 发布:腾讯重工,洛克希德淘宝 编辑:程序博客网 时间:2024/05/18 06:56

前一段时间,去客房现场去做MQ的测试!客户的机房环境是windows2008 32位以及64位的OS。出现的问题是我们自已写的基于MQ exit API的程序,调用的是32位的dll,而客户自身使用的是64位应用。

 

由于客户的需要,我们自已写了一个监控MQ的程序,并把队列的一些信息进行记录,入库。IBM MQ for windows只有32位的应用。监控MQ的程序是根据MQ提供的exit API接口实现的,调用的是32位的dll。经过测试后,测试信息能够正确获取到,在64位的机器上也测试成功。但是,到客户现场后,由于客户的报文,需要经过他们自已的一个应用来解析并放到指定的位置。而他们的这个应用是基于.net技术的。当用户自身的这个应用在32位机器中使用Framework 2.0下的installutil 命令把他注册为windows服务时,这个服务本身是32位的,这样调用dll是没有问题的。但是在64位机器上,使用installutil注册后,这个服务就变成了64位的服务。因此,在他运行的时候,会经过MQ 的出口程序,同时会调用它的dll文件。这时,MQ会报错:提示是用户的此服务需要64位的dll。而当我们把dll换成64位的时候,MQ又提示,MQ本身需要的是32位的dll。

 

于是,我们报IBM 800解决,未果。

 

我的疑问是,在64位的OS中,使用installutil如何把一个服务指定注册为32位的,而非64位的呢?这样的话,我们就能满足客户的需求了。也无需对客户的应用,以及MQ做更改了@_@