0

SQL Server 2008 R2 を使用して、トリガーとストアド プロシージャ内から同じ種類の他の多数のサーバーに接続しています。これらのサーバーは世界中に地理的に分散しており、サーバー間の通信で発生したエラーは、送信されるはずだったデータと共にログに記録され、後で通信を再試行できるようにすることが重要です。サーバーは、サーバーの 1 つがオブザーバーとして機能し、他のサーバー間のメッセージのルーティングを処理するオブザーバー パターンに参加しています。

この状況でエラーを処理する最善の方法について具体的なアドバイスを探しています。特に接続エラーや、リモート サーバーでクエリを実行する際に注意すべき潜在的な落とし穴についてです。

4

2 に答える 2

3

リンク サーバーを使用していて、リンク サーバー接続を介して他のサーバーにデータを送信している場合、アプリケーション ロジックを追加しない限り、これらの要求をログに記録する固有の方法はありません。

リンクサーバーでは、サーバーの1つがダウンすると、アプリケーションロジックでエラーがスローされます。つまり、ストアドプロシージャまたはトリガーは、サーバーが存在しないかサーバーがダウンしていると言って失敗します。

これを回避するために、Queue Logic を実装する Service Broker を使用しようとします。この場合、常にログを保持し、サーバーのダウンタイムに関係なくメッセージが確実に配信されるようにすることができます (サーバーの場合)。メッセージは読まれるまで待機します)。

http://technet.microsoft.com/en-us/library/ms166104%28v=sql.105%29.aspx

お役に立てれば

于 2013-07-02T10:56:00.167 に答える