-web 应用程序的 javaagent 选项参数

-javaagent option parameter for web application

我正在尝试使用 Instrumentation 来计算 Web 应用程序中多个对象的内存使用量(准确地说是基于请求)。

不幸的是,WebLogic 似乎没有插入 static void premainagentmain.

为了完成这里是 Intrumentation 实例化 class:

public class InstrumentationInstance {
    private static Instrumentation instrumentation;

    public static void premain(String args, Instrumentation ins){
        instrumentation = ins;
    }
    public static void agentmain(String args, Instrumentation ins){
        instrumentation = ins;
    }

    public static Instrumentation instrumentation(){
        return instrumentation;
    }
}

我已经尝试将这些添加到清单中,但 Instrumentation 仍然为空:

Manifest-Version: 1.0
Premain-Class: com.things.monitoring.InstrumentationInstance
Agent-Class: com.things.monitoring.InstrumentationInstance
Class-Path: 

阅读看来此应用程序需要使用 java 选项 -javaagent 启动,以便注意到 premainagentmain 方法。我认为这会在 web.xml/weblogic.xml 文件中完成?但我似乎找不到任何例子或证据表明如何......

您有几个选择:

  • -javaagent 添加到 startWebLogic.sh 脚本的 JAVA_OPTIONS 部分。请注意,这将适用于所有服务器

  • -javaagent 添加到管理控制台中的服务器启动参数。导航到 Servers -> Server Name -> Configuration -> Server Start tab 并编辑 Arguments 部分。您也可以在此处添加其他参数,内存参数、-D 参数等。

这个 link 也很好地涵盖了它。我不认为这是你应该放在你的 weblogic.xml 文件中的东西。