我的 sql server 可以在没有任何 java 应用程序的情况下将消息发送到 activemq 服务器吗

Posted

技术标签:

【中文标题】我的 sql server 可以在没有任何 java 应用程序的情况下将消息发送到 activemq 服务器吗【英文标题】:Can my sql server send messages to activemq server without any java app in between 【发布时间】:2013-09-06 17:18:42 【问题描述】:

我们使用的是 Sql 2012 数据库服务器。当 db 修改时,我们希望它触发可以使用 activemq 存储在队列中的消息。

    我们不确定如何编写代码来触发 db 以便它发送消息。 我们可以直接让db生成的消息在activemq中排队,中间不需要任何java接口。我想知道我们是否能做到这一点。 3.有没有其他方法可以建立sql server和activemq之间的通信,比如数据库服务和activemq服务(activemq有没有)

PS 我是activemq 的新用户。感谢任何解决这些问题的线索。

【问题讨论】:

相关:***.com/questions/13820199/… @DavidBrabant 根据this link 说“另一方面,像 ActiveMQ 这样的面向消息的中间件是为处理这些用例而构建的。”这是可能的 @DavidBrabant 我们可以实现第 3 点吗?我也觉得根据帖子,会有太多问题需要处理,但有可能做到吗?答案可能是肯定的。 【参考方案1】:

请不要像 SQL Server 那样做这个。 SQL Server 旨在存储数据。你要求太多了。根据您要从多少个地方添加到此队列中,我会选择以下解决方案之一:

    如果您想从一堆不同的地方添加到此队列,并且不想更改现有代码,请创建一个应用程序将项目从 SQL Server 移动到 ActiveMQ。 SQL Server 中的项目可以由触发器填充。

    如果只有少数几个地方添加到此队列,则将该逻辑添加到应用程序,以便每次写入 SQL Server 时也会写入 ActiveMQ。

如果你实在不想修改任何代码,可以configure ActiveMQ to use SQL Server as its persistence database。然后你可以修改它的数据并希望它玩得很好。这绝对不是可取的。我宁愿把 CLR 代码放到 SQL Server 中,将数据推送到 ActiveMQ。

【讨论】:

不想投反对票,因为第 1 点和第 2 点是正确的,所以您永远不应该修改 ActiveMQ 存储中的数据并希望获得最好的结果。这样做是对封装的严重违反。 @John Tseng 感谢您的回复。到目前为止,我们有一个单一的数据库,我们正在尝试将它与 activemq 链接起来。所以我想我们已经按照您在第 2 步中提到的内容进行了操作。所以您所说的应用程序将是服务器和活动 mq 之间的接口。如果我错了,请纠正我。

以上是关于我的 sql server 可以在没有任何 java 应用程序的情况下将消息发送到 activemq 服务器吗的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在 SQL Server 中查询空扩展属性?

如何更新没有任何数据的行以唯一标识该行?

没有返回任何内容时,SQL Server 查询运行速度较慢

SQL Server 过程不返回任何结果

未插入我的 SQL Server 的字段 [重复]

如何更新我的 SQL Server 数据库架构?