All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jmxtrans.agent.DynamicallyAgentAttacher Maven / Gradle / Ivy

There is a newer version: 1.2.11
Show newest version
package org.jmxtrans.agent;

import com.sun.tools.attach.VirtualMachine;
import org.jmxtrans.agent.util.logging.Logger;

public class DynamicallyAgentAttacher {
    private static Logger logger = Logger.getLogger(DynamicallyAgentAttacher.class.getName());

    private DynamicallyAgentAttacher(){}
    
    public static void main(String[] args) {
        if(args.length != 3) {
            printUsage();
            System.exit(1);
        }

        String agentJarPath = args[0];
        String targetJvmPid = args[1];
        String configurationFile = args[2];
        logger.info("Dynamically loading jmxtrans-agent");
        logger.info("Agent path: " + agentJarPath);
        logger.info("Target JVM PID: " + targetJvmPid);
        logger.info("XML configuration file: " + configurationFile);

        try {
            VirtualMachine vm = VirtualMachine.attach(targetJvmPid);
            vm.loadAgent(agentJarPath, configurationFile);
            vm.detach();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private static void printUsage() {
        System.err.println("Usage: java -jar jmxtrans-agent.jar   " +
                "");
        System.err.println("Dynamically attaches jmxtrans-agent to a running JVM");
        System.err.println("");
        System.err.println("Mandatory arguments:");
        System.err.println(" agent-absolute-path      Absolute path to jmxtrans-agent JAR file");
        System.err.println(" target-jvm-pid           Target JVM PID on which the agent will be attached");
        System.err.println(" xml-configuration-file   Absolute path to agent XML configuration file");
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy