Destination Resource Reference

Within each channel, destinations direct the incoming and outgoing information. A channel resource is not ready for use until it has at least one destination.

Destination Resource Common Properties

The Destinations section of a channel has the following fields.

Destination Resource Common Properties
Field Global Var? Description
Name No The name to appear as the label for the resource. Names follow Java variable naming restrictions. Do not use any reserved words.
Description No Short description of the resource.
Default Event No The event to be created from incoming messages unless otherwise specified. For convenience, you can open the selected event resource by clicking the underlined label.

This field is optional if you specify an event type in the incoming message.

The property is not used for the local channel.

Serializer/Deserializer No Specify a serializer class to convert messages to simple events and simple events to messages.
Include Event Type Yes (Only for HTTP, JMS, and Kafka channels) Specifies when to suppress the original behavior of including _ns_ and _nm_ fields during serialization and deserialization. For more details on _ns_ and _nm_ fields, see Mapping Incoming Messages to Non-default Events.

The values are:

  • When Serializing and Deserializing: always include _ns_ and _nm_ fields.
  • Only when Serializing: for outgoing JMS messages _ns_ and _nm_ fields are set in the JMS message headers. For incoming JMS messages _ns_ and _nm_ fields are ignored.
  • Only when Deserializing: the _ns_ and _nm_ fields are suppressed in the outgoing message but are used in incoming messages.
  • Never: the _ns_ and _nm_ fields are suppressed in incoming as well as outgoing messages.

HTTP Destination Configuration Properties

HTTP Destinations Configuration Properties
Field Global Var? Description
Reply Event No Optional. Defines a representative response event
Is JSON Payload No Specifies whether payload is JSON
Type No Specifies the type of the HTTP destination. The following are the values of the Type field:
  • Default - Specify the Default Event and Serializer/Deserializer fields for the destination.
  • PageFlow - Enables Action Rule Function based approach. If selected, the system disables the Default Event and Serializer/Deserializer fields for input.
  • WebSocket - If the selected, the destination uses the WebSocket protocol and the com.tibco.cep.driver.http.serializer.WebSocketMessageSerializer is selected for the Serializer/Deserializer field.
Context Path No Context URI for the web application. The field is active for input if the value of the Type field is PageFlow.
Action Rule Function No The Action Rule function to be executed when an HTTP message arrives at the context URI for the web application. The field is active for input if the value of the Type field is PageFlow.

ActiveSpaces Destination Configuration Properties

ActiveSpaces Channel Destination Configuration Properties
Field Global Var? Description
Table Name Yes Name of the table to which the ActiveSpaces channel connects to.
Filter Yes String specified to evaluate rows and refine the set of rows to work. A filter string can be seen as what would follow the where clause in a select * from where statement.

See Filters for more information.

Consumption Mode No Specifies the consumption mode for the ActiveSpaces event as one of:
  • Event Listener - listens for specific events to occur, and invokes a callback function from TIBCO ActiveSpaces.
PutEvent No When selected, the Event Listener listens for any Put events on the table and invokes a callback function when such an event occurs.
DeleteEvent No When selected, the Event Listener listens for any Delete events on the table and invokes a callback function when such an event occurs
ExpireEvent No When selected, the Event Listener listens for any Expire events on the table and invokes a callback function when such an event occurs.

TIBCO FTL Destination Configuration Properties

TIBCO FTL Destinations Configuration Properties
Field Global Var? Description
Application Name Yes The name of the application that communicates using TIBCO FTL software.
Endpoint Name Yes Name of endpoint for the application.
Instance Name Yes Name of the application instance.

The default value is default.

Format Name Yes The format name defined in the TIBCO FTL software.
Content Matcher No The query clause to filter messages.

The syntax of the query is as follows:

{"FIELD_NAME1" : FIELD_VALUE1, "FIELD_NAME2" : FIELD_VALUE2 }

Durable Name Yes Durable name of the FTL subscriber

JMS Destination Configuration Properties

See TIBCO Enterprise Message Service documentation for more detail on these settings.

JMS Destinations Configuration Properties
Field Global Var? Description
Is JSON Payload No Specifies whether payload is JSON
Queue Yes Specifies whether the destination is a queue or a topic. Select the check box if the destination is a queue. If the destination is a topic, do not select it.
Name Yes Required. The name of the queue or topic.

TIBCO BusinessEvents ignores JMS destinations with null or empty-string queue or topic names. It logs an error message for the ignored destinations. If a JMS message is sent out through an ignored destination, TIBCO BusinessEvents throws an exception and the message is not sent out. TIBCO BusinessEvents also does not receive JMS messages (events) through these ignored destinations.

Selector Yes Specifies a filter to pick up messages from the destination. This is a standard JMS selector based on SQL92 semantics.
DeliveryMode No The delivery mode property instructs the server concerning persistent storage for the message. Select one of the following:
  • PERSISTENT (default) — In JMS message headers this is represented by the code 2.
  • NON-PERSISTENT — In JMS message headers this is represented by the code 1.
  • RELIABLE — This value is an extension to the standard, used in TIBCO Enterprise Message Service. In message headers this is represented by the code 22.

