Table of Contents
...
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.
Troubleshooting
The message is not sent to the client with multiple MQ TA configuration
The message is not delivered to MQ.
...
Code Block | ||
---|---|---|
| ||
ERROR [MQQueueWriter] <Thread_ID> Removed message doesn't equal to sent message! Storage: 'MQTA_ID' Message removed from storage |
Root cause
To different threads use shared resources from a single library MQ TA. For example, it may happen if several transport adapters are configured wrong.
Solution
A user should get rid of usage one shared a library by several threads. There are 2 ways:
Use a single MQ TA library with several sessions
Code Block language perl TransportLayer.TransportAdapters = TransportLayer.MQAdaptor TransportLayer.MQAdaptor.DllName = bin/MQTAAddin-vc10-MD-x64.dll #... TransportLayer.MQAdaptor.SessionNumber = 2 TransportLayer.MQAdaptor.Session.1.ClientID = MQTA_ID_1 TransportLayer.MQAdaptor.Session.1.ToClientQueue = MQClient_to_1 TransportLayer.MQAdaptor.Session.1.FromClientQueue = TransportLayer.MQAdaptor.Session.1.ErrorQueue = TransportLayer.MQAdaptor.Session.1.ReceiveTransactionSize=10 TransportLayer.MQAdaptor.Session.1.SendTransactionSize=10 TransportLayer.MQAdaptor.Session.2.ClientID = MQTA_ID_2 TransportLayer.MQAdaptor.Session.2.ToClientQueue = MQClient_to_2 TransportLayer.MQAdaptor.Session.2.FromClientQueue = TransportLayer.MQAdaptor.Session.2.ErrorQueue = TransportLayer.MQAdaptor.Session.2.ReceiveTransactionSize=10 TransportLayer.MQAdaptor.Session.2.SendTransactionSize=10
Use several MQ TA with own library
Code Block language perl TransportAdapters = TransportLayer.MQAdaptor, TransportLayer.MQAdaptor2 TransportLayer.MQAdaptor.DllName = bin/MQTAAddin-vc10-MD-x64.dll #... TransportLayer.MQAdaptor2.DllName = bin/MQTAAddin-vc10-MD-x64_2.dll #...
IBM MQ Error codes
The following error appears in FixEdge.log
Code Block | ||
---|---|---|
| ||
ERROR [MQQueuesReader] 1284 MQQueuesReader unable to create queue for client'trgQ'. Reason: Failed to set character set. Code:2538 ERROR [MQQueuesReader] 244 MQQueuesReader unable to create queue for client'srcQ'. Reason: Failed to set character set. Code:2538 ERROR [MQQueueWriter] 3368 MQTA failed to execute operation for client 'MQHub1': Failed to set character set. Code:2538 |
Solution
Please find the API Error codes on the official site.
...