Administering an Oracle Tuxedo Application at Run Time

     Previous  Next    Open TOC in new window    View as PDF - New Window  Get Adobe Reader - New Window
Content starts here

Starting Up and Shutting Down an Application

This topic includes the following sections:

 


The Tasks Involved in Starting Up and Shutting Down an Application

Figure 1-1 illustrates the tasks required to start up and shut down your Oracle Tuxedo application.

Click on each of the following tasks for instructions on completing that task.

Figure 1-1 Startup and Shutdown Tasks

 


How to Set Your Environment

Being able to access the Oracle Tuxedo executables and data libraries is essential to the job of managing a Oracle Tuxedo application. For example, the commands needed to start up or shut down an application are located in %TUXDIR%\bin on a Windows host machine, and in $TUXDIR/bin on a UNIX host machine.

On Windows

On a Windows host machine, enter the following commands at the command prompt to set up your environment:

set TUXCONFIG=path_name_of_TUXCONFIG_file
set TUXDIR=path_name_of_BEA_Tuxedo_system_root_directory
set APPDIR=path_name_of_BEA_Tuxedo_application_root_directory
set PATH=%APPDIR%;%TUXDIR%\bin;%PATH%

Replace the substitutable strings (italicized) with the absolute pathnames appropriate for your installation.

Windows accesses the required dynamically loadable library files through its PATH variable setting. Specifically, Windows searches for dynamically loadable library files in the following order:

  1. The directory from which the Oracle Tuxedo application was loaded
  2. The current directory
  3. The Windows system directory (for example, C:\Win2003\System32)
  4. The Windows directory (for example, C:\Win2003)
  5. The directories listed in the PATH environment variable

On UNIX

On a UNIX host machine, set and export the following environment variables to set up your environment:

TUXCONFIG=path_name_of_TUXCONFIG_file
TUXDIR=path_name_of_BEA_Tuxedo_system_root_directory
APPDIR=path_name_of_BEA_Tuxedo_application_root_directory
PATH=$APPDIR:$TUXDIR/bin:/bin:$PATH
LD_LIBRARY_PATH=$APPDIR:$TUXDIR/lib:/lib:/usr/lib:$LD_LIBRARY_PATH
export TUXCONFIG TUXDIR APPDIR PATH LD_LIBRARY_PATH

On This Platform . . .
Make This change . . .
HP-UX on the HP 9000
Use SHLIB_PATH instead of LD_LIBRARY_PATH
AIX on the RS/6000
Use LIBPATH instead of LD_LIBRARY_PATH

Replace the substitutable strings (italicized) with the absolute pathnames appropriate for your installation.

Note: The application administrator defines the TUXCONFIG, TUXDIR, and APPDIR environment variables in the MACHINES section of the UBBCONFIG file or the T_MACHINE class of the TM_MIB for each machine in an application. See the UBBCONFIG(5) or TM_MIB(5) reference page for a description of these environment variables.

 


How to Create the TUXCONFIG File

Each Oracle Tuxedo domain is controlled by a configuration file in which installation-dependent parameters are defined. The text version of the configuration file is referred to as UBBCONFIG.The binary version of the UBBCONFIG file is referred to as TUXCONFIG. As with UBBCONFIG, the TUXCONFIG file may be given any name; the actual name is the device or system filename specified in the TUXCONFIG environment variable.

Note: For information about the configuration file, refer to UBBCONFIG(5) in File Formats, Data Descriptions, MIBs, and System Processes Reference.

The tmloadcf(1) command converts the text configuration file to a binary file called TUXCONFIG and writes the new file to the location given in the TUXCONFIG variable. Run the command as follows:

$ tmloadcf [-n] [-y] [-c] [-b blocks] {UBBCONFIG_file | - }
Note: You must be logged in on the MASTER machine and have the effective user ID of the configuration file owner.

The options shown here perform the following functions:

The -c and -n options do not load the TUXCONFIG file. IPC resources are platform specific. If you use the -c option, check the data sheet for your platform in the Oracle Tuxedo Installation Guide to judge whether you must make changes. If you do want to change IPC resources, check the administration documentation for your platform. If the -n option checks for syntax errors in the configuration file, correct the errors before you proceed. (For UBBCONFIG_file, substitute the fully qualified name of your configuration file.)

The -b option takes an argument that limits the number of blocks used to store the TUXCONFIG file. Use it if you are installing TUXCONFIG on a raw disk device that has not been initialized. The option is not recommended if TUXCONFIG is stored in a regular UNIX system file.

 


How to Start tlisten at All Sites

For a networked application, a listener process must be running on each machine. A networked application is an application that runs on more than one machine, as established by the MODEL MP parameter in the RESOURCES section of the application’s UBBCONFIG file.

Note: You must define TUXDIR, TUXCONFIG, APPDIR, and other relevant environment variables before starting tlisten.

The port on which the process is listening must be the same as the port specified for NLSADDR in the NETWORK section of the configuration file. On each machine, use the tlisten(1) command, as follows:

