• To accommodate transactions, you must modify the RESOURCES, MACHINES, GROUPS, and the INTERFACES or SERVICES sections of the application’s UBBCONFIG file in the following ways:
• In the RESOURCES section, specify the application-wide number of allowed transactions and the value of the commit control flag.
•
• In the GROUPS section, indicate information about each resource manager and about the Transaction Manager Server.
• In the INTERFACES section (for Oracle Tuxedo CORBA applications only) or the SERVICES section (for Oracle Tuxedo ATMI applications only), enable the automatic transaction option.For instructions about modifying these sections in the UBBCONFIG file, see “Creating a Configuration File” in the Setting Up an Oracle Tuxedo Application.Table 5‑1 provides a description of transaction-related parameters in the RESOURCES section of the configuration file.
Limits the total number of global transaction identifiers (GTRIDs) allowed on one machine at one time. The maximum value allowed is 2048, the minimum is 0, and the default is 100. You can override this value on a per-machine basis in the MACHINES section. Specifies the initial setting of the TP_COMMIT_CONTROL characteristic. The default is COMPLETE. Following are its two settings:
• LOGGED—the TP_COMMIT_CONTROL characteristic is set to TP_CMT_LOGGED, which means that tpcommit() returns when all the participants have successfully precommitted.
• COMPLETE—the TP_COMMIT_CONTROL characteristic is set to TP_CMT_COMPLETE, which means that tpcommit() will not return until all the participants have successfully committed.
Note: You should consult with the RM vendors to determine the appropriate setting. If any RM in the application uses the late commit implementation of the XA standard, the setting should be COMPLETE. If all the resource managers use the early commit implementation, the setting should be LOGGED for performance reasons. (You can override this setting with tpscmt().)This section discusses creating a transaction log (TLOG), which refers to a log in which information on transactions is kept until the transaction is completed.The Universal Device List (UDL) is like a map of the Oracle Tuxedo file system. The UDL gets loaded into shared memory when an application is booted. To create an entry in the UDL for the TLOG device, create the UDL on each machine using global transactions. If the TLOGDEVICE is mirrored between two machines, it is unnecessary to do this on the paired machine. The Bulletin Board Liaison (BBL) then initializes and opens the TLOG during the boot process.
-z config -b blocks
Note: In general, the value that you supply for blocks should not be less than the value for TLOGSIZE. For example, if TLOGSIZE is specified as 200 blocks, specifying -b 500 would not cause a degradation.You can define a global transaction log (TLOG) using several parameters in the MACHINES section of the UBBCONFIG file. You must manually create the device list entry for the TLOGDEVICE on each machine where a TLOG is needed. You can do this either before or after TUXCONFIG has been loaded, but it must be done before the system is booted.
Note: If you are not using transactions, the TLOG parameters are not required.Table 5‑2 provides a description of transaction-related parameters in the MACHINES section of the configuration file.
The name of the DTP transaction log for this machine. Specifies the Oracle Tuxedo or Oracle Tuxedo file system that contains the DTP transaction log (TLOG) for this machine. If this parameter is not specified, the machine is assumed not to have a TLOG. The maximum string value length is 64 characters. The size of the TLOG file in physical pages. Its value must be between 1 and 2048, and its default is 100. The value should be large enough to hold the number of outstanding transactions on the machine at a given time. One transaction is logged per page. The default should suffice for most applications. Specifies the offset in pages from the beginning of TLOGDEVICE to the start of the VTOC that contains the transaction log for this machine.The number must be greater than or equal to 0 and less than the number of pages on the device. The default is 0.TLOGOFFSET is rarely necessary. However, if two VTOCs share the same device or if a VTOC is stored on a device (such as a file system) that is shared with another application, you can use TLOGOFFSET to indicate a starting address relative to the address of the device.Create the Domains transaction log for the named local domain on the current machine (the machine on which dmadmin is running). The command uses the parameters specified in the DMCONFIG file. This command fails if the named local domain is active on the current machine or if the log already exists. If the transaction log has not been created, the Domains gateway group creates the log when it starts up.Additions to the GROUPS section fall into two categories:
• The TMSNAME parameter specifies the name of the server executable.
• The TMSCOUNT parameter specifies the number of such servers to boot
(the minimum is 2, the maximum is 10, and the default is 3).A NULL Transactional Manager Server does not communicate with any resource manager. It is used to exercise an application’s use of the transactional primitives before actually testing the application in a recoverable, real environment. This server is named TMS and it simply begins, commits, or terminates without talking to any resource manager.
• OPENINFO is a string with information used to open a resource manager.
• CLOSEINFO is used to close a resource manager.
Contains the name of the Transaction Manager Server (TMS_SQL) and the number (2) of these servers to be booted in the group BANKB1
TMS is a NULL Transactional Manager Server. To enable an interface to begin a transaction, you change different sections in the UBBCONFIG file, depending on whether you are configuring an Oracle Tuxedo CORBA server or Oracle Tuxedo ATMI server.
• For each CORBA interface, set AUTOTRAN to Y if you want a transaction to start automatically when an operation invocation is received. AUTOTRAN=Y has no effect if the interface is already in transaction mode. The default is N. The effect of specifying a value for AUTOTRAN depends on the transactional policy specified by the developer in the Implementation Configuration File (ICF) for the interface. This transactional policy will become the transactional policy attribute of the associated T_IFQUEUE MIB object at run time. The only time this value affects the behavior of the application is if the developer specified a transaction policy of optional.
Note: To work properly, this feature depends on collaboration between the system designer and the administrator. If the administrator sets this value to Y without prior knowledge of the transaction policy defined by the developer in the interface’s ICF, the actual run time effect of the parameter might be unknown.
• If AUTOTRAN is set to Y, you must set the TRANTIME parameter, which specifies the transaction timeout, in seconds, for the transactions to be created. The value must be greater than or equal to zero and must not exceed 2,147,483,647
(231 - 1, or about 70 years). A value of zero implies there is no timeout for the transaction. (The default is 30 seconds.)
• To work properly, it is dependent on collaboration between the system designer and the system administrator. If the administrator sets this value to Y without prior knowledge of the ICF transaction policy set by the developer, the actual run-time effort of the parameter might be unknown.
• Default is N.
• Represents the timeout for the AUTOTRAN transactions.
• Valid values are between 0 and 231 - 1, inclusive.
• You must specify a FACTORYROUTING parameter for interfaces requesting factory-based routing.The following are three transaction-related features in the SERVICES section:
• If you want a service (instead of a client) to begin a transaction, you must set the AUTOTRAN flag to Y. This is useful if the service is not needed as part of any larger transaction, and if the application wants to relieve the client of making transaction decisions. If the service is called when there is already an existing transaction, this call becomes part of it. (The default is N.)
• If AUTOTRAN is set to Y, you must set the TRANTIME parameter, which is the transaction timeout, in seconds, for the transactions to be created. The value must be greater than or equal to 0 and must not exceed 2,147,483,647 (231 - 1, or about 70 years). A value of zero implies there is no timeout for the transaction. (The default is 30 seconds.)
• You must specify a ROUTING parameter for transactions that request data-dependent routing.
Default is N. Represents the timeout for the AUTOTRAN transactions.Valid values are between 0 and 231 - 1, inclusive. Points to an entry in the ROUTING section where data-dependent routing is specified for transactions that request this service.To enable transactions across domains, you need to set parameters in both the DM_LOCAL_DOMAINS and the DM_REMOTE_SERVICES sections of the Domains configuration file (DMCONFIG). Entries in the DM_LOCAL_DOMAINS section define local domain characteristics. Entries in the DM_REMOTE_SERVICES section define information on services that are imported and that are available on remote domains.The DM_LOCAL_DOMAINS section of the Domains configuration file identifies local domains and their associated gateway groups. This section must have an entry for each gateway group (local domain). Each entry specifies the parameters required for the Domains gateway processes running in that group.Table 5‑7 provides a description of the five transaction-related parameters in this section: DMTLOGDEV, DMTLOGNAME, DMTLOGSIZE, MAXRDTRAN, and MAXTRAN.
Specifies the Oracle Tuxedo file system that contains the Domains transaction log (DMTLOG) for this machine. The DMTLOG is stored as an Oracle Tuxedo VTOC table on the device. If this parameter is not specified, the Domains gateway group is not allowed to process requests in transaction mode. Local domains running on the same machine can share the same DMTLOGDEV file system, but each local domain must have its own log (a table in the DMTLOGDEV) named as specified by the DMTLOGNAME keyword. Specifies the name of the Domains transaction log for this domain. This name must be unique when the same DMTLOGDEV is used for several local domains. If a value is not specified, the value defaults to the string DMTLOG. The name must contain 30 characters or less.
Note: The number of domains in a transaction determine the number of pages you must specify in the DMTLOGSIZE parameter. One transaction does not necessarily equal one log page. Specifies the maximum number of simultaneous global transactions allowed on this local domain. It must be greater than or equal to zero, and less than or equal to the MAXGTT parameter specified in the TUXCONFIG file. If not specified, the default is the value of MAXGTT.The DM_REMOTE_SERVICES section of the Domains configuration file identifies information on services imported and available on remote domains. Remote services are associated with a particular remote domain.
Used by gateways to automatically start/terminate transactions for remote services. This capability is required if you want to enforce reliable network communication with remote services. You specify this capability by setting the AUTOTRAN parameter to Y in the corresponding remote service definition.
• Data-dependent routing on ACCOUNT_ID.
• BRIDGE processes communicating with the system via the ATMI interface.The configuration file includes seven sections: RESOURCES, MACHINES, GROUPS, NETWORK, SERVERS, SERVICES, and ROUTING.
• MAXSERVERS, MAXSERVICES, and MAXGTT are less than the defaults. This makes the Bulletin Board smaller.
•
• MODEL is set to MP and OPTIONS is set to LAN, MIGRATE. This allows a networked configuration with migration.
• BBLQUERY is set to 180 and SCANUNIT is set to 10. This means that DBBL checks of the remote BBLs are done every 1800 seconds (one half hour).Listing 5‑1 Sample RESOURCES Section
• TLOGDEVICE and TLOGNAME are specified, which indicate that transactions will be done.
• The TYPE parameters are all different, which indicates that encode/decode will be done on all messages sent between machines.Listing 5‑2 Sample MACHINES Section
• The TMSCOUNT is set to 2, which means that only two TMS_SQL transaction manager servers will be booted per group.
• The OPENINFO string indicates that the application will perform database access.Listing 5‑3 Sample GROUPS and NETWORK Sections
•
• All requests for the services are routed on the ACCOUNT_ID field.
• None of the services will be performed in AUTOTRAN mode.Listing 5‑4 Sample SERVERS, SERVICES, and ROUTING Sections