楼主: hidden_wing

求救--关于WebSphere MQ异常:MQ 队列管理器立即关闭通道,关闭原因2009

[复制链接]
论坛徽章:
0
11#
 楼主| 发表于 2006-12-29 19:49 | 只看该作者
再次谢谢websphereli 详尽的解答,受益匪浅,看了网上好多关于MQ的帖子,很少有象您回复这么详细的

针对您的回答,我还有几个不明白的
1、既然通道建立连接是在建立到队列管理器的连接时,那么这个通道连接断开是不是也是执行qMgr.disconnect()时断开?

2、您说过通过MQ的自身触发机制的trigger 例子中
定义Q1 trigger 中要用到的 Process
DEFINE PROCESS (P1) +
APPLTYPE (UNIX) +
APPLICID ('/home/mytest/test1')
我通过资料查到APPLTYPE含义是要启动的应用程序的类型,这个应用程序的类型是不是指我的接收程序是在什么操作系统下开发的,如果我是在WINDOWSNT下开发的,那这值是不是应该设置为“WINDOWSNT”?APPLICID 指要启动的应用程序的名称,如果这样的话是不是队列管理器在哪台机器上运行,我的接收程序就得放到哪台的机器上?如果是这样的话,我们的客户端有很多,一个客户端对应一个队列,每个客户端的接收程序可能不同,有的是用java开发的,有的是用c#开发的,是不是每个队列都要建一个进程,而且每个客户端的接收应用程序都要放置到队列管理器所在的服务器上?不知道我这个理解对不?
我看到网上有这么定义进程的DEFINE PROCESS(P_NT)+
APPLTYPE(WINDOWSNT)+
APPLICID('runmqchl -c SDR_NT -m QM_NT')
这里的APPLICID参数是一个运行通道的命令,这是什么作用呢?

3、我似乎已经想到了为什么我的接收程序长时间运行会出现通道关闭的问题了,也许只是其中一个因素,因为我的接收程序中有这么一块代码:
while ((msg = fetchMsg(queue)) != null) {
doc = (Document) msg.readObject();
......
}
在读取完消息对象后我还调用了一些类中的方法,也就是还有其他一些操作,如果这些操作出现异常以后就不会执行关闭队列和队列管理器对象的操作
queue.close();
qMgr.disconnect();
所以我觉得将这两个操作放到finally中,应该会关闭一些已经打开但是没用的连接,不知道我这个分析有道理没?

每天总是这么多问题,让同志们受累了,呵呵~~

使用道具 举报

回复
论坛徽章:
0
12#
发表于 2006-12-29 19:52 | 只看该作者
居然又分了一页,不知道我的问题大家能看到不,555

使用道具 举报

回复
论坛徽章:
16
2011新春纪念徽章
日期:2011-01-25 15:41:01马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:58
13#
发表于 2006-12-31 10:53 | 只看该作者
最初由 hidden_wing 发布
[B]再次谢谢websphereli 详尽的解答,受益匪浅,看了网上好多关于MQ的帖子,很少有象您回复这么详细的

针对您的回答,我还有几个不明白的
1、既然通道建立连接是在建立到队列管理器的连接时,那么这个通道连接断开是不是也是执行qMgr.disconnect()时断开?

2、您说过通过MQ的自身触发机制的trigger 例子中
....

3、我似乎已经想到了为什么我的接收程序长时间运行会出现通道是没用的连接,不知道我这个分析有道理没?

每天总是这么多问题,让同志们受累了,呵呵~~
[/B]



回复:
问题1.  你自己都想到答案了, 看看资料,然后,在程序中打印点自己的 debug 信息,测试一下,答案不就更明确了嘛

问题2.
APPLTYPE 和 APPLICID ,前面我给你的 link 里面有详细的解释,这个最好看资料说明的更清楚;

首先对于客户端的程序,不支持 trigger 的方式; 其次, 从 mq 队列中读取(get ) 消息,一定是需要应用程序自己主动的来读取(即使是 trigger ,也只是trig 启动你的应用程序,然后你的应用程序主动来读取消息),这是面向消息中间件设计的原则;

如果可以不考虑成本,所有的地方用 mq server, 大家都欢喜, 呵呵

问题3.
这种情况是通常我们应用最容易犯的,也容易遗漏的错误,好好检查一下应用的健壮性, 同时, 从产品的角度, 也可以把前面 channel 中的参数项设定上,保证产品管理上的健壮。

坛中朋友们,新年快乐! 2

使用道具 举报

回复
论坛徽章:
0
14#
 楼主| 发表于 2006-12-31 17:18 | 只看该作者
谢谢websphereli长久以来的技术支持,祝你新年快乐!希望来年看到我发的帖子也能一如既往啊!就是因为有了你们这些好心的回帖人让我们使用IBM产品的人从此感觉不在孤单!

使用道具 举报

回复
论坛徽章:
0
15#
发表于 2007-1-5 23:02 | 只看该作者
谢谢Webspherli的回复,我在这里也受益匪浅.
MQI 通道和消息通道的主要区别是,MQI通道是双向的,也就是说一条通道既可以发消息也可以收消息,只能应用于Client/Server这种模式.消息通道是单项的,主要应用于两个队列管理器之间收发消息,它们是成对出现的而且名字必须相同.

使用道具 举报

回复
论坛徽章:
0
16#
发表于 2007-1-5 23:05 | 只看该作者
关于触发通道的应用模式,主要是因为通道不是每时每刻都alive的,如果长时间不用就会变成"idle"状态,通过这种触发机制,可以按需"唤醒"它. 一般把传输队列设置成触发队列来实现的.

使用道具 举报

回复
论坛徽章:
16
2011新春纪念徽章
日期:2011-01-25 15:41:01马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-02-13 15:10:58
17#
发表于 2007-1-7 21:44 | 只看该作者
最初由 DB.Uncle 发布
[B]关于触发通道的应用模式,主要是因为通道不是每时每刻都alive的,如果长时间不用就会变成"idel"状态,通过这种触发机制,可以按需"唤醒"它. 一般把传输队列设置成触发队列来实现的. [/B]


UP!

使用道具 举报

回复
论坛徽章:
0
18#
发表于 2008-9-11 14:58 | 只看该作者

关于WebSphere MQ客户端与服务器端的问题

从网上搜了部分资料,结构是越看越糊涂,不明白客户端与服务器端的具体分工,都干些什么,还有提到MQI,API编程,都是怎么回事呢?2个服务器,多个客户端应该怎么配置,用什么方式编程呢
谢谢各位大侠了

使用道具 举报

回复
论坛徽章:
1
2009新春纪念徽章
日期:2009-01-04 14:52:28
19#
发表于 2008-9-15 14:07 | 只看该作者
1。将通道断开时间设置为0,即永远不超时

2。或者设置触发机智

使用道具 举报

回复
论坛徽章:
1
2009新春纪念徽章
日期:2009-01-04 14:52:28
20#
发表于 2008-9-15 15:25 | 只看该作者
另外,我觉得代码有点问题

楼主的本意应该是通过起一个线程连到队列管理器(实际上是其上的队列)上取某个队列的消息
和队列管理器建立连接的动作,应该做一次即可
取消息倒是可以没隔一段时间起一个线程
目前是将建立连接的动作放在这个线程里做了
这样实际上每次线程运行都会和目标队列管理器建立一次连接
没这个必要也耗系统资源
所以程序运行到后面会看到达到通道最大连接数的错误

所以我个人建议,将和队列管理器建立连接的动作放在线程外面
线程只做取消息的动作

供参考

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表