|
|
This topic includes the following sections:
Refer to Readme.txt
in the \transactions
directory for troubleshooting information and the latest information about using the Transactions sample application.
This topic explains how to design and implement transactions in a WebLogic Enterprise (WLE) server application using the Transactions University sample application as an example. This topic also describes how the Transactions sample application works, and discusses the design considerations for implementing transactions in it. For additional general information about transactions, see Integrating Transactions in a WLE Client and Server Application.
The Transactions sample application uses transactions to encapsulate the task of a student registering for a set of courses. The transactional model used in this application is a combination of the conversational model and the model in which a single invocation makes multiple individual operations on a database.
In the Transactions sample application, students can register for classes. The operation of registering for courses is executed within the scope of a transaction. This topic includes the following sections:
How the Transactions Sample Application Works
The Transactions sample application works in the following way:
Application Steps
Figure 6-1 illustrates how the Transactions sample application works.
This topic includes the following sections:
This topic 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" in the Guide to the University Sample Applications.
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:
OMG IDL
Client Application
For information about using Transactions in client applications, see Transactions in WLE CORBA Applications.
During the development process, you would add the following to the University server application:
University Server Application
For information about these tasks, see Creating C++ Server Applications.
During the development process, you need to specify the following information in the UBBCONFIG
file:
UBBCONFIG File
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 Modifying the UBBCONFIG File to Accommodate Transactions.
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 Creating C++ Server Applications.
To build the Transactions sample application, complete the following steps:
Implementation Configuration File (ICF)
Setting Up the Transactions Sample Application
Note: Before you can build or run the Transactions sample application, you need to perform the steps in "Setting Up Your Environment" in the Guide to the University Sample Applications.
You need to copy the files for the Transactions sample application into a work directory on your local machine.
The files for the Transactions sample application are located in the following directories:
Windows NT
drive
:\
WLEdir
\samples\corba\university
\transaction
UNIX
/usr/
WLEdir
/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.
Table 6-1 lists the files used to create the Transactions sample application.
Step 1: Copy the Files for the Transactions Sample Application into a Work Directory
Source File Directories
Source Files
During the installation of the WLE 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:
Windows NT
prompt>attrib -r drive:\
workdirectory
\*.*
UNIX
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:
Windows NT
prompt>setenvt
UNIX
prompt>/bin/ksh
prompt>. ./setenvt.sh
Use the following command to initialize the University database used with the Transactions sample application:
Windows NT
prompt>nmake -f makefilet.nt initdb
UNIX
prompt>make -f makefilet.mk initdb
Use the following command to load the UBBCONFIG
file:
Windows NT
prompt>tmloadcf -y ubb_t.nt
UNIX
prompt>tmloadcf -y ubb_t.mk
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 WLE 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.
You need to perform the following steps to open the transaction log for the Transactions sample application:
Step 2: Change the Protection on the Files for the Transactions Sample Application
Step 3: Set the Environment Variables
Step 4: Initialize the University Database
Step 5: Load the UBBCONFIG File
Step 6: Create a Transaction Log
tmadmin
crdl -b
blocks
-z
directorypath
clog -m SITE1
where
The following is an example of the command on Windows NT:
crdl -b 500 -z c:\mysamples\university\Transaction\TLOG
This topic includes the following sections:
During the development process, you 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:
RM=Oracle_XA
If you use a database other than Oracle, you need to change this parameter.
For more information about the buildobjclient
and buildobjserver
commands, see the C++ Programming Reference.
Use the following commands to build the CORBA C++ client and server applications in the Transactions sample application:
Windows NT
prompt>nmake -f makefilet.nt UNIX
prompt>make -f makefilet.mk To build the CORBA Java client application:
Windows NT
prompt>nmake -f makefilet.nt javaclient UNIX
prompt>make -f makefilet.mk javaclient For information about starting the ActiveX client application, see Starting the ActiveX Client Application.
To run the Transactions sample application, complete the following steps:
Building the CORBA C++ Server and Client Applications
Building the CORBA Java Client Application
Building the ActiveX Client Application
Running the Transactions Sample Application
Start the system and sample application server applications in the Transactions sample application by entering the following command:
prompt>tmboot -y
Table 6-2 shows the server processes started by running this command:
Step 1: Start the Server Application
Process |
Description |
---|---|
Transaction management services, including the NameManager and the FactoryFinder services.
|
|
Before using another sample application, enter the following command to stop the system and sample application server processes:
prompt>tmshutdown
This topic includes the following sections:
Start the CORBA C++ client application in the Transactions sample application by performing the following steps:
Starting the CORBA C++ Client Application
prompt>univt_client
Before you can start the CORBA Java client application, you need to change the value of the Port and Host parameters in UnivSApplet.html to match the host name and port number specified in the ISL parameter in the UBBCONFIG file. For example:
<param name=port value=2500>
<param name=host value=BEANIE>
Start the CORBA Java client application in the Transactions sample application by performing the following steps:
prompt>appletviewer UnivTApplet.html
A logon window appears.
For the University sample applications, the task of loading the OMG IDL for the CORBA interfaces into the Interface Repository is automated by the makefile .
Before you can start the ActiveX client application, you must use the Application Builder to create ActiveX bindings for the CORBA interfaces.
To create an ActiveX binding for a CORBA interface:
The IIOP Listener window appears.
The Logon window appears.
The Application Builder window appears. All the CORBA interfaces loaded in the Interface Repository appear in the Services window of the Application Builder.
A confirmation window appears.
The Application Builder creates the following:
The type library file is named DI modulename_interfacename .tlb.
Perform the following steps to run the ActiveX client application:
The IIOP Listener window appears.
The Logon window appears.
This topic includes the following sections:
These 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 Perform the following steps to register for a course:
CORBA C++ Client Application
Registering for a Course
100011
100039
-1
To exit the C++ CORBA client application, enter E at the Options prompt.
When you log on to the CORBA Java client application, a Student Account Summary window appears. Use the Student Account Summary window to register for courses.
Perform the following steps to register for a class:
A list of courses matching the search string appears in the window.
If you are already registered for a course, Yes appears in the Registered field on the Student Account Summary window.
To view a list of courses for which the student ID is registered, double click the Show Registration button.
To exit the CORBA Java client application, click the Logoff button in the Student Account Summary window, or choose Quit from the Applet menu.
When you log on to the ActiveX client application, the Course Browser window appears. Use the Course Browser window to register for courses.
Perform the following steps to register for a class:
A list of all the courses that match that search string appears.
The details for the selected course appear.
The course appears in the student's schedule at the bottom of the window. If the student is already registered for the course, it appears in the color green. If the course conflicts with a previously registered course, it appears in the color red.
While using the ActiveX client application:
|
Copyright © 1999 BEA Systems, Inc. All rights reserved.
|