Versions Compared

Key

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

...

  1. Create User
    1. Create non-domain user e.g. mquser in 'mqm' group.
    2. Change its domain to local host name e.g. EVUAKYISD0223
    3. Grant this user permissions to login remotely
    4. Grant this user Administraive permissions
  2. Start MQ
    1. 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
  3. Configure Manager and Queues
    1. Start MQExplorer.
    2. Add new Queue Manager (e.g. TestMQ):
    3. Add Server-connection channel to created Queue Manager (e.g. TestConnection)
    4. Set channel MCA with user from step 1.1 (mquser):
       
    5. Add Client-connection to Queue Manager:
      1. Select 'New Client-connection Channel' menu item:
      2. Client-connection Channel should have the same name as the Server-connection channel (TestConnection):
      3. Client channel connection name should be the same as host public IP (10.17.13.88):
  4. Add queues.

 

Check connection to Queue Manager from remote host

...

In order to check connection to Queue Manager from the remote (client) host:

  1. Open MQExplorer on remote host
  2. Add Remote Queue Manager performing the following steps:
    1. Specify Queue Manager name:
      Image Modified
    2. Specify host and Server-connection channel:
      Image Modified
    3. Click finish

QM should be accessible via remote MQ Explorer.

...

In order to check connection to Queue Manager from the remote (client) host using FE:

  1. Configure FE using the following sample properties:

    Code Block
    titleFIXEdge.properties
    TransportLayer.TransportAdapters = TransportLayer.MQAdaptor
    
    #-------------------------------------------------------------------------
    # MQ Adaptor Settings
    #-------------------------------------------------------------------------
    
    TransportLayer.MQAdaptor.Description = MQ Transport Adaptor DLL
    TransportLayer.MQAdaptor.TimeIntervalBeforeReconnect = 1000
    
    TransportLayer.MQAdaptor.Type = DLL
    TransportLayer.MQAdaptor.DllName = bin/MQTAAddin-vc10-MT-x64.dll
    TransportLayer.MQAdaptor.StorageDirectory = FixEdge1/log
    TransportLayer.MQAdaptor.NumAttemptReconnect = -1
    TransportLayer.MQAdaptor.WaitIntervalForGet = 10000
    TransportLayer.MQAdaptor.BufferSizeForMessage = 65536
    
    TransportLayer.MQAdaptor.MQ_HOSTNAME = EVUAKYISD0223.kyiv.epam.com
    TransportLayer.MQAdaptor.MQ_MANAGER_NAME = TestMQ
    TransportLayer.MQAdaptor.MQ_PORT = 1414
    TransportLayer.MQAdaptor.MQ_CCSID = 866
    TransportLayer.MQAdaptor.MQ_CHANNEL_NAME = TestConnection
    
    TransportLayer.MQAdaptor.SessionNumber = 1
    TransportLayer.MQAdaptor.Session.1.ClientID = MQHub
    TransportLayer.MQAdaptor.Session.1.FromClientQueue = srcQ
    TransportLayer.MQAdaptor.Session.1.ToClientQueue = trgQ
    TransportLayer.MQAdaptor.Session.1.ErrorQueue = errQ
    TransportLayer.MQAdaptor.Session.1.SmartXMLProcessor = true

...

  1. Check if Queues are accessible:

    Code Block
    titleFixEdge.log
    [DEBUG] 20120718-11:41:33.609 [2840] [MQEngine] - Was created queue 'srcQ'
    [DEBUG] 20120718-11:41:33.609 [2840] [MQQueuesReader_Debug] - createClientQueue() finished
    [DEBUG] 20120718-11:41:33.609 [2840] [MQQueuesReader_Debug] - ClientQueue created.
    [DEBUG] 20120718-11:41:33.609 [2840] [MQQueuesReader_Debug] - MQQueuesReader::readFromQueuesAndPassToTL().
    [DEBUG] 20120718-11:41:33.609 [2840] [MQQueuesReader_Debug] - fromClientQueue->getFirst().
    [DEBUG] 20120718-11:41:38.039 [12692] [MQEngine] - Was created queue 'trgQ'
    [DEBUG] 20120718-11:41:38.251 [12692] [MQEngine] - Was created queue 'errQ'
    [DEBUG] 20120718-11:41:38.251 [12692] [MQQueueWriter] - Queues were created for client 'MQHub'
    [NOTE]  20120718-11:41:38.251 [12692] [MQQueueWriter] - Restore messages for out queue 'MQHub'.
    [NOTE]  20120718-11:41:38.251 [12692] [MQQueueWriter] - Create storage for the: MQHub
    [DEBUG] 20120718-11:41:38.251 [12692] [MQQueueWriter] - Load storage.
    [DEBUG] 20120718-11:41:38.251 [12692] [MQQueueWriter] - Persistance storage use file: D:\Program Files\B2Bits\FIX Edge\v.5.4.1.40091\FixEdge1\log\MQ-MQHub_07180941382511.out
    [NOTE]  20120718-11:41:38.251 [12692] [MQQueueWriter] - Restore messages for error queue 'MQHub'.
    [NOTE]  20120718-11:41:38.251 [12692] [MQQueueWriter] - Create storage for the: MQHub-Errors
    [DEBUG] 20120718-11:41:38.251 [12692] [MQQueueWriter] - Load storage.
    [DEBUG] 20120718-11:41:38.252 [12692] [MQQueueWriter] - Persistance storage use file: D:\Program Files\B2Bits\FIX Edge\v.5.4.1.40091\FixEdge1\log\MQ-MQHub-Errors_07180941382511.out
    [DEBUG] 20120718-11:41:43.678 [2840] [MQQueueRead] - Was performed get operation on queue 'srcQ' with reason code :2033
    [DEBUG] 20120718-11:41:43.678 [2840] [MQQueueRead] - MQQueueRead::getFirst failed to get message ''
    [DEBUG] 20120718-11:41:43.678 [2840] [MQQueuesReader_Debug] - MQQueuesReader::readFromQueuesAndPassToTL().
    [DEBUG] 20120718-11:41:43.678 [2840] [MQQueuesReader_Debug] - fromClientQueue->getFirst().

