|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
API-exit on Remote and Transmit Queues |
« View previous topic :: View next topic » |
Author |
Message
|
yashgt |
Posted: Thu Nov 26, 2015 1:37 pm Post subject: API-exit on Remote and Transmit Queues |
|
|
Apprentice
Joined: 11 Nov 2014 Posts: 38
|
Hi,
I have created an API exit library and defined the Get After and Put After functions. I have a Remote-Local MQ setup. The API exit only logs a message to a file whether the function is called.
I have observed that this works only on the Local Queue but not the Remote Queue and the Transmit Queue. Is there any way I can get it to work on these queues?
Thanks,
Yash |
|
Back to top |
|
 |
fjb_saper |
Posted: Thu Nov 26, 2015 5:17 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
You're not specific enough in your descriptions.
a) What does not work? Be very specific here. Like user exit does not get invoked when... xyz and (tvf or zk) etc...
b) How would you like it to work?
c) What is your assumption why it did not work? _________________ MQ & Broker admin |
|
Back to top |
|
 |
yashgt |
Posted: Fri Nov 27, 2015 7:09 am Post subject: |
|
|
Apprentice
Joined: 11 Nov 2014 Posts: 38
|
Observation:
The Get After and Put After functions get called when the API exit library is applied on the Queue Manager that hosts the local queues.
If I Put a message on the remote queue, it lands into the local queue. At this time, I see messages being logged from the Put After function.
When a component consumes from the local queue, I see Get After function being called.
However,
When a message is put on the remote queue, the Put After is not called. I do not see the log messages being printed from the Put After, even though the API exit library is configured for the queue manager.
Expectation:
The Get AFter and Put After functions should work for both remote and local queue. The Put After should get invoked when a message a PUT on the remote queue.
I am not sure why it does not work as expected. |
|
Back to top |
|
 |
bruce2359 |
Posted: Fri Nov 27, 2015 8:25 am Post subject: |
|
|
 Poobah
Joined: 05 Jan 2008 Posts: 9469 Location: US: west coast, almost. Otherwise, enroute.
|
yashgt wrote: |
Observation:
The Get After and Put After functions get called when the API exit library is applied on the Queue Manager that hosts the local queues. |
So, the same exit code is installed on both the originating qmgr AND the destination qmgr? Which qmgr hosts which local queues? I'm a bit confused.
yashgt wrote: |
If I Put a message on the remote queue, it lands into the local queue. |
For precision and clarity, a message put to a QRemote definition on the originating qmgr, the msg lands on the QLocal transmission queue on the originating qmgr.
A QRemote definition is not a queue. The only queue type that can hold a message is a QLocal. When a QRemote definition is MQOPENed, the resolved object name is the QLocal transmission queue.
yashgt wrote: |
At this time, I see messages being logged from the Put After function.
When a component consumes from the local queue, I see Get After function being called.
However,
When a message is put on the remote queue, the Put After is not called. I do not see the log messages being printed from the Put After, even though the API exit library is configured for the queue manager.
Expectation:
The Get AFter and Put After functions should work for both remote and local queue. The Put After should get invoked when a message a PUT on the remote queue.
I am not sure why it does not work as expected. |
Please re-post this, identifying on which qmgr (originating or destination) you observe each behavior. _________________ I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live.
Last edited by bruce2359 on Fri Nov 27, 2015 10:51 am; edited 1 time in total |
|
Back to top |
|
 |
yashgt |
Posted: Fri Nov 27, 2015 10:51 am Post subject: |
|
|
Apprentice
Joined: 11 Nov 2014 Posts: 38
|
The setup is like:
App1-> PUT -> QM1(RQ1) -> QM2(LQ1) -> GET ->App2
On both Queue Managers, I have the Same API Exit library applied.
Observation:
The Get After and Put After functions get called when the API exit library is applied on the Queue Manager that hosts the local queues. Let us call it QM1.
If I Put a message on the remote queue(RQ1), it lands into the local queue(LQ1) on the other QUeue Manager(QM2). At this time, I see messages being logged from the Put After function on QM2.
When a component consumes from the local queue(LQ1), I see Get After function being called on QM2.
However,
When a message is put on the remote queue(RQ1), the Put After is not called on QM1. I do not see the log messages being printed from the Put After, even though the API exit library is configured for the queue manager(QM1).
Expectation:
The API Exit functions should work for both remote and local queue. The Put After should get invoked when a message is PUT on the remote queue(RQ1).
I am not sure why it does not work as expected. |
|
Back to top |
|
 |
bruce2359 |
Posted: Fri Nov 27, 2015 11:04 am Post subject: |
|
|
 Poobah
Joined: 05 Jan 2008 Posts: 9469 Location: US: west coast, almost. Otherwise, enroute.
|
yashgt wrote: |
The setup is like:
App1-> PUT -> QM1(RQ1) -> QM2(LQ1) -> GET ->App2 |
Post the definition of RQ1. It is a QRemote, yes?
yashgt wrote: |
On both Queue Managers, I have the Same API Exit library applied. |
And, you have configured the mq.ini file on BOTH qmgrs to enable the exit?
yashgt wrote: |
Observation:
The Get After and Put After functions get called when the API exit library is applied on the Queue Manager that hosts the local queues. Let us call it QM1.
If I Put a message on the remote queue(RQ1), it lands into the local queue(LQ1) on the other QUeue Manager(QM2). At this time, I see messages being logged from the Put After function on QM2.
When a component consumes from the local queue(LQ1), I see Get After function being called on QM2.
However,
When a message is put on the remote queue(RQ1), the Put After is not called on QM1. I do not see the log messages being printed from the Put After, even though the API exit library is configured for the queue manager(QM1).
Expectation:
The API Exit functions should work for both remote and local queue. The Put After should get invoked when a message is PUT on the remote queue(RQ1).
I am not sure why it does not work as expected. |
So, are you saying that
- the message successfully leaves QM1, and arrives successfully on QM2,
- but you see no output from the exit on QM1?
If you see output from the exit on QM2, but no output on QM1, I'd suspect that QM1 is not configured correctly. Compare qm.ini files from BOTH QM1 and QM2. Post them, if you like. _________________ I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live. |
|
Back to top |
|
 |
fjb_saper |
Posted: Fri Nov 27, 2015 3:40 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Did you configure the exit on QM1 to trigger for the transmission queue?  _________________ 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
|
|
|
|