You can also set a delivery mode in an event.

AckMode Yes The acknowledgment mode. See JMS Message Acknowledgement Modes for more details about the various modes.

The default value is EXPLICIT_CLIENT_ACKNOWLEDGE.

Priority No The message priority. Takes a numerical value between 0 and 9. Larger numbers represent higher priority.

You can also set a priority in an event.

The default value is 4.

TTL Yes The length of time that the message lives (in milliseconds) before expiration. If set to 0, the message does not expire.

You can also set a TTL (JMSExpiration) in an event.

The default value is 0.

DurableSubscriberName Yes For destinations that are JMS Topics, if you provide a DurableSubscriber Name, the destination becomes a JMS durable topic subscriber with the specified name. If you do not provide a value, the destination becomes a non-durable topic subscriber.

The value of this property can be any unique string and can include any global variables. TIBCO BusinessEvents provides a set of case-sensitive variables that produce a unique DurableSubscriberName string.

The default value is: %%EngineName%%:%%SessionName%%:%%ChannelURI%%:%%DestinationName%%.

SharedSubscriptionName Yes Specify the shared subscription name for the consumers. Among the consumers having the same SharedSubscriptionName only one receive the message. Thus, an application can have multiple consumers performing a job, and these consumers can share the subscription without each one receiving the same copy of the message.

The shareable and durable nature of a subscription can be used in different combinations. The following are the possible combinations:

  • non-shared and non-durable subscription - The subscription can have only one consumer and messages sent during the offline time are lost.
  • non-shared and durable subscription - The subscription can have only one consumer and can receive the messages which were sent when it was offline.
  • shared and non-durable subscription - The subscription can have many consumers and if they all went offline, the messages sent during the offline time are lost.
  • shared and durable subscription - The subscription can have many consumers and if all of them were offline, then the messages during the offline time are received by one of the consumers that comes online.

Kafka Destination Configuration Properties

Kafka Channel Destination Configuration Properties
Field Global Var? Description
Topic Name Yes Name of the Kafka topic.
Schema Registry Platform Yes

Select the Schema Registry that you want to connect to. You can use the Confluent Schema Registry or the TIBCO Schema Registry. In the Serializer/Deserializer field, you must select the KafkaAvroSerializer to use the schema registry.

For more information about the concepts and installation of Confluent Schema Registry, see Confluent documentation.

For more information about the concepts and installation of TIBCO Schema Registry, see TIBCO® Messaging - Schema Repository for Apache Kafka - Enterprise Edition documentation.

Schema Registry URL Yes

The REST API URL of the schema registry.

The URL must be in the following format:

http://<hostname>:<port>

Schema Subject Yes Subject name of Schema Registry. For more information about subject name strategies, see Subject Naming Strategies.
Schema Registry Authentication Yes

Authentication method for the Schema Registry:

  • Basic Auth: This authentication method uses a valid username and password to establish a secure communication with the schema registry.

  • One Way SSL: Establishes an encrypted connection to the schema registry using truststore file and truststore password.

  • Mutual Auth: Establishes an encrypted connection to the schema registry using truststore file, truststore password, keystore file, and keystore password.

  • No Auth

Click Configure Auth to configure authentication properties for the Schema Registry. For more information about authentication properties, see Kafka Schema Registry Security Configuration Properties.

Note: For TIBCO Schema registry, One Way SSL and No Authentication are only supported.
Update Schema in Schema Registry Yes If this checkbox is selected, TIBCO BusinessEvents creates the schema by using event properties and payload associated with the destination and registers it as per the subject name strategy. If there are any changes in event properties or concept, you can select this checkbox to update the schema in the schema registry.
Schema No Specify the schema to be registered in the Schema Registry. Only Avro schema type is supported.
Group ID Yes A unique ID that identifies the consumer group that this consumer belongs to. Assign the same Group ID to the consumers that you need to logically group in the same consumer group.
Client ID Yes A unique ID for the consumer to identify the source of the request. If not specified, BusinessEvents auto generates a unique Client ID.

The best practice is to leave it blank, so that BusinessEvents generates the unique ID automatically.

Consumer Threads Yes

Number of Kafka consumer threads that BusinessEvents creates for the destination.

You need to define multiple partitions for the Kafka topic so that each consumer thread is able to load messages.

One partition can be assigned to one consumer thread at a time.

To add more partitions to the topic use kafka-topics script.

kafka-topics.sh --zookeeper <zk_host:port> --age --topic <your_topic_name> --partitions <new_partition_count>
Heartbeat Interval (msec) Yes Specifies the time interval in milliseconds in which the destination sends heartbeat messages to broker. Heartbeats are used to ensure that the worker's session stays active and to facilitate rebalancing when new members join or leave the group. The value must be set lower than Session Timeout.

The best practice is to set it to one-third or lower of the Session Timeout value.

Session Timeout (msec) Yes Specifies the time interval in milliseconds, which is used to detect worker failures. The worker sends the heartbeat messages in Heartbeat Interval to indicate their liveliness to the broker. If no heartbeat messages are received by the broker before the expiration of the Session Timeout, then the broker removes the worker from the group and initiates a re-balance.
Enable AutoCommit Yes Specifies if the offsets are auto committed or not.

