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.
Destinations of each channel have some common properties and configuration properties specific to the channel type. The following sections provide information about these configuration properties:
- Destination Resource Common Properties
- HTTP Destination Configuration Properties
- ActiveSpaces Destination Configuration Properties
- TIBCO FTL Destination Configuration Properties
- JMS Destination Configuration Properties
- Kafka Destination Configuration Properties
- Kafka Streams Destination Configuration Properties
- Kinesis Destination Configuration Properties
- Local Destination Configuration Properties
- MQTT Destination Configuration Properties
- TIBCO Rendezvous Destination Configuration Properties
- StreamBase Destination Configuration Properties
- Destination Resource Common Properties
Destination Resource Common Properties
The Destinations section of a channel has the following fields.
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:
|
HTTP Destination 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:
|
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
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:
|
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
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.
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:
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
|
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 ( 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:
|
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:
|
Kafka 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
|
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:
|
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:
|
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:
|
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:
|
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:
|
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
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.
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:
|
MQTT 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:
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.
|
||||||||||||
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:
|
||||||||||||
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.
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:
When MaxEvents or DiscardAmount are zero (unlimited), the LimitPolicy must be
|
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
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:
|
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. |