企业 Bean 计数器
使用此页面作为企业 Bean 计数器属性的参考。
计数器定义
| 名称 | 键 | EJB 类型 | 标识 | 描述 | 类型 | 级别 | 开销 | 故障诊断 |
|---|---|---|---|---|---|---|---|---|
| CreateCount | beanModule.creates | 无状态、有状态、实体和 MDB | 1 | 创建 Bean 的次数。 | CountStatistic | Basic | 低 | 无状态和 MDB:当此值高于预期值时,请参考 FreedCount 和 DiscardCount。 |
| RemoveCount | beanModule.removes | 无状态、有状态、实体和 MDB | 2 | 除去 Bean 的次数。 | CountStatistic | Basic | 低 | 无。 |
| ActivateCount | beanModule.activates | 有状态和实体 | 3 | 激活 Bean 的次数。 | CountStatistic | 全部 | 低 | 有状态:当此值高于预期值并且未使用故障转移时,请考虑将激活策略更改为 ONCE。 实体:当此值高于预期值并且使用选项 A 或 B 进行高速缓存时,容器高速缓存可能太小。 |
| PassivateCount | beanModule.passivates | Entity | 4 | 钝化 Bean 的次数。 | CountStatistic | Basic | 低 | 无。 |
| InstantiateCount | beanModule.instantiates | 有状态和实体 | 5 | 实例化 bean 对象的次数。 | CountStatistic | 全部 | 低 | 无。 |
| FreedCount | beanModule.destroys | 有状态和实体 | 6 | 释放 bean 对象的次数。 | CountStatistic | 全部 | 低 | 无。 |
| LoadCount | beanModule.loads | Entity | 7 | 从持久存储器装入 Bean 数据的次数。 | CountStatistic | 全部 | 低 | 无。 |
| StoreCount | beanModule.stores | Entity | 8 | Bean 数据存储到持久存储器的次数。 | CountStatistic | 全部 | 低 | 如果此值高于预期值,请考虑使用只读设置。 |
| ReadyCount | beanModule.readyCount | Entity | 9 | 处于就绪状态的 bean 实例的个数。 | RangeStatistic | Basic | 高 | 无。 |
| LiveCount | beanModule.concurrentLives | 无状态、有状态、独立、实体和 MDB | 10 | 并发存活的 bean 的平均数。 | RangeStatistic | 扩展的 | 高 | 无状态和 MDB:如果此值始终高于池大小,请考虑增加池大小。 有状态:如果此值高于预期值,那么应用程序可能缺少对 remove 方法的调用。 |
| MethodCallCount | beanModule.totalMethodCalls | 无状态、有状态、独立、实体和 MDB | 11 | 对 bean 的业务方法的调用数。 | CountStatistic | Basic | 高 | 无。 |
| MethodResponseTime | beanModule.avgMethodRt | 无状态、有状态、独立、实体和 MDB | 12 | bean 的业务方法的平均响应时间(以毫秒计)。 | AverageStatistic | Basic | 高 | 无。 |
| CreateTime | beanModule.avgCreateTime | 无状态、有状态、实体和 MDB | 14 | 实例化和 PostConstruct 的平均时间(以毫秒计) | AverageStatistic TimeStatistic | 全部 | 最大数目 | 无。 |
| RemoveTime | beanModule.avgRemoveTime | 无状态、有状态、实体和 MDB | 15 | PreDestroy 的平均时间(以毫秒计),其中包括在数据库中的时间(如果有的话)。 | AverageStatistic TimeStatistic | 全部 | 最大数目 | 无。 |
| ActiveMethodCount | beanModule.activeMethods | 无状态、有状态、独立、实体和 MDB | 18 | 同时处于活动状态的方法数(即,同时调用的方法数)。 | RangeStatistic | 全部 | 高 | 无。 |
| RetrieveFromPoolCount | beanModule.getsFromPool | 无状态、实体和 MDB | 19 | 从池中检索对象的调用数。 | CountStatistic | 全部 | 低 | 无。 |
| RetrieveFromPoolSuccessCount | beanModule.getsFound | 无状态、实体和 MDB | 20 | 找到池中可用对象的检索次数。 | CountStatistic | 全部 | 低 | 如果此值远小于 RetrieveFromPoolCount,请考虑增大池大小。 |
| ReturnsToPoolCount | beanModule.returnsToPool | 无状态、实体和 MDB | 21 | 将对象返回到池的调用次数。 | CountStatistic | 扩展的 | 低 | 无。 |
| ReturnsDiscardCount | beanModule.returnsDiscarded | 无状态、实体和 MDB | 22 | 由于池已满而放弃正在返回的对象的次数。 | CountStatistic | 扩展的 | 低 | 如果此值大于预期值,请考虑增加池大小。 |
| DrainsFromPoolCount | beanModule.drainsFromPool | 无状态、实体和 MDB | 23 | 守护程序发现池处于空闲状态并尝试清除它的次数。 | CountStatistic | 全部 | 低 | 无。 |
| DrainSize | beanModule.avgDrainSize | 无状态、实体和 MDB | 24 | 每次排空所废弃的对象的平均数。 | AverageStatistic | 全部 | 中 | 无。 |
| PooledCount | beanModule.poolSize | 实体和 MDB | 25 | 当前在池中的对象数。 | RangeStatistic | Basic | 高 | 无。 |
| MessageCount | beanModule.messageCount | MDB | 26 | 传递到 bean 的 onMessage 方法的消息数。 | CountStatistic | Basic | 低 | 无。 |
| MessageBackoutCount | beanModule.messageBackoutCount | MDB | 27 | 未能传递到 bean 的 onMessage 方法的回退消息数。 | CountStatistic | 全部 | 低 | 无。 |
| WaitTime | beanModule.avgSrvSessionWaitTime | MDB | 28 | 从池中获得服务器会话所需的平均时间(以毫秒计)。 | AverageStatistic TimeStatistic | 全部 | 中 | 无。 |
| ServerSessionPoolUsage | beanModule.serverSessionUsage | MDB | 29 | 正在使用的服务器会话池的百分比。 | RangeStatistic | 全部 | 高 | 无。 |
| ActivationTime | beanModule.activationTime | 有状态和实体 | 30 | 激活 bean 对象的平均时间(以毫秒为单位)。 | AverageStatistic TimeStatistic | 全部 | 中 | 无。 |
| PassivationTime | beanModule.passivationTime | 有状态和实体 | 31 | 钝化 bean 对象的平均时间(以毫秒计)。 | AverageStatistic TimeStatistic | 全部 | 中 | 无。 |
| LoadTime | beanModule.loadTime | Entity | 32 | 从持久存储器装入 bean 数据的平均时间(以毫秒为单位)。 | AverageStatistic TimeStatistic | 全部 | 中 | 无。 |
| StoreTime | beanModule.storeTime | Entity | 33 | 将 bean 数据存储到持久存储器的平均时间(以毫秒为单位)。 | AverageStatistic TimeStatistic | 全部 | 中 | 无。 |
| PassivationCount | beanModule.passivationCount | 有状态 | 34 | 处于钝化状态的 Bean 的个数。 | RangeStatistic | Basic | 低 | 有状态:当此值高于预期值并且未使用故障转移时,请考虑将激活策略更改为 ONCE。 |
| ReadyCount | beanModule.methodReadyCount | 无状态和有状态 | 35 | 处于就绪状态的 bean 实例的个数。 | RangeStatistic | Basic | 高 | 当此值小于预期值时,请考虑增大池大小。 |
| ReadLockTime | beanModule.readLockTime | 单体 | 36 | 调用 Singleton 方法前线程等待读锁定的平均时间(以毫秒计)。 | TimeStatistic | Basic | 中 | 对于所有独立方法,WRITE 是缺省的容器管理的并行定界。 如果此值高于预期值,请确保将所有方法都更改为 READ 并行(除非需要 WRITE 并行)。 |
| WriteLockTime | beanModule.writeLockTime | 单体 | 37 | 调用 Singleton 方法前线程等待写锁定的平均时间(以毫秒计)。 | TimeStatistic | Basic | 中 | 对于所有独立方法,WRITE 是缺省的容器管理的并行定界。 如果此值高于预期值,请确保将所有方法都更改为 READ 并行(除非需要 WRITE 并行)。 |
| LockCancelCount | beanModule.LockCancelCount | 单体 | 38 | 由于超过指定访问超时值而取消的 Singleton 方法调用总数。 | CountStatistic | Basic | 低 | 如果此值高于预期值,请增加此独立类型的访问超时值,或者更改独立方法的设计以减小 ReadLockTime 和 WriteLockTime 值。 |
| AsyncWaitTime | beanModule.asyncWaitTime | 无状态、有状态和独立 | 39 | 异步方法在运行之前在工作管理器队列中等待的平均时间。 | TimeStatistic | Basic | 高 | 如果此值高于预期值,请增加工作管理器中的最大线程数。 |
| AsyncQSize | beanModule.asyncQSize | 无状态、有状态和独立 | 40 | 用于异步方法的工作管理器队列的平均大小。 | RangeStatistic | Basic | 高 | 如果此值高于预期值,请增加工作管理器中的最大线程数。 |
| AsyncCancelCount | beanModule.asyncCancelCount | 无状态、有状态和独立 | 41 | 取消了激活并返回了结果的异步方法数。 | CountStatistic | Basic | 低 | 如果此值高于预期值,请查看应用程序设计以及系统日志和错误日志,以确定导致取消方法的原因。 |
| AsyncFNFFailCount | beanModule.asyncFNFFailCount | 无状态、有状态和独立 | 42 | 已失败的射后不理异步方法数。 | CountStatistic | Basic | 低 | 请查看系统日志和错误日志以确定方法失败的原因。 |
| AsyncFutureObjectCount | beanModule.asyncFutureObjectCount | 无状态、有状态和独立 | 43 | 从已激活并返回了结果的异步方法返回的服务器端 Future 对象数。 将仅收集异步远程业务接口方法的此统计信息。 | CountStatistic | Basic | 高 | 查看您的应用程序,以确保跟踪所有客户端 Future 对象并调用 Future.get() 方法,同时还释放与 Future 对象相关联的所有资源。 或者,减小 EJBAsync 配置对象的 futureTime 属性。 缺省值:86400(24 个小时)。 |
| DiscardCount | beanModule.discards | 无状态、有状态、独立、实体和 MDB | 44 | 已废弃的 Bean 实例数。 | CountStatistic | Basic | 低 | 请查看系统日志和错误日志以确定废弃 Bean 实例的原因。 |
| MethodCalls | beanModule.methods.methodCalls | 无状态、有状态、独立和 MDB | 51 | 调用的方法数。 | CountStatistic | Basic | 高 | 无。 |
| MethodRt | beanModule.methods.methodRt | 无状态、有状态、独立和 MDB | 52 | 平均方法响应时间(以毫秒计)。 对于独立 bean,此时间不包括等待锁定时耗用的任何时间。 | AverageStatistic TimeStatistic | 全部 | 最大值 | 无。 |
| MethodLoad | beanModule.methods.methodLoad | 无状态、有状态、独立和 MDB | 53 | 调用同一方法的并发调用数。 | RangeStatistic | 全部 | 最大值 | 无。 |
| MethodLevelCallCount | beanModule.methodLevelCallCount | 无状态、有状态、独立和 MDB | 54 | 由 WebSphere® Application Server 对企业 Bean 进行的方法调用数。 对于消息驱动的 bean,这是尝试将消息传递到 bean 的 bean onMessage 方法的次数。 | CountStatistic | Basic | 低 | 无。 |
除非另有指定,否则 EJB 主对象是计数器的作用域。 下表列出了计数器的其他可能作用域以及具有该作用域的计数器的列表:
| EJB 作用域 | 计数器 |
|---|---|
| EJB 主对象和池对象 | RetrieveFromPoolCount RetrieveFromPoolSuccessCount ReturnsToPoolCount ReturnsDiscardCount DrainsFromPoolCount DrainSize PooledCount |
| EJB bean 类型 | MessageCount MessageBackoutCount WaitTime ServerSessionPoolUsage PassivationCount ReadyCount AsyncWaitTime AsyncQSize AsyncCancelCount AsyncFNFFailCount AsyncFutureObjectCount DiscardCount MethodCalls MethodRt MethodLoad MethodLevelCallCount |
可以使用
java.management.j2ee.statistics API 来检索某些计数器。 下表列出了可用的计数器、Bean 类型和 API。
| 计数器 | bean 类型 | java.management.j2ee.statistics API |
|---|---|---|
| CreateCount | 全部 | EJBStats.getCreateCount() |
| RemoveCount | 全部 | EJBStats.getRemoveCount() |
| ReadyCount | Entity | EntityBeanStats.getReadyCount() |
| PooledCount | Entity | EntityBeanStats.getPooledCount() |
| MessageCount | MDB | MessageDrivenBeanStats.getMessageCount() |
| PassiveCount | 有状态 | StatefulSessionBBeanStats.getPassiveCount() |
| MethodReadyCount | 全部 | SessionBeanStats.getMethodReadyCount() |