ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » General IBM MQ Support » XA dynamic registration with TXSeries 6.2

Post new topic  Reply to topic
 XA dynamic registration with TXSeries 6.2 « View previous topic :: View next topic » 
Author Message
camauz
PostPosted: Wed Jun 25, 2008 8:00 am    Post subject: XA dynamic registration with TXSeries 6.2 Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » General IBM MQ Support » XA dynamic registration with TXSeries 6.2
Jump to:  



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
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.