5.3. Runtime bean 部署信息
运行时元数据可从 bean 部署中获得,以便您可以监控 Bean 的性能。
运行时元数据可用于以下 Bean 类型:
- 有状态会话 Bean
- 无状态会话 Bean
- 单例 bean
- 消息驱动的 Bean
Bean 应用将元数据作为代码或部署描述符中的注释包含在内。应用可以同时使用这两个选项。有关可用运行时数据的详情,请查看 JBoss EAP 管理模型中的 ejb3 子系统。
其他资源
-
有关可用运行时数据的更多信息,请参见 JBoss EAP 管理模型 中的
ejb3子系统。
5.3.1. 用于从 Jakarta Enterprise Beans 检索运行时数据的命令行选项
通过管理 CLI 提供了 Jakarta Enterprise Beans 的运行时数据,以便您评估 Jakarta 企业 Bean 的性能。
用于获取所有类型的 Bean 的运行时数据的命令使用以下模式:
/deployment=<deployment_name>/subsystem=ejb3/<bean_type>=<bean_name>:read-resource(include-runtime)
将 <deployment_name> 替换为检索运行时数据的部署 .jar 文件的名称。将 <bean_type> 替换为检索运行时数据的 bean 类型。以下选项对这个占位符有效:
-
stateless-session-bean -
stateful-session-bean -
singleton-bean -
message-driven-bean
将 <bean_name> 替换为您要检索运行时数据的 bean 的名称。
系统将结果提供给 stdout,格式为 JavaScript 对象表示法(JSON)数据。
获取名为 ejb-management.jar的文件中的名为 ManagedSingletonBean 的单例的运行时数据示例
/deployment=ejb-management.jar/subsystem=ejb3/singleton-bean=ManagedSingletonBean:read-resource(include-runtime)
单例 bean 的输出运行时数据示例
{
"outcome" => "success",
"result" => {
"async-methods" => ["void async(int, int)"],
"business-local" => ["sample.ManagedSingletonBean"],
"business-remote" => ["sample.BusinessInterface"],
"component-class-name" => "sample.ManagedSingletonBean",
"concurrency-management-type" => undefined,
"declared-roles" => [
"Role3",
"Role2",
"Role1"
],
"depends-on" => undefined,
"execution-time" => 156L,
"init-on-startup" => false,
"invocations" => 3L,
"jndi-names" => [
"java:module/ManagedSingletonBean!sample.ManagedSingletonBean",
"java:global/ejb-management/ManagedSingletonBean!sample.ManagedSingletonBean",
"java:app/ejb-management/ManagedSingletonBean!sample.ManagedSingletonBean",
"java:app/ejb-management/ManagedSingletonBean!sample.BusinessInterface",
"java:global/ejb-management/ManagedSingletonBean!sample.BusinessInterface",
"java:module/ManagedSingletonBean!sample.BusinessInterface"
],
"methods" => {"doIt" => {
"execution-time" => 156L,
"invocations" => 3L,
"wait-time" => 0L
}},
"peak-concurrent-invocations" => 1L,
"run-as-role" => "Role3",
"security-domain" => "other",
"timeout-method" => "public void sample.ManagedSingletonBean.timeout(javax.ejb.Timer)",
"timers" => [{
"time-remaining" => 4304279L,
"next-timeout" => 1577768415000L,
"calendar-timer" => true,
"persistent" => false,
"info" => "timer1",
"schedule" => {
"year" => "*",
"month" => "*",
"day-of-month" => "*",
"day-of-week" => "*",
"hour" => "0",
"minute" => "0",
"second" => "15",
"timezone" => undefined,
"start" => undefined,
"end" => undefined
}
}],
"transaction-type" => "CONTAINER",
"wait-time" => 0L,
"service" => {"timer-service" => undefined}
}
}
检索名为 ejb-management.jar的文件中部署的名为 NoTimerMDB 的消息的运行时数据示例
/deployment=ejb-management.jar/subsystem=ejb3/message-driven-bean=NoTimerMDB:read-resource(include-runtime)
消息驱动的 Bean 的输出示例
{
"outcome" => "success",
"result" => {
"activation-config" => [
("destination" => "java:/queue/NoTimerMDB-queue"),
("destinationType" => "javax.jms.Queue"),
("acknowledgeMode" => "Auto-acknowledge")
],
"component-class-name" => "sample.NoTimerMDB",
"declared-roles" => [
"Role3",
"Role2",
"Role1"
],
"delivery-active" => true,
"execution-time" => 0L,
"invocations" => 0L,
"message-destination-link" => "queue/NoTimerMDB-queue",
"message-destination-type" => "javax.jms.Queue",
"messaging-type" => "javax.jms.MessageListener",
"methods" => {},
"peak-concurrent-invocations" => 0L,
"pool-available-count" => 16,
"pool-create-count" => 0,
"pool-current-size" => 0,
"pool-max-size" => 16,
"pool-name" => "mdb-strict-max-pool",
"pool-remove-count" => 0,
"run-as-role" => "Role3",
"security-domain" => "other",
"timeout-method" => undefined,
"timers" => [],
"transaction-type" => "CONTAINER",
"wait-time" => 0L,
"service" => undefined
}
}