Subscription Options Tab

In Subscription Service, you can use the Subscription Options tab to specify an exceptions table and an opaque exceptions table and perform other configurations. The adapter uses the exceptions table to store error messages from database operation failures.

The following table lists and describes the fields, which are grouped in two panels.

Name Description
Subscription Service Base Information Panel
Use Separate Session The Use Separate Session check box is used with Subscription Service multithreading. When you select this check box, the following options are displayed:
  • useSerial check box
  • Number of Subscription Service Threads field
  • Batch Commit Size field
  • Batch Commit Timeout(milliseconds) field

After you set a value in the Number of Subscription Service Threads field, the multiple threads can share the same session and dispatcher.

By default, the Use Separate Session check box is not selected.

Note: If you want to use multiple threads by configuring a separate session, the transport session name must end with one or more digits from 0 to 9.
useSerial This check box is displayed when the Use Separate Session check box is selected.

This option is designed to ensure that all messages are processed in order.

Note: Note the following conditions about this option:
  • The primary key in the destination table cannot be null.
  • If the destination table has no primary key, you have to select the User Key check box instead of the primary key. When processing the application requests, messages are handled in order.
  • If the destination table has no primary key, and the User Key check box is cleared, it is good practice to clear the useSerial check box.
Number of Subscription Service Threads This field is displayed when the Use Separate Session check box is selected.

Threads are allocated on demand. The valid values range from 1 through n. The number of threads you set in Subscription Service indicates the number of subscription threads that will connect to the database.

For more information, see Multithreading and Session in Subscription Service.

Subscription Service Option Information Panel
Exceptions Table Name of the exceptions table to which data is written if the adapter cannot write the data to the destination table. This table holds messages that caused an exception. If a table does not exist, Subscription Service creates one such table. For details, see Exceptions Table.

The exceptions table cannot contain any user-created columns in which the column name starts with ADB_. These characters are reserved for use by the adapter.

Note: For a parent-child relationship, this is the parent exceptions table. If you do not set the parent exceptions table, the child exceptions table is invalid.
Use Opaque Exceptions Table Select this check box to use an opaque exceptions table. The table records each message entirely into a column, along with the error message.

A message is logged into the exceptions table if Subscription Service fails to generate records in the destination table or the adapter fails to insert a message into an exceptions table.

For details, see Opaque Exceptions Table.

For DB2/390 databases, you must create a LOB table space before using the opaque exceptions table, which uses the LOB table space.

Opaque Exceptions Table Name of the opaque exceptions table. For details, see Opaque Exceptions Table.
Pre Commit Stored Procedure Name of a stored procedure Subscription Service calls after the database insert, update, or delete operation and before the commit.
Reply Sender Quality of Service If Subscription Service must send a reply to the sender, this value identifies the quality of service or delivery mode to be used to send the reply.
The available options are:
  • Reliable (TIBCO Rendezvous transport type only)
  • Certified (TIBCO Rendezvous transport type only)
  • Persistent (JMS transport type only)
  • Non-Persistent (JMS transport type only)
Bulk Insert Size When configured for batch processing, the adapter stores incoming subscription requests in a batch. All incoming messages to be inserted are stored until this size is reached. Then, a bulk insert operation is performed on the destination table by using a single processing.

This number must be less than or equal to the value in Batch Commit Size. The default value is 1. The batch is emptied when the batch size is reached.

Note: When using a parent-child relationship, you must note the following conditions:
  • Bulk Insert is valid if you enable group messaging and only send the data to the parent table.
  • Bulk Insert is invalid if you send the data to the parent table and child table.
  • Increasing Bulk Insert Size does not significantly improve the Subscription Service performance.
  • If you want to use JDBC driver options to improve the Subscription Service performance, for better results set the batchPerformanceWorkaround=true property instead of the EnableBulkLoad and BulkLoadBatchSize options.
Batch Commit Size The number of messages to be batched before a commit operation is invoked. The default value is 0. This field is displayed when the Use Separate Session check box is selected.
Note the following conditions regarding the Batch Commit Size field:
  • If you use the default value of 0 in the Batch Commit Size field, the adapter takes the value 1 as the batch commit size when running Subscription Service.
  • The Batch Commit option is not supported with the RVCMQ Quality of Service type. The RVCMQ scheduler requires a message to be confirmed before dispatching the next message, which prevents the adapter from operating in batch mode.

For more information about batch commit, see Configuring Batch Commit for Subscription Service.

Batch Commit Timeout(milliseconds) Specifies the longest interval between two batch commits. When the specified timeout expires, Subscription Service commits all the received messages even if the number does not reach the Batch Commit Size value. The default value is 10,000 milliseconds. This field is displayed when the Use Separate Session check box is selected.

The batch commit feature does not commit all received messages if the adapter configuration terminates before the batch commit value or time-out value is met.

If RVCMQ is enabled, when the batch commit size is greater than 1, batch commit times out after each operation (insert, update, or delete).

Note: When you use the default session for Subscription Service, if you set the Batch Commit Size and Batch Commit Timeout(milliseconds) fields in TIBCO Business Studio and then upgrade the adapter from an earlier version to the current version, the configurations of these fields in TIBCO Business Studio are lost and you have to reset the corresponding properties in the adbagent.tra file.

For more information about batch commit, see Configuring Batch Commit for Subscription Service.

Rendezvous Maximum Queue Size Maximum number of messages that can be put in the TIBCO Rendezvous event queue. The default value is 0, which indicates that no limit is placed on the event queue size.

Use this option to prevent the memory of a subscriber endpoint from overflowing if the publisher endpoint is too fast.

Note: If the value of this field is set to be smaller than the actual number of messages in the event queue, only the allowable number of messages can be sent and the subsequent messages are lost.
Note: At startup, the Subscription Service dispatchers wait for all components to start before dispatching subscriber messages.