|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Multiple Server Connection Channels? |
« View previous topic :: View next topic » |
Author |
Message
|
cmkeller |
Posted: Tue Aug 12, 2008 3:50 pm Post subject: Multiple Server Connection Channels? |
|
|
Apprentice
Joined: 09 Jan 2005 Posts: 41 Location: Queens, NY
|
I have an application that retrieves messages from an MQSeries (client-mode) queue and places them into a database table. One of my clients is unhappy with the speed, and suggested to me that if we had multiple server connection channels, we could run more than one instance of this application and get more messages from the queue more quickly.
Is this in fact do-able? If my several instances are each using a different SC Channel to connect to the queue manager on the server, do they see the queue in the same way? If one of my instances does a Begin() and then a Get(), but hasn't yet commited, will the other instances see that first message as still on the queue, and then get it, and I'll have duplicate messages from my multiple instances?
Obviously, I'm leery of their "solution", but I need to keep an open mind - I never used multiple server connection channels before, so I don't know how the work would be divided amongst them. Can anyone help me on this? _________________ Chaim Mattis Keller
Shadow Financial Services Corp
ckeller@shadowfinancial.com |
|
Back to top |
|
 |
PeterPotkay |
Posted: Tue Aug 12, 2008 3:54 pm Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
SVRCONN channels are just "templates" to kick of as many active instances of the channel as the app asks for, up to the limits you set.
Give them there own channel, and then decide together how many concurrent instances they should run at one time.
If its 10, there is no performance benefit in defining 10 SVRCONN channels. Create one and let them connect 10 times concurrently. _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
cmkeller |
Posted: Wed Aug 13, 2008 2:23 pm Post subject: |
|
|
Apprentice
Joined: 09 Jan 2005 Posts: 41 Location: Queens, NY
|
But about connecting concurrently - does one connection know what the other is doing inside a transaction? If I have two instances of the app connecting to the same queue, and the first one does Begin() and Get() (message # 1) but has not yet done Commit(), does the second instance still see message # 1 on the queue and get it again, or does it know that message # 1 had been gotten and its Get() will grab message # 2? _________________ Chaim Mattis Keller
Shadow Financial Services Corp
ckeller@shadowfinancial.com |
|
Back to top |
|
 |
fjb_saper |
Posted: Wed Aug 13, 2008 3:02 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
cmkeller wrote: |
But about connecting concurrently - does one connection know what the other is doing inside a transaction? If I have two instances of the app connecting to the same queue, and the first one does Begin() and Get() (message # 1) but has not yet done Commit(), does the second instance still see message # 1 on the queue and get it again, or does it know that message # 1 had been gotten and its Get() will grab message # 2? |
MQ regulates all this and you are thread safe. So you will not grab any msg that is currently being processed. This is the basis of scalability. No necessity for additional coding at the app level.
Enjoy  _________________ MQ & Broker admin |
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|
|
|