MQ Transport Adaptor — Setup Guide
Overview
The document contains full instructions how to install MQ TA for testing.
Getting MQ Soft
If you need to setup your own MQ server, you can download software from IBM Site.
Websphere MQ Configuration# MS Series manager name
Steps to configure access to Websphere MQ (running on Windows) from the remote host are described below. These configuration is performed on the MQ Server host.
- Create User
- Create non-domain user e.g. mquser in 'mqm' group.
- Change its domain to local host name e.g. EVUAKYISD0223
- Grant this user permissions to login remotely
- Grant this user Administraive permissions
- Start MQ
- Start all MQ services ('IBM MQSeries' and 'IBM Websphere MQ(<InstallationName>)') under user created on previous step
In order to change user for service go to Services. Select service and open its properties, go to 'Log On' tab, select 'This user' and specify user credentials
- Start all MQ services ('IBM MQSeries' and 'IBM Websphere MQ(<InstallationName>)') under user created on 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 Client-connection to Queue Manager:
- Select 'New Client-connection Channel' menu item:
- Client-connection Channel should have the same name as the Server-connection channel (TestConnection):
- Client channel connection name should be the same as host public IP (10.17.13.88):
- Select 'New Client-connection Channel' menu item:
- Add queues.
Check connection to Queue Manager from remote host
Check connection using MQ
...
Explorer
In order to use described approach you need to install IBM WebSphere MQ Explorer to the client box.
...
QM should be accessible via remote MQ Explorer.
Check connection using FE
In order to check connection to Queue Manager from the remote (client) host using FE:
...
- Login to 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:
...
MQ Transport Adaptor — Integration Guide
Overview
MQ Adaptor is an add-in Transport Adaptor for FIXServer that allows clients to communicate with FIXServer over IBM MQSeries middleware.
Description
MQ Adapter is responsible for:
- Establishing and maintaining sessions with MQ Series Server to communicate with Clients.
- Transmitting messages to its clients.
- Delivering messages from clients.
- Facilitating monitoring and administration.
Monitoring and Administration
MQ TA provides the following monitoring information:
- Number of messages sent
- Number of messages received
- Time the last message was sent/received for each client
- List of clients
Installation
Normally MQ adaptor is distributed as a zip-archive with the name MQAdaptor-xx.zip, where xx stands for MQ adaptor version. The distribution package consists of:
...
- make sure IBM MQ Client is installed on the FIX Edge machine. For furtehr details see here;
- unpack the .zip file and copy MQTAAddin-xx.dll into the FIX Edge \bin folder. Configure adaptor according to the instructions below;
- restart FIX Edge.
Configuration
MQ Transport Adaptor can be configured using FIXICC or directly by editing the FIXEdge.properties file of the correspondent FIX Edge instance. All properties to be set up are described in the table below. You can also useFIXEdge.properties file from the package as an example.
...
Property Name | Default Value | Description |
TransportLayer.MQAdaptor.Description | MQ Transport Adaptor DLL | Description of the transport adaptor |
TransportLayer.MQAdaptor.DllName | bin/MQTAAddin-vc10-MD-x64.dll | Path to the transport adaptor module |
TransportLayer.MQAdaptor.Type | DLL | Type of the plug-in (shall not be changed) |
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.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. |
Troubleshooting
MQ TA fails to initialize with record in log "Failed to set character set. Code: some code": make sure QueueManager on server side is running and you are trying to set right code character set.