【问题标题】:Creating socket inside a SQL-CLR trigger or stored procedure在 SQL-CLR 触发器或存储过程中创建套接字
【发布时间】:2012-04-22 12:42:53
【问题描述】:

我在 SQL Server 2008 中有一个 SQL-CLR 触发器,它向套接字服务器发送消息。它工作正常,但我需要 TCP 客户端与它通信的服务器保持连接。

为了做到这一点,我必须制作一些保持活力的线程。所以我创建了一个线程,将消息添加到队列中,我看到客户端正在连接,但 SQL Server 在客户端能够处理排队的消息并将其发送到 tcp 服务器之前就退出了。

此应用程序的目的是发送通过 xml 更新的与它们相关联的字段和一些值。我想将它们放入线程中处理并发送到 TCP Socket 服务器的队列中。

我现在计划的替代方案是让 CLR 触发器将消息添加到 MSMQ,并让另一个服务来处理这些消息。

有什么好的建议可以做到这一点吗?

【问题讨论】:

  • 您能否更具体地说明您与哪种类型的服务器通信?您将发送多少数据,用于什么目的和什么协议? (记录信息?消息队列?游戏服务器通信?)
  • 我更新了我的问题以获取此详细信息。我想以某种 xml 格式为手头的表发送修改后的列/值关联。所以我的目标是将这些数据存储在队列中并一次处理一个。套接字客户端希望只有一个与服务器的连接,因为该表上有很多更改。
  • 您考虑过使用 Service Broker 吗?
  • 我只使用没有此功能的 SQL Server Express
  • 您为什么尝试使用触发器而不是将其构建到您的主应用程序中?

标签: c# .net sql-server-2008 sqlclr


【解决方案1】:

创建组件消息 授权 dbo FROM 'C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Messaging.dll' WITH PERMISSION_SET = 不安全 去吧

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-12
    • 2011-04-15
    • 2023-04-02
    • 2021-07-13
    • 2018-01-18
    • 1970-01-01
    • 2021-07-16
    • 1970-01-01
    相关资源
    最近更新 更多