Event store for Siebel Business Applications

The event store is a persistent cache where event records are saved until the polling adapter can process them. To keep track of inbound events as they make their way through the system, the adapter uses an event store.

The creation, update, or deletion of an event record in the Siebel business application is an 'event'. Each time a business object is created, updated, or deleted, the adapter updates the status of the event in an event store.

For example, if you have a customer component and a new customer has just been added to it, this signals an update. If the adapter is configured to receive the events about the new update, there are triggers attached to the Siebel end and connected to the customer component. The triggers add a record to the event business component. The record contains information about the new customer, such as the customer ID. This information is stored in the object key. The object key is the unique identifier that provides the key name and value of the event business component that was updated (for example, Id=1-20RT). The object name is the WebSphere® business-object name that represents the customer component (for example, Account). The adapter retrieves this event and the new customer information that relates to it. It then processes the event and delivers it to the export component.

During inbound processing, the adapter polls the event business components from the event store at regular intervals. Each time it polls, a number of events are processed by the adapter. Events are processed in ascending order of priority and ascending order of the event time stamp. In each poll cycle, new events are picked up. The adapter retrieves the value set in the object key field for the event and loads the business object that corresponds to it. The business object is created from the retrieved information and is delivered to the export components.

If you set the activation specification property AssuredOnceDelivery to true, a transaction ID (XID) value is set for each event in the event store. After the event is retrieved for processing, the XID value for it is updated in the event store and displayed in the XID column in the event business component. The event is then delivered to its corresponding export component, and the status is updated to show that the event has been successfully delivered. If the application is stopped or the event is not processed completely, the XID column is filled with a value. This ensures that the event is reprocessed and sent to the export component. After the connection is reestablished or the adapter starts again, the adapter checks for events in the event store that have a value in the XID column. The adapter processes these events first, then polls the other events during the poll cycles.

The adapter can either process all events or process events filtered by business-object type. You set the filter through the activation specification property, EventTypeFilter. This property contains a comma-delimited list of business-object types. Only the types specified in the property are processed. If the EventTypeFilter property is not set, all of the events are processed. If the FilterFutureEvents property is set to true, the adapter filters events based on the time stamp. The adapter compares the system time in each poll cycle to the time stamp on each event. If an event is set to occur in the future, it is not processed until that time.

After an event is successfully posted and delivered to the export component, the entry is deleted from the event store. Failed events (posting and delivery to the export component is unsuccessful), remain in the event store and are marked -1. This prevents duplicate processing.

Event store structure for Siebel business objects and business components

The IBM2 event business component stores information about the event. The information stored is used by the resource adapter during event subscription to build the corresponding business object and send it to the registered export components. The information that is stored, and the structure of the event store used by the adapter, are shown in the following table.

Table 1. Event store structure for IBM2 Siebel event business objects and business components
Field Description Example
Description Any comment associated with the event. Account Create Event
Event ID The ID of the event row. Automatically generated unique ID in Siebel (for example: 1-XYZ )
Event timestamp The time stamp for the event. The format is in mm/dd/yyyy hh:mm:ss 02/24/2007 11:37:56
Event type The type of event. Create, Update, or Delete
Object key A unique identifier of the business-object row for which the event was created. It is a name-value pair consisting of the name of the property (key name) and value. ID=1-20RT
Object name The name of the business object for which the event was detected. IOAccountPRMANIICAccount
Priority The event priority. 1
Status The event status. This is initially set to the value for a new event and updated by the adapter as it processes the event. The status can have one of the following values:
  • 0: Identifies a new event.
  • 1: Identifies an event that has been delivered to an export component.
  • -1: An error occurred while processing the event.

This column cannot contain a null value.

0
XID The transaction ID. This is to ensure assured once-only delivery. None
CONNECTOR ID The ID set for the adapter. Siebel001

Event store structure for Siebel business services

The event is retrieved from the IBM2 event business component and the information is used to retrieve the event business component.

Table 2. Event store structure for IBM2 Siebel business services
Field Description Example
Description Any comment associated with the event. Account PRM ANI Event
Event ID The ID of the event row. Automatically generated unique ID in Siebel (for example: 1-XYZ )
Event timestamp The time stamp for the event. The format is in mm/dd/yyyy hh:mm:ss 02/24/2007 11:37:56
Event type The type of event. Create, Update, or Delete
Object key A unique identifier of the business-object row for which the event was created. It is a name value pair consisting of the name of the property (key name) and value. Name=TestName;Location=BGM, where 'Name' and 'Location' are the keys in the integration component. 'TestName' and 'BGM' are the values specified, and ; is the event key delimiter.
Object name The name of the business object for which the event was detected. IOAccountPRMANIICAccount
Priority The event priority. 1
Status The event status. This is initially set to the value for a new event and updated by the adapter as it processes the event. The status can have one of the following values:
  • 0: Identifies a new event.
  • 1: Identifies an event that has been delivered to an export component.
  • -1: An error occurred while processing the event.

This column cannot contain a null value.

0
XID The transaction ID. This is to ensure 'assured once delivery'. None