2 Replies Latest reply on Apr 1, 2016 5:16 AM by Jeremy Whiting

    BindException: Address already in use. "subsystem" => "iiop-openjdk"

    Jeremy Whiting Expert

      Hi,

      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