Author |
Message
|
jeevan |
Posted: Thu Nov 16, 2006 5:30 am Post subject: Transactional Client setup in MQ and oracle |
|
|
Grand Master
Joined: 12 Nov 2005 Posts: 1432
|
I need help to identify the xa setup in oracle and mq. I went throught the literature and find a few things. In the qm.ini, we add the following stanza.
Quote: |
XAResourceManager:
|
Also, I figured that initxa.sql script is run at oracle side. We install ETC client in the client app machine. But where can i find who is designed as a TRANSACTION MANAGER( COORDINATOR) and mq is taking part as resourcs manager as well? I would really be grateful for your help, as I could not find this information anywhere.
Thank you very much in advance, |
|
Back to top |
|
 |
jeevan |
Posted: Thu Nov 16, 2006 5:49 am Post subject: |
|
|
Grand Master
Joined: 12 Nov 2005 Posts: 1432
|
Furthermore, I find conflicting stuff while reading about transactional manager.
Quote: |
XA compliant transaction managers
Note:
This section assumes that you have a basic understanding of the XA interface as published by The Open Group in Distributed Transaction Processing: The XA Specification.
To configure an extended transactional client, you must first configure the WebSphere MQ base client as described in Installing client components. Using the information in this section, you can then configure the extended transactional function for an XA compliant transaction manager such as CICS(R) and Tuxedo.
|
Quote: |
This unit of work must be managed by an external transaction manager that is running on the same system as the client application. The unit of work cannot be managed by the queue manager to which the client application is connected. This means that the queue manager can act only as a resource manager, not as a transaction manager. It also means that the client application can commit or back out the unit of work using only the application programming interface (API) provided by the external transaction manager. The client application cannot, therefore, use the MQI calls, MQBEGIN, MQCMIT, and MQBACK.
|
From the above two quote, it seems that we must have extermal transactional manager.
I am so much confused reading about this. Somewhere I also found that mq can work as transactional manager. |
|
Back to top |
|
 |
jefflowrey |
Posted: Thu Nov 16, 2006 6:01 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
MQ can only act as a transactional manager for transactions when the MQ application is using a server binding.
The ETC is intended to be used when something like WAS is available and handling the transactions with the database already and you don't want to colocate a queue manager on the same machine. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
jeevan |
Posted: Thu Nov 16, 2006 7:41 am Post subject: |
|
|
Grand Master
Joined: 12 Nov 2005 Posts: 1432
|
Thank you very much Jeff. I am clear when mq can act as TC and when it can not. But could you please tell me how I know that when i am esamining a new system without documentation. Some one has done that and now I have to fingure out what is acting as TC. I saw two stanza in qm.ini where i can see setup for RM but stil not sure what is TC. There is not WAS, it is not a JMS client and datastage is acting as ETL tool.
Datastage and mq are in the same box.
Thank you very much for you help |
|
Back to top |
|
 |
jefflowrey |
Posted: Thu Nov 16, 2006 7:55 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
I believe that it is only when the Queue Manager is acting as the TC that any changes are made to qm.ini.
In cases where the QM is acting as an RM, then you only configure the TM to know how to talk to MQ, and don't configure MQ to know how to talk to the TM.
So if you see entries in qm.ini about XA, then I believe it is safe to assume that the QM is the TC. And there's nothing in Scenario 2 that talks about changes to qm.ini. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
jeevan |
Posted: Thu Nov 16, 2006 8:20 am Post subject: |
|
|
Grand Master
Joined: 12 Nov 2005 Posts: 1432
|
The qm.ini has XAResourceManager setup for two databases. In between oracle and mq is datastage. The datastage guy is not sure datastage is acting as TC. Also, i could not find any literature what says datastage can act as TC. Doe this mean i should conclude that mq is acting as TC.
all the team member ( 4 us of ) belive mq is working as TC. I am still not sure but need to come up with yes or not.
Also, do you have any idea, that in case of loadbalancing scenario in oracle, can the xa talk to one ( loadbalancer) or should talk to boht databases in both machine?
Thank you very much for your input |
|
Back to top |
|
 |
jefflowrey |
Posted: Thu Nov 16, 2006 8:55 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Again, my best guess is that if you have XA configuration in the qm.ini, then MQ has to be acting as the TC.
But I'm not positive.
If you're dealing with Oracle RAC and MQ XA, you are treading in unmapped waters. Your best bet is to carefully review the XAOpen string with a compentent Oracle DBA. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
jeevan |
Posted: Thu Nov 16, 2006 9:07 am Post subject: |
|
|
Grand Master
Joined: 12 Nov 2005 Posts: 1432
|
The oracleopen string in qm.ini is as follows:
Quote: |
XAOpenString=Oracle_XA+Acc=P/xxxxxxxx/xxxxxxxx+SesTm=35+LogDir=/tmp+DB=yyyyyy+sqlNet=yyyyyy+threads=true
|
This does not tell about TC. and as i already said, qm.ini does have only two stanza where only two databases are configured.
Any further idea where I can explore. The xa client document does not tell about configuring TC at all.
thanks in advance |
|
Back to top |
|
 |
jefflowrey |
Posted: Thu Nov 16, 2006 9:10 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
To be clearer, my opinion is that if there is *any* XA stuff in qm.ini, then MQ *is* the TC.
I'm not a competant Oracle DBA. I can't tell you if your XAOpen string is configured to allow Oracle RAC failover to occur. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
mvic |
Posted: Thu Nov 16, 2006 3:13 pm Post subject: |
|
|
 Jedi
Joined: 09 Mar 2004 Posts: 2080
|
jefflowrey wrote: |
Again, my best guess is that if you have XA configuration in the qm.ini, then MQ has to be acting as the TC.
But I'm not positive. |
You are correct Jeff. (Surprise, surprise) But one extra condition: for MQ to be TC you have to use MQBEGIN in the app.
If there are XAResourceManager stanzas in qm.ini (or equivalent on Windows) MQ will attempt to call the database XA functions during user calls to MQBEGIN. After MQBEGIN is called, a subsequent call to MQCMIT or MQBACK on the same HConn will also cause MQ to make XA calls on the database. |
|
Back to top |
|
 |
jeevan |
Posted: Thu Nov 16, 2006 3:46 pm Post subject: |
|
|
Grand Master
Joined: 12 Nov 2005 Posts: 1432
|
Mvic,
Yes, the datastage app calls MQBEGIN, MQCOMIT, and ROLLBACK ( if transaction fails).
With this, can I conclude that MQ is working as TC. Sorry for ignorance. As I said, datastage is residing on the same box, and qm.ini has stanza for XAResourceManager.
Thank both of you for your input |
|
Back to top |
|
 |
|