2
サードパーティサービス(SQL Serverインスタンスと同じサーバー上にホストされている)に接続するSQL Server CLRユーザー定義関数を作成しようとしています。 WCFの名前付きパイプまたはTCPをこのような状況で動作させる方法はありますか?私が仲介サービスを提供する場合、これを行うためのより良い方法はありますか?SQL Serverプロジェクトからのプロセス間通信
サードパーティサービス(SQL Serverインスタンスと同じサーバー上にホストされている)に接続するSQL Server CLRユーザー定義関数を作成しようとしています。 WCFの名前付きパイプまたはTCPをこのような状況で動作させる方法はありますか?私が仲介サービスを提供する場合、これを行うためのより良い方法はありますか?SQL Serverプロジェクトからのプロセス間通信
SQLCLRにIPCを実装しないでください。 CLRでホストされているSQLサーバーはSQL threading primitivesを使用するため、SQLワーカースレッドとスケジューラが枯渇することになります。
SQL Server以外のプロセスからすべてのIPCを実行します。ストアドプロシージャとトリガのSQLジョブからこのプロセスと通信する必要がある場合は、データベース内のキューイングを使用します(Tables as QueuesまたはService Broker)。
なぜIPCが他のどのようなSQLCLRの使用より悪いのでしょうか? – Eclipse
これは、現在のプロセス(sqlservr.exe)が他のプロセス応答を待機するのをブロックするためです。 SQLは協調ユーザーモードのマルチスレッド環境であるため、これらの外部ブロックはすべてのSQL処理を停止します。 –
IPCがかかる時間の問題ですか? – Eclipse