|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Delete dynamic queues with JavaComputeNode |
« View previous topic :: View next topic » |
Author |
Message
|
sat |
Posted: Mon Jul 12, 2010 4:55 pm Post subject: |
|
|
Newbie
Joined: 11 Jun 2010 Posts: 5
|
Hello,
I am trying the below,
i. Create permanent dynamic queue, (using javacompute node)
ii. Send segments to the dynamic queue,
iii.Group messages using MQGet node after last segment send to the dynamic queue,
iv.Delete the dynamic queue which is used to collect segments for a groupID.
Problem is,
After grouping all segments using MQGet node and send the grouped message to destination queue, trying to delete the dynamic queue, but MQ Queue openOutputCount of the dynamic queue is remaining 1, and when trying to delete it is throwing exception MQRC 2055 (MQRC_Q_NOT_EMPTY). No other applications connected to this queue, so, it is bcoz of openOutputCount 1. After MQOutput node put messages, it is not releasing the connection with Permanent dynamic queue.
Could anyone please provide comments or code how to delete permanent dynamic queue using javacompute node. |
|
Back to top |
|
 |
Vitor |
Posted: Mon Jul 12, 2010 5:16 pm Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
Rather off topic, but why use a dynamic queue at all if you can use the segmentation & grouping facilities of the product? Or use the Collector node? _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
sat |
Posted: Mon Jul 12, 2010 11:49 pm Post subject: |
|
|
Newbie
Joined: 11 Jun 2010 Posts: 5
|
Thanks for your comments.
For some groups, message collection would be more than 100 MB. As Collector node uses underlying MQ queues for message collection, how Collector node handles a greater than 100 MB message collection?
I've thought to manage this by calculating message size for each group and create a new dynamic queue for same group in case of message collection going to be greater than 100 MB (is again Segmentation of large message), and also my concern is how finally send the collected large message (>100 MB) to a destination queue? |
|
Back to top |
|
 |
Vitor |
Posted: Tue Jul 13, 2010 2:30 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
sat wrote: |
also my concern is how finally send the collected large message (>100 MB) to a destination queue? |
The same way you'd assemble it on a non-dynamic queue - that was my point in my earlier post. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
sat |
Posted: Tue Jul 20, 2010 3:24 pm Post subject: |
|
|
Newbie
Joined: 11 Jun 2010 Posts: 5
|
As Collector node does message collection through IN terminals of it, how can we create a IN terminal whenever a new group segment message received by broker? This is main factor behind I've chosen dynamic queues for message collection. We can create any number of IN terminals for collector node. If we know before number of message groups can arrive at some point of time, then we can create number of IN terminals, but creation of IN terminal should be done dynamically whenever a new message group segment received.
Informtion about the problem is,
1. Permanent dynamic queues are using by MQOutput node to put segment messages.
2. Also the queues are using by MQGet node for segment message collection to group the message.
3. After completing the flow which is doing message collection process, another flow trying to delete the queues.
4. When trying to delete the queues, getting MQRC 2055 (MQRC_Q_NOT_EMPTY) problem.
Note: After message collection process completed by the flow, it is releasing input connection after 1 minute and openInputCount resetting to '0'. But, flow is not releasing output connection and openOutputconnection property value is remaining '1' till the message flow get stopped. |
|
Back to top |
|
 |
mqjeff |
Posted: Wed Jul 21, 2010 2:44 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
Review the properties of each IN terminal of the Collector node again.
You only need one IN terminal to collect each unique GroupID into it's own collection.
ALL data passed into EVERY IN terminal (that matches, at least) is passed out of the out terminal. So if you have a collector node with 10 In terminals, each reading a single group ID, what you will get on the out terminal is ALL 10 GROUPS. |
|
Back to top |
|
 |
sat |
Posted: Wed Jul 21, 2010 12:41 pm Post subject: |
|
|
Newbie
Joined: 11 Jun 2010 Posts: 5
|
Yes, u r right, we need one IN terminal to collect each unique GoupID, if we know that at particular time maximum 10 groups can be processed, we can create 10 IN terminals, but if we don't know how many groups can be processed at particular time, how many IN terminals need to create we don't know. If we assume maximum 100, what will happen when 100 Groups are in message collection process and if a segment message will receive for a new group 101. There will be no IN terminal available for message collection of this new message group as 100 IN terminals are busy in message collection of 100 message groups. |
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|
|
|