Running multiple threads in a for loop without effect

I am trying to read messages from the websphere mq queue and upload it to another queue.

Below is the code I have to do

private void transferMessages()
{
    MQQueueManager sqmgr = connectToQueueManager(S_SERVER_NAME, S_QMGR_NAME, S_PORT_NUMBER, S_CHANNEL_NAME);
    MQQueueManager dqmgr = connectToQueueManager(D_SERVER_NAME, D_QMGR_NAME, D_PORT_NUMBER, D_CHANNEL_NAME);
    if (sqmgr != null && dqmgr != null)
    {
        MQQueue sq = openSourceQueueToGet(sqmgr, S_QUEUE_NAME);
        MQQueue dq = openDestQueueToPut(dqmgr, D_QUEUE_NAME);
        if (sq != null && dq != null)
        {
            setPutMessageOptions();
            setGetMessageOptions();
            processMessages(sqmgr, sq, dqmgr, dq);
        }
    }
}

And I call this method in a for loop and create separate threads, as shown below.

int NO_OF_THREADS = 5;
Thread[] ts = new Thread[NO_OF_THREADS];
for (int i = 0; i < NO_OF_THREADS; i++)
{ 
    ts[i] = new Thread(() => transferMessages());
    ts[i].Start();        
}

As you can see, I am creating a new connection with the queue manager in the transferMessages method. Not sure if for some reason the program makes only one connection to MQ.

The custom method for connecting to the queue manager is below ..

    private MQQueueManager connectToQueueManager(string MQServerName, string MQQueueManagerName, string MQPortNumber, string MQChannel)
    {
        try
        {
            mqErrorString = "";
            MQQueueManager qmgr;
            Hashtable mqProps = new Hashtable();
            mqProps.Add(MQC.HOST_NAME_PROPERTY, MQServerName);
            mqProps.Add(MQC.CHANNEL_PROPERTY, MQChannel);
            mqProps.Add(MQC.PORT_PROPERTY, Convert.ToInt32(MQPortNumber));
            mqProps.Add(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_CLIENT);
            qmgr = new MQQueueManager(MQQueueManagerName, mqProps);
            return qmgr;
        }
        catch (MQException mqex)
        {
            //catch and log MQException here
            return null;
        }
    }

Any advice what I am missing?

+4
source share
1 answer

- Shared Conversation (SHARECNV) MQ, . . 10 .

11, . SHARECNV .

UPDATE 6 . . ( ). SHARECNV 10.

     2 : dis chstatus(MY.SVRCONN)
AMQ8417: Display Channel Status details.
   CHANNEL(MY.SVRCONN)                     CHLTYPE(SVRCONN)
   CONNAME(127.0.0.1)                      CURRENT
   STATUS(RUNNING)                         SUBSTATE(RECEIVE)
AMQ8417: Display Channel Status details.
   CHANNEL(MY.SVRCONN)                     CHLTYPE(SVRCONN)
   CONNAME(127.0.0.1)                      CURRENT
   STATUS(RUNNING)                         SUBSTATE(RECEIVE)

5 .

 3 : dis chstatus(MY.SVRCONN)
AMQ8417: Display Channel Status details.
   CHANNEL(MY.SVRCONN)                     CHLTYPE(SVRCONN)
   CONNAME(127.0.0.1)                      CURRENT
   STATUS(RUNNING)                         SUBSTATE(RECEIVE)
+1

All Articles