|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
XA dynamic registration with TXSeries 6.2 |
« View previous topic :: View next topic » |
Author |
Message
|
camauz |
Posted: Wed Jun 25, 2008 8:00 am Post subject: XA dynamic registration with TXSeries 6.2 |
|
|
 Acolyte
Joined: 20 Aug 2007 Posts: 52 Location: Mojan, Italy
|
Dear all,
this is the scenario:
- AIX 5.3
- WebSphere MQ 6.0
- TXSEries 6.2
- Extended Transactional Client (ETC) configured for XA two phase commit support.
TXSeries acts as XA transaction manager for two XA resource managers: WebSphere MQ 6.0 and Oracle DBMD 10.2.
We would like XA static registration for Oracle DBMS and XA dynamic registration for WebSphere MQ.
The result is both Oracle and WebSphere MQ use static registration.
Trying digging the scenario I discovered these facts.
The switch load file is produced with this command:
xlc_r amqzscix.c -I/usr/include -I/usr/lpp/cics/include -e amqzscix -o amqczsc /usr/lpp/cics/lib/regxa_swxa.o –L/usr/mqm/lib -L/usr/lpp/cics/lib -lmqmcs_r -lmqccics_r -lmqcxa_r -lmqiz_r -lcicsrt -lEncina -lpthreads –lsarpc
The source code is "amqzscix" supplied with WebSphere MQ; this is a very trivial program:
- it includes "xa.h" header file supplied with TXSeries
- it references two instances of struct xa_switch_t supplied by "libmqcxa_r.a" (MQRMIXASwitch and MQRMIXASwitchDynamic)
- it retrieves the pointer to MQRMIXASwitchDynamic and assign the reference to an external pointer supplied by TXSeries (cics_xa_switch)
The function contains no logic and perform this unconditioned assignment:
cics_xa_switch = &MQRMIXASwitchDynamic;
It seems WebSphere MQ declare itself as capable of dynamic registration.
I developed a trivial program to inspect the content of the XA switch struct:
#include <string.h>
#include <stdio.h>
#include <tmxa/xa.h>
extern struct xa_switch_t MQRMIXASwitch;
extern struct xa_switch_t MQRMIXASwitchDynamic;
int main(int argc, char *argv[])
{
printf("flags: %d\n", MQRMIXASwitchDynamic.flags);
return 0;
}
compiled with this command:
xlc_r pippo.c -I/usr/lpp/cics/include -o pippo -L/usr/mqm/lib -lmqcxa_r
the result is "3".
Looking at "xa.h", it means:
#define TMREGISTER 0x00000001L /* resource manager dynamically registers */
#define TMNOMIGRATE 0x00000002L /* resource manager does not support association migration */
It should use dynamic registration, but inspecting the TXSeries console, every time an application server starts, it performs Oracle and WebSphere MQ xa_open, even if the application server starts just because you are connecting with a new terminal.
Removing Oracle definition does not change the behaviour: even if WebSphere MQ is the only XA resource manager, every time an application server starts, the xa_open, xa_recover functions are called:
ERZ080088I/0801 06/25/08 17:55:33.766894377 CS1GDIA1 495824/0001 : XA OPEN submitted for Server 102 connected to 'MQSeries_XA_RMI' using XA_OPEN string 'qmname=QS1GD0A1'
ERZ080006I/0801 06/25/08 17:55:33.789942883 CS1GDIA1 495824/0001 : XA_OPEN succeeded: Application Server 102 connected to 'MQSeries_XA_RMI' using XA_OPEN string 'qmname=QS1GD0A1'
ERZ080089I/0801 06/25/08 17:55:33.790465978 CS1GDIA1 495824/0001 : XA OPEN completed for Server 102 connected to 'MQSeries_XA_RMI' using XA_OPEN string 'qmname=QS1GD0A1'
ERZ080090I/0801 06/25/08 17:55:33.790718251 CS1GDIA1 495824/0001 : XA RECOVER submitted for Server 102 connected to 'MQSeries_XA_RMI'
ERZ080091I/0801 06/25/08 17:55:33.791800677 CS1GDIA1 495824/0001 : XA RECOVER completed for Server 102 connected to 'MQSeries_XA_RMI'
The question is: does anyone have any suggestion/idea? Is there someone has experimented similar situations?
Thanks, regards |
|
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
|
|
|
|