Java+Ms SQL Server 2008 R2插入触发器通知之后



我需要使用java-webgui Vaadin框架编写web应用程序,该框架将通过MsWin2k8R2 NPS插入MsSQL数据库的新记录实时更新。

由于NPS将日志存储到文件和/或数据库中,我更喜欢数据库,但我想知道当NPS服务器将数据插入数据库,然后从SQL服务器中重新获取或提取通知并在浏览器中显示时,SQL服务器如何通知我的java程序。

我已经有了Java<->Ms SQL连接已建立。

我已经知道的:

  • SqlDependency类可以使用,但它只适用于.NET,我正在使用Java
  • SQL Server Service Broker-这是SQL Server中的某种功能,可以用于此功能,但我目前还不正确理解如何做到这一点以及它的真正含义
  • SQL扩展事件-同上
  • SQL通知-同上
  • SQL CRL触发器-用C++、C#或Java编写的触发器,在指定的情况下执行,但这是同步完成的,会减慢整个操作

现在。我发现了这个帖子:https://stackoverflow.com/a/534831/1235977

我建议在表上设置一个触发器,该触发器调用SQL Server Service Broker,然后(异步)执行CLR存储过程,该过程在不同的线程中完成所有工作。

但我不知道该怎么做。

所以我需要的是:SQL Server中的一个简单表,当插入数据时,它会以某种方式通知我的Java程序。它可以使用RESTWeb服务、JMS或任何与语言无关的东西。

请提供循序渐进的示例/解决方案。

您可以使用SQL的触发器功能。有一个解决方案:

  1. 调用存储过程的表的SQL触发器
  2. 存储过程调用一些c#代码,这些代码将通过http提供REST服务
  3. 您的后端将处理来自存储过程的http请求

最新更新