[jboss-as7-dev] node0, node1 and port offsets
Richard Achmatowicz
rachmato at redhat.com
Mon Mar 12 21:23:07 EDT 2012
Hi
I've just spent a lot of time tracking down some problems with tests
failing with two IPv6 addresses which lead me to some arquillian.xml
files, like this:
<group qualifier="iiop">
<!-- The server than invokes the exposed EJB's -->
<container qualifier="iiop-client" default="true">
<configuration>
<property name="jbossHome">${basedir}/target/jbossas-iiop-client</property>
<property name="javaVmArguments">${server.jvm.args}
-Djboss.inst=${basedir}/target/jbossas-iiop-client</property>
<property
name="serverConfig">${jboss.server.config.file.name:standalone.xml}</property>
<property name="managementAddress">${node0}</property>
<property name="managementPort">${as.managementPort:9999}</property>
</configuration>
</container>
<!-- The server that expsoses EJB's via IIOP -->
<container qualifier="iiop-server" default="false">
<configuration>
<property name="jbossHome">${basedir}/target/jbossas-iiop-server</property>
<property name="javaVmArguments">${server.jvm.args}</property>
<property
name="serverConfig">${jboss.server.config.file.name:standalone.xml}</property>
<!-- we use port offsets in the configuration build -->
<property name="managementAddress">${node1}</property>
<property name="managementPort">10099</property>
</configuration>
</container>
</group>
These configurations use both separate node IPs *and* port offsets, and
yet the builds for the configurations only use port offsets. This
results in Arquillian looking in the wrong place for some servers have
actually started. For example, the arquillian.xml configuration above
tells arquillian to look for a host running at ${node1}:10099; but the
server configuration built by iiop-build.xml uses port offsets, so the
second server's managment address is ${node0}:10099. The test fails
because Arquillian can never connect to the host ${node1}:10099. We have
some tests which use a single node and port offsets, some tests which
use distinct nodes and port offsets, and I also expect some tests which
use distinct nodes and no offsets.
In the past, we have used two approaches to run two servers on a single
node: using distinct IP addresses and the same ports or using a single
IP address and ports distinguished by port offsets. The first was the
standard case; the second was generally used for testing the port offset
mechanism, IIRC. We need one or the other but not both.
Should we consider returning to that standard in which we use distinct
IPs and no offsets for the general case, and only use port offsets when
testing the port offset mechanism?. Using two separate interfaces rather
than one arguably a more realistic test than one interface with port
offsets. Also, having different multi-host configurations for each test
makes debugging more of a pain, as it is one less thing you can assume
about a test when trying to figure out what is going on. Also, looking
at different IPs in two sets of logs is easier and less error prone than
calculating offsets in your head in my experience.
The problem configurations I saw were in integration/iiop,
integration/manual-mode, and integration/multi-node.
Richard
More information about the jboss-as7-dev
mailing list