TIBCO Rendezvouz Transport Adaptor
Overview
The Tibco Rendezvouz Transport Adaptor (hereinafter TibcoTA) is intended for communication between FixEdge and third-party applications using the Tibco Rendezvouz protocol.
Installation
TibcoTA is distributed as a zip-archive named TibcoAdaptor-xxxx.zip, where xxxx stands for TibcoTA version.
To install TibcoTA, unpack the .zip file and copy TibcoAddin.dll file to FixEdge \bin folder. Also tibrv.dll, tibrvcm.dll, tibrvft.dll should be added in PATH (or in bin directory).
Several instances of TibcoTA can be created without copying the shared library since FIXEdge C++ 6.14.0.
You can find detailed information about configuring TibcoTA in the Configuration section.
After TibcoTA is configured FixEdge has to be started.
Configuration
TibcoTA is configured using the following properties:
Property name | Description |
TransportLayer.Tibco.DllName | Contains path and name of TibcoTA dll. In case this parameter is not specified, the TransportLayer.Tibco.AdapterId is applied to define the adapter's library by ID. The property is required. Several instances of TibcoTA can be created using the same shared library since FIXEdge C++ 6.14.0. |
TransportLayer.Tibco.AdapterId | The parameter to define the adapter's library by ID. In case this parameter is not specified, or TransportLayer.Tibco.DllName parameter is specified too, the TransportLayer.Tibco.DllName is applied. This parameter is applicable since FIXEdge C++ 6.14.0 Required value: TIBCO. |
TransportLayer.Tibco.Description | Name of adaptor. The property is required. |
TransportLayer.Tibco.Type | Type of the adaptor library, contains 'DLL' value. The property is required. |
TransportLayer.Tibco.Default.FieldName | Default TIBCO message field name, where FIX message is stored. |
TransportLayer.Tibco.Default.ErrorFieldName | Default TIBCO message field name, where error message is stored. |
TransportLayer.Tibco.Default.TransportType | Default transport type for connections. |
TransportLayer.Tibco.Default.Service | Default service for connections. |
TransportLayer.Tibco.Default.Daemon | Default daemon for connections. Format of the value is '<host>:<port>'. |
TransportLayer.Tibco.Default.CMTransportName | Default name of CMTransport for connections. |
TransportLayer.Tibco.Default.CMTransportRequestOld | Default value of RequestOld flag value in CMTransport for connections. |
TransportLayer.Tibco.Default.CMTransportLedgerName | Default ledger name of CMTransport for connections. |
TransportLayer.Tibco.Default.CMTransportSyncLedger | Default SyncLedger flag value of CMTransport for connections. |
TransportLayer.Tibco.Default.CMTransportNetwork | Default network of CMTransport for connections. |
TransportLayer.Tibco.Default.CMTransportReceiverName | Default CMTransport receiver name for connections. Used to allow message delivery to clients, which are not registered as receivers at the moment of sending a message. |
TransportLayer.Tibco.Clients | Comma separated list of Client names. |
TransportLayer.Tibco.<CLIENT>.InSubject | Subject for receiving Tibco Messages from. |
TransportLayer.Tibco.<CLIENT>.OutSubject | Subject for sending Tibco Messages to. |
TransportLayer.Tibco.<CLIENT>.ErrorSubject | Subject for sending Error messages (failures of TibcoTA) to. |
TransportLayer.Tibco.<CLIENT>.UnroutedSubject | Subject for sending unrouted messages (Transport Layer is unable to find the receiver of message) to. |
TransportLayer.Tibco.<CLIENT>.<SUBJECT> .Name | Subject name specified for current connection. The property is required. |
TransportLayer.Tibco.<CLIENT>.<SUBJECT> .FieldName | TIBCO message field name, where FIX message is stored . |
TransportLayer.Tibco.<CLIENT>.<SUBJECT> .ErrorFieldName | TIBCO message field name, where error description is stored. |
TransportLayer.Tibco.<CLIENT>.<SUBJECT> .TransportType | Type of transport for Subject (general Net Transport (NetTransport) or Certified Message Delivery Transport (CMTransport)) |
TransportLayer.Tibco.<CLIENT>.<SUBJECT> .Service | The service may be specified in one of the following ways :
|
TransportLayer.Tibco.<CLIENT>.<SUBJECT> .Network | Consists of up to three parts, separated by semicolons — network, multicast groups, send address.
If network is omitted, the Default.CMTransportNetwork is used. |
TransportLayer.Tibco.<CLIENT>.<SUBJECT> .Daemon | Daemonhostandportin<host>:<port> format. |
TransportLayer.Tibco.<CLIENT>.<SUBJECT> .CMTransportName | If transport is Certified Message Delivery. |
TransportLayer.Tibco.<CLIENT>.<SUBJECT> .CMTransport RequestOld | If transport is Certified Message Delivery. |
TransportLayer.Tibco.<CLIENT>.<SUBJECT> .CMTransportL edgerName | If transport is Certified Message Delivery. |
TransportLayer.Tibco.<CONN>.<SUBJECT> .CMTransport SyncLedger | If transport is Certified Message Delivery. |
TransportLayer.Tibco.<CONN>.<SUBJECT>.CMTransportReceiverName | If transport is Certified Message Delivery.And subject type isOutSubject. |
To integrate TibcoTA into the FixEdge, the following steps have to be executed:
- Open FixEdge properties file (FIXEdge.properties by default).
- Find 'TransportLayer.TransportAdapters' property.
- Add 'TransportLayer.TransportAdapters' property in case it does not exist. Set 'TransportLayer.TibcoAdaptorDLL' to the value of 'TransportLayer.TransportAdapters' property:
TransportLayer.TransportAdapters = TransportLayer.TibcoAdaptorDLL
- If 'TransportLayer.TransportAdapters' property already has the value - append ',TransportLayer.TibcoAdaptorDLL' to the value:
TransportLayer.TransportAdapters = ...,TransportLayer.SXSAdaptorDLL,TransportLayer.TibcoAdaptorDLL
Add 'TransportLayer.TibcoAdaptorDLL.Description' property with the value - TibcoTA adaptor name:
TransportLayer.TibcoAdaptorDLL.Description = Tibco Transport Adaptor DLL
Add 'TransportLayer.TibcoAdaptorDLL.DllName ' property with the value - path to TibcoTA dll:
TransportLayer.TibcoAdaptorDLL.DllName = bin/TibcoAddinDll_8.dll
Add 'TransportLayer.TibcoAdaptorDLL.Type' property with 'DLL' value:
TransportLayer.TibcoAdaptorDLL.Type = DLL
Add default values for TibcoTA properties. For example :
TransportLayer.Tibco.Default.FieldName = FIX_MSG TransportLayer.Tibco.Default.ErrorFieldName = ERROR_MSG TransportLayer.Tibco.Default.TransportType = NetTransport TransportLayer.Tibco.Default.Service = 7777 TransportLayer.Tibco.Default.Network = 10.17.14.170 TransportLayer.Tibco.Default.Daemon = 10.17.14.170:7500 TransportLayer.Tibco.Default.CMTransportName = CMTransport TransportLayer.Tibco.Default.CMTransportRequestOld = false TransportLayer.Tibco.Default.CMTransportLedgerName = ledger TransportLayer.Tibco.Default.CMTransportSyncLedger = false TransportLayer.Tibco.Default.CMTransportNetwork = true TransportLayer.Tibco.Default.CMTransportReceiverName = CMTRECV.DIRECTION.NAME
Add client names TibcoTA will operate with :
TransportLayer.Tibco.ClientNames = Connection1,Connection2
Add properties for each subject for defined clients. For example:
TransportLayer.Tibco.Connection1.OutSubject.Name = CONN1.OUT TransportLayer.Tibco.Connection1.OutSubject.CMTransportName = CMT.CONN1.OUT TransportLayer.Tibco.Connection1.OutSubject.CMTransportReceiverName = CMTRECV.CONN1.OUT TransportLayer.Tibco.Connection1.OutSubject.FieldName = ANOTHER_TAG TransportLayer.Tibco.Connection1.OutSubject.TransportType = CMTransport TransportLayer.Tibco.Connection1.OutSubject.CMTransportLedgerName = conn1.out.ledger TransportLayer.Tibco.Connection1.OutSubject.Service = 8888 TransportLayer.Tibco.Connection1.OutSubject.Network = 10.17.14.170 TransportLayer.Tibco.Connection1.OutSubject.Daemon = 10.17.14.170:7500
- Restart FixEdge to apply changes.
After changes are made the FixEdge properties file may looks like this:
#------------------------------------------------------------ # Transport Layer Section #------------------------------------------------------------ #Comma separated list of identifiers of Transport Adapters should be loaded. TransportLayer.TransportAdapters = TransportLayer.SmtpTA,TransportLayer.Tibco ... #------------------------------------------------------------ # The Tibco Adaptor configuration file. #------------------------------------------------------------ TransportLayer.Tibco.Description = Tibco Transport Adaptor TransportLayer.Tibco.DllName = ./bin/TibcoAddinDll_8.dll TransportLayer.Tibco.Type = DLL TransportLayer.Tibco.Default.FieldName = FIX_MSG TransportLayer.Tibco.Default.ErrorFieldName = ERROR_MSG TransportLayer.Tibco.Default.TransportType = NetTransport TransportLayer.Tibco.Default.Service = 7777 TransportLayer.Tibco.Default.Network = 10.17.14.170 TransportLayer.Tibco.Default.Daemon = 10.17.14.170:7500 TransportLayer.Tibco.Default.CMTransportName = CMTransport TransportLayer.Tibco.Default.CMTransportRequestOld = false TransportLayer.Tibco.Default.CMTransportLedgerName = ledger TransportLayer.Tibco.Default.CMTransportSyncLedger = false TransportLayer.Tibco.Default.CMTransportNetwork = true TransportLayer.Tibco.Default.CMTransportReceiverName = CMTRECV.CONN1.IN TransportLayer.Tibco.ClientNames = Connection1,Connection2 TransportLayer.Tibco.Connection1.InSubject.Name = CONN1.IN TransportLayer.Tibco.Connection1.InSubject.CMTransportName = CMT.CONN1.IN TransportLayer.Tibco.Connection1.InSubject.FieldName = ANOTHER_TAG TransportLayer.Tibco.Connection1.InSubject.TransportType = CMTransport TransportLayer.Tibco.Connection1.InSubject.CMTransportLedgerName = conn1.in.ledger TransportLayer.Tibco.Connection1.InSubject.Service = 8888 TransportLayer.Tibco.Connection1.InSubject.Network = 10.17.14.170 TransportLayer.Tibco.Connection1.InSubject.Daemon = 10.17.14.170:7500 TransportLayer.Tibco.Connection1.OutSubject.Name = CONN1.OUT TransportLayer.Tibco.Connection1.OutSubject.FieldName = ANOTHER_TAG TransportLayer.Tibco.Connection1.OutSubject.TransportType = NetTransport TransportLayer.Tibco.Connection1.OutSubject.Service = 8888 TransportLayer.Tibco.Connection1.OutSubject.Network = 10.17.14.170 TransportLayer.Tibco.Connection1.OutSubject.Daemon = 10.17.14.170:7500 TransportLayer.Tibco.Connection1.ErrorSubject.Name = CONN1.ERROR TransportLayer.Tibco.Connection1.ErrorSubject.FieldName = ANOTHER_TAG TransportLayer.Tibco.Connection1.ErrorSubject.ErrorFieldName = ERROR_TAG TransportLayer.Tibco.Connection1.ErrorSubject.TransportType = NetTransport TransportLayer.Tibco.Connection1.ErrorSubject.Service = 8888 TransportLayer.Tibco.Connection1.ErrorSubject.Network = 10.17.14.170 TransportLayer.Tibco.Connection1.ErrorSubject.Daemon = 10.17.14.170:7500 TransportLayer.Tibco.Connection1.UnroutedSubject.Name = CONN1.UNROUTED TransportLayer.Tibco.Connection1.UnroutedSubject.FieldName = ANOTHER_TAG TransportLayer.Tibco.Connection1.UnroutedSubject.TransportType = NetTransport TransportLayer.Tibco.Connection1.UnroutedSubject.Service = 8888 TransportLayer.Tibco.Connection1.UnroutedSubject.Network = 10.17.14.170 TransportLayer.Tibco.Connection1.UnroutedSubject.Daemon = 10.17.14.170:7500
Troubleshooting
Since FIXEdge version 6.5.0 linking mode has been changed for Tibco client libs on Windows (static to dynamic). If user does not add Tibco libs into bin folder (tibrv.dll tibrvcm.dll tibrvft.dll), he catches a error in FE.log:
UTC ERROR [TransportLayer] 15240 Transport Adaptor 'Tibco' has failed to initialize: Error loading DLL 'D:\B2BITS\FIXEdge\FIXEdge-6.5.0.255-FA-2.23.0.62-Windows-vc14-x64\FIXEdge\bin\TibcoAddin-vc10-MD-x64.dll'.
tibrv.dll, tibrvcm.dll, tibrvft.dll should be added in PATH (or in bin directory) to avoid this error.