I have a 4 node websphere application server cluster running some application. The application listens to a queue of websphere mq server. I have created the jms resources in the cluster scope, so all the nodes connect to the same queue manager, and the open input count for the queue is 4 in mq explorer. The problem is if a message is published to the queue, one of the nodes grabs the message and starts processing, but it throws an error saying the message header is incorrect. When I shut down 3 nodes and kept only one running, the application on that node read the message and started processing just fine. I thought that read contention was not a problem in mq, but the facts point to the other direction. Is there some way to set some property in the queue like read lock or something like a scheduler which distributes the messages to 4 nodes fairly ?
How do I solve Websphere MQ server queue read race condition?
1.5k Views Asked by user1600936 At
1
There are 1 best solutions below
Related Questions in JMS
- This method is not applicable inside the app server when trying to set a listener for a JMS queue
- How do I Serialize a JMS Message?
- How to use JMS to knows when the last message of a list has been processed
- javax.naming.NoInitialContextException: Cannot instantiate class: weblogic.jndi.WLInitialContextFactory
- Not able to send message to Solace JMS Queue
- JMS Message Selector does not work
- Why is JMS messaging client unable to start, with fedora-commons 3.8.1?
- Grails JMSTemplate how to add MessageConverter to the Message Listener
- Is there a way of accessing maximum redelivery count from a JMS Message?
- Do all ActiveMQ clients need a client certificate?
- Should I consider to use JMS in my case?
- How to Produce from MQTT and consume as MQTT and JMS in ActiveMQ
- Amazon SQS - JMS vs custom implementation
- Valid "protocols" for HornetQ
- Write a Java Program to connect to HornetQ Messaging Service in Jboss EAP 6.3?
Related Questions in IBM-MQ
- ClassNotFoundException: com.ibm.mq.jms.MQConnectionFactory (Websphere MQ 7.5 + spring jms + maven tomcat 7 plugin)
- Websphere Message broker multi-instance message flow
- Getting Current hour in local time zone ESQL Message broker
- java.lang.ClassNotFoundException: com.ibm.disthub2.impl.client.SessionConfig
- WebSphere MQ connection pooling with Tomcat
- How to get information about message retrieved from queue
- GETTING SERIALIZING ERROR WHILE ASSIGNING VALUE TO THE DFDL PARSER IN ESQL
- MQ Base classes for Java :- intermittent mqrc 2128 :UoW is already in progress
- Code after readObject() does not run
- IBM.XMS ConnectionFactory.CreateConnection: CompCode: 2, Reason: 2035
- Number of messages flowed through queue
- IBM MQ: CWSMQ0082E: Failed to send to CompCode: 2, Reason: 2017
- Creating and Configuring Websphere MQ for Oracle SOA MQ Series Adapter
- WebSphere MQ - error running runivt on fresh install
- Use of java in WMQ/WMB systems
Related Questions in IBM-WAS
- WAS 8.5 Admin console - Give only access to Deployment
- xml file issue while importing my source code into My Eclipse Blue 2014
- How to load balance requests using header value in IBM web server plugin?
- How to test JAX-WS connection timeout
- java.security.cert.CertificateException: Certificate data canot be processed
- Message selector on MDBean not working properly
- WebSphere Application Server 7.0.0.33 installation error - "failed to Install Update Installer"
- Inconsistent behaviour after upgrading web app from WAS 6.1 to WAS 8
- Webservices: [failed to localize] The endpointInterface class Calculator could not be found()
- Websphere console - Monitor server events such as server restart
- jax-rs only authentication no authorization
- How do I solve Websphere MQ server queue read race condition?
- NoSuchAlgorithm exception while using cipher.getInstance method
- Java 1.7 and JSF 1.2 compatibility
- Error using IBM WAS ConnectionFactory and Spring
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
If you read the message under syncpoint using a
GETinstead of aBROWSE, no other thread can retrieve it unless and untilROLLBACKis issued. If the message is OK to process, then issue aCOMMITwhen done.On the other hand, if you
BROWSEthe messages then all threads can retrieve the same message.Whatever is going on is not attributable to thread contention over the same message somehow corrupting the message. Regardless of whether the message is browsed or destructively retrieved, WMQ assures the integrity and atomic operation of the call. To diagnose this, it will be necessary to have more information as to the exact error you are seeing, including a print of the linked exception which will contain the transport provider's native return code.