This document also provides information about creating VIEW definitions.
VIEW definitions are descriptions of data structures that are used for input and output in the Oracle Tuxedo environment. The TMA TCP Gateway product uses
VIEW definitions to determine how to convert input data and output data into formats that are acceptable to target systems.
•
|
The INBUFTYPE parameter describes the Oracle Tuxedo input buffer that the local client program provides to the TMA TCP Gateway through Oracle Tuxedo software.
|
•
|
The INRECTYPE parameter describes the input record that is sent to the service on the remote system.
|
•
|
The OUTRECTYPE parameter describes the output record that is received from the service on the remote system.
|
•
|
The OUTBUFTYPE parameter describes the Oracle Tuxedo output buffer that is returned to the local client program.
|
The INBUFTYPE parameter is used to specify the request buffer type that is provided to a local TMA TCP Gateway when a local client program issues a service request.
The INRECTYPE parameter is used to specify the type, and in some cases the format, of the request record that a particular remote service requires. The TMA TCP Gateway uses this information to convert Oracle Tuxedo request buffers into records that remote services can process.
You must specify the INRECTYPE parameter when one of the circumstances described in the following table is true.
The INRECTYPE parameter may be omitted if the request buffer is identical, in type and structure, to the request record the remote service expects.
The OUTBUFTYPE parameter is used to specify the type, and in some cases the structure, of the reply buffer that a local client program expects. The TMA TCP Gateway uses this information to map reply records from remote services to the appropriate kinds of reply buffers.
The OUTRECTYPE parameter is used to specify the type, and in some cases the format, of the reply record that a particular remote service returns to the local TMA TCP Gateway.
You must specify the OUTRECTYPE parameter when one of the circumstances described in the following table is true.
The OUTRECTYPE parameter may be omitted if the remote service returns a reply record that is identical, in type and structure, to the reply buffer the local client program expects.
•
|
The OUTRECTYPE parameter describes the output record that the remote client sends to the TMA TCP Gateway.
|
•
|
The OUTBUFTYPE parameter describes the Oracle Tuxedo output buffer that is provided to the local server.
|
•
|
The INBUFTYPE parameter describes the Oracle Tuxedo input buffer that the local server returns to the TMA TCP Gateway.
|
•
|
The INRECTYPE parameter describes the input record that the local TMA TCP Gateway returns to the remote client program.
|
The INBUFTYPE parameter is used to specify the type, and in some cases the structure, of the reply buffer that the TMA TCP Gateway expects from a local server. The TMA TCP Gateway uses this information to map reply buffers from local server programs to the appropriate kind of reply records.
The INRECTYPE parameter is used to specify the type, and in some cases the format, of the reply record that the local TMA TCP Gateway sends to the remote client.
You must specify the INRECTYPE parameter when one of the circumstances described in the following table is true.
You can omit the INRECTYPE parameter if the local server program sends a reply buffer that is identical in type and structure to the reply record the remote client expects.
The OUTBUFTYPE parameter specifies the request buffer type that the local TMA TCP Gateway provides to the local server.
The OUTRECTYPE parameter is used to specify the type, and in some cases the format, of the request record a particular remote client program sends to the TMA TCP Gateway. The TMA TCP Gateway uses this information to convert request records from remote clients into buffers that local server programs can process.
You must specify the OUTRECTYPE parameter when one of the circumstances described in the following table is true.
The OUTRECTYPE parameter may be omitted if the local service's request buffer is identical, in type and structure, to the request record the remote client program provides.

