We're running SmartTarget 2011 SP2, but not yet in production. We've had ST running in QV on RHEL 6 for weeks but now seeing the following error:

Running the 'bin/jexec -jdk -version' command fails with the following error:

sdlqvunx@hostname:/home/sdlqvunx/fredhopper/live/FAS$ bin/jexec -jdk -version

java.net.BindException: Cannot assign requested address

    at java.net.PlainSocketImpl.socketBind(Native Method)

    at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:365)

    at java.net.ServerSocket.bind(ServerSocket.java:319)

    at java.net.ServerSocket.<init>(ServerSocket.java:185)

    at com.fredhopper.launch.LaunchJava.configureAgent(LaunchJava.java:612)

    at com.fredhopper.launch.LaunchJava.main(LaunchJava.java:636)

ERROR: Cannot prepare self-destruction agent

java version "1.6.0_17"

Java(TM) SE Runtime Environment (build 1.6.0_17-b04)

Java HotSpot(TM) 64-Bit Server VM (build 14.3-b01, mixed mode)

This just happened recently, a reboot of server didn't solve the problem. qserver fails to start and the startloader.log file contains the same error. Anyone know what port number the com.fredhopper.launch.LaunchJava.configureAgent method is trying to bind to?

I've also posted this query over at the Fredhopper Knowledge base: https://www.fredhopper.com/learningcenter/display/fhforums/jexec+script+fails+with+BindException

3 Answers 3


It turns out that our SmartTarget servers in our QV environment were recently assigned new IP addresses, but the /etc/hosts file was not updated to reflect this, causing the BindException. It had nothing to do with ports in use at all.


To add to Peter's answer, you can find a list of all used ports in the Fredhopper Knowledge Base: https://www.fredhopper.com/learningcenter/x/hwBy (Login required)


The ports used by the qserver depend on which instance you are running. There's a known issue where instance 1 will use the same port as the Cache Channel Service (1099). Perhaps someone recently installed the CCS?

If so, you might need to change Fredhopper to start instance 2 instead of 1 - which will use different ports. You can do this by adding "-I 2" to the command line when starting the qserver. Don't forget to update your SmartTarget configuration file too with the new URL (the qserver will run on 9180 instead of 8180).

You may also be able to change the port(s) of the CCS, but I'm not entirely sure how you do that.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.