Address already in use error in jboss log when trying start CA Identity Manager junder jboss 6

book

Article ID: 38244

calendar_today

Updated On:

Products

CA Identity Manager CA Identity Governance CA Identity Portal CA Risk Analytics CA Secure Cloud SaaS - Arcot A-OK (WebFort) CLOUDMINDER ADVANCED AUTHENTICATION CA Secure Cloud SaaS - Advanced Authentication CA Secure Cloud SaaS - Identity Management CA Secure Cloud SaaS - Single Sign On

Issue/Introduction

Issue

 

Following message is seen in the server log files for CA Identity Manager r12.6.07 deployed under Jobss 6.x

 

java.lang.Exception: Port NNNN already in use.

        ...Caused by: java.net.BindException: Address already in use

        at java.net.PlainSocketImpl.socketBind(Native Method)

        at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:365)

        at java.net.ServerSocket.bind(ServerSocket.java:319)

        at java.net.ServerSocket.<init>(ServerSocket.java:185)

        ...

We are getting below error in Windows OS while running JBoss EAP 6.3.0. Jboss port set starts from 8080 but why one service Http11Protocol taking 80 port? Increased port set to 100 it worked fine, but we are migrating from Jboss server 4 version to jboss eap 6.3.0, Jboss 4 is running with 8080 port set with Tomcat Serer on the same box. Is it possible to use same server port set 8080 with Tomacat ?

Below ERROR is shown in logs :

 

ERROR [org.apache.coyote.http11.Http11Protocol] (MSC service thread 1-2) JBWEB003043: Error initializing endpoint: java.net.BindException: Address already in use: JVM_Bind /0.0.0.0:8080

at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:979) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]

at org.apache.coyote.http11.Http11Protocol.init(Http11Protocol.java:174) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]

at org.apache.catalina.connector.Connector.init(Connector.java:986) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]

at org.jboss.as.web.WebConnectorService.start(WebConnectorService.java:318) [jboss-as-web-7.5.0.Final-redhat-21.jar:7.5.0.Final-redhat-21]

at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1980) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1]

at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1913) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1]

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_66]

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_66]

at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_66]

.

.

.

 

INFO  [ims.Main] (ServerService Thread Pool -- 100) ################################################

INFO  [ims.Main] (ServerService Thread Pool -- 100) # IAM Framework 200.1.07.0.271

INFO  [ims.Main] (ServerService Thread Pool -- 100) ################################################

INFO  [ims.Main] (ServerService Thread Pool -- 100) ################################################

INFO  [ims.Main] (ServerService Thread Pool -- 100) # CA Identity Manager 12.6.07.0.163

INFO  [ims.Main] (ServerService Thread Pool -- 100) ################################################

INFO  [ims.Main] (ServerService Thread Pool -- 100) ---- CA IAM FW Startup Sequence Initiated. ----

INFO  [ims.Main] (ServerService Thread Pool -- 100) * Startup Step 1 : Attempting to start ServiceLocator. 

INFO  [ims.Main] (ServerService Thread Pool -- 100) * Startup Step 2 : Attempting to start PolicyServerService

INFO  [ims.Main] (ServerService Thread Pool -- 100) * Startup Step 3 : Attempting to start ServerCommandService

.

.

.

WARN  [org.apache.myfaces.shared_impl.util.LocaleUtils] (ServerService Thread Pool -- 100) Locale name in faces-config.xml null or empty, setting locale to default locale : en_US

17:46:05,074 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) JBAS014612: Operation ("add") failed - address: ([

    ("subsystem" => "web"),

    ("connector" => "http")

]) - failure description: {"JBAS014671: Failed services" => {"jboss.web.connector.http" => "org.jboss.msc.service.StartException in service jboss.web.connector.http: JBAS018007: Error starting web connector

    Caused by: LifecycleException:  JBWEB000023: Protocol handler initialization failed"}}

17:46:05,556 ERROR [org.jboss.as] (Controller Boot Thread) JBAS015875: JBoss EAP 6.4.0.GA (AS 7.5.0.Final-redhat-21) started (with errors) in 155407ms - Started 3750 of 3788 services (1 services failed or missing dependencies, 113 services are lazy, passive or on-demand)

 

Environment: 

 
Windows 2012
Jboss 6.4
CA Identity Manager r12.6.07

 

Cause:

 
  • Port already in use by another process (another JBoss EAP instance or another service running on the platform)
  • Prior to Windows Vista/2008 Server the IANA standards were not adhered to. Windows can grab ports between 1025 and 5000 for it's own use - seehttp://support.microsoft.com/kb/929851
  • If same JBoss process had been already listened same port, it might be behavior of JBoss Messaging secondaryBindPort which tries to picks any free port between 1025 and 65535. See JBPAPP-10866 and this article for details.
  • Port was changed to 80. In EAP 6 it is set to 8080 by default. Users configuration was:
 
        <socket-binding name="http" port="80"/>        <socket-binding name="https" port="8080"/>

The default configuration is:

 
        <socket-binding name="http" port="8080"/>        <socket-binding name="https" port="8443"/>

We'd recommend setting these ports back to the default values.

 

 

Resolution:

 

Identify which services are using the ports in question, and depending on the outcome, look to:

  1. Reserving specific port ranges

    • Windows:
      Reserve a range of ephemeral ports so that only services that request ports in the specified range can use them. Details on how to do this can be found at http://support.microsoft.com/kb/812873

    • Linux:
      This can be done by assigning explicit port numbers in /etc/services to those applications that request random ports. This way random port allocations can be avoided and the ports needed by JBoss instances can be freed.

  2. If there are duplicate ports, in the JBoss AS instances, make the necessary updates so that the port setting in each configuration is unique. For example, use the Service Binding Manager or bind each JBoss EAP instance to a different network interface if attempting to run multiple instance of JBoss EAP.

  • Do not configure JBoss server sockets in the ephemeral port range (32768-61000 by default on Linux). When JBoss is down, the OS may hand those ephemeral ports out to other processes, allowing for bind exceptions when JBoss starts again
  • Jboss can be configured with same port of Tomcat, in this case you need to adjust to a different port.

 

Additional Information:  

 

Diagnostic Steps

  • Check whether another instance of JBoss is already running. And Check whether there is a port conflict between the JBoss instances by running the grep for the port in each of the AS instances.

  • If there is no port conflict, run the following command/tool to identify which service/process is using the port:

  • Check whether any firewall or security software could prevent JBoss from opening the port

 

Environment

Release: CAIDMB99000-12.6.7-Identity Manager-B to B
Component: