TIBCO eFTL Publish Output Adapter

Introduction

The TIBCO StreamBase® Publish Adapter for TIBCO eFTL® allows a StreamBase application to publish eFTL messages.

TIBCO Middleware Dependencies

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 eftl-3.3.0 maven install.launch which will install the tibeftl.jar into your local maven repository. To run the launch config copy your tibeftl.jar to the root folder of the imported sample project and right click the eftl-3.3.0 maven install.launch and perform the Run As command.

Adapter Properties

Property Description
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 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 checkbox is enabled ,a random UUID will be appended to the end of the given client Id. For example if you put "Streambase" as Client Id with the Unique Id enabled, the actual client Id sent to server will be similar to "Streambase8747bcdd-a6b5-4762-bb44-4811cf86033c".
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 username is not specified with the URL. The server authenticates the user name and password.\nThis field is not required if using an app authentication key
Output Publish Complete Status If enabled the operator will output a status message for each successfully published message.
Connect On Startup If enabled, the system tries to connect to the URL endpoint on startup.
Enable Control Port If enabled, the control port allows you to send commands to the operator.
Enable Status Port If enabled a status port will be available which will emit status tuples for various events of this operator.
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.

Advanced Tab

The advanced tab contains advanced connection options.

Property Description
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.

Data Type Conversion

This section describes how data is converted from a tuple into eFTL Data objects and back again.

eFTL to Tuple

This section describes how data is converted from eFTL Data objects into a tuple result. Note that the best data conversion option is highlighted.

If the StreamBase data type is not correct, the field will not be converted and will be left null.

Note

eFTL does current not support Boolean or int. For these data types, a best effort is done to convert from long values.

eFTL Data Type StreamBase Field Types
eFTL Opaque
  • Blob

eFTL Long
  • Boolean — eFTL will translate as 1 is true, else false

  • Int

  • Long

eFTL Long Array
  • list<Boolean> — eFTL will translate as 1 is true, else false

  • list<Int>

  • list<Long>

eFTL Double
  • Double

eFTL Double Array
  • list<Double>

eFTL String
  • String

eFTL String Array
  • list<String>

eFTL Date
  • Timestamp

eFTL Date Array
  • list<Timestamp>

eFTL Message
  • Tuple

eFTL Message Array
  • list<Tuple>

Tuple to eFTL

This section describes how data is converted from a tuple into eFTL Data objects.

Note

eFTL does current not support Boolean or int. For these data types, a best effort is done to convert to long values.

StreamBase Field Type eFTL Data Types
Blob eFTL Opaque
Boolean eFTL Long
list<Boolean> eFTL Long Array
Int eFTL Long
list<Int> eFTL Long Array
Long eFTL Long
list<Long> eFTL Long Array
Double eFTL Double
list<Double> eFTL Double Array
String eFTL String
list<String> eFTL String Array
Timestamp eFTL Date
list<Timestamp> eFTL Date Array
Tuple eFTL Message
list<Tuple> eFTL Message Array
list of list Not supported and will result in a null field
Function Not supported and will result in a null field.
Capture Field Not supported and will result in a null field.

Publish Input Port

Use this port to publish messages to eFTL. The entire tuple will be converted to an eFTL message.

Control Input Port

Commands

See the Required Schema for field definitions.

Command Description
Connect Use this command to connect to the server.
Disconnect Use this command to disconnect from the server.

Required Schema

Field Type Description
command String The command to execute via the operator.
url String The optional URL to connect to. If this value is null, the default URL from the adapter properties is used.
clientId String The Client ID to use when connecting. If this value is null, the default Client Id from the adapter properties is used.
authenticationKey String The Authentication Key to use when connecting. If this value is null, the default Authentication Key from the adapter properties is used.
username String The username to use when connecting. If this value is null the default Username from the adapters properties is used.

Status Output Port

The status output port will output 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 Debug, Error, Info, Trace, Warn.
action String Refer to the Actions 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 that the status occurred.

The following is a list of status outputs and the object associated.

Action object Description
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 was properly disconnected.
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 not valid.
Publish   This type of message is output when a something is invalid with a publish of a tuple to eFTL.
Published   This type of message is output when a message successfully published to eFTL. This message is only output if you enable the Output Publish Complete Status option.

Suspend and Resume Behavior

When suspended, the TIBCO eFTL Publish Adapter disconnects from the server and stops processing outgoing eFTL messages.

When resumed, the adapter re-connects to the server if it was connected before being suspended, as well as resumes processing outgoing eFTL messages.