WebSphere Camel JMS、spring、taskExecutor、haninging 线程

2024-05-23

我正在尝试将 Camel 与 WebSphere 集成。除了一件事之外,它工作得很好。

场景如下: JMS (WMQ) -> 路由/转换 -> BEAN(执行 JPA (OpenJPA1.2/DB2) 提交)。

为了能够插入WAS事务管理器和mangaed线程,我将工作管理器作为taskExecutor插入camel中:

<!-- Selected parts of the spring config -->  
<tx:jta-transaction-manager/>

<bean id="wasTaskExecutor"
  class="org.springframework.scheduling.commonj.WorkManagerTaskExecutor">
  <property name="workManagerName" value="wm/default" />
</bean>

<bean id="camelTransactionRequired" class="org.apache.camel.spring.spi.SpringTransactionPolicy" depends-on="transactionManager">
    <property name="transactionManager" ref="transactionManager"/>
    <property name="propagationBehaviorName" value="PROPAGATION_REQUIRED"/>
</bean>

<bean id="jms" class="org.apache.camel.component.jms.JmsComponent">
  <property name="connectionFactory" ref="connectionFactory"/>
  <property name="taskExecutor" ref="wasTaskExecutor"/>
  <property name="transacted" value="true"/>
  <property name="transactionManager" ref="transactionManager"/>
</bean>  

然后是一条路线,比如:

from("jms:queue:MY.QUEUE")
   .transacted("camelTransactionRequired")
   .log(..)
   .bean(storeJPA);

这个 wasTaskExecutor bean 用于应用程序中的一个独立的 spring 消息侦听器(相同的 jms 提供程序,WMQ)以及预期的行为。

部署/启动时,可以通过这种方式处理一条消息(下面的第一个日志行) - 然后线程开始挂起。

[5/12/12 22:14:55:890 CEST] 00000055 SystemOut O INFO routeFromBackend - 消息从队列拉到消息框

[5/12/12 22:27:00:638 CEST] 00000031 ThreadMonitor W WSVR0605W:线程“默认:1”(0000001e) 已活动 739306 毫秒,可能会挂起。服务器中总共有 1 个线程可能挂起。 在 java.lang.Object.wait(本机方法) 在 java.lang.Object.wait(Object.java:196) 在 com.ibm.ws.util.BoundedBuffer.waitPut_(BoundedBuffer.java:214) 在 com.ibm.ws.util.BoundedBuffer.put(BoundedBuffer.java:324) 在 com.ibm.ws.util.ThreadPool.execute(ThreadPool.java:1296) 在 com.ibm.ws.util.ThreadPool.execute(ThreadPool.java:1100) 在 com.ibm.ws.asynchbeans.WorkItemImpl$PoolExecuteProxy.run(WorkItemImpl.java:198) 在 com.ibm.ws.asynchbeans.WorkItemImpl.executeOnPool(WorkItemImpl.java:219) 在 com.ibm.ws.asynchbeans.WorkManagerImpl.queueWorkItemForDispatch(WorkManagerImpl.java:433) 在 com.ibm.ws.asynchbeans.WorkManagerImpl.schedule(WorkManagerImpl.java:1074) 在 com.ibm.ws.asynchbeans.WorkManagerImpl.schedule(WorkManagerImpl.java:846) 在 org.springframework.scheduling.commonj.WorkManagerTaskExecutor.execute(WorkManagerTaskExecutor.java:154) 在org.springframework.jms.listener.DefaultMessageListenerContainer.doRescheduleTask(DefaultMessageListenerContainer.java:669) 在org.springframework.jms.listener.AbstractJmsListeningContainer.resumePausedTasks(AbstractJmsListeningContainer.java:536) 在 org.springframework.jms.listener.AbstractJmsListeningContainer.doStart(AbstractJmsListeningContainer.java:285) 在 org.springframework.jms.listener.AbstractJmsListeningContainer.start(AbstractJmsListeningContainer.java:263) 在 org.springframework.jms.listener.DefaultMessageListenerContainer.start(DefaultMessageListenerContainer.java:555) 在 org.apache.camel.component.jms.JmsConsumer.startListenerContainer(JmsConsumer.java:84)

有人见过这个吗?


线程“挂起”等待将工作提交到已满的队列,并且工作管理器配置为在队列已满时阻塞而不是抛出错误。要解决“挂起”问题,请增加工作管理器线程池中的线程数,或将队列满操作更改为“错误”而不是“等待”。或者,调查提交给工作经理的工作项目是否由于某种原因花费了太长时间。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WebSphere Camel JMS、spring、taskExecutor、haninging 线程 的相关文章

