Author |
Message
|
WBI_user |
Posted: Wed Sep 02, 2009 8:31 am Post subject: Agrregation with non-MQ transport |
|
|
Partisan
Joined: 07 Aug 2001 Posts: 386
|
We are at the design stage of a message flow which required information from MQ, http and IMS. For improve performance, we like to issue the request in parallel. We are thinking of using the aggregation nodes.
The WMB 61 info center says:
"The aggregation nodes work correctly only for transports that use a request/reply model; for example, WebSphere MQ Enterprise Transport"
and all the examples are using MQ transports.
Will this node work with IMSRequest , MQPUT and HTTPRequest?
Since the reply for HTTPRequest and IMSRequest returns to the same node, I'll have to do the fan-out and fan-in in one flow.
Is this do-able? |
|
Back to top |
|
 |
mqjeff |
Posted: Wed Sep 02, 2009 8:39 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
Since IMSRequest and HTTPRequest are synchronous, why do you need Aggregation in the first place?
If you need to aggregate an MQ response with an IMS and HTTP response all in one, then you probably just want to use an MQGet node to make MQ a synchronous call as well. |
|
Back to top |
|
 |
Luke |
Posted: Wed Sep 02, 2009 8:40 am Post subject: |
|
|
Centurion
Joined: 10 Nov 2008 Posts: 128 Location: UK
|
Nope, transport must be asynchronous for aggregation nodes.
You can use it with other transports though ... for instance if you put your HTTPRequest call in a separate flow and invoke that flow using an MQ message. |
|
Back to top |
|
 |
Luke |
Posted: Wed Sep 02, 2009 8:58 am Post subject: |
|
|
Centurion
Joined: 10 Nov 2008 Posts: 128 Location: UK
|
mqjeff wrote: |
If you need to aggregate an MQ response with an IMS and HTTP response all in one, then you probably just want to use an MQGet node to make MQ a synchronous call as well. |
You can do this, and manually collate the responses, but my understanding is you'd have to invoke them sequentially ... or am I missing something there? |
|
Back to top |
|
 |
mqjeff |
Posted: Wed Sep 02, 2009 9:08 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
Luke wrote: |
mqjeff wrote: |
If you need to aggregate an MQ response with an IMS and HTTP response all in one, then you probably just want to use an MQGet node to make MQ a synchronous call as well. |
You can do this, and manually collate the responses, but my understanding is you'd have to invoke them sequentially ... or am I missing something there? |
That's correct, there is no mechanism in current releases of message broker to do parallel processing other than by passing data to a separate message flow.
One could use aggregation in this case by wrapping each synchronous request node in an MQInput->...->MQReply flow.
But generally the overhead of that is going to outweigh the gains from parallel execution, unless you know that the synchronous request is going to take a significant period of time. |
|
Back to top |
|
 |
Luke |
Posted: Wed Sep 02, 2009 9:17 am Post subject: |
|
|
Centurion
Joined: 10 Nov 2008 Posts: 128 Location: UK
|
mqjeff wrote: |
But generally the overhead of that is going to outweigh the gains from parallel execution, unless you know that the synchronous request is going to take a significant period of time.
|
I agree, in addition to how long the requests will take, other things to consider would be the number of requests you have to make, and is the overall elapsed time the crucial consideration regarding the performance of your interface (i.e. the requirements). |
|
Back to top |
|
 |
WBI_user |
Posted: Wed Sep 02, 2009 11:42 am Post subject: |
|
|
Partisan
Joined: 07 Aug 2001 Posts: 386
|
One of the key consideration is performance, that's why we are thinking of doing the requests in parallel. I know that I can perform the requests in a serial manner. But this may too slow. The flow needs the get information from 3 systems (one accepts MQ, one IMS system and one accepts http or WS requests) and combine the replies.
If luke is right that "transport must be asynchronous for aggregation nodes" , I can not use httpRequest and IMSREquest in my fan-out flow.
The system that take http requests can also accept web services call.
Can I use AsynSOAPReuests and IMS bridge instad? |
|
Back to top |
|
 |
Luke |
Posted: Wed Sep 02, 2009 12:26 pm Post subject: |
|
|
Centurion
Joined: 10 Nov 2008 Posts: 128 Location: UK
|
Quote: |
Can I use AsynSOAPReuests and IMS bridge instad? |
I've no idea to be honest, I've only ever used aggregation with MQ, and although the documentation implies other transports can be used, the requirements for MsgID and CorrelID in the MQMD sound pretty specific ... that may be just an example though I guess ...
Maybe someone else can advise on this, but as mentioned before, you can use the request nodes you proposed:
mqjeff wrote: |
by wrapping each synchronous request node in an MQInput->...->MQReply flow |
But there's no guarantee the benefits won't be outweighed by the overheads.
I guess it depends on what kind of response times you're expecting from your 3 services. For example, if one was expected to take about 3 seconds and the other two half a second, it's probably not worth trying aggregation as the 1 second you could theoretically save may be lost through the additional processing you'd have to do. |
|
Back to top |
|
 |
|