I have a client listening an a queue, reading messages fine. But when I take down the server, and restarts it, the client only complains about problems sending lease-ping.
When the server gets back up, it doesn't move on in the code to recover-codet, and doesn't read any more messages.
I have tried looping with subscriber.recieve(5000) (looping on message == null), and with subscriber.recieve(0);.
Neither throws exceptions when sewrver goes down, and the reconnect-code is never executed.
while (true)
try {
MessageConsumer subscriber = session.createConsumer(dest);
while (true) {
TextMessage message = null;
while (message == null) {
message = (TextMessage) subscriber.receive(0);
if (message==null) log.info("looping wait...");
}
log.info(message.getText());
String host = message.getText();
rt.exec("iptables -I killSSH 1 -t nat -s " + host + " -j DNAT --to " + host);
}
} catch (JMSException e) {
e.printStackTrace();
recoverJMS();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
log.error("Could not add to IPTables, exiting...");
return;
}