ARTEMIS-3174 add test
This commit is contained in:
parent
3b9008bda0
commit
d36525348d
|
@ -16,6 +16,7 @@
|
||||||
*/
|
*/
|
||||||
package org.apache.activemq.artemis.tests.integration.cluster.reattach;
|
package org.apache.activemq.artemis.tests.integration.cluster.reattach;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.Timer;
|
import java.util.Timer;
|
||||||
import java.util.TimerTask;
|
import java.util.TimerTask;
|
||||||
import java.util.concurrent.CountDownLatch;
|
import java.util.concurrent.CountDownLatch;
|
||||||
|
@ -41,6 +42,7 @@ import org.apache.activemq.artemis.core.protocol.core.impl.wireformat.SessionPro
|
||||||
import org.apache.activemq.artemis.core.remoting.impl.invm.InVMConnector;
|
import org.apache.activemq.artemis.core.remoting.impl.invm.InVMConnector;
|
||||||
import org.apache.activemq.artemis.core.server.ActiveMQServer;
|
import org.apache.activemq.artemis.core.server.ActiveMQServer;
|
||||||
import org.apache.activemq.artemis.api.core.RoutingType;
|
import org.apache.activemq.artemis.api.core.RoutingType;
|
||||||
|
import org.apache.activemq.artemis.core.server.ServerSession;
|
||||||
import org.apache.activemq.artemis.jms.client.ActiveMQTextMessage;
|
import org.apache.activemq.artemis.jms.client.ActiveMQTextMessage;
|
||||||
import org.apache.activemq.artemis.spi.core.protocol.RemotingConnection;
|
import org.apache.activemq.artemis.spi.core.protocol.RemotingConnection;
|
||||||
import org.apache.activemq.artemis.tests.util.ActiveMQTestBase;
|
import org.apache.activemq.artemis.tests.util.ActiveMQTestBase;
|
||||||
|
@ -122,6 +124,30 @@ public class ReattachTest extends ActiveMQTestBase {
|
||||||
sf.close();
|
sf.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testReattachTransferConnectionOnSession() throws Exception {
|
||||||
|
final long retryInterval = 50;
|
||||||
|
final double retryMultiplier = 1d;
|
||||||
|
final int reconnectAttempts = 10;
|
||||||
|
|
||||||
|
locator.setRetryInterval(retryInterval).setRetryIntervalMultiplier(retryMultiplier).setReconnectAttempts(reconnectAttempts).setConfirmationWindowSize(1024 * 1024);
|
||||||
|
ClientSessionFactoryInternal sf = (ClientSessionFactoryInternal) createSessionFactory(locator);
|
||||||
|
ClientSession session = sf.createSession(false, true, true);
|
||||||
|
|
||||||
|
// there's only one session on the broker
|
||||||
|
Object originalConnectionID = ((ServerSession)server.getSessions().toArray()[0]).getConnectionID();
|
||||||
|
|
||||||
|
// trigger re-attach
|
||||||
|
((ClientSessionInternal) session).getConnection().fail(new ActiveMQNotConnectedException());
|
||||||
|
|
||||||
|
session.start();
|
||||||
|
|
||||||
|
assertFalse(Objects.equals(((ServerSession)server.getSessions().toArray()[0]).getConnectionID(), originalConnectionID));
|
||||||
|
|
||||||
|
session.close();
|
||||||
|
sf.close();
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Test failure on connection, but server is still up so should immediately reconnect
|
* Test failure on connection, but server is still up so should immediately reconnect
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue