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.JMSTA - For 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:
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 = false
How to configure several adapters
Below is the sample of configuration of MQ adapter and JMS Adapter on the one instance of FIXEdge:
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 = false
How 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:
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