2011-08-09 8 views
0

先日、私たちのプロダクションDBでいくつかの不正なクエリが発生し、プロダクションシステムで何らかのブロッキングが発生しました。これらのクエリは修正されましたが、アプリケーションに「A type 1000 server error has occurred」というメッセージが表示されていたという問題がありました。私はこれを適切に処理するためにアプリケーションを更新しようとしています。残念ながら、このエラーの原因となった状態のSQL Serverを簡単に再生成することはできないようです。 SQLへのリクエストを「短絡」する方法があるので、DBは応答を返しますが、「ロックされた」状態または「実行できません」状態になっていることを示します。SQL Serverのエラー応答/状態をシミュレートする方法はありますか?

+0

ハンドル内でエラー状態を再現するために使用しているDBライブラリの応答オブジェクトをハックアップすることができます。 –

+0

'RAISERROR'を使ってエラーシミュレーションを作成しましたか?http://msdn.microsoft.com/en-us/library/ms178592.aspx – JNK

+0

RaiseErrorを見てきましたが、私はそれをしません欲しいです。私たちのアプリケーションは、個々のクエリの問題を処理することができます。これは、私が実際にそれを使ってシミュレートできるすべてのものです。 DBがロックを開始すると、いくつかのクエリが正常に実行され、他のクエリが失敗し、全体的な状況がシミュレートしようとしています。 – tterragnoj

答えて

0

SQLでは、TRY...Catchを使用して、必要な応答を返すことができます。

0

Mock Objectsは、このタイプの動作をテストするための「BestWay(tm)」です。これを容易にするためのテストフレームワーク(例:PHPUnit)がない場合は、オプションが少なくなります。

  • @Marc Bは、モックオブジェクトを使用してのような である、提案、あまりフォーマルな方法でのようにあなたは、レスポンスオブジェクトをハックすることができます。
  • 悪意のある可能性のあるSqlServerの インスタンスを指す、dev環境を設定することもできます。
関連する問題