Copy file EXAMPLE1.cob
in your working dir:
[Shell terminal session] |
tiian@ubuntu1404-64:/tmp$ cp /opt/lixa/share/doc/lixa-X.Y.Z/examples/cobol/EXAMPLE1.cob . |
Substitute “lixa-X.Y.Z” with the actual version of the software you installed.
Set up your shell environment:
[Shell terminal session] |
tiian@ubuntu1404-64:/tmp$ export PATH=$PATH:/opt/lixa/bin tiian@ubuntu1404-64:/tmp$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/lixa/lib tiian@ubuntu1404-64:/tmp$ export COB_LDFLAGS=-Wl,--no-as-needed |
Compile and link the COBOL example program:
[Shell terminal session] |
tiian@ubuntu1404-64:/tmp$ cobc -x $(lixa-config -f -l) EXAMPLE1.cob |
Check the output of the linker:
[Shell terminal session] |
tiian@ubuntu1404-64:/tmp$ ldd EXAMPLE1 linux-vdso.so.1 => (0x00007fffbd9fe000) libcob.so.1 => /usr/lib/libcob.so.1 (0x00007fe904068000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fe903d62000) libgmp.so.10 => /usr/lib/x86_64-linux-gnu/libgmp.so.10 (0x00007fe903aed000) libncurses.so.5 => /lib/x86_64-linux-gnu/libncurses.so.5 (0x00007fe9038ca000) libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007fe9036a1000) libdb-5.3.so => /usr/lib/x86_64-linux-gnu/libdb-5.3.so (0x00007fe9032fe000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fe9030fa000) liblixac.so.0 => /opt/lixa/lib/liblixac.so.0 (0x00007fe902edf000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fe902b19000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fe9028fb000) /lib64/ld-linux-x86-64.so.2 (0x00007fe9042a6000) libgmodule-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgmodule-2.0.so.0 (0x00007fe9026f6000) libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007fe9023ee000) libxml2.so.2 => /usr/lib/x86_64-linux-gnu/libxml2.so.2 (0x00007fe902087000) liblixab.so.0 => /opt/lixa/lib/liblixab.so.0 (0x00007fe901e6d000) libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007fe901c2f000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fe901a16000) liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007fe9017f3000) libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007fe9015ee000) |
Now you are ready to start your first application:
[Shell terminal session] |
tiian@ubuntu1404-64:/tmp$ ./EXAMPLE1 Executing EXAMPLE1 TXOPEN returned value -000000007 Exiting... |
The TXOPEN
routine returned the value
“-7” (TX-FAIL
)
because the state server is not running.
Start the state server (see the section called “Background (daemon) execution”)
and try again:
[Shell terminal session (Ubuntu)] |
tiian@ubuntu1404-64:~/tmp$ sudo su - lixa lixa@ubuntu1404-64:~$ /opt/lixa/sbin/lixad --daemon lixa@ubuntu1404-64:~$ exit logout tiian@ubuntu1404-64:~/tmp$ ps -ef|grep lixad|grep -v grep lixa 12866 1 0 21:35 ? 00:00:00 /opt/lixa/sbin/lixad --daemon tiian@ubuntu1404-64:/tmp$ ./EXAMPLE1 Executing EXAMPLE1 TXOPEN returned value +000000000 TXBEGIN returned value +000000000 TXINFORM returned value +000000000 XID-REC/FORMAT-ID: +279875137 XID-REC/GTRID-LENGTH: +000000016 XID-REC/BRANCH-LENGTH: +000000016 XID-REC/XID (SERIAL.): 1279875137.9ce44ddff2274cd99924ae2721b66789.58f1d23a64e7f668c92c624bc096d075 TRANSACTION-MODE : +000000001 [TX-IN-TRAN] COMMIT-RETURN : +000000000 [TX-COMMIT-COMPLETED] TRANSACTION-CONTROL : +000000000 [TX-UNCHAINED] TRANSACTION-TIMEOUT : +000000000 [NO-TIMEOUT] TRANSACTION-STATE : +000000000 [TX-ACTIVE] TXCOMMIT returned value +000000000 TXINFORM returned value +000000000 XID-REC/FORMAT-ID: -000000001 XID-REC/GTRID-LENGTH: +000000000 XID-REC/BRANCH-LENGTH: +000000000 XID-REC/XID (SERIAL.): -1.. TRANSACTION-MODE : +000000000 [TX-NOT-IN-TRAN] COMMIT-RETURN : +000000000 [TX-COMMIT-COMPLETED] TRANSACTION-CONTROL : +000000000 [TX-UNCHAINED] TRANSACTION-TIMEOUT : +000000000 [NO-TIMEOUT] TRANSACTION-STATE : +000000000 [TX-ACTIVE] TXSETCOMMITRET returned value +000000001 TXSETTIMEOUT returned value +000000000 TXSETTRANCTL returned value +000000000 TXINFORM returned value +000000000 XID-REC/FORMAT-ID: -000000001 XID-REC/GTRID-LENGTH: +000000000 XID-REC/BRANCH-LENGTH: +000000000 XID-REC/XID (SERIAL.): -1.. TRANSACTION-MODE : +000000000 [TX-NOT-IN-TRAN] COMMIT-RETURN : +000000000 [TX-COMMIT-COMPLETED] TRANSACTION-CONTROL : +000000001 [TX-CHAINED] TRANSACTION-TIMEOUT : +000000005 TRANSACTION-STATE : +000000000 [TX-ACTIVE] TXSETTRANCTL returned value +000000000 TXINFORM returned value +000000000 XID-REC/FORMAT-ID: -000000001 XID-REC/GTRID-LENGTH: +000000000 XID-REC/BRANCH-LENGTH: +000000000 XID-REC/XID (SERIAL.): -1.. TRANSACTION-MODE : +000000000 [TX-NOT-IN-TRAN] COMMIT-RETURN : +000000000 [TX-COMMIT-COMPLETED] TRANSACTION-CONTROL : +000000000 [TX-UNCHAINED] TRANSACTION-TIMEOUT : +000000005 TRANSACTION-STATE : +000000000 [TX-ACTIVE] TXBEGIN returned value +000000000 TXROLLBACK returned value +000000000 TXCLOSE returned value +000000000 |
Your first COBOL Application Program has connected to the state server and has performed two dummy distributed transactions: commit and rollback.
Refer to the section called “Some details about the example” to get some further insights.