TIB RV Adapter For FTL
TIB RV Adapter For FTL
Two-Second Advantage®
2
Important Information
SOME TIBCO SOFTWARE EMBEDS OR BUNDLES OTHER TIBCO SOFTWARE. USE OF SUCH
EMBEDDED OR BUNDLED TIBCO SOFTWARE IS SOLELY TO ENABLE THE FUNCTIONALITY
(OR PROVIDE LIMITED ADD-ON FUNCTIONALITY) OF THE LICENSED TIBCO SOFTWARE. THE
EMBEDDED OR BUNDLED SOFTWARE IS NOT LICENSED TO BE USED OR ACCESSED BY ANY
OTHER TIBCO SOFTWARE OR FOR ANY OTHER PURPOSE.
USE OF TIBCO SOFTWARE AND THIS DOCUMENT IS SUBJECT TO THE TERMS AND
CONDITIONS OF A LICENSE AGREEMENT FOUND IN EITHER A SEPARATELY EXECUTED
SOFTWARE LICENSE AGREEMENT, OR, IF THERE IS NO SUCH SEPARATE AGREEMENT, THE
CLICKWRAP END USER LICENSE AGREEMENT WHICH IS DISPLAYED DURING DOWNLOAD
OR INSTALLATION OF THE SOFTWARE (AND WHICH IS DUPLICATED IN THE LICENSE FILE)
OR IF THERE IS NO SUCH SOFTWARE LICENSE AGREEMENT OR CLICKWRAP END USER
LICENSE AGREEMENT, THE LICENSE(S) LOCATED IN THE “LICENSE” FILE(S) OF THE
SOFTWARE. USE OF THIS DOCUMENT IS SUBJECT TO THOSE TERMS AND CONDITIONS, AND
YOUR USE HEREOF SHALL CONSTITUTE ACCEPTANCE OF AND AN AGREEMENT TO BE
BOUND BY THE SAME.
This document contains confidential information that is subject to U.S. and international copyright laws
and treaties. No part of this document may be reproduced in any form without the written
authorization of TIBCO Software Inc.
TIBCO, Two-Second Advantage, Rendezvous, and FTL are either registered trademarks or trademarks
of TIBCO Software Inc. in the United States and/or other countries.
Enterprise Java Beans (EJB), Java Platform Enterprise Edition (Java EE), Java 2 Platform Enterprise
Edition (J2EE), and all Java-based trademarks and logos are trademarks or registered trademarks of
Oracle Corporation in the U.S. and other countries.
All other product and company names and marks mentioned in this document are the property of their
respective owners and are mentioned for identification purposes only.
THIS SOFTWARE MAY BE AVAILABLE ON MULTIPLE OPERATING SYSTEMS. HOWEVER, NOT
ALL OPERATING SYSTEM PLATFORMS FOR A SPECIFIC SOFTWARE VERSION ARE RELEASED
AT THE SAME TIME. SEE THE README FILE FOR THE AVAILABILITY OF THIS SOFTWARE
VERSION ON A SPECIFIC OPERATING SYSTEM PLATFORM.
THIS DOCUMENT IS PROVIDED “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER
EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT.
THIS DOCUMENT COULD INCLUDE TECHNICAL INACCURACIES OR TYPOGRAPHICAL
ERRORS. CHANGES ARE PERIODICALLY ADDED TO THE INFORMATION HEREIN; THESE
CHANGES WILL BE INCORPORATED IN NEW EDITIONS OF THIS DOCUMENT. TIBCO
SOFTWARE INC. MAY MAKE IMPROVEMENTS AND/OR CHANGES IN THE PRODUCT(S)
AND/OR THE PROGRAM(S) DESCRIBED IN THIS DOCUMENT AT ANY TIME.
THE CONTENTS OF THIS DOCUMENT MAY BE MODIFIED AND/OR QUALIFIED, DIRECTLY OR
INDIRECTLY, BY OTHER DOCUMENTATION WHICH ACCOMPANIES THIS SOFTWARE,
INCLUDING BUT NOT LIMITED TO ANY RELEASE NOTES AND "READ ME" FILES.
Copyright © 1997 - 2016 TIBCO Software Inc. ALL RIGHTS RESERVED.
TIBCO Software Inc. Confidential Information
Contents
Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
TIBCO Documentation and Support Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
Adapter: Communication between Rendezvous and FTL Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Adapter Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Adapter Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Adapter Start Phase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Adapter FTL Side . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Adapter Rendezvous Side . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Configuring the Adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Adapter Configuration Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Running the Adapter Daemon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Adapter Daemon Command Line Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Adapter Administration: Realm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Adapter Data Type Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Data Type Mapping: FTL to Rendezvous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Data Type Mapping: Rendezvous to FTL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Data Type Mapping Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Request Reply Interactions through the Adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Primary FTL Request, Secondary Rendezvous Reply to an Inbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Secondary Rendezvous Request to an Inbox, Tertiary FTL Reply . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Primary Rendezvous Request to a Subject, Secondary FTL Reply to an Inbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Rendezvous Subjects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Adapter Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Figures
Adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Product-Specific Documentation
Documentation for TIBCO products is not bundled with the software. Instead, it is available on the
TIBCO Documentation site. To directly access documentation for this product, double-click the
following file:
TIBCO_HOME/release_notes/TIB_rv_8.4.5_docinfo.html
For comments or problems with this manual or the software it addresses, contact TIBCO Support:
● For an overview of TIBCO Support, and information about getting started with TIBCO Support,
visit this site:
http://www.tibco.com/services/support
● If you already have a valid maintenance or support contract, visit this site:
https://support.tibco.com
Entry to this site requires a user name and password. If you do not have a user name, you can
request one.
TIBCOmmunity is an online destination for TIBCO customers, partners, and resident experts. It is a
place to share and access the collective experience of the TIBCO community. TIBCOmmunity offers
forums, blogs, and access to a variety of resources. To register, go to the following web address:
https://www.tibcommunity.com
An understanding of TIBCO FTL messaging technology is helpful when reading this material.
Adapter Overview
The adapter converts messages so TIBCO FTL programs can communicate with existing TIBCO
Rendezvous programs. The adapter translates messages in both directions.
To understand the adapter, consider it from three perspectives:
From the perspective of FTL applications (right side of the diagram), the adapter behaves like any other
FTL application. It can publish messages and subscribe to messages. It contacts the realm server to get
formats and transports, just as any other application would. It communicates with other FTL
applications over FTL transports, as defined in the realm.
Adapter Perspsective
Within the adapter module, messages flow in two directions between its Rendezvous side and its FTL
side. FTL messages and Rendezvous messages are very different, so the adapter translates these
messages according to its configuration.
The central portion of the adapter in the preceding diagram shows the two translators, one for each
direction.
Adapter Operation
The adapter has three operating parts: the adapter start phase, the FTL side, and the Rendezvous side.
● If the Rendezvous subject is a multicast subject name, the adapter stores its elements in FTL
fields.
● If the Rendezvous subject is an inbox name, the adapter maps it to an FTL inbox and stores the
FTL inbox in an FTL field.
2. Then the adapter attempts to fill each of the remaining fields of the FTL format with values from the
Rendezvous message.
The adapter attempts to get a Rendezvous field with the same name as the FTL field.
● If the Rendezvous field type maps to an FTL field data type, then the adapter translates the
Rendezvous field value to an FTL field value of the appropriate data type.
● If the Rendezvous field type does not map to an FTL field data type, then the adapter either
discards the entire message, or skips the field, depending on the attribute of the tag.
(See Adapter Data Type Mapping.)
3. After translating all the FTL fields, the adapter publishes the translated FTL message on the relevant
FTL endpoints.
Rendezvous messages support unnamed fields, accessed only by index or field identifier. In contrast,
FTL messages do not support unnamed fields.
The adapter does not translate unnamed fields. When translating a Rendezvous message, the adapter
ignores unnamed fields.
A sample configuration file and a JSON schema are distributed with the product.
Procedure
General Syntax
The adapter configuration file is a JSON document. For information about JSON syntax and
terminology, see http://www.json.org. Use commas to separate elements of arrays, or elements of
objects.
Top Level
Name Description
realm Begin the adapter configuration. Top level object. Exactly one.
Required properties:
● applicationName
● url
● services
Optional properties:
● secondaryURL
● username
● password
● fromFTL
JAAS Authentication
Name Description
Name Description
Services
Name Description
● port
● endpoints
● fromRV
endpoints Required. Exactly one array, with at least one element. Elements are
strings. The strings must be unique.
The adapter maps these FTL endpoints to the Rendezvous service (see
the enclosing services element), translating messages in both
directions.
When this array contains several endpoint elements, the adapter
translates each Rendezvous message from the Rendezvous service only
once, and forwards the translation to all of the FTL endpoints.
Contained in: elements of the services array.
Name Description
● formatName
● subjectName
● parseSubject
Optional properties:
● discardMessages
● replyFieldName
Name Description
Name Description
● formatName
● assembleSubject
Optional properties:
● discardMessages
● replyFieldName
● expectReplyFormatName
Name Description
assembleSubject Required. Exactly one array with at least one string element.
This array instructs the adapter as it assembles designated fields of an
FTL message into a Rendezvous subject name.
Each element of the array is a string designating a field name in the FTL
format.
The adapter assembles a Rendezvous subject by concatenating the
values of the FTL fields, separating them with period (.) characters.
Contained in: elements of the fromFTL array.
Procedure
Adapter
-config filename The adapter reads its configuration from this file
(in JSON format). See Adapter Configuration
Reference
Bidirectionality
During its start phase, the adapter creates a publisher and a subscriber for each of its endpoints.
Administrators must ensure that the realm supports these objects for each adapter endpoint. That is, for
each adapter endpoint, the connectors in the adapter’s application instance definition must cover at
least the send ability and the receive ability. This requirement applies even if you intend that messages
flow through the adapter in only one direction.
One-to-One Abilities
If the adapter uses an endpoint to forward one-to-one messages, then the connectors that implement
that endpoint within the adapter’s application instance definition must cover either the send inbox
ability, the receive inbox ability, or both, as needed.
In contrast, if the adapter does not forward one-to-one messages, then the connectors need not cover
either of these abilities.
TIB_FIELD_TYPE_OPAQUE TIBRVMSG_OPAQUE
TIB_FIELD_TYPE_LONG TIBRVMSG_I64
TIB_FIELD_TYPE_LONG_ARRAY TIBRVMSG_I64ARRAY
TIB_FIELD_TYPE_DOUBLE TIBRVMSG_F64
TIB_FIELD_TYPE_DOUBLE_ARRAY TIBRVMSG_F64ARRAY
TIB_FIELD_TYPE_STRING TIBRVMSG_STRING
TIB_FIELD_TYPE_STRING_ARRAY TIBRVMSG_STRINGARRAY
TIB_FIELD_TYPE_MESSAGE Error
TIB_FIELD_TYPE_MESSAGE_ARRAY Error
TIB_FIELD_TYPE_INBOX Error
TIB_FIELD_TYPE_DATETIME TIBRVMSG_DATETIME
TIB_FIELD_TYPE_DATETIME_ARRAY Error
TIBRVMSG_OPAQUE TIB_FIELD_TYPE_OPAQUE
TIBRVMSG_BOOL Error
TIBRVMSG_I8 TIB_FIELD_TYPE_LONG
TIBRVMSG_I16
TIBRVMSG_I32
TIBRVMSG_I64
TIBRVMSG_U8
TIBRVMSG_U16
TIBRVMSG_U32
TIBRVMSG_U64 Error
TIBRVMSG_I8ARRAY TIB_FIELD_TYPE_LONG_ARRAY
TIBRVMSG_I16ARRAY
TIBRVMSG_I32ARRAY
TIBRVMSG_I64ARRAY
TIBRVMSG_U8ARRAY
TIBRVMSG_U16ARRAY
TIBRVMSG_U32ARRAY
TIBRVMSG_U64ARRAY Error
TIBRVMSG_F32 TIB_FIELD_TYPE_DOUBLE
TIBRVMSG_F64
TIBRVMSG_F32ARRAY TIB_FIELD_TYPE_DOUBLE_ARRAY
TIBRVMSG_F64ARRAY
TIBRVMSG_STRING TIB_FIELD_TYPE_STRING
TIBRVMSG_STRINGARRAY TIB_FIELD_TYPE_STRING_ARRAY
TIBRVMSG_MSG Error
TIBRVMSG_MSGARRAY Error
TIBRVMSG_DATETIME TIB_FIELD_TYPE_DATETIME
● If the value of is true, then the adapter discards the entire message.
● Otherwise, the adapter skips the offending field and continues translating the message.
1. The adapter gets the value of the reply field, namely, the FTL inbox where the requestor awaits a
reply.
2. The adapter maps that FTL inbox to a Rendezvous inbox within the adapter.
3. In the Rendezvous translation of the request message, the adapter sets the reply subject to that
Rendezvous inbox.
4. Later, when a Rendezvous program sends a reply to that inbox, the adapter receives it, translates it
to an FTL message using the reply format, and forwards it to the FTL inbox where the requestor
awaits the reply.
● The adapter receives the secondary message at an adapter inbox, so the message must be a
Rendezvous reply to an FTL request.
● The reply subject of the secondary Rendezvous message contains a Rendezvous inbox name, so the
sender must be awaiting a tertiary reply.
The adapter repurposes the reply field from the primary request so an FTL program can send a tertiary
reply to the secondary Rendezvous request. The reply field is an FTL field name, specified as the value of
the of the configuration tag, which is the same tag that governed translation of the primary FTL request
message.
1. The adapter gets the reply subject, namely, the Rendezvous inbox name where the requestor awaits
a reply.
2. The adapter maps that Rendezvous inbox to an FTL inbox within the adapter, called the reply inbox.
3. In the FTL translation of the secondary request message, the adapter stores the reply inbox in the
reply field.
4. Later, when an FTL program sends its tertiary reply to the reply inbox, the adapter receives it,
translates it to a Rendezvous message, and forwards it to the reply subject. That reply subject is the
Rendezvous inbox where the secondary requestor awaits the tertiary reply.
Because you have already configured the adapter to translate the primary request, you do not need any
additional configuration to forward the secondary request, nor to forward the tertiary reply. (See Primary
FTL Request Secondary Rendezvous Reply to an Inbox.)
Nonetheless, if the format of the tertiary reply differs from the format of the primary request, you must
configure a separate tag to translate that format. This case has the same form as the configuration for the
primary request.
● The subject of the message matches the subject attribute of a configuration tag.
● The attribute of that tag specifies the name of an FTL field, called the reply field.
● The realm defines the format such that the reply field has type TIB_FIELD_TYPE_INBOX.
To configure this case, ensure that the adapter configuration meets these three criteria.
The adapter arranges a mechanism through which an FTL program can reply to the Rendezvous
request:
1. The adapter gets the reply subject, namely, the Rendezvous inbox name where the requestor awaits
a reply.
2. The adapter maps that Rendezvous inbox to an FTL inbox within the adapter, called the reply inbox.
3. In the FTL translation of the request message, the adapter stores the reply inbox in the reply field.
4. Later, when an FTL program sends a reply to that reply inbox, the adapter receives it, translates it to
a Rendezvous message, and forwards it to the reply subject. That reply subject is the Rendezvous
inbox where the requestor awaits the reply.
Rendezvous Subjects
The Rendezvous subjects you configure for conversion must be distinct.
The adapter validates the subject attribute of each tag, using the following rules:
● Within the scope of a service tag, the subjects of the tags must not collide with one another.
This restriction does not apply between tags that are in different service tags.
● If a literal subject is identical to a previous literal subject, then they collide (not permitted).
● If a literal subject matches a previous wildcard subject, then they do not collide (permitted).
● If a wildcard subject matches a previous literal subject, then they do not collide (permitted).
● If a wildcard subject matches a previous wildcard subject, then they collide (not permitted).
Examples
The restriction against colliding subjects helps ensure that the adapter translates each Rendezvous
message at most once.
The adapter forbids combinations in which two wildcard subjects collide, preventing ambiguity.
The adapter permits combinations in which a message might match both a literal subject and a
wildcard subject. In this situation, the adapter translates the message according to the tag that specified
the literal subject.
Adapter Restrictions
Although the adapter is flexible, these restrictions apply.
● The adapter does not support FTL messages with dynamic formats. It can translate an FTL message
only if it uses a pre-loaded format. It can translate a Rendezvous message only into a managed FTL
format.
● The adapter does not translate FTL messages of types TIB_BUILTIN_MSG_FMT_OPAQUE nor
TIB_BUILTIN_MSG_FMT_KEYED_OPAQUE. Instead, you must define a managed format with one
opaque field.