Three kinds of environmental differences are isolated in the TMA TCP Gateway configuration files (GWICONFIG and DMCONFIG). They are:For detailed information about updating the TMA TCP Gateway configuration files (GWICONFIG and DMCONFIG), see the “Configuring Oracle TMA TCP Gateway” section.
Note: All TMA TCP Gateway configuration parameters are described in the “Configuring Oracle TMA TCP Gateway” section. This document focuses on complex parameters that require a separate introduction.When you boot Oracle Tuxedo software using the tmboot command, TMA TCP Gateway initializes in the following manner.
1. The TMA TCP Gateway software parses the GWICONFIG configuration file and initializes all parameters. If syntax errors are encountered during parsing, TMA TCP Gateway writes a message to the ULOG file and initialization fails.
2. After reading the GWICONFIG file, TMA TCP Gateway advertises remote services that are named in the file dynamically. These services includes services for all remote gateways.
• If necessary, create a VIEW definition that describes the format of the input data. VIEW definitions are descriptions of data structures that are used for input and output in the Oracle Tuxedo environment.
• For information about creating VIEW definitions to facilitate type conversion, see “Configuring Oracle TMA TCP Gateway for Data Mapping.” For information about the TMA TCP Gateway configuration file, see “Configuring Oracle TMA TCP Gateway.”To facilitate data translation, administrators must specify certain parameters in the GWICONFIG configuration file. For detailed information about how TMA TCP Gateway translates data, refer to the “Configuring Oracle TMA TCP Gateway for Data Mapping” section.After sending a request message, TMA TCP Gateway performs a receive operation. If the TMA TCP Gateway receive timeout expires before a message arrives from the remote system, a TPETIME error is returned to the caller.After TMA TCP Gateway receives a reply, data representations are translated as needed, in the reverse of the input translation. For details, see the “Step 4: Translating Input Data” section in this document.
• If necessary, create a VIEW definition that describes the format of the output buffer
• For information about creating VIEW definitions to facilitate type conversion, see the “Configuring Oracle TMA TCP Gateway for Data Mapping” section. For information about the TMA TCP Gateway configuration file, see the “Configuring Oracle TMA TCP Gateway” section.The Oracle Tuxedo buffer resulting from output type conversion and output data translation is returned to the caller with a TPSUCCESS or TPFAIL indication.For more detailed information about record and buffer conversion, and data translation, see the “Processing Local Service Requests” section.When you send a shutdown request to TMA TCP Gateway using the tmshutdown command, TMA TCP Gateway performs the following tasks.
3. The “Processing Local Service Requests” section describes many circumstances that require conversion of input and output parameters into formats acceptable to remote systems or regions and the local system.The TMA TCP Gateway configuration files (GWICONFIG and DMCONFIG) are a centralized mechanism that you can use to define and maintain relationships between the local system and remote systems or regions. In addition to input and output parameter mappings, these relationships include service name mappings (where remote service names are mapped to local service names) and error record mappings.For more information about the GWICONFIG configuration file, see the “Configuring Oracle TMA TCP Gateway” section.
• Often, by creative use of the TMA TCP Gateway configuration capabilities previously introduced, you can eliminate the need to include control information, such as terminal data, in the Oracle Tuxedo application source code that you develop. For instance, you can include terminal control codes in VIEW definitions that are associated with the TMA TCP Gateway configuration.For information about the normal input requirements of Oracle Tuxedo services, see the Oracle Tuxedo Programmer’s Guide.
• Local client and server programs cannot use the tpconnect() function to establish conversations with remote services.
• Remote client and server programs cannot use the tpconnect() function to establish conversations with local services.
• Similarly, the tpsend(), tprecv(), and tpdiscon() functions may not be used for communication through TMA TCP Gateway.
• Local client or server programs calling remote services should invoke the tpcall() function, or the tpacall() and tpgetrply() functions, outside the boundaries of any local transaction, such as tx_begin()/tx_commit() or tpbegin()/tpcommit() pair.
• If local client or server programs must call remote services within the boundaries of a local transaction, TPNOTRAN must be specified as one of the flags to the tpcall() or tpacall() function.
• Local client and server programs cannot use the tpsprio() function to set the priority at which remote services are processed. Instead, a call to the tpsprio() function causes the priority of a local TMA TCP Gateway to be set.
• Remote client and server programs cannot use the tpsprio() function to set the priority at which local services are processed.
• When local client or server programs use the tpgprio() function to determine the priority of a remote service, the priority of a local TMA TCP Gateway is returned.
• Local client programs cannot use the tpbroadcast() function to send unsolicited messages to remote client programs (and the reverse).
• Local services cannot use the tpbroadcast() or tpnotify() functions to send messages to remote client programs (and the reverse).When local or remote gateway errors occur, they are logged in the Oracle Tuxedo ULOG file and associated service requests fail. Also, appropriate error codes are returned to callers.For more information about the blocking timeout parameter, see the “Configuring Oracle TMA TCP Gateway” section.
• Writes an error record in the ULOG file if the configuration directs it to do so
Note: When Oracle Tuxedo applications detect service failures, they should not assume that returned buffers are the expected type. Oracle Tuxedo application programs may ignore return buffers when failures occur. If you need to check a buffer type, use the Oracle Tuxedo tptypes() function. When the type is known, the buffer can be handled accordingly (for example, by displaying a window containing an error string).