Author |
Message
|
Steve Tudor |
Posted: Mon Oct 10, 2005 6:35 am Post subject: Reference Messages in a clustered environment |
|
|
Newbie
Joined: 10 Oct 2005 Posts: 7
|
I have just started using MQ and have a newbie question regarding the Reference Message examples.
I have managed to get the Reference Message examples working but they appeared to transfer data extremely slowly, so I have recreated the examples but with the two servers clustered to see if that would improve performance. (I appreciate that this is not the purpose of clustering).
The problem I am havng is that the Message Exits do not seem to be firing and the files are therefore not transferred, although the messages and their corresponding acknowledgements are all correctly handled and appear almost instantly on the destination server.
My question is - Do Message Exits work in a clustered environment i.e. when applied to a cluster-sender or cluster-receiver channel, or does the clustering in some way bypass the process that would normally cause the exits to fire.
I have searched the forum and nobody seems to be doing this. There are some questions about the reference message examples but they all seem to be concerned with getting the original example to work.
Any help would be appreciated. |
|
Back to top |
|
 |
Nigelg |
Posted: Mon Oct 10, 2005 7:06 am Post subject: |
|
|
Grand Master
Joined: 02 Aug 2004 Posts: 1046
|
Msg exits do work in a clustered environment.
Have you specified the exits on the CLUSRCVR channels? The exit name wil lbe copied to the corresponding CLUSSDR, even if the CLUSSDR is manually defined.
You may need to use channel autodef exits to modify the CLUSSDR channel to insert the msg exit name. Do this when the exit is called for MQXR_AUTO_CLUSSDR. _________________ MQSeries.net helps those who help themselves.. |
|
Back to top |
|
 |
Steve Tudor |
Posted: Mon Oct 10, 2005 7:16 am Post subject: |
|
|
Newbie
Joined: 10 Oct 2005 Posts: 7
|
Nigelg wrote: |
Msg exits do work in a clustered environment. |
Thanks for that. At least now I know I'm not wasting my time.
Nigelg wrote: |
Have you specified the exits on the CLUSRCVR channels? The exit name wil lbe copied to the corresponding CLUSSDR, even if the CLUSSDR is manually defined.
You may need to use channel autodef exits to modify the CLUSSDR channel to insert the msg exit name. Do this when the exit is called for MQXR_AUTO_CLUSSDR. |
The exit is specified as a Msg Exit (rather than send or receive) on both the CLUSRCVR channel and the CLUSSDR channel, but it does not appear to work. I had it working with two independant servers and a remote queue definition but it refuses to work now.
Any other ideas? |
|
Back to top |
|
 |
clindsey |
Posted: Mon Oct 10, 2005 9:34 am Post subject: |
|
|
Knight
Joined: 12 Jul 2002 Posts: 586 Location: Dallas, Tx
|
For what it is worth, I have a clustered environment that sends reference messages. I created separate sender-receiver channels to handle the reference messages because of the size of the messages. Then the ref messages do no slow down other more normal traffic. Depending on the complexity of your cluster and how many of the queue managers actually send ref messages, the extra admin for separate channels may or may not be worth the effort.
Charlie |
|
Back to top |
|
 |
Steve Tudor |
Posted: Mon Oct 10, 2005 9:44 am Post subject: |
|
|
Newbie
Joined: 10 Oct 2005 Posts: 7
|
clindsey wrote: |
For what it is worth, I have a clustered environment that sends reference messages. Charlie |
Thanks Charlie. It's actually worth quite a lot to know that someone else is doing this too.
The problem I have, as you may have gathered, is that I can't get my exits to fire and transfer the file data. The rfh headers go across just fine.
Are you using the amqsxrm.dll or have you written your own, and similarly are you using the process amqsgrm.exe or have you written your own.
If anyone can suggest any reason why the exits are not working or any tests that I can perform that would be really useful. |
|
Back to top |
|
 |
clindsey |
Posted: Mon Oct 10, 2005 1:25 pm Post subject: |
|
|
Knight
Joined: 12 Jul 2002 Posts: 586 Location: Dallas, Tx
|
If am doing this on linux and aix servers, but the code is the same as used to build amqsxrm.dll. I actually did some early testing on windows, though.
I modified the code to add some logging for PD. For my early tests, I did use amqsgrm.exe although now our code is integrated into the application. On unix, the exit runs as the mqm user so file permissions have to be set on the directories you are reading from and writing to to give mqm the proper access. That seems to always be an issue when bringing a new server into the mix. This could be an issue on Windows too.
I would recommend setting up COA so that you get get a report msg back. You have to translate the decimal feedback code to hex. Then you can match the error against the feedback codes in amqsxrma.c
You may also want to add some logging to amqsxrma.c and rebuild amqsxrm.dll
Charlie
Charlie |
|
Back to top |
|
 |
Steve Tudor |
Posted: Mon Oct 10, 2005 3:09 pm Post subject: |
|
|
Newbie
Joined: 10 Oct 2005 Posts: 7
|
Thanks Charlie
I really appreciate your input.
The file permissions certainly were an issue a few days ago and I wish I had read your comments then, would have saved me hours of work.
Got the COA working fine, still can't get amqsxrm.dll to do it's thing though.
I will post back if I ever find out what the problem is, for the benefit of anyone else facing the same issue.
All the best.
Steve |
|
Back to top |
|
 |
|