The TIBCO StreamBase® Connection Adapter for TIBCO eFTL® allows a StreamBase application to connect to an eFTL server and share that connection with linked eFTL input and output adapters.
This adapter requires access to the JAR file that implements the TIBCO eFTL Java API on your system, and any files referenced
by that JAR file.
The adapter has been tested with eFTL version 3.4.0, though it will likely work with newer FTL API versions as well. To
make the TIBCO FTL Java API
available to the adapter, you must supply a maven dependency for it. The eFTL sample comes with a launch config
tibeftl jar maven install to repo.launch which will install
tibeftl.jar into your local maven repository. Run the launch config, and respond to the prompt for both the location of
tibeftl.jar and the version number it represents by right clicking
tibeftl jar maven install to repo.launch and performing the Run As command.
This section describes the properties you can set for this adapter, using the various tabs of the Properties view in StreamBase Studio.
Name: Use this required field to specify or change the name of this instance of this component, which must be unique in the current EventFlow module. The name must contain only alphabetic characters, numbers, and underscores, and no hyphens or other special characters. The first character must be alphabetic or an underscore.
Operator: A read-only field that shows the formal name of the operator.
Class name: Shows the fully qualified class name that implements the functionality of this adapter. If you need to reference this class name elsewhere in your application, you can right-click this field and select Copy from the context menu to place the full class name in the system clipboard.
Start with application: If this field is set to Yes (default) or to a module parameter that evaluates to
true, this instance of this adapter starts as part of the JVM engine that runs this EventFlow fragment. If this field is set to
No or to a module parameter that evaluates to
false, the adapter instance is loaded with the engine, but does not start until you send an epadmin container resume command (or its sbadmin equivalent), or until you start the component with StreamBase Manager.
Enable Error Output Port: Select this check box to add an Error Port to this component. In the EventFlow canvas, the Error Port shows as a red output port, always the last port for the component. See Using Error Ports to learn about Error Ports.
Description: Optionally enter text to briefly describe the component's purpose and function. In the EventFlow canvas, you can see the description by pressing Ctrl while the component's tooltip is displayed.
|URL||The URL to connect to.|
|Client Id||The client ID to set when connecting to the eFTL endpoint. A client ID is a unique identifier for each eFTL client. No two eFTL clients can connect at the same time with the same identifier. The provided identifier is optional, but for an eFTL client to receive messages that it might have missed while it was disconnected, you must specify the identifier.|
|Unique Id||If the check box is enabled, a random UUID is appended to the end of the given client Id. For example, if you enter
|Authentication Key||The authentication key to use when connecting to the eFTL endpoint.|
|Username||Use this property to supply a user name credential to the connect call if the user name is not specified with the URL. The server authenticates the user name and password. This field is not required if using an app authentication key.|
|Connect On Startup||If enabled, the system tries to connect to the URL endpoint on startup. Linked subscription adapters will subscribe if their matcher value is set.|
|Enable Control Port||If enabled, the control port allows you to send commands to the operator.|
|Enable Status Port||If enabled, a status port becomes available to emit status tuples for various events of this adapter.|
|Log Level||Controls the level of verbosity the adapter uses to send notifications to the console. This setting can be higher than the containing application's log level. If set lower, the system log level is used. Available values, in increasing order of verbosity, are: OFF, ERROR, WARN, INFO, DEBUG, TRACE.|
The advanced tab contains advanced connection options.
|Connection Timeout||Programs use this property to supply a timeout when connecting. If the connection cannot be made to the server within this time limit (in seconds), it stops trying to connect.|
|Auto Reconnect Attempts||Use this property to define the maximum number of times an attempt to autoreconnect to the server is made.|
|Auto Reconnect Max Delay||Use this property to define the maximum delay between autoreconnect attempts. Following the loss of connection, the autoreconnect process delays for 1 second before attempting to autoreconnect. Subsequent attempts double this delay time, up to the maximum defined by this property.|
|Notification Token||Programs use this property to supply a GCM registration token. The server uses the registration token to push notifications to a disconnected client when messages are available.|
|Trust Store||The full path to the Trust Store file to use with the connection. If empty the default trust store is used.|
|Trust Store Password||The password to use with the Trust Store.|
Use the Concurrency tab to specify parallel regions for this instance of this component, or multiplicity options, or both. The Concurrency tab settings are described in Concurrency Options, and dispatch styles are described in Dispatch Styles.
Concurrency settings are not suitable for every application, and using these settings requires a thorough analysis of your application. For details, see Execution Order and Concurrency, which includes important guidelines for using the concurrency options.
See the Required Schema for field definitions.
|Connect||Use this command to connect to the server.|
|Disconnect||Use this command to disconnect from the server.|
|command||String||The command to execute via the operator.|
|url||String||The optional URL to connect to. If this value is null, the default
|clientId||String||The Client ID to use when connecting. If this value is null, the default
|authenticationKey||String||The Authentication Key to use when connecting. If this value is null the default
|username||String||The user name to use when connecting. If this value is null the default
The status output port outputs tuples for the current configuration, giving relevant information about the connection.
The schema for the status output port is:
|Field Name||Field Type||Description|
|type||String||The type of report, which follows normal log levels
|action||String||Refer to the Action column in the next table.|
|object||String||An option object that has been affected by this status.|
|message||String||A human-readable message about the status.|
|time||timestamp||The timestamp for when the status occurred.|
The following is a list of status outputs and the associated objects:
|Connect||code||This type of message is output when something wrong occurred during the connect on startup.|
|Connected||URL||The connect message informs that the system successfully connected to the endpoint.|
|Disconnected||code||The system disconnected properly.|
|Disconnect||code||The system disconnected for the reason given in the message field.|
|Reconnect||URL||The reconnect message informs that the system automatically reconnected successfully.|
|Control||This type of message is output when a tuple input into the control port is invalid.|
When suspended, the TIBCO eFTL Connection Adapter disconnects from the server and stops processing incoming eFTL messages. All linked input and output adapters will also stop processing messages.
When resumed, the adapter reconnects to the server — if it had been connected before being suspended — and resumes processing incoming eFTL messages. Linked output adapters will resubscribe to all subscriptions that had previously been subscribed before the suspension occurred.