I have an Oracle Commerce Application which is consuming Messages over one JMS Queue. I have Ten Consumers all with same destination Queue. I would like to understand Pros and Cons of this architecture and how to optimize this.
One JMS Queue with Multiple Consumer
1k Views Asked by user1530180 At
2
There are 2 best solutions below
0
potzet
On
when the consumers share the workload it is common that they share a queue. otherwise it could be better to create a separate queue for every consumer.
if you would like to broadcast bij putting a message on a tippic than there is a possibility to create a bridge for every consumer.
by this i mean a bridge from a toppic to the consumer queue. the pro's for using the bridge is that te messages wil stay in the queue (als long als the message doesn't expire ) when the consumer process is down for a short period.
Related Questions in QUEUE
- Java - long queue of tasks can interfere with user input?
- Queue Scenario Help Getting Started
- Implement queues in java
- Queue using linked lists - how should this work?
- Python Threads Intefere if Executed Too Quickly
- Retrofit+rxjava unique request in stack
- Priority queue in Java so each producer gets one turn at a time
- MBProgressHUD showAnimated: whileExecutingBlock: not working
- PHP4 Queue Server
- Stuck on algorithm. words to nums
- Iterate through a fileSystem without using Binary tree or recursion
- Queue.join() doesn't unblock
- Python - Running multiple mysql inserts without waiting for completion using a queue
- Error in multiprocessing.Manager().Queue().put
- What keys does Python-RQ use on the redis server?
Related Questions in TIBCO
- Why we use general interface(GI)?
- Spotfire cross table - calculate difference when multiple hierarchies are on Columns
- parsing a xml using java code palette in tibco
- Tibco AMX Business Studio BWSE service identification Issues after BC pallet installation
- How do you solve EMS Server connection when giving an error when you test?
- How to execute command using Tibco BW
- TiBCO Spotfire - How to Calculate only the last 3 columns in a Data - see descr
- TIBCO Hawk Sample ConsoleApp Testing
- Get all messages from topic
- Details on Demand
- Tibco SQLException
- Tibco mapper activity provides no output
- Error while configuring EMS with Database in Fault Tolerant mode
- Restricting EMS cliemt connections
- Error on the TIBCO activity HTTP starter
Related Questions in ATG
- how to pass javascript value to same jsp page
- Is there any way of configuring Oracle ATG to load java class changes dynamically?
- Error Running Endeca baseline update
- Real time access to attributes in ATG/Endeca integration
- Create <dsp:input> element dynamically by jquery (ATG)
- Administrator password was not updated in the database error in configuring ATG version 11.0.0 integrated with Endeca
- Execution order of dsp:input tags in ATG
- ATG - not able to resolve component
- SQL Statement Failed in ATG
- ATG Nucleus - EJB Relationship
- Menu in default application aka CRS is not showing up in ATG
- ATG- Issue in sending email through atg scenario
- ATG RQL query like SQL 'property in (x, y, z)'
- Is it possible to disable login for dynadmin of ATG?
- How to add placeholder and require attr to dsp input tag
Related Questions in ORACLE-COMMERCE
- Error Running Endeca baseline update
- Administrator password was not updated in the database error in configuring ATG version 11.0.0 integrated with Endeca
- Menu in default application aka CRS is not showing up in ATG
- Endeca - Dimension product.category does not exist
- How to send email when user is created from BCC ATG?
- ATG CSC session time out value need to change
- How to hide a user property in ATG BCC UI using ViewMappingRepository
- ATG REST service not getting raw POST JSON data from POSTMAN
- Endeca baseline update is failing: SEVERE: Utility 'rmdir_dgraph-input-old' failed
- Extend Endeca's diacritic folding mapping
- GetApplicablePromotions is returning promotions with wrong product
- javax.servlet.jsp.JspException: In <parseDate>, a parse locale can not be established
- One JMS Queue with Multiple Consumer
- ATG REST API - How to send different HTTP status code rather than 500
- Can a ATG project can be deployed in Apache Tomcat?
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?
I just want to state that this question has no specific bearing on Oracle Commerce and is about general principles of implementing queues.
When you've one queue and many consumers, remember that they will all try to process the messages simultaneously. This may not be desirable for some situations if order of processing messages are important or there are dependent messages that need to be processed before processing the current message. Even with this, there are patterns that can put messages back to the queue for processing later to achieve dependent message processing.
Exception handling is another tricky subject when you've multiple consumers. Ensure that the whole message handling has good exception handling and deposits the message back to the queue (by way of throwing exceptions) for processing later. Also, if there is a message that could get stuck processing because it will generate every time you may want to put them in different queue, after so many exceptions. At one time, we built an Exception Handling Framework that helped with all these scenarios.
If you really want to just broadcast the message to many consumers on a topic, use pub-sub architecture and that is much easier to handle.
Again, like the other comment said the scenario of what you're trying to do will help providing good direction.
Here is a discussion that could additionally help with your question - http://c2.com/cgi/wiki?MessageQueuingArchitectures