NIH | National Cancer Institute | NCI Wiki  
  • NCI Wiki is currently in READ-ONLY mode. Editing is restricted. Write access will be restored on March 4th, 2024.

Question: How do we avoid a JBOSS port conflict between applications such as caArray and caTissue Suite?

Topic: caArray Installation and Upgrade

Release: caArray 2.x

Date entered: 07/13/2009

Details about the Question

After installing caTissue Suite (v1.1) on the same server that has geWorkbench, caGWAS, and caArray installed, caArray crashed.

Answer

The problem in question was due in part to conflicts between caTissue and caArray. This issue is not specific to caArray since other applications using JBoss server might have the same conflict with caTissue Suite. This conflict will arise only if the following two conditions are both met: (1) a user installs caArray or another caBIG® application first then installs caTissue; and (2) the user changes the ports for caTissue manually and one of the ports for caTissue was already used by caArray or the other caBIG® application.

How to avoid the port conflict

The following options could be helpful to avoid the potential port conflict among the different applications installed:

Option 1: Keep the default port settings of the applications

If a user kept the default setting of the ports regardless of the order of the installation, caTissue Suite and caArray would install without problems.

Option 2: Install caTissue first, change caTissue's default Port settings, and install caArray

The caArray installer can detect the port availability on the server. If the user needs to use different port numbers other than the ones picked by the caTissue installer, the user needs to first install caTissue, modify its default port settings, and then install the caArray application using a set of ports that are not used by caTissue.

Option 3: Use only the available port

If any port number has to be changed after the installation of both caArray and caTissue, the user will need to make sure to use a free port number by verifying the port availability.

How to check the port availability on the server?

The user may check the availability of a port number with the netstat command below:

  • For a Linux/Unix/Mac environment:
    netstat --ano \| grep <<portNumber>>
    
    For example, use netstat --ano | grep <<portNumber>> for each required port (replacements for one or more of the following- 8080, 8009, 8443, 8083, 1099, 1098, 4444, 4445, 8093, 0, 1100, 1162, 3528, and 3529). If a process is listening to a customized port, choose another port and retry netstat until no conflict is returned. Use the final list of the customized ports to deploy caBIG tools.
  • For a Windows environment, use the netstat command below to return all the port numbers that are already been used:
    netstat --ano
    

How to reconfigure the port number to solve the port conflict

The procedure below shows how to re-configure the JBoss 4.2.2.GA for caTissue 1.1 Suite from 3XXXX ports to 5XXXX ports to avoid collision with caArray 2.2.1:

1. Change the file jboss-4.2.2.GA\server\all\conf\jboss-service.xml, by updating the following ports:

A. Binding Address Port from 38083 to 58083 for <attribute name="Port">38083</attribute>
B. Listening port for bootstrap JNP service from 31099 to 51099 for <attribute name="Port">31099</attribute>
C. RMI naming service "RmiPort" from 31098 to 51098 for <attribute name="RmiPort">31098</attribute>
D. RMIObjectPort from 34444 to 54444 for <attribute name="RMIObjectPort">34444</attribute>
E. Server Binding Port from 34445 to 54445 for <attribute name="ServerBindPort">34445</attribute>
F. serverBindPort from 34446 to 54446 for <attribute name="serverBindPort">34446</attribute>

2. Copy the above updated file in jboss-4.2.2.GA\server\default\conf\

3. Change the file jboss-4.2.2.GA\server\all\deploy\cluster-service.xml, update ports for:

A. HAJNI Port from 31100 to 51100 for <attribute name="Port">31100</attribute>
B. RmiPort from 31101 to 51101 for <attribute name="RmiPort">31101</attribute>
C. AutoDiscovery Group from 31102 to 51102 for <attribute name="AutoDiscoveryGroup">31102</attribute>
D. RMIObjectPort from 34447 to 54447 for <attribute name="RMIObjectPort">34447</attribute>
E. ServerBindPort from 34448 to 54448 for <attribute name="ServerBindPort">34448</attribute>

4. Open the file jboss-4.2.2.GA\server\all\deploy\jboss-web.deployer\server.xml and update ports for:

A. HTTP Connector port from 38080 to 58080  for <Connector port="38080" address="$\{jboss.bind.address\}"
B. HTTP redirectPort from 38443 to 58443  for emptySessionPath="true" enableLookups="false" redirectPort="8443" />
C. AJP Connector port from 38009 to 58009  for <Connector port="38009" address="$\{jboss.bind.address\}" protocol="AJP/1.3"
D. HTTP redirectPort from 38443 to 58443  for emptySessionPath="true" enableLookups="false" redirectPort="38443" />

5. Copy the above updated file in jboss-4.2.2.GA \server\default\deploy\jboss-web.deployer\

6. Open the file jboss-4.2.2.GA\server\all\deploy\httpha-invoker.sar\META-INF\jboss-service.xml and update ports for:

A. InvokerURLSuffix from 38080 to 58080 for <attribute name="InvokerURLSuffix">:38080/invoker/EJBInvokerServlet</attribute>
B. InvokerURLSuffix from 38080 to 58080 for <attribute name="InvokerURLSuffix">:38080/invoker/EJBInvokerHAServlet</attribute>
C. InvokerURLSuffix from 38080 to 58080 for <attribute name="InvokerURLSuffix">:38080/invoker/JMXInvokerServlet</attribute>
D. InvokerURLSuffix from 38080 to 58080 for <attribute name="InvokerURLSuffix">:38080/invoker/readonly/JMXInvokerServlet</attribute>
E. InvokerURLSuffix from 38080 to 58080 for <attribute name="InvokerURLSuffix">:38080/invoker/JMXInvokerHAServlet</attribute>

7. Open file jboss-4.2.2.GA\server\default\deploy\httpha-invoker.sar\META-INF\jboss-service.xml and update ports for:

A. InvokerURLSuffix from 38080 to 58080 for <attribute name="InvokerURLSuffix">:38080/invoker/EJBInvokerServlet</attribute>
B. InvokerURLSuffix from 38080 to 58080 for <attribute name="InvokerURLSuffix">:38080/invoker/JMXInvokerServlet</attribute>
C. InvokerURLSuffix from 38080 to 58080 for <attribute name="InvokerURLSuffix">:38080/invoker/readonly/JMXInvokerServlet</attribute>

Have a comment?

Please leave your comment in the caArray End User Forum.