TIBCO FTL® Concepts
Important Information
About this Product
TIBCO Documentation and Support Services
FTL Concepts: a Bottom-Up Approach
Messaging Model
One-to-Many Publishing
Transports
Transport Types
Endpoints
One Endpoint Many Subscribers
One Endpoint Many Publishers
Distinct Endpoints in One Program
Content Matchers
One-to-One Communication
Request/Reply Pattern
Persistence: Stores and Durables
Stores and Durables
Store Examples
One Store
Two Stores
Shared Durable
Direct-Path Requirement and Merging
Formats
Application Endpoints
Variant Configurations
Realm
Concept Review
From Concepts to Usage
TIBCO FTL® Development
Important Information
About this Product
TIBCO Documentation and Support Services
Product Overview
Brief Definitions of Key Concepts
Messaging Concepts
Infrastructure Concepts
Administrative Concepts
Information for Developers
API Reference Documentation
Sample Programs
C Programmer’s Checklist
Java Programmer’s Checklist
.NET Programmer’s Checklist
Go Programmer’s Checklist
Restrictions on Names
Reserved Names
Length Limit
IPv4 and IPv6
Application Design
Structuring Programs
Application Instance Identifier
Callbacks and Recursive Dispatch
Inline Mode
Request and Reply
Recovery of a Disabled Process Restart versus Reopen the Realm
Clean-Up
Consolidation with Loose Coupling
Endpoints
Abilities
Endpoints and Stores
Send: Blocking versus Non-Blocking
Messages
Message Objects in Program Code
Message Origin
Message Ownership
Message Access
Message Mutability
Copy of a Message
Messages and Thread-Safety
Field Values and Types
Field Data Type Reference
Storage of Field Values within Messages
DateTime
Formats: Managed, Built-In, and Dynamic
Format Names
Field Names
Flexibility in Formats and Messages
Field Access: Names and References
Reusing Message Objects
Built-In Formats Reference
Opaque Format
Keyed Opaque Format
String Encoding
DateTime Values Printable String Form
Delivery
Inbound Message Delivery
Content Matchers
Match String Syntax
Match Semantics
Content Matcher Performance and Architecture
Subscriber Interest
Inline Mode
Callback Restrictions with Inline Mode
Transport Restrictions with Inline Mode
Realm Server Interactions
Realm Server Connect Call
Application Name
Client Label
Operation of the Realm Server Connect Call
Trust Properties of the Realm Connect Method
Trust File
Update and Disable
Trace Logs
Log Levels
Tuning the Log Level
Log Level Reference
Log Element Tags Reference
Log Output Targets
Log Content and Form
Advisory Messages
Advisory Message Common Fields Reference
Subscribing to Advisory Messages
Advisory Messages Catalog
DATALOSS FAILOVER_LOSS
DATALOSS SENDER_DISCARD
DATALOSS QUEUE_LIMIT_EXCEEDED
DATALOSS INCOMPLETE_MESSAGE
DATALOSS TPORT_DATALOSS
DATALOSS RECONNECT_LOSS
DATALOSS STORE_DISCARD_DATALOSS
DATALOSS UPSTREAM_LOSS
DATALOSS DIRECT_SUB_LOSS
ORDINAL_UPDATE
GROUP_STATUS
RESOURCE_AVAILABLE
RESOURCE_UNAVAILABLE
RETRANSMISSION RETRANSMISSION_REQUEST
RETRANSMISSION RETRANSMISSION_SENT
RETRANSMISSION RETRANSMISSION_SUPPRESSED
SUBSCRIBER_FORCE_CLOSE
LOCK_LOST
Notifications
Notifications Catalog
CLIENT_DISABLED
Groups of Applications
Introduction to Groups
Simple Fault Tolerance with Groups
Groups with More than Two Roles
Groups Principles of Operation
Group Server
Group Members
Interactions within a Group
Side Effects of Groups
Techniques for Programming with Groups
Program Structure for Groups
Activation Interval
Disconnect
Group Status
Group Observer
Programmer’s Checklist Addenda for Groups
Persistence: Stores and Durables
Purposes of Persistence
Basic Definitions for Persistence
Durable Subscribers
Standard Durable Reference
Shared Durable Reference
Last-Value Durable Reference
Acknowledgment of Message Delivery
Message Delivery Behavior
Maximum Message Size
Delivery Count for Shared Durables
Programmer’s Checklist Addenda for Stores and Durables
Key/Value Maps
Locks
Direct Publishers and Subscribers
Use Cases for Direct Publishers and Subscribers
Programming with Direct Publishers
Programming with Direct Subscribers
Multithreading with Direct Publishers and Subscribers
Multiple Direct Subscribers
Package Contents
Directory Structure Reference
Sample Programs Reference
Coordination Forms
TIBCO FTL® Administration
Important Information
About this Product
TIBCO Documentation and Support Services
Product Overview
Brief Definitions of Key Concepts
Messaging Concepts
Infrastructure Concepts
Administrative Concepts
Persistence Concepts
Realm Definition Terminology
Realm Administration Tools
Endpoints
Configuration Model
Endpoints
Abilities
Abilities in the Configuration Interface
Implementation: Endpoints (Micro)
Transports
Transport Connectors
Connectors to Cover Required Abilities
Implementation: Application (Macro)
Application Definitions
Application Instance Definitions
Default Instance and Named Instances
Instance Matching
Instances Determine Subscribers and Durables
Administrative Requirements
Administrative Options
Multiple Transports and Serial Communications
Sample Configuration 1: tibsendex and tibrecvex
Sample Configuration 2: tibrequest and tibreply
Transport Concepts
Transport Definitions Must be Unique
Unitary and Fragmentary Transport Definitions
Related Transports
Bus Topologies
Unitary Mesh
Assembling Larger Topologies from Pair Connections
Hub-and-Spoke
Mesh from Pair Connections
Asymmetric Multicast Topologies
Pair Connections
Listen End and Connect End
Connect Requests are Specific to IP Addresses
Subscriber Interest
Send: Blocking versus Non-Blocking
Shared Memory Transports and One-to-Many Non-Blocking Send
Blocking Send and Inline Mode
Inline Mode for Administrators
Transport Restrictions with Inline Mode
Receive Spin Limit
Polling for Data
Receive Spin Limit Tuning
Inheritance of Receive Spin Limit From Transports to Dispatch
UDP Packet Send Limit
Transport Protocol Types
Dynamic TCP Transport
Dynamic TCP Transport: Parameters Reference
Static TCP Transport
Static TCP Transport: Parameters Reference
Multicast Transport (mcast)
Multicast Group as Shared Communication Medium
Multicast Transport: Parameters Reference
Multicast Port Ranges
Multicast Port Range Syntax
Configuring Multicast Inbox Communication
Multicast Retransmission Suppression
Process Transport (PROC)
Process Transport: Parameters Reference
Shared Memory Transport
Configuring a Shared Memory Transport for Access by Different Users: UNIX
Configuring a Shared Memory Transport for Access by Different Users: Windows
Shared Memory Transport: Parameters Reference
Direct Shared Memory Transport
Reliable UDP Transport (RUDP)
RUDP Transport: Parameters Reference
Remote Direct Memory Access Transport (RDMA)
RDMA Transport: Parameters Reference
RDMA Hardware Reference
RDMA Implementation Library Reference
Configuring Locked Buffer Memory for RDMA
Buffer and Performance Settings for Transports
Formats
Formats Managed Built-In and Dynamic
Defining Formats
Built-In Formats
Realm Server
Affiliated Realm Servers
Server Roles and Relationships
Modifications to the Realm Definition of Affiliated Servers
Disconnected Satellite
Primary Out of Sync with Backup
Resyncing a Primary from a Backup Server
Configuring Backup Realm Servers for Fault Tolerance
Configuring Satellite Realm Servers
Secure Realm Servers
Running a Secure Realm Server
Running a Secure Backup or Satellite Realm Server
Keystore File Password Security
Realm Server Certificates and Web Browsers
Trust File
Realm Server Authentication
Using the Internal Flat-File Authentication Service
Using the External JAAS Authentication Service
Realm Server Authorization Groups
Password File
JAAS Login Modules
Option and Property Names
Realm Server Executable Reference
Realm Server Administration Utility Reference
Realm Server and its Interfaces
Realm Server URL
GUI Overview
GUI Top Bar
GUI Status Tables
GUI Left Column Menu
GUI Grids
GUI Details Panels
Restrictions on Names
Reserved Names
Length Limit
Size Units Reference
Realm Storage
Modification Lock
The Deploy Transaction
Valid Realm Modifications Reference
Realm Server GUI: Configuration
Applications Grid
Application Definition Details Panel
Endpoint Details Panel
Transports Grid
Transport Details Panel
Formats Grid
Realm Properties Details Panel
Message Formats Administration
Validation Results
Deployment History
New Clients during a Deployment
Realm Server GUI: Monitoring
Clients Status Table
Client Status
Conditions for Disabling Clients
Client Status Details
Client Label
Realm Servers Status Page
Realm Server Web API
HTTP Request Addressing
JSON Attribute Values
HTTP Authentication
HTTP Headers
Response Status Codes
Responses
Pagination
Semantics of Web API Objects and Methods
Configuring the Realm Definition Using the Web API
Creating or Modifying a Definition
Workspace
GET realm/workspace
GET realm/workspace/validation
POST realm/workspace
DELETE realm/workspace
Deployments
GET realm/deployments
GET realm/deployments/name
POST realm/deployments
DELETE realm/deployments/name
PUT realm/deployments/name
Definition Objects
Application Definition Objects
GET realm/applications
GET realm/applications/app_name
GET realm/applications/app_name/endpoints
GET realm/applications/app_name/endpoints/ep_name
GET realm/applications/app_name/instances
GET realm/applications/app_name/instances/inst_name
GET realm/applications/app_name/instances/inst_name/endpoints
GET realm/applications/app_name/instances/inst_name/endpoints/ep_name
POST realm/applications
POST realm/applications/app_name/endpoints
POST realm/applications/app_name/instances
DELETE realm/applications/app_name
DELETE realm/applications/app_name/endpoints/ep_name
DELETE realm/applications/app_name/instances/inst_name
PUT realm/applications/app_name
PUT realm/applications/app_name/endpoints/ep_name
PUT realm/applications/app_name/instances/inst_name
PUT realm/applications/app_name/instances/inst_name/endpoints/ep_name
Transport Definition Objects
GET realm/transports
GET realm/transports/name
POST realm/transports
DELETE realm/transports/name
PUT realm/transports/name
Persistence Definition Objects
GET realm/persistence
GET realm/persistence/clus_name
GET realm/persistence/clus_name/servers
GET realm/persistence/clus_name/servers/svr_name
GET realm/persistence/clus_name/sets
GET realm/persistence/clus_name/sets/set_name
GET realm/persistence/clus_name/sets/set_name/servers
GET realm/persistence/clus_name/sets/set_name/servers/svr_name
GET realm/persistence/clus_name/stores
GET realm/persistence/clus_name/stores/stor_name
GET realm/persistence/clus_name/stores/stor_name/durables
GET realm/persistence/clus_name/stores/stor_name/durables/dur_name
GET realm/persistence/clus_name/stores/stor_name/templates
GET realm/persistence/clus_name/stores/stor_name/templates/tem_name
POST realm/persistence
POST realm/persistence/clus_name/servers
POST realm/persistence/clus_name/sets
POST realm/persistence/clus_name/sets/set_name/servers
GET realm/persistence/clus_name/sets/set_name
POST realm/persistence/clus_name/stores
POST realm/persistence/clus_name/stores/stor_name/durables
POST realm/persistence/clus_name/stores/stor_name/templates
DELETE realm/persistence/clus_name
DELETE realm/persistence/clus_name/servers/svr_name
DELETE realm/persistence/clus_name/sets/set_name
DELETE realm/persistence/clus_name/sets/set_name/servers/svr_name
DELETE realm/persistence/clus_name/stores/stor_name
DELETE realm/persistence/clus_name/stores/stor_name/durables/dur_name
DELETE realm/persistence/clus_name/stores/stor_name/templates/tem_name
PUT realm/persistence/clus_name
PUT realm/persistence/clus_name/servers/svr_name
PUT realm/persistence/clus_name/sets/set_name
PUT realm/persistence/clus_name/sets/set_name/servers/svr_name
PUT realm/persistence/clus_name/stores/stor_name
PUT realm/persistence/clus_name/stores/stor_name/durables/dur_name
PUT realm/persistence/clus_name/stores/stor_name/templates/tem_name
PUT realm/applications/app_name/endpoints/ep_name
Bridge Definition Objects
GET realm/bridges
GET realm/bridges/br_name
POST realm/bridges
DELETE realm/bridges/br_name
PUT realm/bridges/br_name
Format Definition Objects
GET realm/formats
GET realm/formats/name
POST realm/formats
DELETE realm/formats/name
PUT realm/formats/name
Realm Definition and Properties
GET realm
POST realm
GET realm/properties
POST realm/properties
Group Server Definition Object
GET realm/groupserver
Status Objects
Realm Server Status Object
GET server
POST server
Clients Status Objects
Filters for Client Status Methods
HTTP Parameters for Client Filtering
HTTP Parameters for Client Monitoring
GET clients
GET clients/ID
POST clients/ID and POST clients
Bridges Status Objects
GET bridges
GET bridges/br_name
POST bridges/br_name
Group Server Status Object
GET groupserver
POST groupserver
GET groupserver/transports/gsvr
POST groupserver/transports/gsvr
Persistence Status Objects
Filters for Durables
GET persistence
GET persistence/clus_name
GET persistence/clus_name/servers
GET persistence/clus_name/servers/svr_name
GET persistence/clus_name/stores
GET persistence/clus_name/stores/stor_name
GET persistence/clus_name/stores/stor_name/durables
GET persistence/clus_name/stores/stor_name/durables/dur_name
POST persistence/clus_name
POST persistence/clus_name/servers/svr_name
POST persistence/clus_name/stores/stor_name/durables/dur_name
DELETE persistence/clus_name/stores/stor_name/durables/dur_name
Metrics and Monitoring Objects
GET monitoring
Groups of Applications
Introduction to Groups
Group Communication
Group Service
Fault Tolerance of the Group Server
Groups Status Table
Transport Bridge
Transport Bridge Use Cases
Transport Bridge to Shift Fanout for Efficiency
Transport Bridge to Extend beyond a Transport
Transport Bridge: Multiple Transports
Transport Bridge to Cross the Boundary of Shared Memory
Transport Bridge to Isolate Spokes
Transport Bridge Topologies
One Bridge
Two Serial Bridges
Hub-and-Spoke Bridges
Transport Bridge Restrictions
Transport Bridge Configuration
Bridges Grid
Transport Bridge Command Line Reference
Arranging a Fault-Tolerant Transport Bridge
Shared Memory Transports and Fault-Tolerant Bridges
Bridges among Dynamic TCP Meshes
Bridges Status Table
Persistence: Stores and Durables
Purposes of Persistence
Persistence Architecture
Coordination for Persistence
Stores for Delivery Assurance
Delivery Assurance: Topology
Delivery Assurance: Retention and Delivery
Delivery Assurance: Larger Networks of Endpoints
Delivery Assurance: Multiple Stores
Delivery Assurance: Durable Collision
Stores for Apportioning Message Streams
Stores for Last-Value Availability
Default Durable
Durable Behavior
Types of Durables: Standard, Shared, Last-Value, Map
Standard Durable Reference
Shared Durable Reference
Last-Value Durable Reference
Message Interest
Acknowledgment Mode
Persistence Servers and Clusters
Quorum and Leader
Quorum Conditions General Rule
Cluster Size
Quorum Behaviors
Persistence Server Fault Tolerance
Configuring Persistence
Stores Grid
Store Detail Panel
Durable Details Panel
Clusters Grid
Cluster Details Panel
Persistence Server Details Panel
Defining a Static Durable
Enabling Dynamic Durables
Enabling Key/Value Maps
Built-In Dynamic Durable Templates
Configuration of Durable Subscribers in an Application or Instance
Instance Matching for Subscriber Name Mapping
Configuring a Default Durable
Persistence Server Transports
Publisher Mode
Persistence Limits
Persistence Server (tibstore) Command Line Reference
Memory Reserve for Persistence Servers
Starting a Persistence Server
Stopping a Persistence Server
Persistence Monitoring and Management
Persistence Clusters Status Table
Servers List
Persistence Stores Status Table
Durables List
Subscribers List
Before Forcing a Quorum
Saving and Loading Persistence State
Suspending a Persistence Cluster
Saving the State of a Persistence Server
Restarting a Persistence Server with Saved State
Clock Synchronization, Affiliated Realm Servers, and Persistence
Disaster Recovery
Scope of the Disaster Recovery Feature
Disaster Recovery Prerequisites
DNS Remapping
Persistence Server Sets: Primary and Standby
Data Gaps and WAN Capacity
Preparing Realm Servers for a Disaster Recovery Site
Enabling Disaster Recovery for a Persistence Cluster
Recovering after Disaster
Migrating to Another Active Site
IPv4 and IPv6
Multithreading with Direct Publishers and Subscribers
Docker
Transports and Docker
Docker Images for FTL
Starting a Realm Server in a Docker Container
Overriding Realm Server Port Defaults in Docker
Starting a Persistence Server in a Docker Container
Starting a Transport Bridge in a Docker Container
Agents
Starting an Agent
Agent Command Line Reference
Package Contents
Directory Structure Reference
Sample Programs Reference
Coordination Forms
Upgrade Migration to a New Release
Upgrading TIBCO FTL Components
Upgrading Persistence Servers
Upgrading tibstore Persistence Servers: Rolling Upgrade
Upgrading Realm Servers
Upgrading a Set of Affiliated Realm Servers
Upgrading Each Individual Realm Server Process
TIBCO FTL Processes as Windows Services
Installing the Realm Server as a Windows Service
Installing a Persistence Server as a Windows Service
Installing a Transport Bridge as a Windows Service
Uninstalling a Windows Service
TIBCO FTL® Monitoring
Important Information
About this Product
TIBCO Documentation and Support Services
Client Monitoring
Realm Server Monitoring
Data Flow of Monitoring Data and Log Messages
Starting the Monitoring Components
Monitoring Gateway
Monitoring Gateway Command Line Reference (tibmongateway)
The Monitoring Endpoint
Subscribing to the Monitoring Stream
Structure of Monitoring Data Messages
Fields of Monitoring Data Messages
Connections Unravel Substreams
Catalogs of Metrics
Catalog of Application Metrics
Catalog of Persistence Metrics
Catalog of eFTL Metrics
Catalog of Realm Server and Service Metrics
Database and Visualization
InfluxDB
Grafana Dashboards
Grafana Reference
Migrating Data from Prometheus to InfluxDB
Migration Utility Command Line Reference
Estimating the Volume of Metric Data
Security of Monitoring Data
Monitoring Data: Timing and Interruptions
Central Logging
Clients Forward Log Messages
Log Stream
Log Message Structure
Log Service
Log Service Command Line Reference (tiblogsvc)
Log Service Web API
GET realms
GET realm_UUID/logs
GET realm_UUID/logs/client_ID
GET realm_UUID/advisories
POST shutdown
TIBCO FTL® API Reference
Important Information
About this Product
TIBCO Documentation and Support Services
API Documentation
TIBCO FTL® Security
Important Information
About this Product
TIBCO Documentation and Support Services
Security Features
Security Vulnerabilities
Product Connectivity
Developing Secure Applications
Ensuring FTL System Security: Tasks for Administrators
Coordination
Configuring Authentication and Authorization
Securing Realm Servers
Securing Transport Bridges
Securing Persistence Servers
Securing eFTL Servers
Securing Monitoring and Log Data
Securing Monitoring Gateway Services
Securing InfluxDB
Securing Grafana
Securing Log Services
TIBCO FTL® Shifting to FTL
Important Information
About this Product
TIBCO Documentation and Support Services
Shifting from EMS to FTL
Shifting from Rendezvous to FTL
Messages
Message Format
JMS Message Types
Peer-to-Peer Messaging
Realm Server and Realm Definition
Endpoints, Publishers, Subscribers, and Transports
FTL Delivery
Subscribers and Message Interest
Event Queue and Message Dispatch
Callback and Message Processing
Content-Based Addressing
Request/Reply Interactions
Persistence and Durability: Contrast FTL and EMS
Durable Types: Standard, Shared, and Last-Value
Static and Dynamic Durables
Durables and Content Matchers
Arranging Persistence
FTL Can Emulate EMS Behaviors
TIBCO FTL® Installation
Important Information
About this Product
TIBCO Documentation and Support Services
Preparing for Installation
Installation Requirements
Platform-Specific Instructions
Guidelines for Linux
Guidelines for macOS
Guidelines for Microsoft Windows
Installation
Installing on Linux
Installing on Linux in Silent Mode
Verifying the Installation on Linux
Optional Post-Installation Steps on Linux
Installing on macOS
Installing on macOS in Silent Mode
Installing on Windows
Installing on Windows in Silent Mode
Uninstallation
Uninstalling on Linux
Uninstalling on macOS
Uninstalling on Windows
Uninstalling on Windows in Silent Mode
TIBCO FTL® Glossary
Important Information
TIBCO Documentation and Support Services
About this Product
FTL Glossary