- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我在运行应用程序时遇到来自 JBoss EAP 7.1.4 GA 服务器的 concurrent.Timeout 异常。不幸的是,这不是一个永恒的问题。在不同的功能流中不时发生。
异常(exception)是:
javax.ejb.EJBException: java.util.concurrent.TimeoutException: No invocation response received in 30000 milliseconds
Caused by: javax.ejb.EJBException: java.util.concurrent.TimeoutException: No invocation response received in 30000 milliseconds
at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:207)
at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:112)
... 17 common frames omitted
Caused by: java.util.concurrent.TimeoutException: No invocation response received in 30000 milliseconds
at org.jboss.ejb.client.EJBClientInvocationContext.lambda$awaitResponse$3(EJBClientInvocationContext.java:876)
at org.jboss.ejb.client.EJBClientInvocationContext$ThrowableResult.getResult(EJBClientInvocationContext.java:1132)
at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:567)
at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:503)
at org.jboss.ejb.protocol.remote.RemotingEJBClientInterceptor.handleInvocationResult(RemotingEJBClientInterceptor.java:56)
at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:569)
at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:503)
at org.jboss.ejb.client.TransactionPostDiscoveryInterceptor.handleInvocationResult(TransactionPostDiscoveryInterceptor.java:133)
at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:569)
at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:503)
at org.jboss.ejb.client.DiscoveryEJBClientInterceptor.handleInvocationResult(DiscoveryEJBClientInterceptor.java:114)
at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:569)
at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:503)
at org.jboss.ejb.client.NamingEJBClientInterceptor.handleInvocationResult(NamingEJBClientInterceptor.java:78)
at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:569)
at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:503)
在我的 JBoss 配置中使用以下设置:
调用超时 30 秒
事务超时 300 秒(这是 JBoss 中的默认值)
到目前为止的发现:
https://access.redhat.com/solutions/1223983
这个解决方案说要升级JBoss 6.4,但我已经在使用7.1.4版本
JBoss 错误:
https://issues.jboss.org/browse/JBEAP-8553
https://issues.jboss.org/browse/JBEAP-12075
所有错误均已修复,版本低于我使用的 JBoss。
但此外,我注意到超时时会出现此日志:
WARN [com.arjuna.ats.arjuna] (Periodic Recovery) [] Transaction 0:ffffac18bb91:-672b1e8b:5c25eea9:3be85 has 1 heuristic participant(s)!
WARN [com.arjuna.ats.jta] (Periodic Recovery) [] ARJUNA016037: Could not find new XAResource to use for recovering non-serializable XAResource XAResourceRecord < resource:null, txid:< formatId=131077, gtrid_length=29, bqual_length=36, tx_uid=0:ffffac18bb91:-672b1e8b:5c25eea9:3be85, node_name=1, branch_uid=0:ffffac18bb91:-672b1e8b:5c25eea9:3be89, subordinatenodename=null, eis_name=java:jboss/datasources/ix3 >, heuristic: TwoPhaseOutcome.HEURISTIC_HAZARD, product: Microsoft SQL Server/14.00.2002, jndiName: java:jboss/datasources/ix3 com.arjuna.ats.internal.jta.resources.arjunacore.XAResourceRecord@7f64f479 >
WARN [com.arjuna.ats.jta] (Periodic Recovery) [] XAResourceRecord restored heuristic instance: XAResourceRecord < resource:null, txid:< formatId=131077, gtrid_length=29, bqual_length=36, tx_uid=0:ffffac18bb91:-672b1e8b:5c25eea9:3be85, node_name=1, branch_uid=0:ffffac18bb91:-672b1e8b:5c25eea9:3be89, subordinatenodename=null, eis_name=java:jboss/datasources/ix3 >, heuristic: TwoPhaseOutcome.HEURISTIC_HAZARD, product: Microsoft SQL Server/14.00.2002, jndiName: java:jboss/datasources/ix3 com.arjuna.ats.internal.jta.resources.arjunacore.XAResourceRecord@7f64f479 >
WARN [com.arjuna.ats.arjuna] (Periodic Recovery) [] Transaction 0:ffffac18bb91:-672b1e8b:5c25eea9:3be85 restored heuristic participant XAResourceRecord < resource:null, txid:< formatId=131077, gtrid_length=29, bqual_length=36, tx_uid=0:ffffac18bb91:-672b1e8b:5c25eea9:3be85, node_name=1, branch_uid=0:ffffac18bb91:-672b1e8b:5c25eea9:3be89, subordinatenodename=null, eis_name=java:jboss/datasources/ix3 >, heuristic: TwoPhaseOutcome.HEURISTIC_HAZARD, product: Microsoft SQL Server/14.00.2002, jndiName: java:jboss/datasources/ix3 com.arjuna.ats.internal.jta.resources.arjunacore.XAResourceRecord@7f64f479 >
试图做一些研究并找到问题所在,但到目前为止没有运气。
Never ending periodic recovery of heuristic participants
JBoss spamming XA Recovery warnings
请问有这方面经验的 friend 可以给点建议吗?
注意:一些异常的堆栈跟踪不能在这里发布,因为那里有公司相关的代码。对此表示歉意
最佳答案
这个问题已经解决了。这是因为以下原因。
我们的服务器 (VM) 很少因为 Microsoft windows 更新而挂起。最近的更新是2GB,安装的时候挂了。大部分时间 CPU 和内存使用率为 100%,没有分配给其他处理。
另一个原因是我们的集群配置行为不当,因为其中一个集群节点的请求被服务器防火墙阻止了。这是一个配置错误,因为忘记添加防火墙规则。
一旦解决了这两个问题,问题就不会再发生了。
如果有人遇到此类问题,建议在进行深入调查之前验证所有基础架构基础知识。
关于java - 如何解决 Jboss EAP 7.1.4 java.util.concurrent.TimeoutException : No invocation response received in 30000 milliseconds,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54004487/
如果数据是从另一台计算机(首先)“发送”的,我如何设置我的套接字例程以“发送”(首先)或(切换)“接收”? 谢谢 通用代码: -(void) TcpClient{ char buffer[12
我正在尝试在代码中使用 Java 8 方法引用。有四种类型的方法引用可用。 静态方法引用。 实例方法(绑定(bind)接收者)。 实例方法(未绑定(bind)接收者)。 构造函数引用。 使用静态方法引
我正在尝试在我的代码中使用 Java 8 方法引用。有四种类型的方法引用可用。 静态方法引用。 实例方法(绑定(bind)接收器)。 实例方法(UnBound 接收器)。 构造函数引用。 使用静态方法
这个问题在这里已经有了答案: X does not implement Y (... method has a pointer receiver) (4 个答案) 关闭 3 年前。 最近在研究Iri
我把这个问题/错误发布到 GIT 官方 channel ,但没有得到任何回应。希望这里有人可以帮助我。 当 receive.denyCurrentBranch 设置为 updateInstead 并且
我正在开发一个新的监控系统,该系统可以测量 Celery 队列吞吐量并在队列备份时帮助提醒团队。在我的工作过程中,我遇到了一些我不理解的奇怪行为(并且在 Celery 规范中没有详细记录)。 出于测试
我正在开发一个新的监控系统,该系统可以测量 Celery 队列吞吐量并在队列备份时帮助提醒团队。在我的工作过程中,我遇到了一些我不理解的奇怪行为(并且在 Celery 规范中没有详细记录)。 出于测试
这个问题在这里已经有了答案: What does this Google Play APK publish error message mean? (17 个答案) 关闭 3 年前。 我为我的应用程
我正在寻找一种解决方案来从我的 child “药物”中获取数据,并使用 ID 从“medication_plan”节点接收特定数据并将它们显示在 Recyclerview 中。 数据库结构: 目前我正
我正在构建 DNN 来预测对象是否存在于图像中。我的网络有两个隐藏层,最后一层看起来像这样: # Output layer W_fc2 = weight_variable([2048, 1])
我有一个模拟销售漏斗的 WF4 服务。它的工作原理是从“注册”接听电话开始。之后,有 10 个类似的阶段(每个阶段包含 2 个接收)。在当前阶段验证接收到的数据之前,您不能前进到一个阶段。但我不确定的
我有一个用 NSubstitute 伪造的对象,它有一个被调用两次的方法。我想验证该方法实际上已被调用两次(且仅调用两次)。我浏览了文档和谷歌,但没有运气。任何帮助,将不胜感激。谢谢。 最佳答案 NS
我在 Windows 上使用 D 编写了一个套接字服务器,现在我想将它移植到 Linux 上。这是代码摘要: /* * this.rawsocks - SocketSet * this.serve
我有一个在 AndroidManifest.xml 中定义了 Receiver 的应用程序,它似乎随机地被禁用,这导致应用程序强制关闭,直到重新安装应用程序。在发生这种情况之前,应用可能会在一天、一周
我正在尝试使用 android 注释库通过两种方式进行广播接收器,但 ide 无法识别此代码中的 @Receiver 或 @ReceiverAction import android.content.
我正在试验 Android 的 LiveData .我只是试图将大量通知推送给观察 LiveData 对象的观察者。我让一个线程在后台运行,在一个 while 循环中,我不断地通过 LiveData
当我运行以下代码时: [Test] public async Task Can_Test_Update() { var response = await _controller.UpdateA
查看 header 时,似乎第二台接收邮件的服务器直到最终 header 中报告的送达日期之后才转发它。 在 c9mailgw11.amadis.com,报告的时间是 22:47:49 -0800
我在这里搜索了几个问题都没有得到答案,所以我会根据我的具体情况询问。 真正简单的接收后 Hook ,它只是 curl 到 Redmine 以强制 Redmine 在提交时更新 repo 的 View
我目前正在尝试 Elixir。我对 Ruby 或函数式编程的经验很少,所以我不太熟悉语法。我在读Learn Elixir in Y minutes其中一个例子让我有点困惑。起初,指南显示了 case
我是一名优秀的程序员,十分优秀!