Book Image

Modernizing Oracle Tuxedo Applications with Python

By : Aivars Kalvans
Book Image

Modernizing Oracle Tuxedo Applications with Python

By: Aivars Kalvans

Overview of this book

Despite being developed in the 1980s, Oracle Tuxedo still runs a significant part of critical infrastructure and is not going away any time soon. Modernizing Oracle Tuxedo Applications with Python will help you get to grips with the most important Tuxedo concepts by writing Python code. The book starts with an introduction to Oracle Tuxedo and guides you in installing its latest version and Python bindings for Tuxedo on Linux. You'll then learn how to build your first server and client, configure Tuxedo, and start running an application. As you advance, you'll understand load balancing and work with the BBL server, which is at the heart of a Tuxedo application. This Tuxedo book will also cover Boolean expressions and different ways to export Tuxedo buffers for storage and transmission, before showing you how to implement servers and clients and use the management information base to change the configuration dynamically. Once you've learned how to configure Tuxedo for transactions and control them in application code, you'll discover how to use the store-and-forward functionality to reach destinations and use an Oracle database from a Tuxedo application. By the end of this Oracle Tuxedo book, you'll be able to perform common Tuxedo programming tasks with Python and integrate Tuxedo applications with other parts of modern infrastructure.
Table of Contents (18 chapters)
1
Section 1: The Basics
6
Section 2: The Good Bits
12
Section 3: Integrations

Using local transactions with Oracle Database

We will start by using local (regular) transactions in a Tuxedo application. To keep it simple, the application will count the number of records in the messages table. This task is not interesting by itself and there are plenty of great resources about using the cx_Oracle library. While there is nothing specific about the local cx_Oracle transactions in Tuxedo, it will serve us as a great contrast when compared to global transactions.

Every Tuxedo application needs a configuration file and we will start with the following ubbconfig file:

*RESOURCES
MASTER tuxapp
MODEL SHM
IPCKEY 32769
SCANUNIT 5
BLOCKTIME 3
*MACHINES
"15c365dcb562" LMID=tuxapp
    TUXCONFIG="/home/oracle/code/09/tuxconfig"
    TUXDIR="/home/oracle/tuxhome/tuxedo12.2.2.0.0"
    APPDIR="/home/oracle/code/09"
*GROUPS
GROUP1 LMID=tuxapp GRPNO=1 TMSNAME=TMS TMSCOUNT=2
*SERVERS...