Object txID = sessionState.getCurrentTxId();
producer.send(session.createTextMessage("Hello again before failover"));
ClientConnectionDelegate delegate = (ClientConnectionDelegate) conn.getDelegate();
JMSRemotingConnection originalRemoting = delegate.getRemotingConnection();
ServerManagement.kill(1);
// wait for the client-side failover to complete
while(true)
{
FailoverEvent event = failoverListener.getEvent(30000);
if (event != null && FailoverEvent.FAILOVER_COMPLETED == event.getType())
{
break;
}
if (event == null)
{
fail("Did not get expected FAILOVER_COMPLETED event");
}
}
// if failover happened, this object was replaced
assertNotSame(originalRemoting, delegate.getRemotingConnection());
message = session.createTextMessage("Hello After");
producer.send(message);
assertEquals(txID, sessionState.getCurrentTxId());