Table of Contents
...
Info |
---|
Starting FixEdge version 6.10.0 it is recommended to use IBM MQ Client library version 8.x. The older and newer versions may lead to MQ adapters failures |
...
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.*" |
...
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:
...
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.
...
Code Block | ||
---|---|---|
| ||
<timestamp> Russia TZ 2 Standard Time ERROR [TransportLayer] <thread> Transport Adaptor 'MQAdaptor' has failed to initialize: Error loading DLL 'C:\B2BITS\FIXEdge\bin\MQTAAddin-vc10-MD-x64.dll'. Dependencies list: MSVCP140.dll => C:\Windows\SYSTEM32\MSVCP140.dll USER32.dll => C:\Windows\system32\USER32.dll V12-vc14-MD-x64.dll => C:\B2BITS\FIXEdge\bin\V12-vc14-MD-x64.dll VCRUNTIME140.dll => C:\Windows\SYSTEM32\VCRUNTIME140.dll api-ms-win-crt-filesystem-l1-1-0.dll => C:\Windows\SYSTEM32\api-ms-win-crt-filesystem-l1-1-0.dll api-ms-win-crt-heap-l1-1-0.dll => C:\Windows\SYSTEM32\api-ms-win-crt-heap-l1-1-0.dll api-ms-win-crt-runtime-l1-1-0.dll => C:\Windows\SYSTEM32\api-ms-win-crt-runtime-l1-1-0.dll api-ms-win-crt-stdio-l1-1-0.dll => C:\Windows\SYSTEM32\api-ms-win-crt-stdio-l1-1-0.dll api-ms-win-crt-utility-l1-1-0.dll => C:\Windows\SYSTEM32\api-ms-win-crt-utility-l1-1-0.dll imqb23vn.dll => not found imqc23vn.dll => not found |
Solution
- Make sure that IBM MQ Client is installed on the host with FIXEdge
- Make sure that the environment variable PATH contains the path to the IBM MQ Client bin folder.
...
Steps to configure access to Websphere MQ (running on Windows) from the remote host are described below. These This configuration is performed on the MQ Server host.
- Create User
- Create a non-domain user e.g. mquser in 'mqm' group.
- Change its domain to a local host name hostname e.g. EVUAKYISD0223.
- Grant this user permissions to login log in remotely.
- Grant this user Administraive Administrative permissions.
- Start MQ
- Start all MQ services ('IBM MQSeries' and 'IBM Websphere MQ (Installation N)') under user created on the previous step. .
In order to change the user for service, it is needed to go to Services. Select service and open its properties, go to the 'Log On' tab, select 'This user' and specify user credentials.
- Start all MQ services ('IBM MQSeries' and 'IBM Websphere MQ (Installation N)') under user created on the previous step. .
- Configure Manager and Queues
- Start MQExplorer.
-
Add new Queue Manager (e.g. TestMQ) -
Add Server-connection channel to created Queue Manager (e.g. TestConnection ) -
Set channel MCA with user from step 1.1 ( mquser ):
-
Add queues.
...
MQ TA has not supported the authentication in IBM MQ Server.
It can lead to failure in MQ TA initialization with the error records in the log:
...
If the following error message appears while accessing remote MQ manager using MQExplorer
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 authentication records and make sure that your account is not in the Block User List:
- Try again steps 5-6.
Also you can find how to disable IBM MQ authentication on the official site.