2017-02-07 47 views
-1

我需要通过ibm java api在ibm websphere队列中暂停接收器队列一段时间(用于处理已接收的消息)。ibm WebSphere MQ通过java api暂停队列

+0

请发布您的查询http://stackoverflow.com/help/how-to-ask – Prasad

+0

对不起,我在convinence前请参阅本: 我的目标是 1.我继续阅读邮件来回队列 2.在某些时候,我需要暂停队列 3.并且需要操作那些消息 4.并且需要再次从队列中恢复接收进程 问题是: 如何暂停队列而不停止队列经理。 – Fresher

+0

哪个WebSphere(传统或自由)以及哪个版本使用哪个消息传递提供者?听起来你想“暂停”用于向MDB提供消息的监听器,对吧? –

回答

1

如果您希望阻止应用程序无法从队列中获取消息,则可以通过将队列上的GET属性设置为DISABLED来禁止队列。这仍将允许应用程序将消息放入队列中,但应用程序无法从队列中获取消息。如果您想阻止邮件进入队列,您可以将PUT属性设置为DISABLED

当您准备让应用程序能够再次从队列中获取消息时,您将GET属性设置为ENABLED,应用程序将能够从队列中获取消息。

例如MQSC命令来设置GETDISABLED

ALTER QLOCAL( '')GET(禁用)

被警告:如果你抑制看跌期权或获得一个队列,应用程序试图在该队列上放置或获取消息将收到错误返回码MQRC_PUT_INHIBITEDMQRC_GET_INHIBITED。如果你没有预料到你的应用程序可能会失败。

+0

感谢@Rob在那里,我们可以用任何Java API实现相同的“ALTER QLOCAL('')GET(DISABLED)”。所以我可以从Java应用程序调用相同的东西。 – Fresher

+0

@Fresher请参阅:http://stackoverflow.com/questions/30233976/how-to-get-inhibit-the-websphere-mq-queue –

+0

非常感谢。我找到了暂停队列的逻辑,但是在实现它们时还有其他一些问题。您能否提供关于该代码的任何建议 http://stackoverflow.com/q/42360699/7529212。 – Fresher