|
Oracle Tuxedo CARRAY input buffers can be copied to CARRAY input records. A CARRAY buffer contains raw data that is not converted or translated. Set the INBUFTYPE parameter to CARRAY, and omit the INRECTYPE parameter.
CARRAY input buffers can also be copied to STRING input records. This creates a string that goes through no conversion and no translation. The resultant buffer is the length of the original CARRAY buffer. Since all characters are copied, if the CARRAY buffer contains null characters, it affects the buffer when later handled as a STRING. The INBUFTYPE parameter should be set to CARRAY and the INRECTYPE parameter should be set to STRING.
|
|
Oracle Tuxedo STRING input buffers can be mapped to CARRAY input records. No data conversion or translation is performed. The STRING buffer is copied through the leftmost null character only. Set the INBUFTYPE parameter to STRING and the INRECTYPE parameter to CARRAY.
|
|
Oracle Tuxedo STRING input buffers can be mapped to STRING input records. The buffer goes through data type translation (such as ASCII to EBCDIC). Set the INBUFTYPE parameter to STRING, and omit the INRECTYPE parameter.
|
|
Oracle Tuxedo VIEW input buffers can be mapped to identical Oracle Tuxedo VIEW input records. In this situation, the data structure that the remote service expects is identical to the data structure the client program uses. There is no need to create a new VIEW definition. Instead, specify the input record type ( VIEW) and the name of the existing VIEW definition (the one the client program currently uses) for both the INBUFTYPE parameter, and omit the INRECTYPE parameter.
|
|
Oracle Tuxedo VIEW input buffers can be mapped to VIEW input records—in any combination. However, in this situation, the data structure that the remote service expects (designated as VIEW ‘B’ mapping possibilities in Figure 3‑3) differs from the data structure the client program uses (designated as VIEW ‘A’ in Figure 3‑3). Consequently, you must
1.
|
Create a VIEW definition for the data structure that the remote service expects.
|
3.
|
Set the INBUFTYPE parameter to VIEW:original-viewname.
|
|
|
Before an Oracle Tuxedo FML input buffer can be sent to a remote service that does not support FML, it must be mapped to one of the following input record types: VIEW, X_C_TYPE, or X_COMMON. Also, you must create a VIEW definition for the input data structure that the remote service expects. Set INBUFTYPE to FML and INRECTYPE to VIEW: viewname.
Note:
|
In the DMCONFIG file, if FML or FML32 are specified as INBUFTYPE or OUTBUFTYPE, the type must be followed by a colon (:). (Example: INBUFTYPE="FML32:")
|
|

