我进行了一些研究,发现这个系统的大部分管道都可以看到,但是我不确定当表中的数据发生变化时,SQL Server如何知道何时向任何侦听器(应用程序)发送消息。我将从我理解的地方开始解释,直到我迷失为止。
1)必须在数据库上启用Service Broker,并设置一些权限。
2)应该部署数据库模式。
3)使用aspnet_regsql.exe,为需要缓存数据的数据库和表启用SQL缓存依赖项(此步骤创建一个表来跟踪更改并在表上创建触发器以捕获更改并递增该表中的值)。
4)在.NET应用程序中设置SQL缓存依赖项。例如,在Web应用程序中,您需要添加配置值以获取轮询时间、连接字符串等;在global.asax.cs中启动/停止依赖项,然后在添加项目到缓存时添加SQL缓存依赖项。
4a)启动依赖项的部分内容是设置队列、服务和过程,以进行通信和清理。使用Sql查询分析器,您可以看到连接正在建立,并且正在为应用程序在服务上设置通信信道,以接收来自SQL Server的消息。
5)这就是我困惑的地方。此时,我已经在我的应用程序缓存中缓存了一个项目,并引用了基础表上的SQL缓存依赖项,以便我的应用程序在该行发生更改时可以接收到更改。如果我手动更新该行,我可以看到触发器被触发,并且跟踪表中的值递增1。但是,我没有看到任何与应用程序的通信,也没有在SQL查询分析器中看到任何内容,也没有从缓存中删除该项目。我还没有在数据库中的队列中看到任何内容(动态应用程序队列和标准错误/传输队列都没有)。
我的问题是,是什么在监视数据库中的跟踪表,以便可以向关心此数据更改的SQL依赖项发送消息?
非常感谢任何帮助...我一直在搜寻许多在线参考资料,但找不到任何具体的解释。
1)必须在数据库上启用Service Broker,并设置一些权限。
2)应该部署数据库模式。
3)使用aspnet_regsql.exe,为需要缓存数据的数据库和表启用SQL缓存依赖项(此步骤创建一个表来跟踪更改并在表上创建触发器以捕获更改并递增该表中的值)。
4)在.NET应用程序中设置SQL缓存依赖项。例如,在Web应用程序中,您需要添加配置值以获取轮询时间、连接字符串等;在global.asax.cs中启动/停止依赖项,然后在添加项目到缓存时添加SQL缓存依赖项。
4a)启动依赖项的部分内容是设置队列、服务和过程,以进行通信和清理。使用Sql查询分析器,您可以看到连接正在建立,并且正在为应用程序在服务上设置通信信道,以接收来自SQL Server的消息。
5)这就是我困惑的地方。此时,我已经在我的应用程序缓存中缓存了一个项目,并引用了基础表上的SQL缓存依赖项,以便我的应用程序在该行发生更改时可以接收到更改。如果我手动更新该行,我可以看到触发器被触发,并且跟踪表中的值递增1。但是,我没有看到任何与应用程序的通信,也没有在SQL查询分析器中看到任何内容,也没有从缓存中删除该项目。我还没有在数据库中的队列中看到任何内容(动态应用程序队列和标准错误/传输队列都没有)。
我的问题是,是什么在监视数据库中的跟踪表,以便可以向关心此数据更改的SQL依赖项发送消息?
非常感谢任何帮助...我一直在搜寻许多在线参考资料,但找不到任何具体的解释。