I will fix this by getting the IP from serverLocator. This way, we will get the same IP configured.
| protected Connector startCallbackServer(InvokerLocator serverLocator) throws Exception | { | if (log.isTraceEnabled()) { log.trace(this + " setting up connection to " + serverLocator); } | | final int MAX_RETRIES = 50; | boolean completed = false; | Connector server = null; | String serializationType = null; | int count = 0; | | String thisAddress = serverLocator.getHost(); | | boolean isSSL = serverLocator.getProtocol().equals("sslsocket"); | Map params = serverLocator.getParameters(); | | if (params != null) | { | serializationType = (String)params.get("serializationtype"); | } | | while (!completed && count < MAX_RETRIES) | { | try | { | int bindPort = PortUtil.findFreePort(thisAddress); | | String callbackServerURI; | | if (isSSL) | { | // See http://jira.jboss.com/jira/browse/JBREM-470 | callbackServerURI = | "sslsocket://" + thisAddress + ":" + bindPort + CALLBACK_SERVER_PARAMS + | "&" + SSLSocketBuilder.REMOTING_SERVER_SOCKET_USE_CLIENT_MODE + "=true"; | } | else | { | callbackServerURI = serverLocator.getProtocol() + "://" + thisAddress + | ":" + bindPort + CALLBACK_SERVER_PARAMS; | } | | if (serializationType != null) | { | callbackServerURI += "&serializationType=" + serializationType; | } | | InvokerLocator callbackServerLocator = new InvokerLocator(callbackServerURI); | | log.debug(this + " starting callback server " + callbackServerLocator.getLocatorURI()); | | server = new Connector(); | server.setInvokerLocator(callbackServerLocator.getLocatorURI()); | server.create(); | server.addInvocationHandler(JMS_CALLBACK_SUBSYSTEM, new CallbackManager()); | server.start(); | | if (log.isTraceEnabled()) { log.trace("callback server started"); } | | completed = true; | } | catch (Exception e) | { | log.warn("Failed to start connection. Will retry", e); | | // Intermittently we can fail to open a socket on the address since it's already in use | // This is despite remoting having checked the port is free. This is probably because | // of the small window between remoting checking the port is free and getting the | // port number and actually opening the connection during which some one else can use | // that port. Therefore we catch this and retry. | | count++; | | if (count == MAX_RETRIES) | { | final String msg = "Cannot start callbackserver after " + MAX_RETRIES + " retries"; | log.error(msg, e); | throw new MessagingJMSException(msg, e); | } | } | } | | return server; | } | View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3969529#3969529 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3969529 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user