mirror of https://github.com/apache/activemq.git
AMQ-7497 - further test to verify behaviour after ra.stop
This commit is contained in:
parent
a7b06c043c
commit
8cc5386fbb
|
@ -224,4 +224,88 @@ public class ActiveMQConnectionFactoryTest {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testXAResourceRefAfterStop() throws Exception {
|
||||||
|
|
||||||
|
BrokerService brokerService = new BrokerService();
|
||||||
|
brokerService.setPersistent(false);
|
||||||
|
brokerService.addConnector("tcp://localhost:0");
|
||||||
|
brokerService.start();
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
final TransportConnector primary = brokerService.getTransportConnectors().get(0);
|
||||||
|
|
||||||
|
String failoverUrl = String.format("failover:(%s)?maxReconnectAttempts=1&randomize=false", primary.getConnectUri());
|
||||||
|
|
||||||
|
ActiveMQResourceAdapter ra = new ActiveMQResourceAdapter();
|
||||||
|
ra.start(null);
|
||||||
|
ra.setServerUrl(failoverUrl);
|
||||||
|
ra.setUserName(user);
|
||||||
|
ra.setPassword(pwd);
|
||||||
|
|
||||||
|
XAResource[] resources = ra.getXAResources(null);
|
||||||
|
assertEquals("one resource", 1, resources.length);
|
||||||
|
|
||||||
|
assertEquals("no pending transactions", 0, resources[0].recover(100).length);
|
||||||
|
|
||||||
|
ra.stop();
|
||||||
|
|
||||||
|
try {
|
||||||
|
resources[0].recover(100);
|
||||||
|
fail("Expect error on call after stop b/c of no reconnection");
|
||||||
|
} catch (Exception expected) {
|
||||||
|
}
|
||||||
|
|
||||||
|
} finally {
|
||||||
|
brokerService.stop();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testXAResourceRefAfterFailAndStop() throws Exception {
|
||||||
|
|
||||||
|
BrokerService brokerService = new BrokerService();
|
||||||
|
brokerService.setPersistent(false);
|
||||||
|
brokerService.addConnector("tcp://localhost:0");
|
||||||
|
brokerService.start();
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
final TransportConnector primary = brokerService.getTransportConnectors().get(0);
|
||||||
|
|
||||||
|
String failoverUrl = String.format("failover:(%s)?maxReconnectAttempts=1&randomize=false", primary.getConnectUri());
|
||||||
|
|
||||||
|
ActiveMQResourceAdapter ra = new ActiveMQResourceAdapter();
|
||||||
|
ra.start(null);
|
||||||
|
ra.setServerUrl(failoverUrl);
|
||||||
|
ra.setUserName(user);
|
||||||
|
ra.setPassword(pwd);
|
||||||
|
|
||||||
|
XAResource[] resources = ra.getXAResources(null);
|
||||||
|
assertEquals("one resource", 1, resources.length);
|
||||||
|
|
||||||
|
assertEquals("no pending transactions", 0, resources[0].recover(100).length);
|
||||||
|
|
||||||
|
primary.stop();
|
||||||
|
|
||||||
|
assertTrue("no connections", Wait.waitFor(new Wait.Condition() {
|
||||||
|
@Override
|
||||||
|
public boolean isSatisified() throws Exception {
|
||||||
|
return primary.getConnections().isEmpty();
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
|
ra.stop();
|
||||||
|
|
||||||
|
try {
|
||||||
|
resources[0].recover(100);
|
||||||
|
fail("Expect error on call after stop b/c of no reconnection");
|
||||||
|
} catch (Exception expected) {
|
||||||
|
}
|
||||||
|
|
||||||
|
} finally {
|
||||||
|
brokerService.stop();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue