WebSphere MQ is a proprietary commercial product supplied by IBM Corporation: the LIXA project tested its behavior when managed by LIXA Transaction Manager using a trial copy. At the time of this writing, the author does not know if a reduced “express” or “community” edition exists. If you are interested in LIXA and WebSphere MQ you probably already have a valid license to run the software supplied by IBM.
WebSphere MQ is a special type of Resource Manager because:
it can work as a Transaction Manager as well as a Resource Manager; LIXA does not use WebSphere MQ as a Transaction Manager, but only as a Resource Manager. If you were interested in the Transaction Manager feature of WebSphere MQ, you should stop this reading and go to the IBM official documentation
the WebSphere MQ Resource Manager can be interfaced by a standard XA Transaction Manager using two different configurations: server (bind) and Extended Transactional Client
To use this mode, the WebSphere MQ queue manager used by your Application Program must reside inside the same host of your Application Program: the communication between your Application Program and the queue manager uses interprocess communication (UNIX System V IPC). The interface is really fast, but you can not travel a network (LAN/MAN/WAN) using it. If your Application Program and the queue manager are hosted by different systems, you will have to use the ETC mode.
You can use this mode every time your Application Program can reach the desired queue manager using a network: it's usually an IP network, but WebSphere MQ gives you different choices if you have to deal with some special non IP based environment like a SNA network.
You should pay attention the Extended Transactional Client (ETC) is not a basic client: you must install a specific package and you must pay a specific license to use it. This is not an IBM site, contact your IBM vendor to pick-up all the necessary information.
The basic/standard WebSphere MQ client can not be used in conjunction with LIXA because it does not support the XA protocol.
You must not configure and build LIXA to use WebSphere with server/bind mode and build your Application Program to use WebSphere with ETC mode, or vice versa. If you did it, you would catch unexpected behaviors.
The LIXA software must be configured to support the WebSphere MQ Resource Manager as explained in the section called “Linking third party resource managers”.
LIXA project provides lixa-config to retrieve how the LIXA was configured and built:
[Shell terminal session] |
[tiian@centos lixa]$ /opt/lixa/bin/lixa-config --rsrc-mngrs DB2 no MySQL yes Oracle no PostgreSQL yes WebSphereMQ yes (ETC) |
This example was developed using WebSphere MQ 7.1 for Linux (32 bit) and CentOS 6.2 (32 bit).
If you did not yet installed the software, please refer to IBM official documentation. You should need at least these packages for server/bind mode:
MQSeriesServer
MQSeriesSDK
MQSeriesRuntime
You should need at least these packages for ETC mode:
MQSeriesTXClient
MQSeriesSDK
MQSeriesRuntime
MQSeriesJava
These are the necessary configuration steps to create the environment
to run the supplied example (example12_wmq.c
).
First, you must set the correct environment for your shell:
[Shell terminal session] |
[tiian@centos manuals]$ su - Password: [tiian@centos manuals]$ cd [tiian@centos ~]$ su - Password: [root@centos ~]# su - mqm -bash-4.1$ . /opt/mqm71/bin/setmqenv -s -bash-4.1$ dspmqver Name: WebSphere MQ Version: 7.1.0.0 Level: p000-L111024 BuildType: IKAP - (Production) Platform: WebSphere MQ for Linux (x86 platform) Mode: 32-bit O/S: Linux 2.6.32-220.el6.i686 InstName: Installation1 InstDesc: InstPath: /opt/mqm71 DataPath: /var/mqm Primary: No MaxCmdLevel: 710 |
I installed the product in /opt/mqm71
:
adjust the command to reflect your real installation path.
Create a queue manager named “LIXA” and start it:
[Shell terminal session] |
-bash-4.1$ crtmqm LIXA There are 90 days left in the trial period for this copy of WebSphere MQ. WebSphere MQ queue manager created. Directory '/var/mqm/qmgrs/LIXA' created. The queue manager is associated with installation 'Installation1'. Creating or replacing default objects for queue manager 'LIXA'. Default objects statistics : 71 created. 0 replaced. 0 failed. Completing setup. Setup completed. -bash-4.1$ strmqm LIXA There are 90 days left in the trial period for this copy of WebSphere MQ. WebSphere MQ queue manager 'LIXA' starting. The queue manager is associated with installation 'Installation1'. 5 log records accessed on queue manager 'LIXA' during the log replay phase. Log replay for queue manager 'LIXA' complete. Transaction manager state recovered for queue manager 'LIXA'. WebSphere MQ queue manager 'LIXA' started using V7.1.0.0. |
Create a test queue named “LIXA.QLOCAL”
[Shell terminal session] |
-bash-4.1$ runmqsc LIXA 5724-H72 (C) Copyright IBM Corp. 1994, 2011. ALL RIGHTS RESERVED. Starting MQSC for queue manager LIXA. DEFINE QLOCAL(LIXA.QLOCAL) 1 : DEFINE QLOCAL(LIXA.QLOCAL) AMQ8006: WebSphere MQ queue created. end 2 : end One MQSC command read. No commands have a syntax error. All valid MQSC commands were processed. |
try to put/get a message into/from it using your own user
(mine is lixa
):
[Shell terminal session] |
[tiian@centos ~]$ . /opt/mqm71/bin/setmqenv -s [tiian@centos ~]$ cd /opt/mqm71/samp/bin [tiian@centos bin]$ ./amqsput LIXA.QLOCAL LIXA Sample AMQSPUT0 start target queue is LIXA.QLOCAL This is a test message Sample AMQSPUT0 end [tiian@centos bin]$ ./amqsget LIXA.QLOCAL LIXA Sample AMQSGET0 start message <This is a test message> no more messages Sample AMQSGET0 end |
Please refer to IBM documentation for runmqsc, amqsput, amqsget commands.
Now you can create the definition necessary for WebSphere MQ client
mode. First, authorize your user to connect to the queue manager
using a user not connected to
mqm
group
(change tiian
with your
own user):
[Shell terminal session] |
-bash-4.1$ runmqsc LIXA 5724-H72 (C) Copyright IBM Corp. 1994, 2011. ALL RIGHTS RESERVED. Starting MQSC for queue manager LIXA. DISPLAY QMGR CHLAUTH 1 : DISPLAY QMGR CHLAUTH AMQ8408: Display Queue Manager details. QMNAME(LIXA) CHLAUTH(ENABLED) SET AUTHREC OBJTYPE(QMGR) PRINCIPAL('tiian') AUTHADD(CONNECT) 2 : SET AUTHREC OBJTYPE(QMGR) PRINCIPAL('tiian') AUTHADD(CONNECT) AMQ8862: WebSphere MQ authority record set. SET AUTHREC PROFILE(LIXA.QLOCAL) OBJTYPE(QUEUE) PRINCIPAL('tiian') AUTHADD(PUT,GET) 3 : SET AUTHREC PROFILE(LIXA.QLOCAL) OBJTYPE(QUEUE) PRINCIPAL('tiian') AUTHADD(PUT,GET) AMQ8862: WebSphere MQ authority record set. end 4 : end 3 MQSC commands read. No commands have a syntax error. All valid MQSC commands were processed. |
Then create a connection channel, authorize it to your user
(change tiian
) and
a listener:
[Shell terminal session] |
-bash-4.1$ runmqsc LIXA 5724-H72 (C) Copyright IBM Corp. 1994, 2011. ALL RIGHTS RESERVED. Starting MQSC for queue manager LIXA. DEFINE CHANNEL (LIXA.CHANNEL) CHLTYPE (SVRCONN) TRPTYPE (TCP) 1 : DEFINE CHANNEL (LIXA.CHANNEL) CHLTYPE (SVRCONN) TRPTYPE (TCP) AMQ8014: WebSphere MQ channel created. SET CHLAUTH(LIXA.CHANNEL) TYPE(ADDRESSMAP) ADDRESS('127.0.0.1') MCAUSER('tiian') 2 : SET CHLAUTH(LIXA.CHANNEL) TYPE(ADDRESSMAP) ADDRESS('127.0.0.1') MCAUSER('tiian') AMQ8877: WebSphere MQ channel authentication record set. DEFINE LISTENER (LIXA.LISTENER) TRPTYPE (TCP) CONTROL (QMGR) PORT(1414) 3 : DEFINE LISTENER (LIXA.LISTENER) TRPTYPE (TCP) CONTROL (QMGR) PORT(1414) AMQ8626: WebSphere MQ listener created. START LISTENER(LIXA.LISTENER) 4 : START LISTENER(LIXA.LISTENER) AMQ8021: Request to start WebSphere MQ listener accepted. end 5 : end 4 MQSC commands read. No commands have a syntax error. All valid MQSC commands were processed. |
Now you can try the TCP/IP client connection using
your own user (mine is
tiian
):
[Shell terminal session] |
[tiian@centos ~]$ export MQSERVER=LIXA.CHANNEL/TCP/'127.0.0.1(1414)' [tiian@centos ~]$ echo $MQSERVER LIXA.CHANNEL/TCP/127.0.0.1(1414) [tiian@centos ~]$ cd /opt/mqm71/samp/bin [tiian@centos bin]$ . /opt/mqm71/bin/setmqenv -s [tiian@centos bin]$ ./amqsputc LIXA.QLOCAL LIXA Sample AMQSPUT0 start target queue is LIXA.QLOCAL This is a test message (from client) Sample AMQSPUT0 end [tiian@centos bin]$ ./amqsgetc LIXA.QLOCAL LIXA Sample AMQSGET0 start message <This is a test message (from client)> no more messages Sample AMQSGET0 end |
Please refer to IBM documentation for runmqsc, amqsputc, amqsgetc commands.
OK, the “LIXA.QLOCAL” local queue was created and it's usable. If something went wrong, you should refer to WebSphere MQ documentation to fix the issue before the next step because you would not be able to execute the sample program without a basic running installation.
Start the state server as shown below:
[Shell terminal session] |
[tiian@centos ~]$ su - Password: [root@centos ~]# su - lixa [lixa@centos ~]$ /opt/lixa/sbin/lixad --daemon [lixa@centos ~]$ exit logout [root@centos ~]# exit logout [tiian@centos ~]$ ps -ef|grep lixad|grep -v grep lixa 3589 1 0 12:30 ? 00:00:00 /opt/lixa/sbin/lixad --daemon |
Prepare the client (Application Program) using the below commands (gcc command was splitted on several lines using \ to help readability, but you may use a single line):
[Shell terminal session] |
[tiian@centos ~]$ mkdir tmp [tiian@centos ~]$ cd tmp [tiian@centos tmp]$ cp /opt/lixa/share/doc/lixa-X.Y.Z/examples/example12_wmq.c . [tiian@centos tmp]$ /opt/lixa/bin/lixa-config -r|grep WebSphereMQ WebSphereMQ yes (SRV) [tiian@centos tmp]$ gcc example12_wmq.c $(/opt/lixa/bin/lixa-config -c -f -l -d) \ > -I/opt/mqm71/inc -L/opt/mqm71/lib -Wl,-rpath=/opt/mqm71/lib \ > -lmqm_r -o example12_wmq |
Verify the executable produced by gcc:
[Shell terminal session] |
[tiian@centos tmp]$ ldd example12_wmq linux-gate.so.1 => (0x00852000) liblixac.so.0 => /opt/lixa/lib/liblixac.so.0 (0x00cfc000) libmqm_r.so => /opt/mqm71/lib/libmqm_r.so (0x00a7f000) libc.so.6 => /lib/libc.so.6 (0x00110000) libgmodule-2.0.so.0 => /lib/libgmodule-2.0.so.0 (0x00da2000) libgthread-2.0.so.0 => /lib/libgthread-2.0.so.0 (0x00da8000) librt.so.1 => /lib/librt.so.1 (0x00bca000) libglib-2.0.so.0 => /lib/libglib-2.0.so.0 (0x00bd5000) libxml2.so.2 => /usr/lib/libxml2.so.2 (0x02d3c000) liblixab.so.0 => /opt/lixa/lib/liblixab.so.0 (0x00daf000) libm.so.6 => /lib/libm.so.6 (0x00b9e000) libpthread.so.0 => /lib/libpthread.so.0 (0x00b81000) libmqe_r.so => /opt/mqm71/lib/libmqe_r.so (0xb6f70000) libdl.so.2 => /lib/libdl.so.2 (0x00b7a000) /lib/ld-linux.so.2 (0x009c2000) libz.so.1 => /lib/libz.so.1 (0x00ce1000) libuuid.so.1 => /lib/libuuid.so.1 (0x0076f000) |
Set-up the LIXA_PROFILE
environment variable:
[Shell terminal session] |
[tiian@centos tmp]$ echo $LIXA_PROFILE [tiian@centos tmp]$ export LIXA_PROFILE=MQS_DYN [tiian@centos tmp]$ echo $LIXA_PROFILE MQS_DYN |
We set LIXA_PROFILE
to value
“MQS_DYN”, looking at
/opt/lixa/etc/lixac_conf.xml
:
<profile name="MQS_DYN"> <sttsrvs> <sttsrv>local_1</sttsrv> </sttsrvs> <rsrmgrs> <rsrmgr>WSMQ_SRV_dynreg</rsrmgr> </rsrmgrs> </profile>
the profile references the Resource Manager named “WSMQ_SRV_dynreg”, looking again at the config file:
<rsrmgr name="WSMQ_SRV_dynreg" switch_file="/opt/lixa/lib/switch_wsmq_dynreg.so" xa_open_info="axlib=/opt/lixa/lib/liblixac.so,qmname=LIXA,tpm=lixa" xa_close_info="" />
we can discover how the WebSphere MQ Resource Manager is configured for XA [37].
[Shell terminal session] |
[tiian@centos tmp]$ ls -la total 116 drwxrwxr-x 2 tiian tiian 4096 Mar 16 17:04 . drwx------ 8 tiian tiian 4096 Mar 16 13:10 .. -rwxrwxr-x 1 tiian tiian 9587 Mar 16 17:04 example12_wmq -rw-r--r-- 1 tiian tiian 5342 Mar 16 13:13 example12_wmq.c |
Retrieve all the messages from “LIXA.QLOCAL” queue before program execution:
[Shell terminal session] |
[tiian@centos tmp]$ . /opt/mqm71/bin/setmqenv -s [tiian@centos tmp]$ /opt/mqm71/samp/bin/amqsget LIXA.QLOCAL LIXA Sample AMQSGET0 start no more messages Sample AMQSGET0 end |
Execute the program:
[Shell terminal session] |
[tiian@centos tmp]$ ./example12_wmq insert target queue is LIXA.QLOCAL Message inserted in queue LIXA.QLOCAL: 'Test message for LIXA' |
Check the content of the queue:
[Shell terminal session] |
[tiian@centos tmp]$ /opt/mqm71/samp/bin/amqsget LIXA.QLOCAL LIXA Sample AMQSGET0 start message <Test message for LIXA> no more messages Sample AMQSGET0 end |
Now you can try to remove a message inserted with the standard utility:
[Shell terminal session] |
[tiian@centos tmp]$ /opt/mqm71/samp/bin/amqsput LIXA.QLOCAL LIXA Sample AMQSPUT0 start target queue is LIXA.QLOCAL This is a sample message from the keyboard! Sample AMQSPUT0 end [tiian@centos tmp]$ ./example12_wmq delete target queue is LIXA.QLOCAL Message retrieved from queue LIXA.QLOCAL: 'This is a sample message from the keyboard!' |
you can verify in file
/opt/lixa/etc/lixac_conf.xml
that “MQS_DYN” is associated to dynamic registration.
Execute the program enabling trace:
[Shell terminal session] |
[tiian@centos tmp]$ export LIXA_TRACE_MASK=0x00002000 [tiian@centos tmp]$ echo $LIXA_TRACE_MASK 0x00002000 [tiian@centos tmp]$ ./example12_wmq insert 2>&1 | grep ax_reg 2012-03-16 18:36:23.500382 [14774/3078875408] ax_reg: rmid=0, xid=0xbffaf630, flags=0x0 2012-03-16 18:36:23.500581 [14774/3078875408] ax_reg: the application program has started a transaction (TX states S3); this XID '1279875137.846a8fdfe2204b11ac85586a13fc0348.9a910775bb747f3c157021d6a03a7b31' will be returned 2012-03-16 18:36:23.501290 [14774/3078875408] ax_reg: sending 153 bytes to the server for step 8 2012-03-16 18:36:23.501965 [14774/3078875408] ax_reg/excp=7/ret_cod=0/errno=1 |
Changing LIXA_PROFILE
you can try the static
registration as well:
[Shell terminal session] |
[tiian@centos tmp]$ export LIXA_PROFILE=MQS_STA [tiian@centos tmp]$ echo $LIXA_PROFILE MQC_STA [tiian@centos tmp]$ ./example12_wmq delete 2>&1 | grep xa_start 2012-03-16 18:38:08.942458 [14784/3078269200] lixa_xa_start 2012-03-16 18:38:08.942644 [14784/3078269200] lixa_xa_start: sending 213 bytes to the server for step 8 [...] 2012-03-16 18:38:08.946569 [14784/3078269200] lixa_xa_start: xa_start_entry(xid, 0, 0x0) = 0 2012-03-16 18:38:08.947188 [14784/3078269200] lixa_xa_start: sending 210 bytes to the server for step 24 2012-03-16 18:38:08.947521 [14784/3078269200] lixa_xa_start/excp=10/ret_cod=0/errno=1 |
To try tx_rollback()
you have to slightly
change the sample program:
[original example12_wmq.c] |
[...] if (TX_OK != (txrc = tx_commit())) { fprintf(stderr, "tx_commit error: %d\n", txrc); exit(txrc); } /* if (TX_OK != (txrc = tx_rollback())) { fprintf(stderr, "tx_rollback error: %d\n", txrc); exit(txrc); } */ [...] |
move the comment from tx_rollback()
function
block to tx_rollback()
function block:
[modified example12_wmq.c] |
[...] /* if (TX_OK != (txrc = tx_commit())) { fprintf(stderr, "tx_commit error: %d\n", txrc); exit(txrc); } */ if (TX_OK != (txrc = tx_rollback())) { fprintf(stderr, "tx_rollback error: %d\n", txrc); exit(txrc); } [...] |
Compile it again and try the modified example:
[Shell terminal session] |
[tiian@centos tmp]$ gcc example12_wmq.c $(/opt/lixa/bin/lixa-config -c -f -l -d) \ > -I/opt/mqm71/inc -L/opt/mqm71/lib -Wl,-rpath=/opt/mqm71/lib \ > -lmqm_r -o example12_wmq |
Verify the queue is empty, execute the sample program, verify the queue is empty again:
[Shell terminal session] |
[tiian@centos tmp]$ unset LIXA_TRACE_MASK [tiian@centos tmp]$ /opt/mqm71/samp/bin/amqsget LIXA.QLOCAL LIXA Sample AMQSGET0 start no more messages Sample AMQSGET0 end [tiian@centos tmp]$ ./example12_wmq insert target queue is LIXA.QLOCAL Message inserted in queue LIXA.QLOCAL: 'Test message for LIXA' [tiian@centos tmp]$ /opt/mqm71/samp/bin/amqsget LIXA.QLOCAL LIXA Sample AMQSGET0 start no more messages Sample AMQSGET0 end |
Restore example12_wmq.c
to the original state.
Prepare the client (Application Program) using the below commands (gcc command was splitted on several lines using \ to help readability, but you may use a single line):
[Shell terminal session] |
[tiian@centos ~]$ mkdir tmp [tiian@centos ~]$ cd tmp [tiian@centos tmp]$ cp /opt/lixa/share/doc/lixa-X.Y.Z/examples/example12_wmq.c . [tiian@centos tmp]$ /opt/lixa/bin/lixa-config -r|grep WebSphereMQ WebSphereMQ yes (ETC) [tiian@centos tmp]$ gcc example12_wmq.c $(/opt/lixa/bin/lixa-config -c -f -l -d) \ > -I/opt/mqm71/inc -L/opt/mqm71/lib -Wl,-rpath=/opt/mqm71/lib \ > -lmqic_r -o example12_wmq |
Verify the executable produced by gcc:
[Shell terminal session] |
[tiian@centos tmp]$ ldd example12_wmq linux-gate.so.1 => (0x00d50000) liblixac.so.0 => /opt/lixa/lib/liblixac.so.0 (0x00dfd000) libmqic_r.so => /opt/mqm71/lib/libmqic_r.so (0x0021a000) libc.so.6 => /lib/libc.so.6 (0x009e8000) libgmodule-2.0.so.0 => /lib/libgmodule-2.0.so.0 (0x00da2000) libgthread-2.0.so.0 => /lib/libgthread-2.0.so.0 (0x00da8000) librt.so.1 => /lib/librt.so.1 (0x00bca000) libglib-2.0.so.0 => /lib/libglib-2.0.so.0 (0x00bd5000) libxml2.so.2 => /usr/lib/libxml2.so.2 (0x02d3c000) liblixab.so.0 => /opt/lixa/lib/liblixab.so.0 (0x008f3000) libm.so.6 => /lib/libm.so.6 (0x00b9e000) libpthread.so.0 => /lib/libpthread.so.0 (0x00b81000) libmqe_r.so => /opt/mqm71/lib/libmqe_r.so (0x00e16000) libdl.so.2 => /lib/libdl.so.2 (0x00b7a000) /lib/ld-linux.so.2 (0x009c2000) libz.so.1 => /lib/libz.so.1 (0x00ce1000) libuuid.so.1 => /lib/libuuid.so.1 (0x0076f000) |
Set-up the LIXA_PROFILE
environment variable:
[Shell terminal session] |
[tiian@centos tmp]$ echo $LIXA_PROFILE [tiian@centos tmp]$ export LIXA_PROFILE=MQC_DYN [tiian@centos tmp]$ echo $LIXA_PROFILE MQC_DYN |
We set LIXA_PROFILE
to value
“MQC_DYN”, looking at
/opt/lixa/etc/lixac_conf.xml
:
<profile name="MQC_DYN"> <sttsrvs> <sttsrv>local_1</sttsrv> </sttsrvs> <rsrmgrs> <rsrmgr>WSMQ_ETC_dynreg</rsrmgr> </rsrmgrs> </profile>
the profile references the Resource Manager named “WSMQ_ETC_dynreg”, looking again at the config file:
<rsrmgr name="WSMQ_ETC_dynreg" switch_file="/opt/lixa/lib/switch_wsmq_dynreg.so" xa_open_info="axlib=/opt/lixa/lib/liblixac.so,channel=LIXA.CHANNEL,trptype=tcp,conname=127.0.0.1(1414),qmname=LIXA,tpm=lixa" xa_close_info="" />
we can discover how the WebSphere MQ Resource Manager is configured for XA [38].
[Shell terminal session] |
[tiian@centos tmp]$ ls -la total 116 drwxrwxr-x 2 tiian tiian 4096 Mar 16 17:04 . drwx------ 8 tiian tiian 4096 Mar 16 13:10 .. -rwxrwxr-x 1 tiian tiian 9587 Mar 16 17:04 example12_wmq -rw-r--r-- 1 tiian tiian 5342 Mar 16 13:13 example12_wmq.c |
Retrieve all the messages from “LIXA.QLOCAL” queue before program execution:
[Shell terminal session] |
[tiian@centos tmp]$ . /opt/mqm71/bin/setmqenv -s [tiian@centos tmp]$ export MQSERVER=LIXA.CHANNEL/TCP/'127.0.0.1(1414)' [tiian@centos tmp]$ /opt/mqm71/samp/bin/amqsgetc LIXA.QLOCAL LIXA Sample AMQSGET0 start no more messages Sample AMQSGET0 end |
Execute the program:
[Shell terminal session] |
[tiian@centos tmp]$ ./example12_wmq insert target queue is LIXA.QLOCAL Message inserted in queue LIXA.QLOCAL: 'Test message for LIXA' |
Check the content of the queue:
[Shell terminal session] |
[tiian@centos tmp]$ /opt/mqm71/samp/bin/amqsgetc LIXA.QLOCAL LIXA Sample AMQSGET0 start message <Test message for LIXA> no more messages Sample AMQSGET0 end |
Now you can try to remove a message inserted with the standard utility:
[Shell terminal session] |
[tiian@centos tmp]$ /opt/mqm71/samp/bin/amqsputc LIXA.QLOCAL LIXA Sample AMQSPUT0 start target queue is LIXA.QLOCAL This is a sample message from the keyboard! Sample AMQSPUT0 end [tiian@centos tmp]$ ./example12_wmq delete target queue is LIXA.QLOCAL Message retrieved from queue LIXA.QLOCAL: 'This is a sample message from the keyboard!' |
you can verify in file
/opt/lixa/etc/lixac_conf.xml
that “MQC_DYN” is associated to dynamic registration.
Execute the program:
[Shell terminal session] |
[tiian@centos tmp]$ export LIXA_TRACE_MASK=0x00002000 [tiian@centos tmp]$ echo $LIXA_TRACE_MASK 0x00002000 [tiian@centos tmp]$ ./example12_wmq insert 2>&1 | grep ax_reg 2012-03-16 18:17:06.108362 [2793/3077654800] ax_reg: rmid=0, xid=0xbfb4d59c, flags=0x0 2012-03-16 18:17:06.108566 [2793/3077654800] ax_reg: the application program has started a transaction (TX states S3); this XID '1279875137.70797228836149378b6fd6a315481425.80e88a292250da8f8b2ee3a5959e8650' will be returned 2012-03-16 18:17:06.109221 [2793/3077654800] ax_reg: sending 153 bytes to the server for step 8 2012-03-16 18:17:06.109926 [2793/3077654800] ax_reg/excp=7/ret_cod=0/errno=2 |
Changing LIXA_PROFILE
you can try the static
registration as well:
[Shell terminal session] |
[tiian@centos tmp]$ export LIXA_PROFILE=MQC_STA [tiian@centos tmp]$ echo $LIXA_PROFILE MQC_STA [tiian@centos tmp]$ ./example12_wmq delete 2>&1 | grep xa_start 2012-03-16 18:18:59.302555 [2806/3078256912] lixa_xa_start 2012-03-16 18:18:59.302831 [2806/3078256912] lixa_xa_start: sending 213 bytes to the server for step 8 [...] 2012-03-16 18:18:59.307208 [2806/3078256912] lixa_xa_start: xa_start_entry(xid, 0, 0x0) = 0 2012-03-16 18:18:59.307373 [2806/3078256912] lixa_xa_start: sending 210 bytes to the server for step 24 2012-03-16 18:18:59.308103 [2806/3078256912] lixa_xa_start/excp=10/ret_cod=0/errno=2 |