If selected (default), the consumer's offset is committed automatically in the time interval specified in AutoCommit Interval.

If cleared, the message is acknowledged when the RTC cycle completes or when Event.consumeEvent is called. This works only with "Caller's Thread" threading model type.

When Cache is enabled, the Event is acknowledged after the RTC cycle completes. By default, enableParallelOps is enabled so that the Event is committed in a separate thread. Because of this, the worker thread loads and processes the same Event a second time. To avoid that the message is processed twice, acknowledge the Event in a Rule or Rulefunction with Event.acknowledgeEvent(<event>).

Alternatively,

Disable parallelOps for the InferenceAgent. To disable it, add the following property in the CDD file:

Property: Agent.inference-class.enableParallelOps

Value: false

AutoCommit Interval (msec) Yes When Enable AutoCommit is checked, this field identifies the frequency in milliseconds that the consumer offsets are auto-acknowledged to Kafka.
Sync Sender Yes When checked, BusinessEvents waits for the message to be actually sent, instead of relying on the Kafka client library to send it asynchronously and assuming sent.
Sync Sender Max Wait (msec) Yes When Sync Sender is checked, this field identifies the maximum duration in milliseconds to wait for a send call to complete. If the client fails to send a message within this limit an exception occurs and sendEvent() returns NULL.
Compression Type Yes Specifies the compression type for messages being sent for the destination. The valid values are:
  • GZIP
  • Snappy
  • LZ4
  • ZSTD
  • None (default)
Send Message Key (RuleFunction) Yes This determines the Kafka partition to which the message is routed. Messages with the same keys are routed to the same partitions. Browse and select the RuleFunction that is used to compute the keys for the messages that are sent using this destination. The RuleFunction must have the expected Event in scope as the only parameter, and return a String value for the message key. When a RuleFunction URI is not specified, BusinessEvents sends message without key, in which case the message is routed to a partition as determined by Kafka.

Kafka Schema Registry Security Configuration Properties

When you select Schema Registry Authentication method and click Configure Auth, the following fields are displayed.

Field Global Variable? Description
FTL Realm Server Yes TIBCO FTL server URL. This field is enabled only for TIBCO Schema registry.
FTL Username Yes Username to access TIBCO FTL server.
FTL Password Yes Password to access TIBCO FTL server.
Trusted Certificate File No Absolute path and file name of the SSL truststore file that contains the SSL certificate to connect to the schema registry.
Identity No Path and file name of the identity store.
Trust Store Password Yes Password for the truststore.

Pulsar Destination Configuration Properties

Field Global Variable? Description
Topic Name Yes Name of the Pulsar topic.
Client ID Yes The client id to be used while subscribing to the Pulsar topic
Subscription Initial Position Yes

The initial position of subscription. Select Latest to receive the messages that have been published after the subscriber has been connected. Select Earliest to receive all the stored and new messages.

  • Earliest:

  • Latest

Default: Earliest

Subscription Type Yes

Specifies the type of Subscription.

  • Exclusive: In Exclusive mode, only a single consumer is allowed to attach to the subscription. An error occurs if multiple consumers subscribe to a topic by using the same subscription.

  • Shared (default): In Shared mode, multiple consumers can attach to the same subscription. Messages are delivered in a round robin distribution across consumers, and any given message is delivered to only one consumer.

  • Failover: In Failover mode, multiple consumers can attach to the same subscription. When the master consumer disconnects, all (non-acknowledged and subsequent) messages are delivered to the next consumer in line.

  • Key_Shared: In KeyShared mode, multiple consumers can attach to the same subscription. Messages are delivered in a distribution across consumers. Messages with the same key or same ordering key are delivered to only one consumer.

Is Source Cassandra Yes Set this checkbox to true when you want to use Cassandra as a channel and want to receive events from Cassandra.
Sync Sender Yes

When checked, BusinessEvents waits for the message to be actually sent, instead of relying on the Pulsar client library to send it asynchronously and assuming sent.

Default: False

Compression Type Yes

Specifies the compression type for messages being sent using the particular destination. Valid values are None, LZ4, ZLIB, ZSTD, Snappy.

Default: None (no compression)

Send Message Key (RuleFunction) Yes This determines the Pulsar partition to which the message is routed. Messages with same keys are routed to the same partitions. Select the RuleFunction that is used to compute the keys for the messages that are sent using this destination. The RuleFunction must have the expected Event in scope as the only parameter, and return a String value for the message key. When a RuleFunction URI is not specified, BusinessEvents sends a message without key. In this case, the message is routed to a partition as determined by Pulsar.

Local Destination Configuration Properties

Local destinations do not use serializers, deserializers, or default events.

Local Destinations Configuration Properties
Field Global Var? Description
Size No The maximum number of events to be held in the queue. The default is zero (0), which allows unlimited events in the queue.
TimeOut No Time to wait when sending an event to this local destination. The values are:
  • -1 (Default) - Waits indefinitely
  • 0 - Does not wait
  • >0 - Waits for the specified number of milliseconds