I'm trying to get a simple, localhost session of JProfiler up and running. I've created the session, the host is 127.0.0.1, the port is the default 8849, and I've pointed the startup/shutdown commands to my local tomcat installation startup.sh/shutdown.sh. I click OK and I get "Connecting to 127.0.0.1:8849" and after 150 seconds (I modified the timeout) it times out and says:
Could not connect to 127.0.0.1:8849. Please make sure that the remote address is correct, the remote program is started properly, and the network route allows socket connections.
The address can't possibly be wrong, and I've verified (ps -ef|grep tomcat) that the process is up, and also checked the tomcat log and it's waiting for requests:
INFO: Starting Coyote HTTP/1.1 on http-8080
Apr 15, 2011 7:49:13 AM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
Apr 15, 2011 7:49:13 AM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/21 config=null
Apr 15, 2011 7:49:13 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 47312 ms
Is there something else I need to do to open the port? For instance am I supposed to modify the JAVA_OPTS that get passed to tomcat?
Yes. you need something like this (for OS X)
export JAVA_OPTS="-agentlib:jprofilerti=port=8849 \
-Xbootclasspath/a:/Applications/jprofiler5/bin/agent.jar"
export DYLD_LIBRARY_PATH=/Applications/jprofiler5/bin/macos
Usually when you configure a new session through the wizard in JProfiler, it will tell you those exact parameters that you need to put in.
For me this wizard is StartCenter -> New Session , then select "New remote integration". This will then ask local/remote , startup mode, jvm type, profiling port and on page 6 says "Perform required modifications" and it lists those.
Alternatively you can select "Integration wizard" from the menu bar.