使用c#操作IBM WebSphere MQ

    IBM WebSphere MQ 5.3升级到CSD05之后,提供了使用.net操作MQ的类库,安装完成之后,会在MQ的安装目录的bin文件夹下面多出一个amqmdnet.dll文件,把这个DLL作为引用添加到你的.net工程中,你的.net程序中就可以操作IBM WebSphere MQ。
    我的MQ是中文版的,操作系统是win2k003 sp1,无论是在队列管理器,还是用代码新建的队列,都与我本机时间相差8小时,不晓得何解,哪位高人可以释疑?

//新建本地队列            
PCFMessageAgent agent = new PCFMessageAgent("QM_janus");
            PCFMessage request 
= new PCFMessage(CMQCFC.MQCMD_CREATE_Q);
            request.AddParameter(MQC.MQCA_Q_NAME, 
"test_queue");
            request.AddParameter(MQC.MQIA_Q_TYPE, MQC.MQQT_LOCAL);
            
//request.AddParameter(MQC.MQIA_USAGE, MQC.MQUS_TRANSMISSION);
            PCFMessage[] response = agent.Send(request);

//删除队列
            PCFMessageAgent agent = new PCFMessageAgent("QM_janus");
            PCFMessage request 
= new PCFMessage(CMQCFC.MQCMD_DELETE_Q);
            request.AddParameter(MQC.MQCA_Q_NAME, 
"test_queue");
            PCFMessage[] response 
= agent.Send(request);

//从队列中读取消息
            MQQueueManager qMgr = new MQQueueManager("QM_janus");
            MQQueue queue 
= qMgr.AccessQueue("postcard", MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_FAIL_IF_QUIESCING);
            MQGetMessageOptions gmo 
= new MQGetMessageOptions();
            gmo.Options 
= MQC.MQGMO_WAIT;
            gmo.WaitInterval 
= 1000;
            gmo.MatchOptions 
= MQC.MQMO_NONE;
            MQMessage message 
= new MQMessage();
            queue.Get(message);
  

 //向队列写消息
            MQQueueManager qMgr = new MQQueueManager("QM_janus");
            MQQueue queue 
= qMgr.AccessQueue("postcard", MQC.MQOO_OUTPUT);
            MQMessage message 
= new MQMessage();
            message.WriteString(
"message body");
            queue.Put(message);

//枚举所有队列
            PCFMessageAgent agent = new PCFMessageAgent("QM_janus");
            PCFMessage request 
= new PCFMessage(CMQCFC.MQCMD_INQUIRE_Q_NAMES);
            request.AddParameter(MQC.MQCA_Q_NAME, 
"*");
            PCFMessage[] response 
= agent.Send(request);
            
string[] names = response[0].GetStringListParameterValue(CMQCFC.MQCACF_Q_NAMES);
 


posted @ 2006-09-11 16:58 天生傻冒 阅读(2244) 评论(11) 编辑 收藏

 回复 引用   
#1楼2006-09-11 22:06 | nk912114[未注册用户]
无论是在队列管理器,还是用代码新建的队列,都与我本机时间相差8小时
------------------------
别忘记了北京的时区是东8区

 回复 引用   
#2楼2006-09-11 22:11 | nk912114[未注册用户]
呵呵,刚不久用C#操作JMS,用的ActiveMQ API,不过C#版本的API代码还是有不少问题,呵呵,改过来了不少,说真的,还是挺好用的.
 回复 引用 查看   
#3楼[楼主]2006-09-12 09:07 | 天生傻冒      
@nk912114
我本机的时区是正确的,在MQ中是不是也有时区的设置?

 回复 引用   
#4楼2007-09-11 11:38 | hercg[未注册用户]
我在一个JAVA的应用中也遇到了类似的问题, 系统是正确的时间(第八时区和正确的时间) 而我的WEB应用显示的时间却慢了8个小时, 不知是什么原因, 如知解决方法, 请发邮件(herocg#163.com)告诉一下, 谢谢!
 回复 引用 查看   
#5楼[楼主]2007-09-11 16:55 | 天生傻冒      
你在命令行或者是程序中,设置user.timezone为东八区应该就可以啦。好像是JVM的时区不对。
 回复 引用   
#6楼2007-09-12 17:24 | 寻找鱼[未注册用户]
天生傻冒
你的联系方式是什么
我有问题请教的哦

 回复 引用   
#7楼2007-09-13 10:15 | 寻找鱼[未注册用户]
用XMPP协议来做通讯工具
请问 登陆界面的代理登陆功能如何实现

 回复 引用 查看   
#8楼[楼主]2007-09-13 10:33 | 天生傻冒      
@寻找鱼
我也好久不做这个啦,现在都忘记得差不多啦。你所说的代理登录,是不是指如msn这样的服务?这类服务你只要在xmpp服务器上注册之后就可以啦,服务器上要配置相应的...,叫什么来着,我不太记得啦。
你可以加peng1@21cn.com联系我,不过公司MSN经常上不去。

 回复 引用   
#9楼2007-09-13 16:56 | 寻找鱼[未注册用户]
天生傻冒
我说的类似 QQ登陆里面的
类似网络设置里面的代理设置

 回复 引用   
#10楼2007-09-27 17:57 | 寻找鱼 [未注册用户]
加你MSN加不了哦
 回复 引用   
#11楼2007-10-15 16:14 | 寻找鱼 [未注册用户]
楼主
你什么时候才出现一下呀
MSN上加了你,但发信息给你 你都没回呀
我QQ:305804380
急需要帮助呀