IBM Support

Could not bind RemoteSessionFactory

Troubleshooting


Problem

When multiple TDI server (ibmdisrv) instances are started on the same operating system resource conflicts will occur.

Symptom

Case #1 - TDI Remote API port conflict
Exception seen in Config Editor:
java.lang.Exception: CTGDIC145W The port for your Default TDI Server is already in use at localhost:1099 in the Solution Directory
CTGDIC145W The port for your Default TDI Server is already in use at localhost:1099 in the Solution Directory
Exception seen in ibmdi.log:
[org.apache.activemq.broker.jmx.ManagementContext] - Failed to create local registry
java.rmi.server.ExportException: Port already in use: 1099; nested exception is: java.net.BindException: Address already in use

Case #2 - ActiveMQ port conflict
Exception seen in ibmdi.log:
[org.apache.activemq.broker.BrokerService] - Failed to start ActiveMQ JMS Message Broker. Reason: java.io.IOException: Transport Connector could not be registered in JMX: Failed to bind to server socket: tcp://0.0.0.0:61616 due to: java.net.BindException: Address already in use
java.io.IOException: Transport Connector could not be registered in JMX: Failed to bind to server socket: tcp://0.0.0.0:61616 due to: java.net.BindException: Address already in use

Case #3 - Jetty/Dashboard port conflict
Exception seen in ibmdi.log:
CTGDIS210W An error has occurred on Server API initialization: {0}.com.ibm.di.api.DIException: org.osgi.framework.BundleException: Exception in org.eclipse.equinox.http.jetty.internal.Activator.start() of bundle org.eclipse.equinox.http.jetty.
Caused by: org.osgi.framework.BundleException: Exception in org.eclipse.equinox.http.jetty.internal.Activator.start() of bundle org.eclipse.equinox.http.jetty.
Caused by: org.osgi.service.cm.ConfigurationException: default : Address already in use
Caused by: java.net.BindException: Address already in use

Cause

Port conflict

Resolving The Problem

* This technote will NOT address changing the port associated with the Derby Database. It will assume one default Derby database in network mode will handle all instances of TDI running on the operating system.

* This technote will assume each ibmdisrv instance started has a separate Solution Directory to make the following changes to.

Case #1 Solution:
// In the solution.properties file, change the 'api.remote.naming.port' value to an unused port.
api.remote.naming.port=1099

Case #2 Solution:
Modify the following elements in the <solution_directory>/etc/activemq.xml file
// Set the 'connectorPort' value to match the value of 'api.remote.naming.port' located in solution.properties file.
<managementContext createConnector="true" connectorPort="1099"/>
// Set uri to a unused port.
<transportConnector name="openwire" uri="tcp://0.0.0.0:61616"/>

Case #3 Solution:
// In the solution.properties file change the 'web.server.port' value to a non-used port.
web.server.port=1098

[{"Product":{"code":"SSCQGF","label":"Tivoli Directory Integrator"},"Business Unit":{"code":"BU008","label":"Security"},"Component":"General","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7.1.1","Edition":"","Line of Business":{"code":"LOB24","label":"Security Software"}}]

Document Information

Modified date:
16 June 2018

UID

swg21665273