B OracleAS Adapters for Tuxedo Message Buffer Support and Data Type Support

This appendix contains the following sections:

OracleAS Adapters for Tuxedo Message Buffer Support

Oracle Connect provides support for all standard types of OracleAS Adapters for Tuxedo message buffers as I/O, as follows:

  • STRING: A null terminated character array. The data type is character and its length is determined by counting the characters in the buffer until reaching the null character. It is commonly used by C programs.

  • CARRAY: An array of un-interpreted arbitrary binary data. The application must specify the buffer length for CARRAY message buffers when used as input to ATMI functions.

  • XML: An XML formatted data. This buffer type enables Tuxedo applications to use XML for exchanging data within and between applications. Tuxedo applications can send and receive simple XML buffers, and route them to the appropriate servers. Data dependent routing is supported for this buffer type.

  • VIEW (16-bit): A C structure layout. This buffer is used for fixed collections of data elements, structures or records. VIEW records support integral data types such as long integer, character, and decimal. VIEW records do not support structures within structures, nor do they support arrays of structures or pointers.

  • VIEW (32-bit): A C structure layout where 32-bit FML identifiers are used.

  • FML (16-bit): An abstract data type, used to create, access, modify and delete fields. It is a data structure that stores tagged values. Values are typed, can be specified multiple times, and vary in length. Additionally, FML buffers support storage of multiple values for a field. The variable length format of fielded buffers enables multiple field occurrences to be stored and retrieved.

  • FML (32-bit): An FML type where 32-bit FML identifiers are used.

Note:

Synonyms such as X_C_TYPE, and X_OCTET are also recognized.

Unstructured message buffers are wrapped within a record as follows:

  • A message buffer of type STRING is wrapped within a record containing a single field of type string with a fixed size.

  • A message buffer of type CARRAY is wrapped within a record containing a single field of type binary with a fixed size.

  • A message buffer of type XML is wrapped within a record containing a single field of type XML.

User-Defined Message Buffers

Oracle Connect does not support user-defined message buffers.

Data Type Support

This section contains the following topics:

Data Type Mapping

OracleAS Adapters for Tuxedo support several data types that are used to define metadata in Oracle Studio. The data types are mapped from the Tuxedo data types during the import procedure.

Note:

The mapping of data types between OracleAS Adapters for Tuxedo and Oracle Application Server is performed internally by Oracle Connect.

Table B-1 Data Type Mapping: Tuxedo and Oracle Connect

Tuxedo Data Type Oracle Connect Data Type

carray

binary

char

string

double

double

float

double

int

int

long

int

short

int

string

string


Data Type Handling

OracleAS Adapters for Tuxedo handle the fields contained in the VIEW file as follows:

  • Specifying a value greater than one in the COUNT field of the Tuxedo field definition within a VIEW file, translates to array=xx attribute.

  • Specifying a value in the SIZE field of Tuxedo field definition within a VIEW file, translates to size=yy attribute.

  • Specifying C in the FLAG field of Tuxedo field definition within a VIEW file, imposes generation of an extra leading COUNTER field to hold the actual count value.

  • Specifying L in the FLAG field of Tuxedo field definition within a VIEW file, imposes generation of an extra leading LENGTH field to hold the actual length value.

    Note:

    • The L flag is applicable for STRING and CARRAY data types only.

    • In the case where a COUNT value greater than one is specified for the field, the extra leading LENGTH field is generated as an array. The array entries should hold the actual length values of the corresponding field array entries.

  • Specifying a value in the NULL field of Tuxedo's field definition within a VIEW file is not reflected in Oracle Connect back-end adapter record.

Tuxedo's VIEW fields restrictions are preserved.

The following is an example of a VIEW file definition:

VIEW emp
#TYPE     CNAME            FBNAME          COUNT   FLAG  SIZE   NULL
long      lSalary          SALARY            1      -      -     0
short     nDeptnum         DEPTNUM           1      -      -     0
short     nEmpnum          EMPLOYEE_NUMBER   1      -      -     0
short     nJobcode         JOBCODE           1      -      -     0
string    szMessageText    MESSAGE_TEXT      1      -     80     ""
string    szFirstName      FIRST_NAME        1      -     16     ""
string    szLastName       LAST_NAME         1      -     21     ""
END

The following is an example of a field table that defines the FML field IDs:

*base 100
# name           number   type    flags comments
MESSAGE_TEXT           1  string   -     -
#
DEPTNUM              100  short    -     -
EMPLOYEE_NUMBER      101  short    -     -
JOBCODE              102  short    -     -
FIRST_NAME           103  string   -     -
LAST_NAME            104  string   -     -
SALARY               105  long     -     -

Header Record Structure

Each adapter has a HEADER record which is mapped to Tuxedo ATMI Queue Control Structure. The HEADER record is included in all records defined.

HEADER input fields (for writing and subscribing) are as listed in the following table:

Table B-2 HEADER Record Input Fields

Field Description

long flags;

Indicates which of the values are set.

long deq_time;

Indicates absolute/relative time for dequeing.

long priority;

Specifies the enqueing priority.

long exp_time;

Specifies the expiration time.

long delivery_qos;

Specifies the delivery quality of service.

long reply_qos;

Specifies the reply quality of service.

long urcodes;

User-return code.

char corrid[32];

Specifies the correlation identifier used to identify the message.

char replyqueue[16];

Species the queue name for the reply message.

char failurequeue[16];

Specifies the queue name for failure messages.


HEADER output fields (for reading) are as listed in the following table:

Table B-3 HEADER Record Output Fields

Field Description

long flags;

Indicates which of the values should be set.

long priority;

Specifies the enqueing priority.

char msgid[32;]

Specifies the ID of the message dequeued.

char corrid[32];

Specifies the correlation identifier used to identify the message.

long delivery_qos;

Specifies the delivery quality of service.

long reply_qos;

Specifies the reply quality of service.

char replyqueue;

Specifies the queue name for the reply.

char failurequeue[16];

Specifies the queue name for failure messages.

long diagnostic;

Specifies the reason for failure.

long appkey;

Specifies the application authentication client key.

long urcodes;

User-return code.

CLIENTID cltid;

Specifies the client identifier for the originating client.

char replyqueue[16];

Species the queue name for the reply message.

char failurequeue[16];

Specifies the queue name for failure messages.