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 answers
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
- Private queues MSMQ lose Everyone permission
- Asynchronously add to queue, synchronously process it
- Laravel queue runs for a while and stops without any exception
- issues with circular queues
- Vercel Deployment Stuck on queue
- Built in functionality to split queue by partition and process one at a time
- Communicating Between Threads with Queue().put() and Queue().get()
- Put JMS message properties in IBM MQ queue and access from other JMS client which run on Websphere liberty
- Fastest implementation of priority_queue in C++?
- How do I run events before a worker is created and when it is destroyed?
- peek in python persistqueue
- Azure functions to read some messages in queue
- Python multiprocessing Queue: performing get() is a bottleneck
- FreeRTOS: Simple Queue program, values of Queue are not being printed on Serial Monitor
- How generate multiple PDF's in Laravel?
Related Questions in TIBCO
- IronPython Spotfre: Set Listbox Filter Values from user input of Table Name
- Updating a Spotfire table with another temp table
- How to deploy Tibco GI to windows 10
- Spotfire: Show default view of a table2 with limited IDs and load more data on demand when filters applied on table1
- i am getting an servlet exception(TIBCO EBX)
- TIBCO BW 6 advancement date
- In BW6.7, while testing JDBC connection getting error : java.sql.SQLException: [tibcosoftwareinc][Oracle JDBC Driver] null
- Search element in response JSON
- Is it possible to export data to excel keeping the hyperlinks of the table visualization or Details on Demand intact?
- how access data during intermediate transformation steps before final data table (i.e. need a column before it is pivoted)
- Unique Monthly Count in Spotfire Visualization that Ignores Coloring but can Still be Filtered
- Issue with running application TIBCO BWCE
- Calculating daily average count of each category in Spotfire when some categories do not appear on every day
- Long wait time before failed connection to Tibco EMS
- Using NullIF and Coalesc in SQL vs Calculated Column w Case Logic in BI Tool (Tibco Spotfire Analyst)
Related Questions in ATG
- Application throwing 500 error when image not found instead of 404
- Unable to place a return order in ATG
- How to make nested RQL request
- MarketplaceDiscoveryStrategy failed with an error
- How to hide a user property in ATG BCC UI using ViewMappingRepository
- Is there any way to fine which js file ajax function send a request to java servlet
- How to add comma in the list value in ATG
- ATG CSC session time out value need to change
- want to mock the DynamoHttpServletRequest to pass the test attributes in junit /mockito
- DynamoHttpServletRequest.getRemotePort() is return 0 How to get client Remort Port
- how to resolve java.lang.OutOfMemoryError: GC overhead limit exceeded in Weblogic?
- How to start the Oracle ATG rest webservices and create one?
- How to run ant build in jenkins?
- how to print mdc value in logback
- Unable to create class for custom droplet | ATG 11.1 | Jboss 6.1
Related Questions in ORACLE-COMMERCE
- How to hide a user property in ATG BCC UI using ViewMappingRepository
- ATG CSC session time out value need to change
- I get error when sending data using express from node server to client side JavaScript
- POST call is working fine in postman but gives error in node.js
- How in atg Nucleus validate component
- ATG - How to override RQL for insert statements
- How to retrieve page URL In a API which is being invoked?
- Filtering out the elements of collection based on field in atg using ForEach
- ATG - session or request attribute coming as null when checkFormRedirect is called
- Send POST request in ATG with checkFormRedirect method
- ATG(9.3) ERROR : java.lang.NoClassDefFoundError : org/owasp/html/HtmlPolicyBuilder
- ATG-Endeca Record Filter
- When is Jsession id created in Oracle ATG is it from JBOSS or ATG?
- Docker: Java unable to resolve host IP address
- Does dsp:input supports onclick?
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?
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)
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