Table of Contents
Overview
...
Property Name | Default Value | Description |
TransportLayer.MQAdaptor.Description | MQ Transport Adaptor DLL | Description of the transport adaptor |
TransportLayer.MQAdaptor.DllName | bin/MQTAAddin.dll | Path to the transport adaptor module |
TransportLayer.MQAdaptor.TimeIntervalBeforeReconnect | 1000 | Time interval in milliseconds between reconnect attempts |
TransportLayer.MQAdaptor.StorageDirectory | FixEdge1/log | Logging directory for storage of outgoing messages. Required. |
TransportLayer.MQAdaptor.BufferSizeForMessage | 65536 | Message buffer size. Max value is 4194304. 0 means a default value 64 * 1024 |
TransportLayer.MQAdaptor.MQ_HOSTNAME | localhost | MS Series Server host name |
TransportLayer.MQAdaptor.MQ_PORT | 1414 | MS Series Server port |
TransportLayer.MQAdaptor.MQ_MANAGER_NAME | TestMQ | MS Series manager name |
TransportLayer.MQAdaptor.MQ_CHANNEL_NAME | TestConnection | MS Series Channel name |
TransportLayer.MQAdaptor.MQ_CCSID | 437 | MS Series Server CCSID. The coded character set identifier to use with the WebSphere MQ queue |
TransportLayer.MQAdaptor.SslKeyRepository | /var/mqm/ssl/key | Path 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.SslCipherSpecification | TRIPLE_DES_SHA_US | SSL CipherSpec name (SSLCIPH), required to use SSL, e.g. TRIPLE_DES_SHA_US |
TransportLayer.MQAdaptor.SslClientAuthentication | false | Remote peer authentication (SSLCAUTH) |
TransportLayer.MQAdaptor.SslPeerName | CN=QMGR.*, OU=IBM, OU=WEBSPHERE | Remote peer DN filter(SSLPEER) |
TransportLayer.MQAdaptor.WaitIntervalForGet | 1000 | Time interval in milliseconds to wait between polling message on MQ Series Server |
TransportLayer.MQAdaptor.NumAttemptReconnect | 10 | Number of reconnect attempts to MQ Series Server |
TransportLayer.MQAdaptor.SessionNumber | 1 | Number of sessions with MQ Series. Each session is a set of MQ Series queues. |
TransportLayer.MQAdaptor.Session.1.ClientID | MQClient | MQ session ID. |
TransportLayer.MQAdaptor.Session.1.SmartXMLProcessor | true | Enables mode of processing XML/FIXML messages:
|
TransportLayer.MQAdaptor.Session.1.ToClientQueue | MQClient_to | The name for Queue, dedicated for message coming from client to MQ via FIX Edge |
TransportLayer.MQAdaptor.Session.1.FromClientQueue | MQClient_from | The name for Queue, dedicated for message coming from MQ to client via FIX Edge |
TransportLayer.MQAdaptor.Session.1.ErrorQueue | MQClient_error | The 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 | ||
---|---|---|
| ||
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 | ||||
---|---|---|---|---|
| ||||
<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:
Login to the remote server where MQ Instance is running
Open cmd
Run 'runmqsc'. Check if connected to correct QM:
Execute 'ALTER QMGR CHLAUTH(DISABLED)':
Try to reestablish connection by clicking 'No' in the dialog:
And Finish in the dialog:
- 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:
- Try again steps 5-6.
Disabling IBM MQ security
MQ TA has not supported the authentication.
Solution
Please Also you can find how to disable 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.