我有一个日志记录bean,我可以通过拦截器记录数据库调用和bean方法调用的持续时间。
我有一个调用两个@Asynchronous方法的bean。这两个@Asynchronous方法调用数据库并被截获。
当日志记录bean登录时,似乎数据库已经占用了0毫秒,这是不对的。当我使用这个日志bean和所有没有@Asynchronous调用的拦截器时,一切正常。
我正在使用glassfish 3.1.2.2。 doc http://glassfish.java.net/nonav/docs/v3/api/javax/enterprise/context/RequestScoped.html说“请求上下文被销毁:异步观察者通知完成后,”这是否意味着当方法完成时,我的@Asynchronous方法中的日志bean实例被销毁了?我可以用什么来实现我的目标?
答案 0 :(得分:0)
有多个层次:
据推测,您正在使用CDI拦截器,它正在测量EJB容器计划异步工作所需的时间。如果切换到使用EJB拦截器(即使用@Interceptors
注释EJB方法),那么您可以测量执行工作所花费的时间。