应用程序的工作当前:我已经为SQL服务器中的表编写了一个触发器,以便在该表中插入时通过http请求触发外部Java应用程序(在tomcat服务器中)。我在
中使用xp_cmdshell
内部触发器
Exec xp_cmdshell 'sqlps -command "$http=New-Object system.Net.WebClient;
$http.uploadString(\"http://127.0.0.1:8080/MessageProducer\",\"param1=somevalue ^& param2=thriu\")"'
编写java应用程序以获取queryString
并在activemq
中生成消息。最后,只要在activemq
中插入,我就会在SQL server
中收到消息。
我想要的应用程序的工作:只要SQL Server中有更新/插入,SQL服务器就能发送消息,那么我为什么要使用java应用程序作为SQL server和activemq之间的中间件。有没有办法将消息从SQL服务器发送到activemq。当我为activemq编码时遇到了Apache camel
,这会对我有帮助吗?。
答案 0 :(得分:1)
如果您不想,您根本不必使用任何中间软件,例如Tomcat或Apache Camel。 ActiveMQ可以按照您今天发送的方式接收消息right out of the box。
它将是这样的(如果需要,您可能想要添加身份验证):
Exec xp_cmdshell 'sqlps -command "$http=New-Object system.Net.WebClient;
$http.uploadString(\"http://localhost:8161/api/message/TEST?type=queue\",\"param1=somevalue ^& param2=thriu\")"'