Here’s some food for thought.
2, 10, 20, 100 processes/threads doesn’t mean that there are that number of broker clients with subscriptions to the request event.
When you have an adapter with multiple threads, each thread creates a connection to the broker. These connections do not create subscriptions for any of your events (there are subscriptions for some housekeeping events only). The main thread/connection gets ALL of the events and dispatches them to waiting threads. What the dispatch model is, I don’t know. Clearly though it can create situations where publishers time-out waiting for the muti-threaded adapter to respond. Bump up the time-out of the requestor, if possible, for your integration.
You can confirm the subscription behavior by using manager to look at the subscriptions for each of the clients. You’ll see that the main thread does all kinds of event retrieves and little or no publishes/delivers. The “child” connections don’t have many event retrieves but do all the publishing/deliveries.
The broker connection that each client has is for the thread to do its own publish/deliver activity. This way the threads don’t interfere with each other if they do things like request/reply operations.
I’ve seen this behavior with the ATC and the standard DB adapter. With the standard ILA too.
If I have some of this wrong, or if it doesn’t jive with the behavior you’ve seen, please post it.
#Integration-Server-and-ESB#Universal-Messaging-Broker#broker#webMethods