Has anyone come up with a creative way to publish and wait for multilple documents in a single integration component? It is crutial that this is not done sequentially - we need to publish 6 request documents and wait for 6 replies at the same time (or near real time). It is too limiting to take a one-at-a-time approach. Any suggestions are greatly appreciated!
you could do this using the client Java API. You would use BrokerClient.publish() to publish an array of events. Then use BrokerClient.getEvent() to retrieve the replies.
The thing to be careful of is trying to use these within a scripted operation–using these methods directly may be prohibited (I haven’t tried this nor have I checked to see if it is allowed). For example, in the standard ILA, using getEvent() is prohibited using the ILA’s client since doing so would interfere with the ILA’s own getEvent loop.
I know this isn’t much help but perhaps it will trigger an idea…
Maybe it would be possible to use a custom code step to spawn a thread for each event.
Your problem will still persist as the queue picks up the requests one at a time.Try an ATC in front of a notification and use multiple threads to process this one.
But your problem can be solved by other techniques such as filtering on some fields and letting only a set of adapters work with a set of requests.
Do all 6 requests go to the same adapter? If so, running multiple adapters will help with the “one at a time” issue. You can do this in Adapter Configuration, increasing the number of adapters. Or, you can run adapters on different boxes, give them the same name and they will all pull events from the queue in a first come, first serve manner. Each event will only be processed by one adapter. You need to enable queue sharing for this.
If all 6 requests go to different adapters, then the above is not a problem.
Another thing that impacts speed of processing is where the adapters are running. The biggest performance gain I’ve seen is moving the adapters off of the broker box. Unfortunately I don’t have specific numbers, but you may be able to achieve some good gains.
Have you tried the Join Adapter? I’ve used it to handle similar branching logic.
Great Responses Folks - Thanks
Here’s an update:
- the 6 requests will be subscribed to by a common client group
- we’ll look into the Join Adapter or ATC functionality - good suggestions
- we’re also going to look at calling a custom step or scripted operation from the ILA IC that will use BrokerCallBack to handle the 6 replies (Rob’s idea in # 2)
The join adapter can work on the 4.5 toolset and above only.