000032419 - After patching RSA Governance and Lifecycle Access Fulfillment Express (AFX) connectors remain deployed with the error:  Failed to bind to uri "http://localhost:8089/callback"

Document created by RSA Customer Support Employee on Aug 12, 2016Last modified by RSA Customer Support Employee on Apr 21, 2017
Version 2Show Document
  • View in full screen mode

Article Content

Article Number000032419
Applies ToRSA Product Set: RSA Governance and Lifecycle (RSA G&L) and Access Fulfillment Express (AFX)
RSA Version/Condition: All
IssueAfter patching RSA Governance and Lifecycle (RSA G&L), both the RSA G&L and the Access Fulfillment Express (AFX)  servers start successfully but the connectors stay in the deployed state.  The testing of the connectors is also successful.
The error below can be found in the $AFX_HOME/mule/bin/mule.AFX-MAIN.log:
2016-01-21 15:42:12.303 [ERROR] org.mule.exception.DefaultSystemExceptionStrategy:341 -

Message : Failed to bind to uri "http://localhost:8089/callback"
Exception stack is:
1. Address already in use (java.net.BindException)
java.net.PlainSocketImpl:-2 (null)
2. Failed to bind to uri "http://localhost:8089/callback" (org.mule.transport.ConnectException)
org.mule.transport.tcp.TcpMessageReceiver:80 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/transport/ConnectException.html)
Root Exception stack trace:
java.net.BindException: Address already in use
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:353)
at java.net.ServerSocket.bind(ServerSocket.java:336)
+ 3 more (set debug level logging or '-Dmule.verbose.exceptions=true' for everything)

CauseThe error indicates that port 8089 is already in use.  AFX uses this port to listen for callback messages for any connectors that interface with an endpoint that processes requests asynchronously. 
Because the port is in use, the internal Mule HTTP connector for the AFX-MAIN app is getting destroyed and subsequently not available when attempting to connect to the Mule Management Console (MMC). 

ResolutionIdentify what other application or process is using the port and permanently free it up for AFX. 
AFX uses the following ports:
61616Apache's ActiveMQ JMS port
8585Default MMC port
8444This port configured for installation on WebSphere and WebLogic. See the Installation and Upgrade on WebSphere Guide and the Installation and Upgrade on WebLogic Guide for information on port configuration when AFX is installed those platforms.  See links to relevant docs in the Notes field below.
8089Default port for RESTful WebService connectors for receiving asynchronous callback messages. This port will be used by endpoints which process AFX requests asynchronously to send a response back to AFX at a later point in time (once the request has been processed, for example). The response would contain information that AFX can use to determine if the request was successfully processed or if an error was encountered.
WorkaroundA workaround is to modify the afx-config.properties file and restart AFX.
  1. Modify the <afx-user>/mule/lib/user/afx-config.properties callback port information from:

Change to:

afx.async.callback.port=<unused port>

  1. Restart AFX:
$ afx restart

WARNING: The proper solution is to permanently free up port 8089 for AFX's sole use. Modifying the afx-config.properties file is only a temporary solution as it will be overwritten every time a patch is applied or the system is upgraded.
NotesDownload documentation from: