WebSphere: Port conflicts while starting new JVM

Posted by Pascal Schöner on 5:21 PM with 1 comment

Problem

In big WAS topologies with more than one cell you sometimes get some port conflicts with JVMs from the other cells. The JVMs wouldn´t start correctly because WAS isn´t able to handle this conflict with other cells. So multiple JVMs can get the same ports while creating the JVM.



SystemOut.log
com.ibm.ws.exception.RuntimeError: org.omg.CORBA.INTERNAL: CREATE_LISTENER_FAILED_4  vmcid: 0x49421000  minor code: 56  completed: No
at com.ibm.ws.runtime.component.ORBImpl.start(ORBImpl.java:489)
at com.ibm.ws.runtime.component.ContainerHelper.startComponents(ContainerHelper.java:539)
at com.ibm.ws.runtime.component.ContainerImpl.startComponents(ContainerImpl.java:627)
at com.ibm.ws.runtime.component.ContainerImpl.start(ContainerImpl.java:618)
at com.ibm.ws.runtime.component.ServerImpl.start(ServerImpl.java:523)
at com.ibm.ws.runtime.WsServerImpl.bootServerContainer(WsServerImpl.java:310)
at com.ibm.ws.runtime.WsServerImpl.start(WsServerImpl.java:223)
at com.ibm.ws.runtime.WsServerImpl.main(WsServerImpl.java:686)
at com.ibm.ws.runtime.WsServer.main(WsServer.java:59)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:611)
at com.ibm.wsspi.bootstrap.WSLauncher.launchMain(WSLauncher.java:234)
at com.ibm.wsspi.bootstrap.WSLauncher.main(WSLauncher.java:96)
at com.ibm.wsspi.bootstrap.WSLauncher.run(WSLauncher.java:77)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:611)
at org.eclipse.equinox.internal.app.EclipseAppContainer.callMethodWithException(EclipseAppContainer.java:587)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:198)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:611)
at org.eclipse.core.launcher.Main.invokeFramework(Main.java:340)
at org.eclipse.core.launcher.Main.basicRun(Main.java:282)
at org.eclipse.core.launcher.Main.run(Main.java:981)
at com.ibm.wsspi.bootstrap.WSPreLauncher.launchEclipse(WSPreLauncher.java:379)
at com.ibm.wsspi.bootstrap.WSPreLauncher.main(WSPreLauncher.java:150)
Caused by: org.omg.CORBA.INTERNAL: CREATE_LISTENER_FAILED_4  vmcid: 0x49421000  minor code: 56  completed: No
at com.ibm.ws.orbimpl.transport.WSTransport.createListener(WSTransport.java:867)
at com.ibm.ws.orbimpl.transport.WSTransport.initTransports(WSTransport.java:605)
at com.ibm.rmi.iiop.TransportManager.initTransports(TransportManager.java:163)
at com.ibm.rmi.corba.ORB.set_parameters(ORB.java:1274)
at com.ibm.CORBA.iiop.ORB.set_parameters(ORB.java:1688)
at org.omg.CORBA.ORB.init(ORB.java:364)
at com.ibm.ws.orb.GlobalORBFactory.init(GlobalORBFactory.java:92)
at com.ibm.ejs.oa.EJSORBImpl.initializeORB(EJSORBImpl.java:179)
at com.ibm.ejs.oa.EJSServerORBImpl.<init>(EJSServerORBImpl.java:102)
at com.ibm.ejs.oa.EJSORB.init(EJSORB.java:55)
at com.ibm.ws.runtime.component.ORBImpl.start(ORBImpl.java:481)

... 34 more

Solution

Change the default ports in the JVM template in the WAS configuration. So you have to change the port values in
<DMGR-HOME>/config/templates/servertypes/APPLICATION_SERVER/serverindex.xml


In the following example the ports of the "default" template are changed to a high port value of "400xx"




<?xml version="1.0" encoding="UTF-8"?>
<serverindex:ServerIndex xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" 
xmlns:serverindex="
http://www.ibm.com/websphere/appserver/schemas/5.0/serverindex.xmi" 
xmi:id="ServerIndex_1" hostName="$(node.host.name)">
  <serverEntries xmi:id="ServerEntry_1" serverName="default" 