|
Oracle Tuxedo CARRAY output records can be copied to CARRAY output buffers. A CARRAY buffer contains raw data that is not converted or translated. Set the OUTBUFTYPE parameter to CARRAY. The OUTRECTYPE parameters need not be set.
Oracle Tuxedo CARRAY output records can also be copied to STRING output buffers. This creates a string that goes through no conversion and no translation. The resultant buffer is the length of the original CARRAY buffer. Since all characters are copied, if the CARRAY buffer contains null characters, it affects the buffer when later handled as a STRING. The OUTRECTYPE should be set to CARRAY and OUTBUFTYPE should be set to STRING.
|
|
Oracle Tuxedo STRING output records can be mapped to CARRAY output buffers. There is no data conversion or translation performed. The STRING buffer is copied through the leftmost null characters only. Set OUTRECTYPE to STRING and OUTBUFTYPE to CARRAY.
|
|
Oracle Tuxedo STRING output records can be mapped to STRING output buffers. The buffer goes through datatype translation (such as ASCII to EBCDIC). OUTBUFTYPE and OUTRECTYPE parameters are set to STRING.
|
|
Oracle Tuxedo VIEW output records can be mapped to identical Oracle Tuxedo VIEW output buffers. In this situation, the data structure that the remote service returns is identical to the data structure the local client program expects. There is no need to create a new VIEW definition. Instead, specify the VIEW buffer type and the name of the existing VIEW definition with the OUTBUFTYPE parameter. The OUTRECTYPE parameter can be set to VIEW:viewname, but it is not mandatory.
|
|
Oracle Tuxedo VIEW output records can be mapped to VIEW output buffers—in any combination. However, in this situation, the data structure that the remote service returns (designated as VIEW ‘B’ in Figure 3‑4) differs from the data structure the client program expects (designated as VIEW ‘A’ in Figure 3‑4). To facilitate the conversion process, perform the following tasks.
1.
|
Create a VIEW definition for the data structure that the remote service returns.
|
2.
|
If the name given to the VIEW definition is different than the name that the remote service returns (that is, ATMI buffer subtype), specify the output record type and the name of VIEW ‘B’ with the OUTRECTYPE parameter. (By doing this, you override the value the TMA TCP Gateway requester automatically detects.)
|
|
|
Oracle Tuxedo VIEW output records can be mapped to FML output buffers. To facilitate the conversion process, you must perform the following tasks.
1.
|
Create a VIEW definition that describes the data structure that the remote service returns.
|
2.
|
If the name given to the VIEW definition is different than the name that the remote service returns (that is, the ATMI buffer subtype), specify the output record type and the name of your VIEW definition with the OUTRECTYPE parameter. (By doing this, you override the value the TMA TCP Gateway requester automatically detects.)
|
3.
|
Set the OUTBUFTYPE parameter to FML.
|
Note:
|
In the DMCONFIG file, if FML or FML32 are specified as INBUFTYPE or OUTBUFTYPE, the type must be followed by a colon (:). (Example: INBUFTYPE="FML32:")
|
|
VIEW definitions are used to describe input and output records that are sent to and received from remote systems. They describe data elements and indicate how data elements are typed and sequenced. Based on these descriptions, TMA TCP Gateway translates field data types as required to maintain transparency between dissimilar systems.
VIEW definitions make it possible to specify composite data structures that can be used:
Note:
|
FML fields must be specified for all VIEWs that TMA TCP Gateway converts. In other words, any VIEW that you specify as an INRECTYPE, OUTRECTYPE, INBUFTYPE, or OUTBUFTYPE must be defined with appropriate FML fields (no dashes in the FNAME column of the VIEW definition). For the FML fields to match, you must compile these VIEWs without the -n option specified.
|
2.
|
Run the viewc or viewc32 VIEW compiler.
|
3.
|
Set the VIEWFILES, VIEWDIR, FIELDTBLS, and FLDTBLDIR environment variables, using a Oracle Tuxedo ENVFILE if necessary (so that TMA TCP Gateway servers can locate binary VIEW files and field table files at runtime).
|
•
|
CARRAY fields are passed untranslated as sequences of bytes.
|
•
|
STRING and CHAR fields undergo SBCS (ASCII-to-EBCDIC) translation and MBCS translation, if needed.
|
•
|
SHORT and LONG fields are translated to S9(4) COMP and S9(9) COMP, respectively.
|
•
|
FLOAT and DOUBLE fields translate to COMP‑1 and COMP‑2, respectively.
|
WARNING:
|
dec_t cannot be used with VIEW translations.
|
Note:
|
Oracle Tuxedo provides a field type named dec_t that supports decimal values within VIEWs. The TMA TCP Gateway translates these fields into machine independent representations of packed decimals. For example, dec_t(m,n) becomes S9(2*m-(n+1))V9(n) COMP-3. Therefore, a decimal field with a size of 8,5 corresponds to S9(10)V9(5) COMP-3.
|
When you create VIEW definitions for input and output buffers that are used by C language applications, you must specify extra characters for terminating NULL characters that are used in string fields.
When you create VIEW definitions for input and output buffers that are used by COBOL language applications, do not specify extra characters for terminating NULL characters that are used in string fields.
An additional encoding library, ConvMVSC, has been included for Tuxedo clients using COBOL data types. This library,
ConvMVSC, is similar to the default library,
ConvMVS, but differs in the following ways:
•
|
For the STRING data type, both ConvMVSC and ConvMVS perform ASCII-to-EBCDIC and EBCDIC-to-ASCII translation.
|
•
|
For strings received from a remote gateway, the ConvMVS library performs EBCDIC-to-ASCII translation, truncates any trailing space characters and adds a NULL terminator. The ConvMVSC library performs the translation, but does not truncate spaces or add the terminator.
|
•
|
For the VIEW data type, the ConvMVS and ConvMVSC libraries treat all field types except STRING the same.
|
•
|
For STRING fields within a view sent to a remote gateway, ConvMVS performs ASCII-to-EBCDIC conversion and appends space to ‘pad’ the string with space characters to the size of the field. ConvMVSC performs the character conversion, but does not perform any ‘padding’.
|
•
|
For STRING fields within a view received from a remote gateway, ConvMVS performs EBCDIC-to-ASCII conversion, truncates any trailing space characters, and adds a NULL terminator. The ConvMVSC library performs the character conversion, but does not truncate spaces or add the terminator.
|
If no CODEPAGE specification is made for a remote domain, the TMA TCP Gateway software uses the Tuxedo default translation tables.
1072:ERROR Cannot read CODEPAGE <filename> for <LOCAL | REMOTE> DOMAIN <
domainname>
Besides SBCS character set translation, TCP GWIDOMAIN supports multibyte character set (MBCS) translation to meet Asian customer's requirement. This translation does not depend on translation tables under directory
$TUXDIR/udataobj/codepage, instead, it is based on ICU libraries, which contains more than 200 different SBCS and MBCS character sets.
ASCII_CHAR_SET is for local domain and
EBCDIC_CHAR_SET is for remote domain. They are separated by a colon.
Both ASCII_CHAR_SET and
EBCDIC_CHAR_SET must be available character sets known by ICU. A utility
uconv can be used to retrieve relevant information of these character sets.