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, Kafka, Kafka Streams, and Rendezvous 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
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 3.x Destination Configuration Properties

ActiveSpaces 3.x Channel Destination Configuration Properties
Field Global Var? Description
Table Name Yes Name of the table to which the ActiveSpaces 3.x 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 3.x.
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 acknowledgement 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 will live (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 consumer which comes online.

Kafka Destination Configuration Properties

Kafka Channel Destination Configuration Properties
Field Global Var? Description
Topic Name Yes Name of the Kafka topic.
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 request. If not specified, BusinessEvents auto generates an 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.
Heartbeat Interval (msec) Yes Specifies the time interval in milliseconds in which destination sends heartbeat messages to broker. Heartbeats are used to ensure that the worker's session stays active and to facilitate re-balancing 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 initiate a re-balance.
Enable AutoCommit Yes Specifies if the offsets are auto committed or not.

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

If unchecked, 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.

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 is thrown 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
  • None (default)
Send Message Key (RuleFunction) Yes This determines the Kafka partition to which the message is routed. Messages with same keys will be routed to same partitions. Click 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 Streams Destination Configuration Properties

The following table explains the Kafka Streams destination properties. For more conceptual information about each property, see the Kafka Streams documentation.

Field Global Variable? Description
Topic Name Yes Required. Name of the Kafka topic.
Is Regex Pattern No A toggle to denote if the Topic Name is a regex pattern.
Application ID Yes Required. A unique ID for the stream processing application. The same ID must be given to all instances of the application. Each destination must have a unique ID which is used by Kafka Streams to create internal topics.
Key Serde Yes Specify the SerDes (Serializer/Deserializer) for the data types of record keys.

Accepted Values:

  • ByteArray (Default)
  • Double
  • Integer
  • Long
  • String
Value Serde Yes Specify the SerDes (Serializer/Deserializer) for the data types of record values. You can select either of the following SerDes for record values of the destination:

Accepted Values:

  • String (Default)
  • ByteArray
  • Double
  • Integer
  • Long
Auto Offset Reset Yes Specify the strategy for resetting the offset of the topic in Kafka in case the current offset does not exist anymore on the server. The values are:
  • Latest (Default)
  • Earliest
Processing Guarantee Yes Specify the processing guarantee strategy to be used for processing each record of the Kafka Stream. The following processing guarantee strategies are available:
  • At least Once (Default) - Messages are never lost but might be redelivered
  • Exactly Once - Each message is delivered once and only once
Processor Topology No Define the processor topology for the stream coming to the destination. Add the transformations (stream processors) in the same sequence as you want to process the stream. So, the output of the transformation of a row is input to the row below it. The output of the last row transformation is sent to a TIBCO BusinessEvents Foreach processor which creates an event by using the provided serializer. The top row transformation is the source processor and the Foreach processor is the sink processor of Kafka Streams. For more information on stream processor topology and stream processors, see the Kafka Streams documentation.

Click Add to view the list of transformations that you can add to your processor topology. Select the transformation and provide input to it as required and click OK. You can provide rule functions as input to the transformations where the rule functions contains the stream processor code for the transformation. The Add Transformation window lists only eligible transformations that can be added in the processor topology based on the existing transformations. For example, if you have added a GroupByKey transformation, the Add Transformation window lists only Aggregate, Count, and Reduce transformations.

For list of available transformations for the Kafka Streams channel, see Kafka Streams Transformations in TIBCO BusinessEvents.

Kafka Streams Transformations in TIBCO BusinessEvents. The transformation input rulefunction must have a specific signature depending on the input type. The following table gives a sample signature for each transformation input. The rulefunction browser on the Add/Edit Transformation window filters the rule function that are applicable to a given input. For more information on the following transformations, see the Kafka Streams DSL documentation.
Transformation Required Input TIBCO BusinessEvents Resource
Filter, FilterNot Predicate boolean rulefunction(Object, Object)
MapValues, FlatMapValues ValueMapper Object rulefunction(Object, Object)
ValueMapperWithKey Object rulefunction(Object)
GroupByKey None
SelectKey KeyValueMapper Object rulefunction(Object, Object)
Aggregate Initializer Object rulefunction()
Aggregator Object rulefunction(Object, Object, Object)
Count None
Reduce Reducer Object rulefunction(Object, Object)
ToStream None
Join, LeftJoin, OuterJoin Topic String Literal or Global Variable(String)
ValueJoiner Object rulefunction(Object, Object)
JoinWindows(Time Difference, After, Before, Grace) Durations Positive Number or Global Variable(Integer)

Kinesis Destination Configuration Properties

Kinesis Destinations Configuration Properties
Field Global Variable? Description
Stream Name Yes Name of the stream to which the producer sends data and from which the consumer consumes data.
Application Name Yes Name of the Amazon Kinesis Data Stream application.
Note: Each of the applications in the scope of a particular AWS account and Region must have unique names.
Max Records Yes The maximum number of records to be returned from the stream when processing the records from the Kinesis consumer.
Region Name Yes

Name of the region where the Amazon Kinesis data stream application is deployed.

For example, us-west-2

Event Property No Select an event property that BusinessEvents uses as a partition key for Kinesis.

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





MQTT Destination Configuration Properties

MQTT Channel Destination Configuration Properties
Field Global Var? Description
Publish Topic Name Yes Topic name to which the publisher delivers the message.
Note: Topic names must not include wildcards.
Subscribe Topic Name Yes

List (as comma-separated values) all topic names to which the client can subscribe.

The following wildcard characters can be used while subscribing to multiple topics:
  • A hash character (#) can be used as a multilevel wildcard.
  • The plus character (+) can be used as a single-level wildcard.
Note: Wildcards can only be used to denote levels. For example, /house/# is a valid usage, but house# is an invalid wildcard usage.
Client ID Yes

The client identifier is used by the server to store data related to the client. Hence, use the correct client ID when connecting to the server for reliable messaging and durable subscriptions.

Note: A client ID must be less than 65535 characters and unique across all the clients connecting with the same server.
Async Client Yes

The client used to communicate with the MQTT broker.

The Async Client enables clients to initiate non-blocking MQTT actions that run in the background thread.

Clean Session Yes

Specifies whether the client and the server should remember their states when the client, the server, or the connection restarts.

Value Are the states maintained after restart? Is the Quality of service level maintained? Durable subscription?
True No No No
False Yes Yes Yes
MaxInflight Yes

The number of QoS 1 or QoS 2 messages that are in the process of being transmitted simultaneously.

Default value: 10 messages

Note: Increase the default value in high-traffic environments.
Quality of Service (QoS) Yes The agreement between the client and the server regarding the guarantee that a message delivers. The three QoS levels are as follows:
  • At most once (level 0): The message delivers at most once or may not deliver at all. The receiver does not send an acknowledgment to the sender. Delivery failure can occur if the client disconnects or the server fails.
  • At least once (level 1): The message delivers at least once. The sender stores the message locally until it receives a confirmation that the receiver has published the message.
  • Exactly once (level 2): The message delivers exactly once. The sender stores the message locally until it receives a confirmation that the receiver has published the message.
Retain Yes

Determines if a broker stores the last retained message and the corresponding QoS for that message's topic.

A retained message is like a normal MQTT message with the retain flag set to true. When a client subscribes to a topic that has a retained message, it immediately receives the retained message after subscribing. The broker stores only one retained message per topic

Will and Testament Yes

Determines whether the Last Will and Testament feature is enabled.

The Last Will and Testament feature is used to notify other clients of an abruptly disconnected client.

If set to true, each client can specify its last will message while connecting to the broker. If the client then disconnects abruptly, the broker sends the message to all subscribed clients on the topic that is specified in the message.

Disconnect on Suspend Yes

Determines whether a destination disconnects on suspension.

If set to false, when a destination disconnects and unsubscribes to the subscribed topics. No stored messages deliver after the destination resumes.

If set to true, a suspension disconnects the MQTT connection and stored messages deliver when the destination resumes.

TIBCO Rendezvous Destination Configuration Properties

See the TIBCO Rendezvous documentation for more details about these settings.

TIBCO Rendezvous Destinations Configuration Properties
Field Global Var? Description
Subject Yes The TIBCO Rendezvous subject for incoming and outgoing messages.
RVCM Pre Registration Yes For TIBCO Rendezvous certified message publishers, specify pre-registered listener names as a comma-separated list.
LimitPolicy Yes How you want the Rendezvous listener to behave when it receives more messages than the MaxEvents limit. Choose one of:

Discard_None (default)

Discard_First

Discard_Last

Discard_New

When MaxEvents or DiscardAmount are zero (unlimited), the LimitPolicy must be Discard_None.

MaxEvents No Maximum number of message events that the queue can hold.

The default value, zero (0), means an unlimited number of events.

DiscardAmount No The number of events to discard when the queue exceeds its maximum event limit.

The default value, zero (0) means events are never discarded.

StreamBase Destination Configuration Properties

StreamBase Destinations Configuration Properties
Field Global Var? Description
Stream Name No The name of the input or output stream from the StreamBase application
Client Type No Specifies whether the connection is used as an input (dequeue) client or an output (enqueue) client. The values are:
  • Dequeuer
  • Enqueuer
Filter Predicate No A StreamBase expression that is used to filter the incoming messages. For instance, BidPrice > 100.

This field is active only if Client Type is Dequeuer.

Enable Buffering No Specifies whether to activate buffering for an enqueue client. Activating buffering can improve performance when there are a large number of enqueue operations.

This field is active only if Client Type is Enqueuer.

Buffer Size No The number of tuples to buffer before the enqueue operation.

This field is active only if Enable Buffering is selected.

Flush Interval (ms) No Time interval (in milliseconds) to wait before flushing the enqueue buffer.

This field is active only if Enable Buffering is selected.