This aspect of the threading model deals with messages that arrive at destinations. For each destination you choose a threading model type:The thread used carries execution to the post RTC phase, at which point execution is handed off to one of another set of threads, for writing to cache and backing store, if one is used.Each JMS destination creates a separate JMS Session internally, and creates a JMS thread and a dedicated JMS connection for itself.Additional tuning may be possible at the event level, depending on options available. For example the Enterprise Message Service server queue can be sized appropriately. This topic is outside the scope of TIBCO BusinessEvents documentation.Note that events sent out in the event preprocessor phase are sent immediately and not in the post RTC phase.With this option, all destinations that use the shared queue threading model share the processing unit’s shared queue and threads. (JMS destination is shown as an example). One pool of worker threads picks jobs from the shared queue. Execution continues on this thread through to post-RTC.In brief the configuration settings are as follows. See Collections Tab — Destinations Settings and Properties and Agent Classes Tab Settings and Properties for details on these settings
Specifies the size of the queue used for all destinations in the processing unit that use the shared queue threading model. Specifies the number of threads used for all destinations in the processing unit that use the shared queue threading model.
• Good for multi-core machines, which can make good use of a heavily threaded set-up.
• One single queue can become a bottleneck in the case of a sudden increase in incoming messages.
• Correlation of events arriving on different queues at different rates can be problematic, as can request-reply situations.
• It can be harder to tune performance with only one queue and one set of threads for all destinations.Uses the thread (and queue size) provided by the channel resource client (the Enterprise Message Service client, for example). There is one caller’s thread per destination. The same thread executes the RTC phase.
• The messaging library's thread does the message delivery, pre-processing and the Rete operations, so there is less context switching.
• The messaging system cannot push events faster than the rate at which it can get consumed, so the system is self-throttling.
• To scale up, many destinations have to be created in order to create that number of caller threads.
• Because each destination creates a JMS session, a session might be under used. On some operating systems, sockets and sessions could be very under-used.This option is similar to the Shared Queue option except that each destination has a dedicated thread pool and set of worker threads to process messages.Each destination has its own queue (of a configurable size) and its own set of dedicated worker threads (also configurable).
• Each destination can be configured differently, to deal with correlation of events arriving at different rates in different destinations, or events that are correlated in different ratios, such as correlation of every tenth event from destination one with every other event from destination two.
• If you use priority queues in Enterprise Message Service, you can use dedicated queues to service them efficiently.
Copyright © TIBCO Software Inc. All Rights Reserved.