How to configure adapters in FIXEdge
Overview
FIXEdge provides the possibility to set up and configure adapters for FIXEdge using the FIXEdge.properties file.
There can be one or several adapters configured for one instance of FIXEdge. There also can be several instances of one adapter configured for one instance of FIXEdge.
Each adapter is a separate *.dll file.
Preparation
Download the adapter (or adapters) you want to configure
Make a backup copy of your current FIXEdge configuration
Prepare configuration amendments in case you plan to change any credentials, destination folders, connection parameters, etc. Refer to configuration guides for assistance
Make sure you have sufficient administration permissions for further uninstall/install procedures
Install the chosen adapter according to the rules specified in FIXEdge Transport Adaptors article for each adapter
Configuring
The list of adapters to be used by the instance of FIXEdge should be specified in TransportLayer.TransportAdapters parameter. Values are delimited by comma.
For example: TransportLayer.TransportAdapters = TransportLayer.MQAdaptor, TransportLayer.JMSTAFor each mentioned adapter, the set of specific configuration parameters should be defined.
Refer to FIXEdge Transport Adaptors for assistance and adapters configuration parameters details.
For example, if you want to set up one instance of the MQ adapter, after preparation phase, you need to specify the following properties in the FIXEdge.properties file:
FIXEdge.properties
TransportLayer.TransportAdapters = TransportLayer.MQAdaptor
#-------------------------------------------------------------------------
# MQ Adaptor Settings
#-------------------------------------------------------------------------
TransportLayer.MQAdaptor.Description = MQ Transport Adaptor DLL
TransportLayer.MQAdaptor.TimeIntervalBeforeReconnect = 1000
TransportLayer.MQAdaptor.DllName = bin/MQTAAddin-vc10-MD-x64.dll
TransportLayer.MQAdaptor.StorageDirectory = FixEdge1/log
TransportLayer.MQAdaptor.NumAttemptReconnect = -1
TransportLayer.MQAdaptor.WaitIntervalForGet = 10000
TransportLayer.MQAdaptor.BufferSizeForMessage = 65536
TransportLayer.MQAdaptor.MQ_HOSTNAME = localhost
TransportLayer.MQAdaptor.MQ_MANAGER_NAME = TestMQ
TransportLayer.MQAdaptor.MQ_PORT = 1414
TransportLayer.MQAdaptor.MQ_CCSID = 437
TransportLayer.MQAdaptor.MQ_CHANNEL_NAME = TestConnection
TransportLayer.MQAdaptor.SessionNumber = 1
TransportLayer.MQAdaptor.Session.1.ClientID = MQClient
TransportLayer.MQAdaptor.Session.1.FromClientQueue = MQClient_from
TransportLayer.MQAdaptor.Session.1.ToClientQueue = MQClient_to
TransportLayer.MQAdaptor.Session.1.ErrorQueue = MQClient_error
TransportLayer.MQAdaptor.Session.1.SmartXMLProcessor = falseHow to configure several adapters
Below is the sample of configuration of MQ adapter and JMS Adapter on the one instance of FIXEdge:
FIXEdge.properties
TransportLayer.TransportAdapters = TransportLayer.MQAdaptor, TransportLayer.JMSTA
#-------------------------------------------------------------------------
# MQ Adaptor Settings
#-------------------------------------------------------------------------
TransportLayer.MQAdaptor.Description = MQ Transport Adaptor DLL
TransportLayer.MQAdaptor.TimeIntervalBeforeReconnect = 1000
TransportLayer.MQAdaptor.DllName = bin/MQTAAddin-vc10-MD-x64.dll
TransportLayer.MQAdaptor.StorageDirectory = FixEdge1/log
TransportLayer.MQAdaptor.NumAttemptReconnect = -1
TransportLayer.MQAdaptor.WaitIntervalForGet = 10000
TransportLayer.MQAdaptor.BufferSizeForMessage = 65536
TransportLayer.MQAdaptor.MQ_HOSTNAME = EVUAKYISD0223.kyiv.epam.com
TransportLayer.MQAdaptor.MQ_MANAGER_NAME = TestMQ
TransportLayer.MQAdaptor.MQ_PORT = 1414
TransportLayer.MQAdaptor.MQ_CCSID = 437
TransportLayer.MQAdaptor.MQ_CHANNEL_NAME = TestConnection
TransportLayer.MQAdaptor.SessionNumber = 1
TransportLayer.MQAdaptor.Session.1.ClientID = MQClient
TransportLayer.MQAdaptor.Session.1.FromClientQueue = MQClient_from
TransportLayer.MQAdaptor.Session.1.ToClientQueue = MQClient_to
TransportLayer.MQAdaptor.Session.1.ErrorQueue = MQClient_error
TransportLayer.MQAdaptor.Session.1.SmartXMLProcessor = false
#-------------------------------------------------------------------------
# JMS Adaptor Settings
#-------------------------------------------------------------------------
TransportLayer.JMSTA.Description = JMS Transport Adaptor
TransportLayer.JMSTA.DllName = bin/jmsTADll-vc10-MD-x64.dll // Use libJMSTA.so for Linux
TransportLayer.JMSTA.JVMOptionsFile = FixEdge1/conf/JVM_Options.jvmopts // Use ../FixEdge1/conf/JVM_Options.jvmopts for Linux
TransportLayer.JMSTA.CheckSendingTimeout = 0
TransportLayer.JMSTA.ConnectionNames = Connection1
TransportLayer.JMSTA.ClientNames = ProducerSession, ConsumerSession
TransportLayer.JMSTA.Connection.Connection1.InitialContextFactory = org.apache.activemq.jndi.ActiveMQInitialContextFactory
TransportLayer.JMSTA.Connection.Connection1.ProviderURI = tcp://10.17.12.244:61616
TransportLayer.JMSTA.Connection.Connection1.User = test
TransportLayer.JMSTA.Connection.Connection1.Password = test
TransportLayer.JMSTA.Connection.Connection1.ConnectionFactory = queueConnectionFactory
TransportLayer.JMSTA.Connection.Connection1.Reconnect = false
TransportLayer.JMSTA.Connection.Connection1.ReconnectTries = 3
TransportLayer.JMSTA.Connection.Connection1.ReconnectInterval = 500
TransportLayer.JMSTA.Client.ProducerSession.ConnectionName = Connection1
TransportLayer.JMSTA.Client.ProducerSession.StorageDir = ../FixEdge1/log
TransportLayer.JMSTA.Client.ProducerSession.SessionType = Producer
TransportLayer.JMSTA.Client.ProducerSession.SmartXMLProcessing = false
TransportLayer.JMSTA.Client.ProducerSession.Version = FIX44
TransportLayer.JMSTA.Client.ProducerSession.MessagingMode = Queue
TransportLayer.JMSTA.Client.ProducerSession.DestinationURI = MyQueue
TransportLayer.JMSTA.Client.ProducerSession.DeliveryMode = NoPersist
TransportLayer.JMSTA.Client.ProducerSession.TimeToLive = 100000
TransportLayer.JMSTA.Client.ProducerSession.SessionAckMode = Auto
TransportLayer.JMSTA.Client.ProducerSession.MessageType = Text
TransportLayer.JMSTA.Client.ProducerSession.Transacted = true
TransportLayer.JMSTA.Client.ProducerSession.DurableSubscription = false
TransportLayer.JMSTA.Client.ProducerSession.DurableSubscriptionName = DurableTest
TransportLayer.JMSTA.Client.ProducerSession.NotifyMessageDelivered = false
TransportLayer.JMSTA.Client.ConsumerSession.ConnectionName = Connection1
TransportLayer.JMSTA.Client.ConsumerSession.StorageDir = ../FixEdge1/log
TransportLayer.JMSTA.Client.ConsumerSession.SessionType = Consumer
TransportLayer.JMSTA.Client.ConsumerSession.Version = FIX44
TransportLayer.JMSTA.Client.ConsumerSession.MessagingMode = Queue
TransportLayer.JMSTA.Client.ConsumerSession.DestinationURI = MyQueue
TransportLayer.JMSTA.Client.ConsumerSession.DeliveryMode = NoPersist
TransportLayer.JMSTA.Client.ConsumerSession.TimeToLive = 100000
TransportLayer.JMSTA.Client.ConsumerSession.SessionAckMode = Auto
TransportLayer.JMSTA.Client.ConsumerSession.MessageType = Text
TransportLayer.JMSTA.Client.ConsumerSession.Transacted = false
TransportLayer.JMSTA.Client.ConsumerSession.DurableSubscription = false
TransportLayer.JMSTA.Client.ConsumerSession.DurableSubscriptionName = DurableTest
TransportLayer.JMSTA.Client.ConsumerSession.NotifyMessageDelivered = falseHow to configure several instances of one adapter
When you want to set up two or more instances of one adapter (e.g. two instances of the MQ adapter), follow the procedure below:
Take the *.dll file of the adapter, copy it and change the name of the copied *.dll file.
E.g. take *.dll of MQ Adapter (bin/MQTAAddin.dll), copy it and get the renamed copy (bin/MQTAAddin_secondary.dll).Specify both instances of adapter in TransportLayer.TransportAdapters parameter in the FIXEdge.properties file.
E.g.TransportLayer.TransportAdapters = TransportLayer.MQAdaptorPrimary,TransportLayer.MQAdaptorSecondary.Define specific configuration parameters for each of instances of the adapter in the FIXEdge.properties file.
Refer to FIXEdge Transport Adaptors for assistance and adapters configuration parameters details.Check that each configured instance uses its own *.dll file in DllName property of the specific adapter configuration section.
So, if you want to set up two instances of MQ Adapter, you need to specify the following properties in the FIXEdge.properties file:
FIXEdge.properties
TransportLayer.TransportAdapters = TransportLayer.MQAdaptorPrimary,TransportLayer.MQAdaptorSecondary
#-------------------------------------------------------------------------
# Primary MQ Adaptor Settings
#-------------------------------------------------------------------------
TransportLayer.MQAdaptorPrimary.Description = Primary MQ Transport Adaptor DLL
TransportLayer.MQAdaptorPrimary.TimeIntervalBeforeReconnect = 1000
TransportLayer.MQAdaptorPrimary.DllName = bin/MQTAAddin.dll
TransportLayer.MQAdaptorPrimary.StorageDirectory = FixEdge1/log
TransportLayer.MQAdaptorPrimary.NumAttemptReconnect = -1
TransportLayer.MQAdaptorPrimary.WaitIntervalForGet = 10000
TransportLayer.MQAdaptorPrimary.BufferSizeForMessage = 65536
TransportLayer.MQAdaptorPrimary.MQ_HOSTNAME = 192.168.0.2
TransportLayer.MQAdaptorPrimary.MQ_MANAGER_NAME = TestMQ
TransportLayer.MQAdaptorPrimary.MQ_PORT = 1414
TransportLayer.MQAdaptorPrimary.MQ_CCSID = 437
TransportLayer.MQAdaptorPrimary.MQ_CHANNEL_NAME = TestConnection
TransportLayer.MQAdaptorPrimary.SessionNumber = 1
TransportLayer.MQAdaptorPrimary.Session.1.ClientID = MQClient
TransportLayer.MQAdaptorPrimary.Session.1.FromClientQueue = MQClient_from
TransportLayer.MQAdaptorPrimary.Session.1.ToClientQueue = MQClient_to
TransportLayer.MQAdaptorPrimary.Session.1.ErrorQueue = MQClient_error
TransportLayer.MQAdaptorPrimary.Session.1.SmartXMLProcessor = false
#-------------------------------------------------------------------------
# Secondary MQ Adaptor Settings
#-------------------------------------------------------------------------
TransportLayer.MQAdaptorSecondary.Description = Secondary MQ Transport Adaptor DLL
TransportLayer.MQAdaptorSecondary.TimeIntervalBeforeReconnect = 1000
TransportLayer.MQAdaptorSecondary.DllName = bin/MQTAAddin_secondary.dll
TransportLayer.MQAdaptorSecondary.StorageDirectory = FixEdge1/log
TransportLayer.MQAdaptorSecondary.NumAttemptReconnect = -1
TransportLayer.MQAdaptorSecondary.WaitIntervalForGet = 10000
TransportLayer.MQAdaptorSecondary.BufferSizeForMessage = 65536
TransportLayer.MQAdaptorSecondary.MQ_HOSTNAME = 192.168.0.3
TransportLayer.MQAdaptorSecondary.MQ_MANAGER_NAME = TestMQ
TransportLayer.MQAdaptorSecondary.MQ_PORT = 1414
TransportLayer.MQAdaptorSecondary.MQ_CCSID = 437
TransportLayer.MQAdaptorSecondary.MQ_CHANNEL_NAME = TestConnection
TransportLayer.MQAdaptorSecondary.SessionNumber = 1
TransportLayer.MQAdaptorSecondary.Session.1.ClientID = MQClient
TransportLayer.MQAdaptorSecondary.Session.1.FromClientQueue = MQClient_from
TransportLayer.MQAdaptorSecondary.Session.1.ToClientQueue = MQClient_to
TransportLayer.MQAdaptorSecondary.Session.1.ErrorQueue = MQClient_error
TransportLayer.MQAdaptorSecondary.Session.1.SmartXMLProcessor = false