PK
*Aoa, mimetypeapplication/epub+zipPK *A iTunesMetadata.plista
This chapter provides reference information for the JMS/XLA API. It includes the following topics:
Note: "Access control impact on XLA" introduces the effects of TimesTen access control features on XLA functionality. |
A javax.jms.MapMessage
contains a set of typed name and value pairs that correspond to the fields in an XLA update header, which is published as the C structure ttXlaUpdateDesc_t
. The fields contained in a MapMessage
instance depend on what type of update it is.
Each MapMessage
returned by the JMS/XLA API contains at least one name and value pair, __TYPE
(with 2 underscores), that identifies the type of update described in the message as an integer value. The types are specified as integer values. As a convenience, you can use the constants defined in com.timesten.dataserver.jmsxla.XlaConstants
to compare against the integer types. Table 6-1 shows the supported types.
Table 6-1 XLA update types
For all update types, the MapMessage
contains name and value pairs that indicate the following.
Whether this is the first record of a transaction
Whether this is the last record of a transaction
Whether the update was performed by replication
Which table was updated
The owner of the updated table
The name and value pairs that contain these XLA flags are described in Table 6-2. Each name is preceded by two underscores.
Table 6-2 JMS/XLA flags
Name | Description | Corresponding ttXlaUpdateDesc_t flag |
---|---|---|
|
Indicates that a delete was due to aging. The flag is present only if the XLA update record is due to an aging delete. The |
|
|
Indicates that a delete was due to a cascading delete. The flag is present only if the XLA update record is due to a cascading delete. The |
|
|
Indicates that this is the last record in a transaction and that a commit was performed after this operation. This is in the |
|
|
Indicates that this is the first record in a new transaction. This is in the |
|
|
Indicates that this change was applied to the database through replication. This is in the |
|
|
This is only used for |
|
Note: TheXlaConstants interface is in the com.timesten.dataserver.jmsxla package. |
Applications can use the MapMessage
method itemExists()
to determine whether a flag is present, and getBoolean()
to determine whether a flag is set. As input, specify the XlaConstants
constant that corresponds to the flag, such as XlaConstants.AGING_DELETE_FIELD
.
Many DML operations generate XLA updates that can be monitored by XLA event handlers. This section describes the contents of the MapMessage
objects that are generated for these operations.
For INSERT
, UPDATE
and DELETE
operations, MapMessage
contains two name and value pairs, __TBLOWNER
and __TBLNAME
. These fields describe the name and owner of the table that is being updated. For example, for a table SCOTT.EMPLOYEES
, any related MapMessage
contains a field __TBLOWNER
with the string value "SCOTT" and a field __TBLNAME
with the string value "EMPLOYEES".
For INSERT
and DELETE
operations, a complete image of the inserted or deleted row is included in the message and all column values are available.
For UPDATE
operations, the complete "before" and "after" images of the row are available, along with a list of column numbers indicating which columns were modified. Access the column values using the names of the columns. The column names in the "before" image all begin with a single underscore. For example, columnname
contains the new value and _columnname
contains the old value.
If the value of a column is NULL
, it is omitted from the column list. The __NULLS
name and value pair contains a semicolon-delimited list of the columns that contain NULL
values.
Many data definition language (DDL) operations generate XLA updates that can be monitored by XLA event handlers. This section describes the contents of the MapMessage
objects that are generated for these operations.
Messages with __TYPE=1 (XlaConstants.CREATE_TABLE)
indicate that a table has been created. Table 6-3 shows the name and value pairs that are in a MapMessage
generated for a CREATE_TABLE
operation.
Table 6-3 CREATE_TABLE data provided in update messages
Name | Value |
---|---|
|
String value of the owner of the created table |
|
String value of the name of the created table |
|
String value containing the names of the columns in the primary key for this table If the table has no primary key, the Format: <col1name>[;<col2name> [;<col3name>[;...]]] |
|
String value containing the names of the columns in the table Format: <col1name>[;<col2name> [;<col3name>[;...]]] Note: For each column in the table, additional name and value pairs that describe the column are in the |
|
Integer value representing the data type of this column (from |
|
Integer value containing the precision of this column (for |
|
Integer value containing the scale of this column (for |
|
Integer value indicating the maximum size of this column (for |
|
Boolean value indicating whether this column can have a |
|
Boolean value indicating whether this column is stored in the inline or out-of-line part of the tuple |
|
Boolean value indicating whether this column is part of the primary key of the table |
Messages with __TYPE=2 (XlaConstants.DROP_TABLE)
indicate that a table has been dropped. Table 6-4 shows the name and value pairs that are in a MapMessage
generated for a DROP_TABLE
operation.
Messages with __TYPE=3 (XlaConstants.CREATE_INDEX)
indicate that an index has been created. Table 6-5 shows the name and value pairs that are in a MapMessage
generated for a CREATE_INDEX
operation.
Table 6-5 CREATE_INDEX data provided in update messages
Name | Value |
---|---|
|
String value of the owner of the table on which the index was created |
|
String value of the name of the table on which the index was created |
|
String value of the name of the created index |
|
String value representing the index type: "P" (primary key), "F" (foreign key), or "R" (regular) |
|
String value representing the index method: "H" (hash), "T" (range), or "B" (bit map) |
|
Boolean value indicating whether the index is unique |
|
Integer value representing the number of pages in a hash index (not specified for range indexes) |
|
String value describing the columns in the index Format: <col1name>[;<col2name> [;<col3name>[;...]]] |