We are facing this issue when using java agent :
The 1st java instance launched starts the Command Center Controller (apmccctrl) on 5194. If user starts other java instances, they will connect on this controller. But if user stops his 1st instance, every body is cut from acc.
Example : I start a tomcat instance, acc controller is linked :
16615 1 33 14:37 pts/0 00:00:22 /openjdk_11.0.3/bin/java -Djava.util.logging.config.file=/tom90/instances/Hello_as/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -javaagent:/apm_agent_for_tomcat/wily/Agent.jar -Dinstance=Hello_as -Xms256M -Xmx256M -Dcom.wily.introscope.agent.agentName=Hello_as -Dfile.encoding=UTF-8 -Dintroscope.agent.acc.controller.configurationServer.url=http://cloudproxy-pp.mydomain.com:8081 -DagentManager.url.1=ws://cloudproxy-pp.mydomain.com:8081 -Dcom.wily.introscope.agentProfile=/apm_agent_for_tomcat/wily/releases/21.4/core/config/IntroscopeAgent.profile -Dignore.endorsed.dirs= -classpath /tom90/apache-tomcat-9.0.43/bin/bootstrap.jar:/tom90/apache-tomcat-9.0.43/bin/tomcat-juli.jar -Dcatalina.base=/tom90/instances/Hello_as -Dcatalina.home=/tom90/apache-tomcat-9.0.43 -Djava.io.tmpdir=/tom90/instances/Hello_as/temp org.apache.catalina.startup.Bootstrap start
16707 16615 22 14:37 pts/0 00:00:12 /opt/openjdk_11.0.3/bin/java -Xmx64m -Djdk.http.auth.tunneling.disabledSchemes= -Dlogging.config=classpath:config/logback-console-less.xml -classpath lib/acc-controller.jar:/apm_agent_for_tomcat/wily/releases/21.4/Agent.jar org.springframework.boot.loader.JarLauncher --spring.config.location=file:config/apmccctrl.properties
On this controller I have a Websphere instance connected :
32333 3587 7 Jun03 ? 22:38:20 /was80/AppServer/java/bin/java -Dwas.launcher.server=cell1:node01:server1 -Dwas.status.socket=33589 -Dosgi.install.area=/was80/AppServer -Dosgi.configuration.area=/was80/profiles/node01/servers/server1/configuration -Djava.awt.headless=true -Dosgi.framework.extensions=com.ibm.cds,com.ibm.ws.eclipse.adaptors -Xshareclasses:name=webspherev85_1.8_64_bundled_%g,nonFatal -Dcom.ibm.xtq.processor.overrideSecureProcessing=true -Xcheck:dump -Djava.security.properties=/was80/AppServer/properties/java.security -Xbootclasspath/p:/was80/AppServer/java/jre/lib/ibmorb.jar -classpath /was80/profiles/node01/properties:/was80/AppServer/properties:/was80/AppServer/lib/startup.jar:/was80/AppServer/lib/bootstrap.jar:/was80/AppServer/lib/lmproxy.jar:/was80/AppServer/lib/urlprotocols.jar:/was80/AppServer/deploytool/itp/batchboot.jar:/was80/AppServer/deploytool/itp/batch2.jar:/was80/AppServer/java/lib/tools.jar -Dibm.websphere.internalClassAccessMode=allow -Xms2048m -Xmx4000m -Xcompressedrefs -Xscmaxaot16M -Xscmx120M -Dws.ext.dirs=/was80/AppServer/java/lib:/was80/profiles/node01/classes:/was80/AppServer/classes:/was80/AppServer/lib:/was80/AppServer/installedChannels:/was80/AppServer/lib/ext:/was80/AppServer/web/help:/was80/AppServer/deploytool/itp/plugins/com.ibm.etools.ejbdeploy/runtime -Dderby.system.home=/was80/AppServer/derby -Dcom.ibm.itp.location=/was80/AppServer/bin -Djava.util.logging.configureByServer=true -Duser.install.root=/was80/profiles/node01 -Djava.ext.dirs=/was80/AppServer/tivoli/tam:/was80/AppServer/java/jre/lib/ext -Djavax.management.builder.initial=com.ibm.ws.management.PlatformMBeanServerBuilder -Dpython.cachedir=/was80/profiles/node01/temp/cachedir -Dwas.install.root=/was80/AppServer -Djava.util.logging.manager=com.ibm.ws.bootstrap.WsLogManager -Dserver.root=/was80/profiles/node01 -Dcom.wily.introscope.agentProfile=/users/user1/apm_agent_for_was/wily/releases/21.4/core/config/IntroscopeAgent.profile -javaagent:/users/user1/apm_agent_for_was/wily/Agent.jar -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -XX:HeapDumpPath=/users/user2/javadump -XX:+HeapDumpOnOutOfMemoryError -Dclient.encoding.override=UTF-8 -Duser.region=FR -Duser.language=fr -Dlog.level.appli=WARN -Dlog.path=/users/user2/log -verbose:gc -Djava.compiler=NONE -Xdebug -Xnoagent -Djava.library.path=/was80/AppServer/lib/native/linux/x86_64/:/was80/AppServer/java/jre/lib/amd64/compressedrefs:/was80/AppServer/java/jre/lib/amd64:/was80/AppServer/bin:/was80/AppServer/nulldllsdir:/usr/lib64:/usr/lib:library_path: -Djava.endorsed.dirs=/was80/AppServer/endorsed_apis:/was80/AppServer/java/jre/lib/endorsed -Djava.security.auth.login.config=/was80/profiles/node01/properties/wsjaas.conf -Djava.security.policy=/was80/profiles/node01/properties/server.policy com.ibm.wsspi.bootstrap.WSPreLauncher -nosplash -application com.ibm.ws.bootstrap.WSLauncher com.ibm.ws.runtime.WsServer /was80/profiles/node01/config cell1 node01 server1
if i stop the tomcat instance, websphere will disconnect acc.
Release : 20.2
Component : Integration with APM
This is expected behaviour.
The agent controller is started as a child process of the agent and so when the agents stops it's children will also stop. (see the pid and ppid 16615 in the above ps output)
The Agent Controller extension when deployed with the java agent is really intended for situations where the agent is on the only one on a system and so no common ACC controller is available.
If you are running multiple java agents on the server a standalone acc controller would be the best approach to take this will then run independently of the agents.
The easiest option to run a standalone controller would be to download an Infrastructure agent form the agent downloads page on the DX APM SaaS portal as by default that is configured with just two components one of which is the agent controller