BindException: Address already in use. "subsystem" => "iiop-openjdk"
whitingjr Apr 1, 2016 3:22 AMHi,
In domain mode I am seeing iiop-openjdk throwing an error. When the 2nd server in a x2 instance set up starts.
2016-03-31 09:55:53,911 INFO [org.wildfly.extension.undertow] (ServerService Thread Pool -- 72) WFLYUT0021: Registered web context: /supplier
2016-03-31 09:55:53,916 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([("subsystem" => "iiop-openjdk")]) - failure description: {"WFLYCTL0080: Failed services" => {"jboss.iiop-openjdk.poa-service.rootpoa" => "org.jboss.msc.service.StartException in service jboss.iiop-openjdk.poa-service.rootpoa: WFLYIIOP0098: Failed to resolve initial reference RootPOA
Caused by: org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 216 completed: No
Caused by: Address already in use"}}
2016-03-31 09:55:53,945 INFO [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0010: Deployed "acme.ear" (runtime-name : "acme.ear")
2016-03-31 09:55:53,947 INFO [org.jboss.as.controller] (Controller Boot Thread) WFLYCTL0183: Service status report
WFLYCTL0186: Services which failed to start: service jboss.iiop-openjdk.poa-service.rootpoa: org.jboss.msc.service.StartException in service jboss.iiop-openjdk.poa-service.rootpoa: WFLYIIOP0098: Failed to resolve initial reference RootPOA
My domain configuration for the iiop-openjdk subsystem looks like this. I defined a property to set the "OAIAddr" ORB property defining the hostname.
<subsystem xmlns="urn:jboss:domain:iiop-openjdk:1.0">
<properties>
<property name="OAIAddr" value="${server.instance.hostname}"/>
</properties>
<initializers transactions="spec" security="identity"/>
</subsystem>
The value is resolved using a property definition in my host.xml
<system-properties>
.......
<property name="server.instance.hostname" value="benchserver2G2" />
</system-properties>
Initially I expected Wildfly10.Final to pass implicitly for each server instance a unique address to the ORB. When that did not work I tried setting "OAIAddr" property.
Using a debugger neither of these things are happening. In an attempt to solve things further I used a debugger on the second server instance. To trap the line the host name is passed to the ORB. That revealed the host name is "127.0.0.1". This is in the org.wildfly.iiop.openjdk.service.CorbaORBService.properties bundle of properties .
{com.sun.CORBA.ORBServerHost=127.0.0.1, client-supports=MutualAuth, org.omg.PortableInterceptor.ORBInitializerClass.org.wildfly.iiop.openjdk.tm.TxServerInterceptorInitializer=, org.omg.CORBA.ORBServerId=1, com.sun.CORBA.giop.ORBGIOPVersion=1.2, org.omg.PortableInterceptor.ORBInitializerClass.org.wildfly.iiop.openjdk.csiv2.SASInitializer=, caller-propagation=none, OAIAddr=benchserver2G2, add-component-via-interceptor=true, detect-replay=none, confidentiality=none, required=false, trust-in-target=none, auth-method=username_password, root-context=JBoss/Naming/root, export-corbaloc=true, org.omg.CORBA.ORBSingletonClass=com.sun.corba.se.impl.orb.ORBSingleton, server-requires=None, OASSLPort=3529, org.omg.CORBA.ORBClass=com.sun.corba.se.impl.orb.ORBImpl, com.sun.CORBA.transport.ORBListenSocket=SSL:3529, socket-binding=iiop, support-ssl=false, ssl-socket-binding=iiop-ssl, client-requires=None, integrity=none, trust-in-client=none, detect-misordering=none, com.sun.CORBA.POA.ORBPersistentServerPort=3528, com.sun.CORBA.ORBServerPort=3528, com.sun.CORBA.transport.ORBIORToSocketInfoClass=org.wildfly.iiop.openjdk.csiv2.CSIV2IORToSocketInfo, server-supports=MutualAuth, org.omg.PortableInterceptor.ORBInitializerClass.org.wildfly.iiop.openjdk.csiv2.CSIv2Initializer=}
I then set the property com.sun.CORBA.ORBServerHost as a property on the subsystem.
<subsystem xmlns="urn:jboss:domain:iiop-openjdk:1.0">
<properties>
<property name="OAIAddr" value="${server.instance.hostname}"/>
<property name="com.sun.CORBA.ORBServerHost" value="${server.instance.hostname}"/>
</properties>
<initializers transactions="spec" security="identity"/>
</subsystem>
Still the hostname passed to the ORB was 127.0.0.1 and that caused the same BindException.
Am I setting the correct properties or does something else need to be set ?
Regards,
Jeremy
Wildfly10
OpenJDK 1.8