Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Overview

...

Property NameDefault ValueDescription
TransportLayer.MQAdaptor.DescriptionMQ Transport Adaptor DLLDescription of the transport adaptor
TransportLayer.MQAdaptor.DllNamebin/MQTAAddin.dllPath to the transport adaptor module
TransportLayer.MQAdaptor.TimeIntervalBeforeReconnect1000Time interval in milliseconds between reconnect attempts
TransportLayer.MQAdaptor.StorageDirectoryFixEdge1/logLogging directory for storage of outgoing messages. Required.
TransportLayer.MQAdaptor.BufferSizeForMessage65536Message buffer size. Max value is 4194304. 0 means a default value 64 * 1024
TransportLayer.MQAdaptor.MQ_HOSTNAMElocalhostMS Series Server host name
TransportLayer.MQAdaptor.MQ_PORT1414MS Series Server port
TransportLayer.MQAdaptor.MQ_MANAGER_NAMETestMQMS Series manager name
TransportLayer.MQAdaptor.MQ_CHANNEL_NAMETestConnectionMS Series Channel name
TransportLayer.MQAdaptor.MQ_CCSID437MS Series Server CCSID. The coded character set identifier to use with the WebSphere MQ queue
TransportLayer.MQAdaptor.SslKeyRepository/var/mqm/ssl/keyPath to SSL certificate storage file without extension (SCKR,MQSSLKEYR) e.g. /var/mqm/ssl/key or C:\\Program Files\\IBM\\WebSphere MQ\\ssl\\key
TransportLayer.MQAdaptor.SslCipherSpecificationTRIPLE_DES_SHA_USSSL CipherSpec name (SSLCIPH), required to use SSL, e.g. TRIPLE_DES_SHA_US
TransportLayer.MQAdaptor.SslClientAuthenticationfalseRemote peer authentication (SSLCAUTH)
TransportLayer.MQAdaptor.SslPeerNameCN=QMGR.*, OU=IBM, OU=WEBSPHERERemote peer DN filter(SSLPEER)
TransportLayer.MQAdaptor.WaitIntervalForGet1000Time interval in milliseconds to wait between polling message on MQ Series Server
TransportLayer.MQAdaptor.NumAttemptReconnect10Number of reconnect attempts to MQ Series Server
TransportLayer.MQAdaptor.SessionNumber1Number of sessions with MQ Series. Each session is a set of MQ Series queues.
TransportLayer.MQAdaptor.Session.1.ClientIDMQClientMQ session ID.
TransportLayer.MQAdaptor.Session.1.SmartXMLProcessortrueEnables mode of processing XML/FIXML messages:
  • For outgoing FIX XML message (MsgType = n) adaptor extracts XML data then sends data to MQ client.
  • For incoming XML/FIXML raw data adaptor wraps data into FIX XML message (MsgType = n) then routes message to FIX Edge.
TransportLayer.MQAdaptor.Session.1.ToClientQueueMQClient_toThe name for Queue, dedicated for message coming from client to MQ via FIX Edge
TransportLayer.MQAdaptor.Session.1.FromClientQueueMQClient_fromThe name for Queue, dedicated for message coming from MQ to client via FIX Edge
TransportLayer.MQAdaptor.Session.1.ErrorQueueMQClient_errorThe name for Queue dedicated for message, which cannot be handled because of error.
TransportLayer.MQAdaptor.Session.1.SenderID-Not required. SenderCompID (Tag = 49) in the received message is set to the property value.
TransportLayer.MQAdaptor.Session.1.TargetID-Not required. TargetCompID (Tag = 56) in the received message is set to the property value.
TransportLayer.MQAdaptor.Session.1.FromClientDropMessageFilter-Not required. Defines a regular expression (perl syntax) to drop matched messages coming from MQ.
TransportLayer.MQAdaptor.Session.1.SmartXMLProcessorFromClientMessageFilter-Not required. Defines a regular expression (perl syntax) to apply SmartXMLProcessor to matched messages coming from MQ. Overrides default filter: case insensitive "<\?xml version.*|<FIXML.*"

