|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Clustering workload balancing and failover problem |
« View previous topic :: View next topic » |
Author |
Message
|
priyasl |
Posted: Tue Nov 19, 2002 8:24 pm Post subject: Clustering workload balancing and failover problem |
|
|
Newbie
Joined: 17 Nov 2002 Posts: 2
|
I have a cluster setup with three queue managers(QM1, QM2, QM3) defined. Two queue managers(QM1, QM2) hold full repository for the cluster. For including the third queuemanager(QM3) in the cluster i defined a cluster receiver channel.
1. When i give the cmd, display clusqmgr(*), only the queue mgrs with repositories(QM1, QM2) are displayed and the third queue manager(QM3) is not displayed.
So how do i add a non-repository queue manager to a cluster?
2. I have two cluster queues(CQ) with the same name in two of the three clustered queue managers.i.e, QM1 and QM3 have CQ.
QM1 has a cluster-sender channel(TO.QM2) and a cluster-receiver channel(TO.QM1).
QM2 has a cluster-sender channel(TO.QM1) and a cluster-receiver channel(TO.QM2).
QM3 has a cluster-receiver channel(TO.QM3) and a cluster-sender channel(TO.QM2).
From my java client i connect to QM2 and try to put messages to the cluster queue CQ, the messages are put only into the CQ of QM1, instead of being distributed between the queues of QM1 and QM3. Once the maximum depth of CQ in MQ1 is reached, i get the error 2085(overflow error). How do i make the messages to be distributed between the two clustered queues of QM1 and QM3 in a round-robin fashion. |
|
Back to top |
|
 |
vennela |
Posted: Tue Nov 19, 2002 10:29 pm Post subject: |
|
|
 Jedi Knight
Joined: 11 Aug 2002 Posts: 4055 Location: Hyderabad, India
|
Check if the channels between QM2 and QM3 are up and running. See if the clustered queue is propogated across all the QMGRS.
In your java program when you open the CQ check if you have the openOptions as BIND_ON_OPEN. You may explicitly set it to BIND_NOT_FIXED.
I have successfully run the following java program with your setup. Hope this helps.
import com.ibm.mq.*;
import java.io.*;
public class MQSample
{
private String qManager = "QM2";
private MQQueueManager qMgr;
public static void main(String args[]) {
new MQSample();
}
public MQSample(){
try{
qMgr = new MQQueueManager(qManager);
int openOptions = MQC.MQOO_OUTPUT ;
MQQueue system_default_local_queue = qMgr.accessQueue("CQ", openOptions);
MQMessage hello_world = new MQMessage();
hello_world.writeString("Hello World!1");
MQPutMessageOptions pmo = new MQPutMessageOptions();
system_default_local_queue.put(hello_world,pmo);
system_default_local_queue.close();
qMgr.disconnect();
}
catch (MQException ex)
{
System.out.println("An MQSeries error occurred : Completion code " + ex.completionCode + " Reason code " + ex.reasonCode);
}
catch (java.io.IOException ex)
{
System.out.println("An error occurred whilst writing to the message buffer: " + ex);
}
}
}
---
Venny |
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|
|
|