[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