Using global transactions with Oracle Database
To participate in global transactions, we need a transaction management server that we can specify in the ubbconfig GROUP configuration. So far, we have used the TMS dummy server and TMS_QM for Tuxedo queues. These servers come bundled with Tuxedo. For the Oracle Database, we have to build one ourselves. Tuxedo provides the buildtms tool for this purpose:
export ORACLE_HOME=/usr/lib/oracle/19.9/client64 buildtms -v -r Oracle_XA -o TMS_ORA
This command will create a new server named TMS_ORA. The -v command-line parameter will show you what this command does under the hood by using configuration from the $TUXDIR/udataobj/RM file.
The transaction management server we just created needs additional privileges for the database user. We have to connect as an administration once again, as follows:
sqlplus sys/Oradoc_db1@//host.docker.internal:32769/ORCLPDB1.localdomain as sysdba
Then we grant the SELECT privilege on the dba_pending_transactions...