java - jboss 上的作业超时

标签 java jboss

我正在使用 java 1.6 运行 jboss AS 4.2,我的问题如下: 我们的应用程序作为包含一些 servlet 的耳朵和 war 进行分发。 这些 servlet 调用所需的 EJB,这些 EJB 会进行一些处理,然后返回结果。

我正在寻找一种方法来确定超时,以防处理花费太多时间,它只会返回并结束处理(处理涉及多个 EJB)。

我可以使用 ThreadLocal 并添加一些代码,这些代码将在每个方法的开头检查是否超过了时间 - 但是是否有其他一些我可以使用的机制,而无需将此类代码添加到我的应用程序中?

任何想法/引用都会很好。

最佳答案

可能有不同的方法,但根据您的要求,我首先想到的是拦截器。

这样您就可以拦截所有有问题的(可能是长时间调用)并在超出时间时抛出异常。

是的,threadlocal 可以完成保持开始时间的工作(如果您不使用异步无状态 session bean 调用)。

要了解拦截器的功能,请参阅:http://www.adam-bien.com/roller/abien/entry/interceptors_ejb_3_for_absolute

此解决方案的主要优点是,您可以将超时功能(在拦截器中)与业务逻辑(在 EJB 中)明确分离。

关于java - jboss 上的作业超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14342243/

相关文章:

java - JBoss 5 截断 base64 cookie 字符串的尾随 =

java - 对于 HornetQ 有效 "protocols"

java - 如何在添加新行后自动对 JTable 进行排序?

java - 读写对象链表

java - 自定义 JOptionPane 覆盖 YES_NO_CANCEL 按钮时获取 "Cancel"操作

java - Drools 5.1.1 意外的累积和收集行为

java - Jboss AS中数据库连接关闭

java - 多线程 JNI 调用

java - java中的多线程持久队列

Java 类重新加载