...

For troubleshooting, this case it's recommended to upgrade FIXEdge to version 6.9.0 with a Managed Queue feature.
It was designed for cases when messages should be pushed to the counterparty when they come back online and do not support recovery with resend requests.

Processing the messages in MQ Queue

...

Persistence MQ 

Before the data will be sent to MQ, they are saved in the stored directory, which can be configured with a property:

Code Block
languagebash
TransportLayer.MQAdaptor.StorageDirectory = FIXEdge1/log

Then *.out file for messages for Queue is created in the FIXEdge1/log folder.The stored directory is needed so that unsent messages are sent to the Queue and after FIXEdge restarting, it knows what messages need to be sent.

For each Queue, separate files will be created, eg:

With property TransportLayer.MQAdaptor1.Session.1.ClientID = MQHub1 will be storage file MQ-MQHub1_2005211210150121.out

With property TransportLayer.MQAdaptor1.Session.1.ErrorQueue = errQ will be storage file MQ-MQHub1-Errors_2005211210150131.out 

FE writes received messages to log:

    • MQ TA writes the messages in MQ *.out file with status Record valid='Y' (unsent messages are marked as "Record valid='Y'")
    • MQ TA puts the messages in the MQClient_to queue and sets status Record valid='N' (sent messages are marked as "Record valid='N'" and not involved to following sending to Queue) 
Code Block
languagebash
titleMQ-MQHub1_xxx.out
<Record valid='Y' size='Ó      ' data='8=FIX.4.4 9=3259 35=AE 49=FIXClient 56=FIXEdgeMQHub1 115=STRING 128=STRING 90=1 91=D 34=169 50=STRING 142=STRING 57=STRING...10=139'/>
...
<Record valid='N' size='Ó      ' data='8=FIX.4.4 9=3259 35=AE 49=FIXClient 56=FIXEdgeMQHub1 115=STRING 128=STRING 90=1 91=D 34=208 50=STRING 142=STRING 57=STRING...10=137'/>
Note

Removing the storage files will cause unsent data will be deleted

Troubleshooting

The message is not sent to the client with multiple MQ TA configuration

...

Getting MQ Soft

If you need to setup set up your own MQ server, you can download software from IBM Site

...

Check connection using MQ Explorer

In order to use the described approach you need to install IBM WebSphere MQ Explorer to the client box.

...

TransportLayer.MQAdaptor.SslKeyRepository = C:\\B2BITS\\FIXEdge\\FixEdge1\\conf\\key
TransportLayer.MQAdaptor.SslCipherSpecification = TRIPLE_DES_SHA_US
TransportLayer.MQAdaptor.SslClientAuthentication = false
TransportLayer.MQAdaptor.SslPeerName =


Troubleshooting

Disabling IBM MQ security

If MQ TA fails to initialize with the record in log "Failed to set character set. Code: some codeset. Code: ...<some code>...": make sure QueueManager on the server-side is running and you are trying to set right code character set.

If the following error message appears while accessing remote MQ manager using MQExplorer

you

Root cause

MQ TA has not supported the authentication в IBM MQ Server. 

Solution

The authentication should be disabled. You should perform the following steps:

  1. Login to the remote server where MQ Instance is running

  2. Open cmd

  3. Run 'runmqsc'. Check if connected to correct QM:

  4. Execute 'ALTER QMGR CHLAUTH(DISABLED)':

  5. Try to reestablish connection by clicking 'No' in the dialog:

  6. And Finish in the dialog:

  7. If the error is still here, look at Channel autentication authentication records and make sure that your account is not in the Block User List:



  8. Try again steps 5-6.

Disabling IBM MQ security

MQ TA has not supported the authentication. 

Solution

Please Also you can find how tdisable IBM MQ security for this scenario by editing the properties of the sample queue manager by using IBM MQ Explorer  authentication on the official site.