問題はService Broker の続きです: 2 つの SQL サーバー間の通信の設計(前の説明を適度に短くするため)。
上記の質問に対する回答は、永久に開かれたダイアログを介して定期的に生成されたデータを送信するという、より単純なシナリオの使用を示唆しています。サテライト SQL サーバーでデータを形成し、それを中央 SQL サーバーに送信するトリガーは、固定の固有 ID を使用する可能性があります。
とにかく、会話は最初から始めなければなりません。たとえば、会話ハンドルは固定されています。会話がまだ開かれていない状況をどのように検出できますか?
会話がまだ開始されていないことを検出できれば、2 つのアプローチを組み合わせることができます。空の文字列のメッセージ値を持つ特別なリクエストをセントラルに送信すると、セントラルはその特別なリクエストに対してのみ応答を返します。衛星が起動した手順は、欠落しているデータをすぐに中央に送信します。
簡単に言えば、サテライト マシンでかなり多くのデータを収集できる初期状況を解決する必要があります。衛星が起動する手順では、データをチャンクで送信して、データを移動する以外のことを行う機会を両側に与えることができます。送信するものが他にない状況でセントラルからの応答メッセージが到着すると、アクティブ化されたプロシージャはトリガーに永続フラグを設定して、モノログ方式で単一レコードの送信を開始できます。それは合理的ですか?