私は C++ アプリケーション (SQL 2000 データベースに対して Windows 2000 サーバーで実行されている VS2003 でコンパイルされたもの) を持っています。
私のロギングは、データベース接続(SQL Serverドライバーを使用するODBC)が正常に機能することを示しています(データベースの読み取りと更新)、例外がスローされた後(キャッチ/ログに記録されますが、実際の詳細はありません)、接続はデータベースからデータを読み取ることができますが、データベースを更新できなくなりました。
そのため、スレッドが次の行を読み取って処理し、ソケットから別のサーバーにデータを送信し、処理済みのレコードを更新して BOOM しようとしていることがわかります。
失敗したクエリから返される唯一のエラー情報は次のとおりです。
[Microsoft][ODBC SQL Server Driver][SQL Server]Statement(s) could not be prepared. [37000]
通常、クエリが失敗した理由が表示される場所のような空白が続きます (構文が正しくない、テーブルが見つからないなど、何でもありますが、今回は何もありません)。
このコードは何万ものレコードを処理し、数か月間実行される可能性があり、このスレッドの直後 (常に最初の被害者のように見え、最も忙しく、最初に攻撃される可能性があります) が他のすべての接続を窒息させ始め、同じ問題があるようです -読み取りは許可されていますが、更新によってこの例外がスローされます。
前回、タスク マネージャーをざっと見たところ (すぐにバウンスするので、長く調べることはできません)、アプリは典型的な 5 ~ 6 メガの RAM を使用しており、他のリソースは正常に見えました。
他のアプリケーションがデータベースを使用しており、この間エラーはありません。
クエリが有効な場合に、この報告されたエラー結果が得られる場所をオンラインで見つけることができません...
ヘルプ!