私のアプリケーションソリューション(多くのアプリ、1つのデータベース、一部のサードパーティ)でのポーリングを減らしたいのですが、顧客は何が起こっているのかについての最新のGUIステータスを望んでいます。SQL Serverテクノロジを使用して、.NETコードを介してテーブルまたはデータベースにイベントハンドラーを追加することは可能ですか?
これが私が出くわしたいくつかの解決策です:
- 外部アクティベーションを使用したSQLServerService Broker-新しいアプリケーションのみを起動し、実際には「イベントハンドラー」のようなシナリオは起動しません
- CLRストアドプロシージャ-機能が制限されていますが、GUIステータス画面にイベントを取得するときに同じ問題が発生することは明らかです
- カスタム化-SQLServerに(XPコマンドシェルを使用して)フォルダー内に修飾イベントが発生したときにトリガーを使用してファイルを作成させ、
FileSystemWatcher
オブジェクトにファイル変更イベントを取得させてその方法でトリガーさせるなど、クレイジーなことを行うことができます。でもそれはどういうわけか悪臭がします。