tlisten [ -d device ] -l nlsaddr [-u {uid-# | uid-name}] [ -z bits ] [ -Z bits ]

Example: tlisten -l //machine1:6500

tlisten Command Options

 


How to Manually Propagate the Application-Specific Directories and Files

TUXCONFIG is propagated automatically to all machines in your configuration by the Oracle Tuxedo system when you run tmboot(1). There are, however, other files that you need to propagate manually. Following is a list of the files and directories that you need to create for a networked application. First, install the Oracle Tuxedo system on the machine.

Note: The tlisten process must be started on each machine of a networked Oracle Tuxedo application before the application is booted. Refer to the tlisten(1) reference page.
Note: You must define TUXDIR, TUXCONFIG, APPDIR, and other relevant environment variables before starting tlisten.

Table 1-1 shows the directories and files to propagate.

Table 1-1 Directories and Files to Propagate
Directory/File
Description
APPDIR
You must create the directory named in the APPDIR variable on each node. It is easier if this directory has the same pathname on all nodes.
Executables
You must build one set of application servers for each platform, and manually propagate the appropriate set to all machines running on each platform (that is, the Oracle Tuxedo system does not do this automatically). Store the executables in APPDIR, or in a directory specified in a PATH variable in ENVFILES in the MACHINES section of your configuration file.
Field tables
VIEW tables
If FML or VIEWS buffer types are used, field tables and VIEW description files must be manually propagated to the machines where they are used, and then recompiled. Use mkfldhdr, mkfldhdr32(1) to make a header file out of a field table file; use viewc, viewc32(1) to compile a VIEW file. The FML field tables and VIEW description files should be available through the environment variables FLDTBLDIR, FIELDTBLS, VIEWDIR, and VIEWFILES, or their 32-bit equivalents.

 


How to Create a TLOG Device

To create distributed transaction processing, you must have created a global transaction log (TLOG) on each participating machine. To define a TLOG, complete the following steps.

  1. You must first set several parameters in the MACHINES section of the configuration file: TLOGDEVICE, TLOGOFFSET, TLOGNAME, and TLOGSIZE.
  2. You must also create a universal device list entry (UDL) for the TLOGDEVICE on each participating machine. (You can do this task before or after loading TUXCONFIG, but you must do so before booting the system.) To create an entry in the UDL for the TLOG device, invoke tmadmin -c on the MASTER machine with the application inactive. (The -c option invokes tmadmin in configuration mode.)
  3. Enter the command:
  4. crdl -z config -b blocks

    where -z config specifies the full pathname for the device on which the UDL should be created (that is, where the TLOG will reside) and -b blocks specifies the number of blocks to be allocated on the device. The value of config should match the value of the TLOGDEVICE parameter in the MACHINES section. The blocks must be larger than the TLOGSIZE. If -z is not specified, the value of config defaults to the value of the variable FSCONFIG (which points to the application’s databases).

  5. Repeat steps 1 and 2 on each machine in your application that will use global transactions.

If the TLOGDEVICE is mirrored between two machines, step 4 is not required on the paired machine. To be recoverable, the TLOG should reside on a device that can be mirrored. Because the TLOG is too small (typically, 100 pages) to warrant the allocation of a whole disk partition, the TLOG is commonly stored on the same raw disk slice as the Oracle Tuxedo /Q database.

 


How to Boot the Application

Once all prerequisites have been completed successfully, you can bring up the application using tmboot. Only the administrator who created the TUXCONFIG file can execute tmboot(1).

The application is generally booted from the machine designated as MASTER in the RESOURCES section of the configuration file or the BACKUP acting as the MASTER. The -b option allows some deviation from this rule. For tmboot to find executables, Oracle Tuxedo system processes such as the Bulletin Board Liason (BBL) must be located in $TUXDIR/bin. Application servers should be in the directory defined by the APPDIR variable, as specified in the configuration file.

When booting application servers, tmboot uses the CLOPT, SEQUENCE, SRVGRP, SRVID, and MIN parameters from the configuration file. Application servers are booted in the order specified by the SEQUENCE parameter, if SEQUENCE is used. If SEQUENCE is not specified, servers are booted in the order in which they appear in the configuration file. The command line should look something like the following:

$ tmboot  [-g grpname] [-o sequence] [-S] [-A] [-y]

Table 1-2 lists the tmboot options.

Table 1-2 tmboot Options
This Option
Performs This Function
-g grpname
Boots all TMS and application servers in groups using this grpname parameter.
-o sequence
Boots all servers in the order shown in the SEQUENCE parameter.
-s server-name
Boots an individual server.
-S
Boots all servers listed in the SERVERS section.
-A
Boots all administrative servers for machines listed in the MACHINES section. This option ensures that the DBBL, BBL, and BRIDGE processes are started in the proper order.
-y
Provides an automatic “yes” response to the prompt that asks whether all administrative and application servers should be booted. This prompt is displayed only if no options that limit the scope of the command (-g grpname, for example) are specified.

Note: For a complete list of tmboot options, see the tmboot(1) reference page.

Sequence of tmboot Tasks for a 2-Machine Configuration

To boot the entire configuration, enter the following command:

prompt> tmboot -y

tmboot performs the following tasks:

Figure 1-2 lists the default boot sequence for a small application.

Figure 1-2 Default Boot Sequence for a Small Application

Default Boot Sequence for a Small Application

Sequence of tmboot Tasks for Large Applications (Over 50 Machines)

For relatively large applications (that is, those consisting of over 50 machines), tmboot boots entire machines in a single step rather than performing all the steps used to boot two machines in the default sequence.Figure 1-3 is the optimized sequence of tasks.

Figure 1-3 Boot Sequence for a Large Application

Boot Sequence for a Large Application

Note: The boot sequence is much faster for large applications because the number of system messages is far smaller. This method generally reduces boot time by 50%. In a configuration running on a slow network, boot time can be improved by booting machines with higher speed connections to the MASTER machine first.

 


How to Shut Down Your Application

Use the tmshutdown(1) command to shut down all or part of a Oracle Tuxedo application. The rules for running this command are similar to those for running tmboot(1); tmshutdown is the inverse of tmboot.

When the entire application is shut down, tmshutdown removes the interprocess communication (IPC) resources associated with the Oracle Tuxedo system. The options used by tmboot for partial booting (-A, -g, -I, -S, -s, -l, -M, -B) are supported in tmshutdown. The -b option (allowing tmboot to be used from a non-MASTER machine) is not supported for tmshutdown; you must enter the tmshutdown command from the MASTER (or BACKUP MASTER) machine.

To migrate servers, use the -R option. This option shuts down the servers without removing bulletin board entries for them. If a machine is partitioned, run tmshutdown with the -P LMID option on the partitioned machine to shut down the servers on that machine.

tmshutdown does not shut down the administrative server BBL on a machine to which clients are attached. You can use the -c option to override this feature. You need this option for occasions when you must bring down a machine immediately and you cannot contact the clients.

You can use the -w delay option to force a hard shutdown after delay seconds. This option suspends all servers immediately so that additional work cannot be queued. The value of delay should allow time for requests already queued to be serviced. After delay seconds, a SIGKILL signal is sent to the servers. This option enables the administrator to shut down servers that are looping or blocked in application code.

Running tmshutdown

Only the administrator who has written the TUXCONFIG file can execute tmshutdown(1). The application can be shut down only from the machine designated as MASTER in the configuration file. When the BACKUP acts as MASTER, it is considered to be the MASTER for shutdown purposes. (The only exception to this rule is a partitioned machine. By using the -p option, an administrator can run the tmshutdown command from a partitioned machine to shut down the application at that site.)

The order in which application servers are shut down is the reverse of the order specified by the SEQUENCE parameter for them, or the reverse order in which they are listed in the configuration file. If some servers have SEQUENCE numbers and others do not, the unnumbered servers are the first to be shut down, followed by the application servers with SEQUENCE numbers (in reverse order). Finally, administrative servers are shut down.

When an application is shut down, all the IPC resources allocated by the Oracle Tuxedo system are removed; tmshutdown does not remove IPC resources allocated by the DBMS.

Using the IPC Tool When an Application Fails to Shut Down Properly

IPC resources are operating system resources, such as message queues, shared memory, and semaphores. When a Oracle Tuxedo application shuts down properly with the tmshutdown command, all IPC resources used by the Oracle Tuxedo application are removed from the system. In some cases, however, an application may fail to shut down properly and stray IPC resources may remain on the system. When this happens, it may not be possible to reboot the application.

One way to address this problem is to remove IPC resources with a script that invokes the system IPCS command and scan for all IPC resources owned by a particular user account. However, with this method, it is difficult to distinguish among different sets of IPC resources; some may belong to a particular Oracle Tuxedo application; and others to applications unrelated to the Oracle Tuxedo system. It is important to be able to distinguish among these sets of resources; unintentional removal of IPC resources can severely damage an application.

The Oracle Tuxedo IPC tool (that is, the tmipcrm(1) command) enables you to remove IPC resources allocated by the Oracle Tuxedo system (that is, for core Oracle Tuxedo and Workstation components only) in an active application.

The command to remove IPC resources, tmipcrm(1), resides in TUXDIR/bin. This command reads the binary configuration file (TUXCONFIG), and attaches to the bulletin board using the information in this file. tmipcrm works only on the local server machine; it does not clean up IPC resources on remote machines in a Oracle Tuxedo configuration.

To run this command, enter it as follows on the command line:

tmipcrm [-y] [-n] [TUXCONFIG_file]

The IPC tool lists all IPC resources used by the Oracle Tuxedo system and gives you the option of removing them.

Note: This command will not work unless you have set the TUXCONFIG environment variable correctly or specified the appropriate TUXCONFIG file on the command line.

To remove /Q IPC resources, use the qmadmin(1) ipcrm command.


  Back to Top       Previous  Next