当前位置: 首页 > 知识库问答 >
问题:

作为JMS使用者的WSO2 ESB 4.8.1超时

高吉星
2023-03-14

我有一个在这里描述的代理

代理的传输是JMS。代理从jms提供消息,然后通过HTTP将消息发送到后端。在后端应答之后,代理将一个应答发送回JMS。

一切正常。

有时后端处理一条消息的时间超过30秒。在这种情况下,代理无法发回响应。

WSO2Carbon.log包含

当处理一条消息的时间超过30秒时,为什么会发生这种情况?如何扩大超时时间?

共有1个答案

曾皓
2023-03-14

我在GitHub中找到了类JMSSender。显然,我应该定义一个属性jms_wait_reply。我在发送端的endpoint中定义了它。扩展了临时队列的响应超时。以下是我的发送endpoint:

<endpoint xmlns="http://ws.apache.org/ns/synapse" name="xgate">
   <address uri="jms:/....">
      <suspendOnFailure>
         <progressionFactor>1.0</progressionFactor>
      </suspendOnFailure>
      <markForSuspension>
         <retriesBeforeSuspension>0</retriesBeforeSuspension>
         <retryDelay>0</retryDelay>
      </markForSuspension>
      <timeout>
         <duration>60000</duration>
         <responseAction>fault</responseAction>
      </timeout>
   </address>
   <property name="CHARACTER_SET_ENCODING" value="Windows-1251" scope="axis2"/>
   <property name="CONNECTION_TIMEOUT" value="120000" scope="default"/>
   <property name="messageType" value="application/xml" scope="axis2"/>
   <property name="JMS_WAIT_REPLY" value="60000" scope="axis2"/>
   <property name="SO_TIMEOUT" value="120000" scope="default"/>
</endpoint>
 类似资料:
  • 我试图将WSO2配置为使用来自ActiveMQ的消息,并在处理过程中引发错误时requeue(通常是当对远程web服务的调用失败时)。 Activemq在Axis2.xml中配置,属性transport.jms.SessionTransact设置为true。 当远程URL的格式无效(例如使用错误的协议)时,JMS回滚/重新传递/[重定向到死信]特性可以正常工作。但是,如果我停止远程web服务器,或

  • 否定确认的行为是将接收消息的可见性超时更改为0。其中,在为JMS创建SQS工厂时,NACK_TIMEOUT的值是不可配置的。 https://github.com/awslabs/amazon-sqs-java-messaging-lib/blob/master/src/main/java/com/amazon/sqs/javamessaging/acknowledge/NegativeAckno

  • 在JMS 1.x中,客户端ID用于在创建持久订阅时唯一标识客户端。这个答案解释了JMS 1.x中clientId的用法 对于JMS 2. x,clientId是可选的。我想了解在JMS 2. x中提供clientId的利弊。 摘自甲骨文中一篇关于 JMS 2.x 功能的文章: 共享持久订阅。这些仅在JMS 2.0中可用,并使用创建。它们可以有任意数量的消费者。设置客户端标识符是可选的。订阅由订阅名

  • 问题内容: 我有一个带有HornetQ的JBoss-6服务器和一个队列: 有一个不同的消费者(在不同的机器)连接到这个队列中,但只有一个 单一的 消费者是活动的时间。如果我关闭此使用者,则消息将立即由其他使用者之一处理。 由于我的消息需要一些耗时的处理,因此我希望多个使用者同时处理其唯一消息。 我记得在早期版本的JBoss中也有类似的情况,该设置可以正常工作。在Jboss-6中,消息传递系统运行良

  • JMS队列有2个消费者,同步和异步Java应用程序进程等待响应。1)同步应用程序发送请求,并根据JMS相关ID等待响应60秒。2)异步线程将不断侦听同一队列。

  • 我试图在Wildfly(版本24)和远程ActiveMQ Artemis代理中实现简单的JMS生产者和消费者。 独立的。xml 生产者和消费者 Misc:只有制片人才能工作。 结果:代理收到第一条消息,但没有执行消费,也没有发生任何事情(没有日志)。