使用消息驱动通道适配器和服务激活器进行事务处理

2024-03-12

我正在开发一个 POC,它执行以下操作

  1. 使用消息驱动的通道适配器来接收事务中的消息
  2. 调用服务激活器,该激活器使用处理程序将从适配器接收到的消息插入到数据库,并将消息发布到出站通道。

现在,如果消息的数据库插入失败,我希望 JMS 消息返回到队列,以便稍后重试。

使用我的以下配置,它似乎不起作用。(即,即使在插入数据库时​​出现故障,消息也会从队列中删除。

任何指针或示例配置都会有所帮助。

<integration:channel id="jmsInChannel">         
    <integration:queue/>
</integration:channel>

<int-jms:message-driven-channel-adapter id="jmsIn"
    transaction-manager="transactionManager"
    connection-factory="sConnectionFactory"
    destination-name="emsQueue"
    acknowledge="client" channel="jmsInChannel"
    extract-payload="false"/>   

<integration:service-activator input-channel="jmsInChannel"
    output-channel="fileNamesChannel" ref="handler" method="process" />

<bean id="handler" class="com.irebalpoc.integration.MessageProcessor">
    <property name="jobHashTable" ref="jobsMapping" />
</bean>

设置acknowledge =“transacted”,并且我认为transactionManager是一个JDBC(或JTA)事务管理器。

您还需要从 JmsInChannel 中删除 ,以便数据库事务发生在同一线程上。

Spring会将数据库事务与JMS事务同步。

然而,读http://www.javaworld.com/javaworld/jw-01-2009/jw-01-spring-transactions.html http://www.javaworld.com/javaworld/jw-01-2009/jw-01-spring-transactions.html的影响。

如果您无法使服务幂等,您可能需要考虑 XA 事务管理器。

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

使用消息驱动通道适配器和服务激活器进行事务处理 的相关文章

  • eclipse sts 4 中没有集成图视图?

    甚至不再有创建 spring bean 配置文件的选项 从 3 9 过渡到 4 的过程中 大量功能消失了 如果是这样的话 似乎他们在 Eclipse 端为 IDE 不可知论牺牲了相当多 Spring Tools 4 不再包含对 Spring
  • JMS 有哪些替代方案? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 通过 C# 将消息放入 Websphere MQ 的数据长度与手动放入相同消息的数据长度不同

    MQMessage queueMessage new MQMessage queueMessage WriteString strInputMsg queueMessage Format MQC MQFMT STRING MQPutMess
  • 如何找出 JMS 主题的所有订阅者都已回复?

    使用HornetQ 在JBoss AS 6 0中 我想设置一个多个客户端可以订阅的JMS主题 生产者定期向该主题发送一条带有回复目的地的消息 所有订阅者都应该回复该消息 我遇到的问题是我不完全确定如何检查所有订阅者是否确实回复了 一种解决方
  • 考虑到每次轮询最大消息数和 Cron,轮询如何用于 FTP 入站通道适配器

    我有 UC 我需要从 ftp 位置选取文件并将其放入服务器位置 我正在使用 ftp inbound channel adapter Spring 集成 2 0 4 来实现它 下面是我的xml中的配置
  • 如何创建检测连接丢失和自动重新连接的 tcp-inbound-gateway?

    我正在尝试配置一组 spring 集成组件来使用来自 TCP 套接字的数据 基本协议是 打开连接后 系统会提示我输入用户名 然后输入密码 然后如果身份验证成功 数据就会在可用时流式传输给我 每 30 秒就会向我发送一条 ping 消息 以便
  • Spring集成MQTT发布订阅多个主题

    我正在尝试构建一个订阅多个 mqtt 主题的应用程序 获取信息 处理它并形成 xml 并在处理时触发一个事件 以便这些可以发送到某个云服务器 并将成功的响应从那里发送回MQTT 通道
  • 如何阻止 Apache CXF 发送响应消息?

    如果给定的 SOAP 标头元素具有给定值 例如 如果标头标记 response 的值为 0 我根本不希望 Apache CXF 返回响应 我怎样才能做到这一点 CXF 似乎假设所有呼叫都会收到响应 我知道这在 Web 服务上下文中看起来很奇
  • Spring Web 连接到嵌入 Jboss 服务器 7.1.1 的 HornetQ JMS

    我正在尝试设置 spring web 以通过以下方式连接到远程 Jboss 7 1 1 HornetQ JMSthis http java dzone com articles connecting spring地点 但我收到以下错误 是否
  • 在 Spring 集成中借助 mongo 入站适配器对数据进行分页

    我正在使用 mongo 入站适配器从 mongo 检索数据 目前我正在使用以下配置
  • 与竞争的消费者顺序处理消息

    Problem 我以特定顺序 FIFO 在队列上接收消息 比如订单 我的队列中有竞争的消费者 为了进一步增加复杂性 消费者可能只对订单的特定版本感兴趣 具体取决于其状态 例如版本 1 版本 2 和版本 5 订单版本号在订单上可用 但不能用于
  • 当查询返回空结果集时使用 jdbc:outbound-gateway 时出现问题

    我注意到以下意外行为 并且可以使用 Spring Integration 示例 basic jdbc 重现它 运行 Spring Integration 示例 basic jdbc 并立即尝试查找不存在的名称 即使用 Spring Inte
  • 如何停止或更改 Spring Integration Poller 的延迟

    我正在使用 Spring Integration 使用以下配置从目录中读取文件 但是 一旦找到任何文件 我希望停止轮询器 直到服务不再重新启动 有什么方法可以在运行时更改轮询器延迟或在运行时启动 停止轮询器 Bean public Mess
  • WebSphere Camel JMS、spring、taskExecutor、haninging 线程

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

    我们目前正在使用 JMS 和 activemq 5 5 1 开发一个应用程序 我们想为某些消息定义更高的优先级 这将使它们首先被消耗 设置生产者和消费者后 通过spring 3 1 JMSTemplate 优先级并不能完全发挥作用 事实上
  • Java和Android之间的交互

    我目前正在尝试研究如何将 Android 与现有的基于 java 的系统一起使用 基本上 我需要与 Android 应用程序进行通信 该系统当前使用 ActiveMQ 作为 JMS 提供程序在计算机之间传递对象数据 其中一台计算机上有一个显
  • 使用 JMS + CCDT 文件连接到 IBM MQ 时出现负载平衡问题

    我们正在尝试使用 CCDT 文件和 JMS 配置连接到 IBMMQ 我们能够连接到它 但这里有一个问题 由于我们使用 spring 使用 CCDT 文件设置连接工厂 因此它在应用程序启动时初始化一次 但不幸的是它一次只选择一个队列管理器 即
  • 当没有更多消息时退出 Spring Integration

    我使用 Spring Integration 4 1 配置从数据库中批量检索消息 而不是作为服务 我知道每天要处理十几条消息 因此我需要每天运行一次批处理 我的 jdbc inbound channel adapter 配置为检索 max
  • 如何在 Spring Integration 流程中访问 Flux?

    我尝试访问 Spring Integration 中的 Flux 对象 而不将流声明拆分为两个函数 我想知道如何执行以下操作 Bean public IntegrationFlow mainFlow return IntegrationFl
  • 具有 ActiveMQ 代理网络的 JMS 消费者

    我在代理集群的 ActiveMQ 网络上有一个 JMS 主题 也称为分布式主题 我有一个外部 JMS 使用者 Weblogic 门户 需要订阅该主题并获取发送给它的所有消息 跨所有代理 如果消费者订阅其中一个代理上的主题 它只会获得代理收到

随机推荐

  • 将所有输出重定向到 Bash 中的文件[重复]

    这个问题在这里已经有答案了 我知道在 Linux 中 要将输出从屏幕重定向到文件 我可以使用 gt or tee 但是 我不确定为什么部分输出仍然输出到屏幕而不写入文件 有没有办法将所有输出重定向到文件 该部分写入stderr 使用2 gt
  • 将有符号的 10 位二进制数转换为十进制数?

    我有 10 位带符号的二进制数 我知道两种 shell bash 方法将它们转换为小数 但符号性无法识别 1111101010 应转换为 22 而不是 1002 echo ibase 2 obase A 1111101010 bc 不起作用
  • 在下拉列表中列出枚举值 php mysql

    我有一个 mysql 表 其中包含以下列 Id Name Sex 性别列的类型为 enum Male Female Unspecified 如何在下拉列表中列出枚举值并使当前存储的值成为所选值 检查此链接 它非常棒 该脚本可重复用于任何枚举
  • jquery UI 自动完成支持是否限制在支持多个值的情况下输入无效值?

    我正在接管一个新网站 它使用的是n 旧的已弃用版本的 jquery 自动完成插件 http bassistance de jquery plugins jquery plugin autocomplete 我正在尝试使用重新创建功能最新的
  • 带有 Python 子进程的 IPC

    我正在尝试在 Python 中执行一些简单的 IPC 如下所示 一个 Python 进程启动另一个进程subprocess 子进程将一些数据发送到管道中 父进程接收它 这是我当前的实现 parent py import pickle imp
  • 用 python 模仿 7zip

    我正在使用 Python 3 6 目前我对 7zip 程序进行子处理以获得我需要的压缩 subprocess call 7z a t7z ms off 0 format filename 我知道 zipfile 类具有 ZIP LZMA 压
  • 使用 PIL 缩放图像并保持透明度和颜色?

    假设您想要缩放透明图像 但还不知道稍后将其合成的背景颜色 不幸的是 PIL 似乎合并了完全透明像素的颜色值 导致了糟糕的结果 有没有办法告诉 PIL resize 忽略完全透明的像素 import PIL Image filename tr
  • RxJ 的空订阅

    有没有空的Subscription在 RxJ 中 在RxJava中 有订阅 empty http reactivex io RxJava javadoc rx subscriptions Subscriptions html empty 一
  • Mac 上的 gdb 7.6 缺少带断言的调用堆栈框架

    当调试断言失败的程序时 我无法在 gdb 中获取调用堆栈 我在 Mavericks 上使用 Homebrew 的 g 4 8 和 gdb usr local bin g 4 8 version g 4 8 GCC 4 8 2 usr loc
  • System.Drawing.Color 操作的扩展方法库

    有没有人为 System Drawing Color 编写过一个不错的扩展方法 库 很高兴地说 Color Red AdjustBrightness 5 Color Red AdjustAlpha 5 Color Red ToHSV 或类似
  • 如何播放 Google 云端硬盘链接中的视频?

    在我的应用程序中 我想播放来自 Google Drive 链接的视频 我尝试过使用VideoPlayerController controller VideoPlayerController network https drive goog
  • 我对 True 和 False 感到困惑。True 值代表非零,False 值代表零吗? [复制]

    这个问题在这里已经有答案了 为什么下面的程序在完成比较操作后给出相反的答案 main int k 35 printf d n d n d k 35 k 50 k lt 40 output 0 50 1 根据 C 标准 该程序不是有效的 C
  • VBA:使用变量传递列数组时删除重复项失败

    The bounty https stackoverflow com help bounty过期4天内 此问题的答案有资格获得 50声誉赏金 L42 users 2685412 l42想要奖励现有答案 一个答案提供了创建解决方法的详细分步过
  • mapstruct 将 id 映射到对象

    我有一个对象学校 它有一个对象人 人已经保存在数据库中 当我保存学校对象时 我给它一个人ID 所以在班级 school 中 我有一个 Person 类型的属性 person 在 SchoolDTO 中 我有一个 Long 类型的属性 per
  • 如何将 FormUrlEncodedContent 用于复杂数据类型?

    我需要与仅接受表单编码有效负载的第三方端点进行交互 端点需要在此端点上使用复杂的数据类型 这意味着类似这样的内容 但形式编码 而不是 JSON foo bar baz zip zap 我的谷歌搜索和端点的文档表明这应该是这样的形式编码 fo
  • pandas DataFrame 中 x 天每个元素的累积乘积

    我尝试计算 a 中的每个元素Dataframe df1累计积超过x天 例如 3 有没有有效的方法来做到这一点 到目前为止 我只知道在行上生成正常的累积乘积 而不将回溯期固定为x days df2 例如 2022 01 02 ID1 1 05
  • 如何在 C# 中获取活动进程名称?

    如何在 C 中获取活动进程名称 我知道我必须使用这段代码 DllImport user32 dll private static extern IntPtr GetForegroundWindow 但我不知道如何使用它 正如中提到的这个答案
  • 是否可以选择 Windows 表单标签上的文本?

    是否可以突出显示 选择 Windows 窗体标签控件中的部分文本 我知道使用 RTFtextbox 控件是可能的 但使用该控件会有点矫枉过正 因为我需要创建许多标签实例 是否可以选择 Windows 表单标签上的文本 否 至少没有简单的方法
  • 如何总结组合列表

    我有一个包含 2 个元素组合的列表 如下所示 cbnl lt list c A B c B A c C D c E D c F G c H I c J K c I H c K J c G F c D C c E C c D E c C E
  • 使用消息驱动通道适配器和服务激活器进行事务处理

    我正在开发一个 POC 它执行以下操作 使用消息驱动的通道适配器来接收事务中的消息 调用服务激活器 该激活器使用处理程序将从适配器接收到的消息插入到数据库 并将消息发布到出站通道 现在 如果消息的数据库插入失败 我希望 JMS 消息返回到队