This topic includes the following sections:
Notes: | The BEA Tuxedo CORBA Java client and BEA Tuxedo CORBA Java client ORB were deprecated in Tuxedo 8.1 and are no longer supported. All BEA Tuxedo CORBA Java client and BEA Tuxedo CORBA Java client ORB text references, associated code samples, should only be used to help implement/run third party Java ORB libraries, and for programmer reference only. |
Note: | Technical support for third party CORBA Java ORBs should be provided by their respective vendors. BEA Tuxedo does not provide any technical support or documentation for third party CORBA Java ORBs. |
For a complete discussion of using transactions in a CORBA application, see Using CORBA Transactions.
In the Transactions sample application, students can register for classes. The operation of registering for courses is executed within the scope of a transaction. The Transactions sample application works in the following way:
TooManyCredits
user exception to the client application. The client application provides a brief message explaining that the request was rejected. The client application then rolls back the transaction.Figure 5-1 illustrates how the Transactions sample application works.
This section describes the steps used to add transactions to the Transactions sample application. These steps are in addition to the development process outlined in The Basic Sample Application.
Note: | The steps in this section have been done for you and are included in the Transactions sample application. |
During the development process, you would define in Object Management Group (OMG) Interface Definition Language (IDL) the register_for_courses()
operation for the Registrar
. The register_for_courses()
operation has a parameter, NotRegisteredList,
which returns to the client application the list of courses for which registration failed. If the value of NotRegisteredList
is empty, the client application commits the transaction.
You also need to define the TooManyCredits
user exception.
During the development process, you would add the following to your client application:
register_for_courses()
operation so that students can register for courses.For information about using Transactions in client applications, see Getting Started with BEA Tuxedo CORBA Applications and Using CORBA Transactions.
During the development process, you would add the following to the University server application:
For information about these tasks, see Creating CORBA Server Applications.
During the development process, you need the following in the UBBCONFIG
file:
OPENINFO
parameter defined according to the XA
parameter for the Oracle database. The XA
parameter for the Oracle database is described in the "Developing and Installing Applications that Use the XA Libraries" section of the Oracle7 Server Distributed Systems manual.Note: | If you use a database other than Oracle, refer to the product documentation for information about defining the XA parameter. |
For information about the transaction log and defining parameters in the UBBCONFIG
file, see Setting Up a BEA Tuxedo Application.
During the development process, change the Transaction policy of the Registrar
object from optional
to always
. The always
Transaction policy indicates that this object must be part of a transaction. For information about defining Transaction policies for CORBA objects, see Using CORBA Transactions.
To build the Transactions sample application, complete the following steps:
UBBCONFIG
file.The following sections describe these steps.
Note: | Before you can build or run the Transactions sample application, you need to complete the steps in Setting Up Your Environment. |
The files for the Transactions sample application are located in the following directories:
drive
:\
TUXDIR
\samples\corba\university
\transaction
/usr/
TUXDIR
/samples/corba/university
/transaction
In addition, you need to copy the utils
directory into your work directory. The utils
directory contains files that set up logging, tracing, and access to the University database.
You will use the files listed in Table 5-1 to create the Transactions sample application.
During the installation of the BEA Tuxedo software, the sample application files are marked read-only. Before you can edit the files or build the files in the Transactions sample application, you need to change the protection of the files you copied into your work directory, as follows:
prompt>attrib -r drive:\
workdirectory
\*.*
prompt>chmod u+rw /
workdirectory
/*.*
Use the following command to set the environment variables used to build the client and server applications in the Transactions sample application:
Use the following command to initialize the University database used with the Transactions sample application:
prompt>nmake -f makefilet.nt initdb
prompt>make -f makefilet.mk initdb
Use the following command to load the UBBCONFIG
file:
The build process for the UBBCONFIG
file prompts you for an application password. This password will be used to log on to the client applications. Enter the password and press Enter. You are then prompted to verify the password by entering it again.
The transaction log records the transaction activities in a CORBA application. During the development process, you need to define the location of the transaction log (specified by the TLOGDEVICE
parameter) in the UBBCONFIG
file. For the Transactions sample application, the transaction log is placed in your work directory.
To open the transaction log for the Transactions sample application, complete the following steps:
crdl -b
blocks
-z
directorypath
clog -m SITE1
blocks
specifies the number of blocks to be allocated for the transaction log and directorypath
indicates the location of the transaction log. The directorypath
option needs to match the location specified in the TLOGDEVICE
parameter in the UBBCONFIG
file. The following is an example of the command on Windows:
crdl -b 500 -z c:\mysamples\university\Transaction\TLOG
During the development process, you would use the buildobjclient
and buildobjserver
commands to build the client and server applications. You would also build a database-specific transaction manager to coordinate the transactional events in the client/server application. However, for the Transactions sample application, this step has been done for you. The directory for the Transactions sample application contains a makefile
that builds the client and server sample applications and creates a transaction manager called TMS_ORA.
Note: | In the makefile , the following parameter is hard coded to build a transaction manager for the Oracle database: |
Note: | RM=Oracle_XA |
Note: | If you use a database other than Oracle, you need to change this parameter. |
Use the following commands to build the CORBA C++ client and server applications in the Transactions sample application:
prompt>nmake -f makefilet.nt
prompt>make -f makefilet.mk
To run the Transactions sample application, complete the following steps:
These steps are described in the following sections.
Start the system and sample application server applications in the Transactions sample application by entering the following command:
This command starts the following server processes:
Before using another sample application, enter the following command to stop the system and sample application server processes:
Start the CORBA C++ client application in the Transactions sample application by completing the following steps:
The following sections briefly explain how to use the client applications in the Transactions sample application.
The CORBA C++ client application in the Transactions sample application has the following additional option:
<R> Register for Courses
To register for a course, complete the following steps:
To exit the C++ CORBA client application, enter E
at the Options prompt.