serverType="APPLICATION_SERVER">
    <specialEndpoints xmi:id="NamedEndPoint_1" endPointName="BOOTSTRAP_ADDRESS">
      <endPoint xmi:id="EndPoint_1" host="$(node.host.name)" port="40000"/>
    </specialEndpoints>
    <specialEndpoints xmi:id="NamedEndPoint_2" 
    endPointName="SOAP_CONNECTOR_ADDRESS">
      <endPoint xmi:id="EndPoint_2" host="$(node.host.name)" port="40001"/>
    </specialEndpoints>
    <specialEndpoints xmi:id="NamedEndPoint_3" 
    endPointName="ORB_LISTENER_ADDRESS">
      <endPoint xmi:id="EndPoint_3" host="*" port="40002"/>
    </specialEndpoints>
    <specialEndpoints xmi:id="NamedEndPoint_6" 
    endPointName="SAS_SSL_SERVERAUTH_LISTENER_ADDRESS">
      <endPoint xmi:id="EndPoint_6" host="$(node.host.name)" port="40003"/>
    </specialEndpoints>
    <specialEndpoints xmi:id="NamedEndPoint_7" 
    endPointName="CSIV2_SSL_SERVERAUTH_LISTENER_ADDRESS">
      <endPoint xmi:id="EndPoint_7" host="$(node.host.name)" port="40004"/>
    </specialEndpoints>
    <specialEndpoints xmi:id="NamedEndPoint_8" 
    endPointName="CSIV2_SSL_MUTUALAUTH_LISTENER_ADDRESS">
      <endPoint xmi:id="EndPoint_8" host="$(node.host.name)" port="40005"/>
    </specialEndpoints>
    <specialEndpoints xmi:id="NamedEndPoint_9" endPointName="WC_adminhost">
      <endPoint xmi:id="EndPoint_9" host="*" port="40006"/>
    </specialEndpoints>
    <specialEndpoints xmi:id="NamedEndPoint_10" endPointName="WC_defaulthost">
      <endPoint xmi:id="EndPoint_10" host="*" port="9080"/>
    </specialEndpoints>
    <specialEndpoints xmi:id="NamedEndPoint_11" 
    endPointName="DCS_UNICAST_ADDRESS">
      <endPoint xmi:id="EndPoint_11" host="*" port="40007"/>
    </specialEndpoints>
    <specialEndpoints xmi:id="NamedEndPoint_12" 
    endPointName="WC_adminhost_secure">
      <endPoint xmi:id="EndPoint_12" host="*" port="40008"/>
    </specialEndpoints>
    <specialEndpoints xmi:id="NamedEndPoint_13"
    endPointName="WC_defaulthost_secure">
      <endPoint xmi:id="EndPoint_13" host="*" port="40009"/>
    </specialEndpoints>
    <specialEndpoints xmi:id="NamedEndPoint_51" endPointName="SIP_DEFAULTHOST">
      <endPoint xmi:id="EndPoint_51" host="*" port="40010"/>
    </specialEndpoints>
    <specialEndpoints xmi:id="NamedEndPoint_52" 
    endPointName="SIP_DEFAULTHOST_SECURE">
      <endPoint xmi:id="EndPoint_52" host="*" port="40011"/>
    </specialEndpoints>
    <specialEndpoints xmi:id="NamedEndPoint_57" 
    endPointName="OVERLAY_UDP_LISTENER_ADDRESS">
      <endPoint xmi:id="EndPoint_57" host="*" port="40012"/>
    </specialEndpoints>
    <specialEndpoints xmi:id="NamedEndPoint_58" 
    endPointName="OVERLAY_TCP_LISTENER_ADDRESS">
      <endPoint xmi:id="EndPoint_58" host="*" port="40013"/>
    </specialEndpoints>
    <specialEndpoints xmi:id="NamedEndPoint_100" 
    endPointName="IPC_CONNECTOR_ADDRESS">
      <endPoint xmi:id="EndPoint_100" host="localhost" port="40014"/>
    </specialEndpoints>
    <specialEndpoints xmi:id="NamedEndPoint_1402576573310" 
    endPointName="SIB_ENDPOINT_ADDRESS">
      <endPoint xmi:id="EndPoint_1402576573332" host="*" port="40015"/>
    </specialEndpoints>
    <specialEndpoints xmi:id="NamedEndPoint_1402576573316" 
    endPointName="SIB_ENDPOINT_SECURE_ADDRESS">
      <endPoint xmi:id="EndPoint_1402576573338" host="*" port="40016"/>
    </specialEndpoints>
    <specialEndpoints xmi:id="NamedEndPoint_1402576573321" 
    endPointName="SIB_MQ_ENDPOINT_ADDRESS">
      <endPoint xmi:id="EndPoint_1402576573343" host="*" port="40017"/>
    </specialEndpoints>
    <specialEndpoints xmi:id="NamedEndPoint_1402576573327" 
    endPointName="SIB_MQ_ENDPOINT_SECURE_ADDRESS">
      <endPoint xmi:id="EndPoint_1402576573349" host="*" port="40018"/>
    </specialEndpoints>
    </serverEntries>
    </serverindex>