Hi all,
We have encountered a problem at one of our clients where we have our java client running on a windows machine and jboss running on an AIX.
The network setup at the client is as follows:
- java client running on network 'A' with jdk1.4.2
- jboss 3.2.3 on AIX running on network 'B' with jdk1.4.2. The AIX machine has 3 network addresses of which only one address is public.
We passed in the -b 10.247.25.189 (public address of the AIX) to the run.sh to make jboss bind to the public address and can see it used through the logs on the server.log:
[org.jboss.naming.NamingService] Started jnpPort=1099, rmiPort=1098, backlog=50, bindAddress=/10.247.25.189, etc.....
We also comfirmed that the client machine can ping 10.247.25.189.
Our problem is that our client is throwing an exception during connection:
javax.naming.CommunicationException [Root exception is java.rmi.ConnectException:
Connection refused to host: 192.168.20.12; nested exception is:
java.net.ConnectException: Connection refused: connect]
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:647)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:507)
at javax.naming.InitialContext.lookup(InitialContext.java:347)
The problem is that
192.168.20.12 is one of the private network addresses on the AIX machine. even though I specified the public address in the connection properties as shown below.
props.put("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
props.put("java.naming.provider.url", "10.247.25.189:1099");
props.put("java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces");
So to finaly get to my questions:
1. Why is jboss returning an internal address when I have told it to bind to a public address?
2. What logging can I enable to see why jboss is returning this internal address.
Unfortunately, networking is not my speciality so all suggestions are welcome.
Ricardo