The Wildfly test suite is missing a test case for testing EJBClient interactions over two clusters, which does exist in the EAP test cycle. This test case aims to duplicate that multi-node SmartFrog test in the Wildfly testsuite so that errors are identified early.
The test setup:
- two clusters
where each node of cluster ejb-forwarder has a remote outbound connection to node3
- a forwarding SFSB deployment on cluster ejb-forwarder, which forwards invocations to cluster ejb
- a non-forwarding deployment on cluster ejb
- a client which makes invocations on the clustered deployment on ejb-forwarder every 10 ms
The test execution:
- once the servers and deployments have been deployed, each server is shut down and then restarted in turn, at which time the test ends.
The expected behaviour:
- at least 90% of client invocations will complete without exception
- test client invocations on ejb-forwarder will fail over from node0 to node1 (or vice versa, depending on which node of cluster ejb-forwarder is down)
- server-client invocations on ejb will fail-over from node3 to node 4 (or vice versa depending on which node of cluster ejb is down)
The invocation transaction attribute set up:
- invocations from the client to ejb-forwarder are not in transaction scope
- invocations from ejb-forwarder to ejb are in transaction scope with attribute REQUIRED
This allows exercising invocations from a managed transaction context, which uncovered a number of issues...