Author |
Message
|
stsm |
Posted: Fri Feb 08, 2008 8:04 am Post subject: Messages with diferent priority |
|
|
Novice
Joined: 27 Aug 2007 Posts: 10
|
Hi.
I've a WAS6.1 & MQ running under WIN X32. In this WAS i have a MDB connected to a cue throws a port listener. In the MQ cue put messages with diferent priority.
The problem that I found is:
1. If I have messages with diferent priority, the messages with higger priority are served afther others with low priority.
2. Otherwise, if only one messages arrives with high priority, it remains 5 seconds in the cue.
3. If the message have 0 priority, it was read inmediatly.
What is the cause? It's possible to configurate it? |
|
Back to top |
|
 |
fjb_saper |
Posted: Fri Feb 08, 2008 9:07 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
You have to understand that the MDB mechanism is a polling mechanism. Whenever a fresh poll is made is when you get your messages reordered. Everything that gets consumed within the poll interval gets consumed in the order it was when last polled.
Any new message with higher priority coming in during the poll interval would only get consumed after the next poll, as long as you have enough work to carry you through to the next poll.
Enjoy _________________ MQ & Broker admin |
|
Back to top |
|
 |
stsm |
Posted: Mon Feb 11, 2008 3:04 am Post subject: |
|
|
Novice
Joined: 27 Aug 2007 Posts: 10
|
Hi.
It meens that I reduce the "poolingInterval" to 1000ms the problem is solved? This parameter is defined into "JMS Connection factory" and his value is 5000 (default) |
|
Back to top |
|
 |
fjb_saper |
Posted: Mon Feb 11, 2008 4:15 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
stsm wrote: |
Hi.
It meens that I reduce the "poolingInterval" to 1000ms the problem is solved? This parameter is defined into "JMS Connection factory" and his value is 5000 (default) |
No it just means it is 5 times less likely to happen...
 _________________ MQ & Broker admin |
|
Back to top |
|
 |
stsm |
Posted: Tue Feb 12, 2008 1:48 am Post subject: |
|
|
Novice
Joined: 27 Aug 2007 Posts: 10
|
I try to reduce the PollingInterval to 1000 but the problem still ocurs:
Code: |
2008-02-11 15:52:35,628 [MessageListenerThreadPool : 1] INFO
2008-02-11 15:52:40,659 [MessageListenerThreadPool : 1] INFO |
There is another configuration that i have to tune up? |
|
Back to top |
|
 |
EddieA |
Posted: Tue Feb 12, 2008 9:41 am Post subject: |
|
|
 Jedi
Joined: 28 Jun 2001 Posts: 2453 Location: Los Angeles
|
What's the Message Delivery Sequence (MSGDLVSQ) set at.
Cheers, _________________ Eddie Atherton
IBM Certified Solution Developer - WebSphere Message Broker V6.1
IBM Certified Solution Developer - WebSphere Message Broker V7.0 |
|
Back to top |
|
 |
stsm |
Posted: Wed Feb 13, 2008 2:56 am Post subject: |
|
|
Novice
Joined: 27 Aug 2007 Posts: 10
|
Hi EddieA.
The MSGDLVSQ parameter of this queue is defined to "Priority"  |
|
Back to top |
|
 |
stsm |
Posted: Mon Feb 18, 2008 12:55 am Post subject: Configuration |
|
|
Novice
Joined: 27 Aug 2007 Posts: 10
|
For more information, this is the configuration of this MQ:
Code: |
<factories xmi:type="resources.jms.mqseries:MQQueueConnectionFactory" xmi:id="MQQueueConnectionFactory_1193646450798" name="factoryname" jndiName="jms/XXXConnectionFactory" authMechanismPreference="BASIC_PASSWORD" XAEnabled="true" queueManager="MQXXXR01" port="0" transportType="BINDINGS" msgRetention="true" failIfQuiesce="true" pollingInterval="5000" rescanInterval="5000" useConnectionPooling="true">
<connectionPool xmi:id="ConnectionPool_1193646450798" />
<mapping xmi:id="MappingModule_1193646450798" mappingConfigAlias="DefaultPrincipalMapping" authDataAlias="" />
<sessionPool xmi:id="ConnectionPool_1193646450799" />
</factories>
<factories xmi:type="resources.jms.mqseries:MQQueue" xmi:id="MQQueue_1193646522939" name="queuename" jndiName="jms/yyy" persistence="APPLICATION_DEFINED" priority="APPLICATION_DEFINED" specifiedPriority="0" expiry="APPLICATION_DEFINED" specifiedExpiry="0" baseQueueName="YYY.QUEUE" useNativeEncoding="false" integerEncoding="Normal" decimalEncoding="Normal" floatingPointEncoding="IEEENormal" targetClient="JMS" queueManagerPort="0" />
<factories xmi:type="resources.jms.mqseries:MQQueue" xmi:id="MQQueue_1193647064790" name="cgfilogrp" jndiName="jms/yyy" persistence="APPLICATION_DEFINED" priority="APPLICATION_DEFINED" specifiedPriority="0" expiry="APPLICATION_DEFINED" specifiedExpiry="0" baseQueueName="YYY.QUEUE" useNativeEncoding="false" integerEncoding="Normal" decimalEncoding="Normal" floatingPointEncoding="IEEENormal" targetClient="JMS" queueManagerPort="0" /> |
|
|
Back to top |
|
 |
|