随机推荐

  • CakePHP 中没有模型的简单表单

    我正在尝试在产品页面中添加请求附加信息的表单 这是一个简单的表格 包含姓名 国家 地区 电子邮件和问题字段 我创立了这个tutorial http snook ca archives cakephp contact form cakephp
  • 在休眠标准中使用总和和算术结果作为顺序键

    我如何在休眠条件中表达这个查询 SELECT anId SUM fieldA AS A SUM fieldB AS B SUM fieldA SUM fieldB AS total FROM tableA GROUP BY anId ORD
  • JavaScript if-else

    尝试执行我的第一个 Javascript if else 操作 基本上我想根据从单选框字段中选择的数字显示 DIV 如果选择选项 3 我希望 div 1 2 和 3 可见 我显然在某个地方出错了 非常感谢您的想法 帮助
  • 将属性反序列化到预先存在的对象中

    是否可以使用任何标准序列化程序来反序列化对象属性 而无需创建新对象 问题是 所讨论的对象非常复杂 它们只能由特殊工厂创建 并且它们的类型是在运行时动态生成的 但它们有一些已知的属性 我想将它们存储在外部文件 最好是 xml 但二进制也可以
  • PHP 删除字符最后一个实例之前的所有内容

    有没有办法删除某个字符之前的所有内容 包括最后一个实例 我有多个字符串 其中包含 gt e g the gt cat gt sat gt on gt the gt mat welcome gt home 我需要对字符串进行格式化 以便它们变
  • 使用 kafka java api 的 Avro 序列化器和反序列化器

    Kafka Avro 序列化器和反序列化器无法工作 我尝试使用 kafka 控制台消费者消费消息 我可以看到发布的消息 public class AvroProducer
  • 具有条件连接和非匿名返回的 LINQ 查询

    我有一个针对 SQL Server 数据库的 LINQ 查询 该查询将每行的数据写入一个对象Person 在某些情况下 我想加入其他表并添加更多字段Person对象 同时利用 LINQ 延迟加载 The Person类看起来像这样 publ
  • 将数据从服务传递到活动

    我有自行运行的服务 服务自动启动 我有活动 在此 Activity 按钮中启动该方法DoIt Button setOnClickListener new OnClickListener public void onClick View v
  • jQuery 和面向对象的 JavaScript - 如何?

    我读了this http www sweetvision com 2009 07 07 how to use object oriented programming with jquery and this http archive plu
  • nuxt v2 和 firebase 函数的部署错误

    当我尝试在 firebase 函数中渲染 nuxt 时 出现 用户代码加载失败 无法确定后端规范 错误 其他功能都可以部署 但是无论模式是SSR还是SPA 只有nuxt功能失败 我查看了日志 没有发现任何有用的信息 当我查看 无法确定后端规
  • React Native FlatList 具有不同列数的替代行

    i want to have a FlatList which renders a single item on odd rows and 2 items on even rows 是否可以实现这种布局 抱歉 我还没有代码 FlatList
  • Azure Runbook 输出到电子邮件

    我正在尝试将 VM 状态的输出从 Azure 自动化 Runbook 发送到电子邮件中 我使用以下代码 function Send EMail Param Parameter Mandatory true String EmailTo Pa
  • 用于新 Windows 游戏项目的 OpenGL 或 Direct3D?或者是其他东西?

    我正在 Windows 上启动一个爱好游戏项目 该项目将大量使用 3D 图形效果 它很可能是用 C 编写的 我应该使用 OpenGL 还是 Direct3D 作为我的图形后端 为什么 或者我应该使用现成的图形引擎 例如OGRE 3D htt
  • numpy.empty 给出非空数组

    当我使用创建一个空的 numpy 数组时foo np empty 1 结果数组包含一个 float64 gt gt gt foo np empty 1 gt gt gt foo array 0 gt gt gt type foo 0
  • 在 Oracle 中使用数据透视表的建议

    我需要一份报告 我应该使用数据透视表 报告将按类别分组 使用 case when 语句不好 因为有很多类别 您可以将 Northwind 数据库视为示例 所有类别将显示为列和报告将显示客户在类别中的偏好 我不知道另一个解决方案 并在互联网上
  • 我们可以使用sql列出MS Access数据库中的所有表吗?

    我们可以使用 sql 找到 ms access 中的所有表吗 就像我们在 sql server 中所做的那样 select from sys tables 在sqlite中 SELECT FROM sqlite master where t
  • 如何在 XML 模式中正确使用 unique 和 keyref?

    我有这个 XML 架构 但我不知道如何完成它以实现我的需要 我在网上搜索了很多有关 unique 和 keyref 用法的信息 但我能找到的只是基本示例 这是我的架构
  • 从 elm 代码提交表单

    我有这个框架集划分 这是我的elm逻辑在里面main html import Html exposing import Html Attributes exposing view Model gt Html Msg view model H
  • CSS 动画延迟和关键帧

    我在 CSS 动画上遇到动画延迟问题 我有 3 张图片 我想将其制作为幻灯片 插图是 图像1到图像2需要15秒改变 图像2到图像3需要15秒改变 图像3回到图像1需要30秒 在第一个循环之后 我想让幻灯片结束于图像3 因此图像1到图像2仍然
  • WebSphere Camel JMS、spring、taskExecutor、haninging 线程

    我正在尝试将 Camel 与 WebSphere 集成 除了一件事之外 它工作得很好 场景如下 JMS WMQ gt 路由 转换 gt BEAN 执行 JPA OpenJPA1 2 DB2 提交 为了能够插入WAS事务管理器和mangaed