...


  1. Route message to MQ and check FE logs:

    Code Block
    titleFixEdge.log
    [DEBUG] 20120718-11:48:16.389 [7968] [FL_MsgTrace] - New message FIX was received from session with ID 'TROIKALSE'. Message: '8=FIX.4.49=16535=D49=LSE56=TROIKA34=250=3073757=ECL_TURQ97=Y52=20120718-09:48:16.38811=900010081=1003000321=255=TESTA54=160=20000809-18:20:3238=400040=244=3059=010=224'.
    [DEBUG] 20120718-11:48:16.389 [7968] [BL_Layer] - Process incoming message.
    [DEBUG] 20120718-11:48:16.389 [7968] [BL_RoutingTable] - There are no suitable rules were found for message with Source ID 'LSE', executing DefaultRule.
    [DEBUG] 20120718-11:48:16.389 [7968] [CC_Layer] - BL has processed a message. Number of client IDs for delivery :0. Number or FIX sessions for delivery :0.. Number or sources identifiers for delivery :1.
    
            Source IDs:
                  1. 'MQHub'
    
    [DEBUG] 20120718-11:48:16.389 [7968] [TransportLayer] - Sending message '8=FIX.4.49=16535=D49=LSE56=TROIKA34=250=3073757=ECL_TURQ97=Y52=20120718-09:48:16.38811=900010081=1003000321=255=TESTA54=160=20000809-18:20:3238=400040=244=3059=010=224' to client MQHub
    [DEBUG] 20120718-11:48:16.389 [7968] [MQQueueWriter] - Was put message to messageQueue. Message = (ToClientQueue, MQHub, 8=FIX.4.49=16535=D49=LSE56=TROIKA34=250=3073757=ECL_TURQ97=Y52=20120718-09:48:16.38811=900010081=1003000321=255=TESTA54=160=20000809-18:20:3238=400040=244=3059=010=224)
    [DEBUG] 20120718-11:48:16.389 [7968] [MQQueueWriter] - Store into the Persistance storage.
    [DEBUG] 20120718-11:48:16.389 [12228] [MQQueueWriter] - Was get message from MessageQueue. Message: ( toClientQueue,MQHub, 8=FIX.4.49=16535=D49=LSE56=TROIKA34=250=3073757=ECL_TURQ97=Y52=20120718-09:48:16.38811=900010081=1003000321=255=TESTA54=160=20000809-18:20:3238=400040=244=3059=010=224)
    [DEBUG] 20120718-11:48:16.460 [12228] [MQQueueWrite] - Was performed put operation on queue 'trgQ' with reason code :0. Message = '8=FIX.4.49=16535=D49=LSE56=TROIKA34=250=3073757=ECL_TURQ97=Y52=20120718-09:48:16.38811=900010081=1003000321=255=TESTA54=160=20000809-18:20:3238=400040=244=3059=010=224'
    [DEBUG] 20120718-11:48:16.460 [12228] [MQQueueWrite] - message was successfully sent to to queue 'trgQ' with reason code :0
    [DEBUG] 20120718-11:48:16.460 [12228] [MQQueueWriter] - message was put to ToClient queue.Client 'MQHub'. MEssage '8=FIX.4.49=16535=D49=LSE56=TROIKA34=250=3073757=ECL_TURQ97=Y52=20120718-09:48:16.38811=900010081=1003000321=255=TESTA54=160=20000809-18:20:3238=400040=244=3059=010=224'

...

 


Troubleshooting

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

you should perform the following steps:

  1. Login to remote server where MQ Instance is running
  2. Open cmd
  3. Run 'runmqsc'. Check if connected to correct QM:
    Image Modified
  4. Execute 'ALTER QMGR CHLAUTH(DISABLED)':
    Image Modified
  5. Try to reestablish connection by clicking 'No' in the dialog:
    Image Modified
  6. And Finish in the dialog:
    Image Modified

================================ 

...

 

MQ Transport Adaptor — Integration Guide

...

Property NameDefault ValueDescription
TransportLayer.MQAdaptor.DescriptionMQ Transport Adaptor DLLDescription of the transport adaptor
TransportLayer.MQAdaptor.DllNameBIN/MQTAAddin-vc8-MT-x32.dllPath to the transport adaptor module
TransportLayer.MQAdaptor.TypeDLLType of the plug-in (shall not be changed)
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_NAMEMQA_DevelopmentMS Series manager name
TransportLayer.MQAdaptor.MQ_CHANNEL_NAMESYSTEM.DEF.SVRCONNMS Series Channel name
TransportLayer.MQAdaptor.MQ_CCSID437MS Series Server CCSID. The coded character set identifier to use with the WebSphere MQ queue
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.SmartXMLProcessorfalseEnables 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.

 

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.

 

================================

 

...


WebSphere MQ Client (Win)

------------------------------------------------------------------------------------------------
1. Unpack WebSphere MQ client 
2. Install. You should get it at C:\Program Files (x86)\IBM\WebSphere MQ
3. set "MQ_HOME=C:\Program Files (x86)\IBM\WebSphere MQ"

 

WebSphere MQ Client (Linux)

------------------------------------------------------------------------------------------------

...