2 개의 메시지를 대기열에 넣을 수있는 간단한 코드가 있습니다.
1) connectionNameList를 두 개의 서버로 설정했습니다.
2)이 두 서버는 독립적이지만 "QMgr"및 "TEST.IN"과 같은 동일한 큐 관리자 및 큐가 정의되어 있습니다. 3) setClientReconnectOptions (WMQConstants.WMQ_CLIENT_RECONNECT);
첫 번째 서버가 다운 된 경우 두 번째 서버로 메시지를 보내야합니다.
MQ JMS setClientReconnectOptions가 예상대로 작동하지 않습니까?
내가 한 테스트 :
a) 첫 번째 메시지 인 sender.send (message)를 보냅니다. 그것은 효과가 있었다.
b) 30 초간 수면. 나는 더 시도, 내가 {} {캐치를 시도 않은이 시간 동안
, 나는 종료 첫 번째 서버
c)는 다음, 제 2 메시지를 보내 완료하려고 잠 있지만, 더 나아가 즉시
를 보내지 못했습니다 } 두 번째 메시지에 대해 catch {}에서 sender.send (message)를 시도했지만 여전히 실패합니다.
내가 예상 한 것과 다른 이유가 무엇인지 알기. 귀하의 회신을 진심으로 감사드립니다.
public static void main(String[] args) throws Exception
{
MQQueueConnectionFactory cf = new MQQueueConnectionFactory();
cf.setConnectionNameList("10.230.34.191(1418),10.230.34.169(1418)");
cf.setQueueManager("QMgr");
cf.setTransportType(WMQConstants.WMQ_CM_CLIENT);
cf.setClientReconnectOptions(WMQConstants.WMQ_CLIENT_RECONNECT);
cf.setClientReconnectTimeout(600);
System.out.println("connect list " + cf.getConnectionNameList());
MQQueueConnection connection = (MQQueueConnection) cf
.createQueueConnection("mqm", "passwd");
MQQueueSession session = (MQQueueSession) connection.createQueueSession(false,
Session.AUTO_ACKNOWLEDGE);
MQQueue queue = (MQQueue) session.createQueue("queue:///TEST.IN");
MQQueueSender sender = (MQQueueSender) session.createSender(queue);
long uniqueNumber = System.currentTimeMillis() % 1000;
JMSTextMessage message = (JMSTextMessage) session.createTextMessage("SimplePTP "
+ uniqueNumber);
// Start the connection
connection.start();
sender.send(message);
System.out.println("Sent message:\\n" + message);
System.out.println("sleep 30 seconds");
Thread.sleep(30000);
uniqueNumber = System.currentTimeMillis() % 1000;
message = (JMSTextMessage) session.createTextMessage("SimplePTP " + uniqueNumber);
sender.send(message);
sender.close();
session.close();
connection.close();
System.out.println("\\nSUCCESS\\n");
}
감사합니다. 실제로 "-r"을 사용하여 종료하면 실제로 작동했다고 생각합니다. IBM 문서에서 지적했듯이, 모든 종료 (shutdown) 경우에는 장애 복구 (failover)가 작동하지 않습니다. 그래서 문제가되지 않습니다. – huican