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

  1. Download the adapter (or adapters) you want to configure
  2. Make a backup copy of your current FIXEdge configuration
  3. Prepare configuration amendments in case you plan to change any credentials, destination folders, connection parameters, etc. Refer to configuration guides for assistance
  4. Make sure you have sufficient administration permissions for further uninstall/install procedures
  5. Install the chosen adapter according to the rules specified in FIXEdge Transport Adaptors article for each adapter

Configuring

  1. 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
  2. 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:

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 = false

How 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 = 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:

  1. 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).
  2. Specify both instances of adapter in TransportLayer.TransportAdapters parameter in the FIXEdge.properties file. 
    E.g.TransportLayer.TransportAdapters = TransportLayer.MQAdaptorPrimary,TransportLayer.MQAdaptorSecondary.
  3. 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.
  4. 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