Programming a Tuxedo Application Using COBOL
This topic includes the following sections:
The application administrator initially defines the configuration settings for an application in the UBBCONFIG
configuration file. To customize your programming environment, you may need to create or update a configuration file.
If you need to create or update a configuration file, refer to the following guidelines:
ubbshm
that comes with the bankapp
sample application can provide a good starting point.IPCKEY
parameter in the configuration file does not conflict with any other parameters being used at your installation. Check with your BEA Tuxedo application administrator, and refer to Setting Up a BEA Tuxedo Application for more information.UID
and GID
parameters so that you are the owner of the configuration.The following table summarizes the UBBCONFIG
configuration file parameters that affect the programming environment. Parameters are listed by functional category.
Specifies the maximum number of servers in the configuration. When setting this value, you need to consider the |
|||
Specifies the maximum total number of services in the configuration. |
|||
List of types and subtypes of data records for which the specified routing entry is valid. |
|||
Flag for specifying whether or not load balancing is enabled. If enabled, the BEA Tuxedo system attempts to balance requests across the network. |
|||
Numeric value that is added to the load factor of services that are remote from the invoking client, providing a bias for choosing a local server over a remote server. Load balancing must be enabled (that is, |
|||
Relative load factor associated with a service instance. The default is 50. |
|||
Specifies the name of an application authentication service that is invoked by the system for each client joining the system. |
|||
Sets the maximum number of simultaneous conversations for a single machine. You can specify a value between 0 and 32,767. The default is 64 if any conversational servers are defined in the |
|||
Specifies whether or not conversational communication is supported. If this parameter is set to |
|||
Specifies the minimum and maximum number of occurrences of the server to be started by tmboot(1). If not specified, |
|||
Controls whether a service routine is placed in transaction mode. If you set this parameter to |
|||
Specifies the maximum number of concurrently dispatched threads that each server process may spawn. |
|||
Specifies the number of server dispatch threads started on initial server boot. |
The configuration file is an operating system text file. To make it usable by the system, you must execute the tmloadcf(1) command to convert the file to a binary file.
Initially, the application administrator sets the variables that define the environment in which your application runs. These environment variables are set by assigning values to the ENVFILE
parameter in the MACHINES
section of the UBBCONFIG
file. (Refer to Setting Up a BEA Tuxedo Application for more information.)
For the client and server routines in your application, you can update existing environment variables or create new ones. The following table summarizes the most commonly used environment variables. The variables are listed by functional category.
Table 2-2 Programming-related Environment Variables
|
|||
Link edit flags to be passed to the COBOL compiler. Link edit flags are optional. |
|||
Arguments that you may want to use on the compile command line.
|
|||
Directories that contain a set of the COBOL
|
|||
BEA Tuxedo application programs that perform data compression. |
|||
Numeric value that is added to the load value for remote queues, making the remote queues appear to have more work than they actually do. As a result, even if load balancing is enabled, local requests are sent to local queues more often than to remote queues. |
BEA Tuxedo application programs that perform load balancing. |
||
Comma-separated list of field table filenames for |
|||
Colon-separated list of directories to be searched for the field table files for |
|||
Comma-separated list of allowable |
|||
Colon-separated list of directories to be searched for |
ALTCC
and ALTCFLAGS
environment variables are not applicable and setting them will produce unexpected results. You must compile your application first using a COBOL compiler and then pass the resulting object file to the buildclient
or buildserver
command.If operating in a UNIX environment, add $TUXDIR/bin
to your environment PATH
to ensure that your application can locate the executables for the BEA Tuxedo system commands. For more information on setting up the environment, refer to Setting Up a BEA Tuxedo Application.
The following table lists the C data types for which equivalent COBOL data types are available.
Table 2-3 COBOL Equivalents for C Data Types
|
|
COMP-5
, provided for use with MicroFocus COBOL, allows the COBOL integer fields to match the data format of the corresponding C fields. The data type for VS
COBOL
II
is COMP.
For storage efficiency, COBOL supports packed decimals: two decimal digits packed into each byte with the low-order half byte used to store the sign. The length of a packed decimal may be 1 to 9 bytes with storage available for 1 to 17 digits, including the sign.
The dec_t
field is defined in a VIEW
. The size is specified as two values separated by a comma. The first value indicates the total number of bytes occupied by the decimal in COBOL. The second value indicates the number of digits to the right of the decimal point in COBOL. You can use the following formula to convert the dec_t
field to a COBOL declaration:
dec_t(m, n) => S9(2*m-(n+1),n)COMP-3
For example, a size specification of 6,4 in the VIEW
indicates that there are 4 digits to the right of the decimal point and 7 digits to the left, and the last half byte is used to store the sign. A COBOL application programmer represents this as 9(7)V9(4)
, where the V
represents the decimal point between each value. Note that FML
does not support the dec_t
type; if FML
-dependent VIEW
s are used, then each field must be mapped to a C
type in the VIEW
file. For instance, a packed decimal can be mapped to an FML
string field, and then the mapping functions can be used to do the conversion between formats.
To start the application, execute the tmboot(1) command. The command gets the IPC resources required by the application, and starts administrative processes and application servers.
To stop the application, execute the tmshutdown(1) command. The command stops the servers and releases the IPC resources used by the application, except any that might be used by the resource manager, such as a database.