Lately, I was playing around with IBM WebSphere 8.5 installation and encountered the following error. 

[7/1/13 0:21:33:113 SGT] 00000001 P2PBase E   ODCF8005E: There was an unexpected exception while initializing the SON overlay; the exception is java.io.IOException:
The P2P layer was unable to bind to a UDP port.
at com.ibm.son.mesh.RawUDPImpl.<init>(RawUDPImpl.java:89)
at com.ibm.son.mesh.UDPFactory.getUDP(UDPFactory.java:31)
at com.ibm.son.mesh.Peer.<init>(Peer.java:468)
at com.ibm.son.mesh.Peer.<init>(Peer.java:411)
at com.ibm.ws.p2p.P2POverlayHelper.getPeer(P2POverlayHelper.java:147)
at com.ibm.ws.p2p.P2PBase.getPeer(P2PBase.java:31)
at com.ibm.ws.bbson.BBFactoryImpl.<init>(BBFactoryImpl.java:632)
at java.lang.J9VMInternals.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1564)

Are you experiencing the same issue?

This issue happens when OVERLAY_TCP_LISTENER_ADDRESS is conflict or doesn’t exist.

You can fix this by verifying and ensuring it exists without conflict.

  • Start DMGR
  • Stop if any JVM’s running under problematic node
  • Stop Nodeagent
  • Login into Admin Console and navigate to

System Administration >> nodeagents >> nodeagent >> ports

Do you see OVERLAY_TCP_LISTENER_ADDRESS and OVERLAY_UDP_LISTENER_ADDRESS here?

Make a note of a port number of these if you see.

If you don’t see, create them by following instructions:

For UDP:

  • Click on New
  • Check user-defined port
  • Port name – OVERLAY_UDP_LISTENER_ADDRESS
  • Host name – localhost
  • Port – 21001 (give any unused port number on server)

For TCP:

  • Click on New
  • Check user-defined port
  • Port name – OVERLAY_TCP_LISTENER_ADDRESS
  • Host name – localhost
  • Port – 21002 (give any unused port number on server)

Next, let’s verify port number between nodeagent and problematic JVM

Go to Servers >> server types >> Websphere application servers >> server01 >> ports

Do you see OVERLAY_TCP_LISTENER_ADDRESS and OVERLAY_UDP_LISTENER_ADDRESS here?

If yes verify to ensure it doesn’t conflict with your nodeagent port. If you don’t see them, then create new port by following instructions.

UDP:

  • Click on New
  • Check user-defined port
  • Port name – OVERLAY_UDP_LISTENER_ADDRESS
  • Host name – localhost
  • Port – 21003 (give any unused port number on server)

TCP:

  • Click on New
  • Check user-defined port
  • Port name – OVERLAY_TCP_LISTENER_ADDRESS
  • Host name – localhost
  • Port – 21004 (provide any remaining port number on server)

Save the configuration and Sync the node

./syncNode.sh localhost <soap port number>

Start the nodeagent and JVM

Did it help?