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?