ネットワーク エンジニアがクライアントの 1 つの状況をトラブルシューティングするのを手伝おうとしています。このクライアントは、文字通り「家族経営」のベンダーから POS システムを購入しました。このベンダーは、クライアントが追加のライセンス料を負担する必要がないように、SQL Server Express 2005 をバックエンド データベースとして推奨しました。(私にそれを始めさせないでください!)
このアプリは私たちが作成したものではなく、商用アプリであるため、入手できるソース コードはありません。(そうしても役に立たないというわけではありません。これは PowerBuilder で作成されたものなので、そのためのツールはありません。) アプリは、確認できる独自のログ記録を行いません。先に進む必要があるのは、SQL Server Express 独自のログだけです。
アプリケーションでは、エンド ユーザーが会員カードを読み取ります。時折 (1 日に数回)、スワイプでデータベースからデータが返されないことがあります。画面に「メンバー 123 が見つかりません」というメッセージが表示されます。(メンバー番号は実際には 6 桁の「000123」です。) 直後に再スキャンすると、メンバー データが正しく返されます。
問題の原因となるスキャナ自体を排除しました。スキャナは 6 桁の数字全体を定期的にスキャンします。SQL Server Express のログをスキャンすると、多くの場合、スキャンの時点でアイドル状態からオンラインに戻っていることが示されます (ただし、1 日に数回発生します)。(アイドルモードについてはこちらで説明しています。)
SQL Express の方法で RAM を割り当て/割り当て解除するのは、特に一度に数百メガバイトについて話している場合、時間のかかるプロセスであることを理解しています。
部分的なデータが返されているのか、それとも単にアプリがデータベースへの接続に失敗して一般的なエラー メッセージを表示しているだけなのかは不明です。すべてが非常に不透明であり、クライアントは (明白な理由で) 物理的にそれが起こるのを確認するために (おそらくネットワーク監視/パケット スニッフィング ツールを使用して) 施設に 8 時間ほど滞在するために私たちに支払うことを望まないため、私たちは一種の途方に暮れて。
この時点で、クライアントを 5 つの CAL で SQL Server 2005 Workgroup Edition にアップグレードすることをお勧めします。しかし、SQL Server が部分的なデータを返すことは決してないと確信しているため、この問題の解決策として、それは私には完全に適していません。接続できない場合は、接続できません。(とはいえ、他の多くの問題の解決策であるため、私はまだそれをお勧めします!)
Expressの経験はあまりありません。(私はローカル開発以外には決して使用せず、自宅でのみ使用します。クライアントには決してお勧めしません。)
Express を使用したことがある方への質問ですが、SQL Express のインスタンスが部分的なデータを返すのを見たことがありますか? アプリ自体が原因ではありません。具体的には、アイドル モードから戻ったときにこの動作を見たことがありますか?
(価値があるのは、アプリが接続に失敗し、単に一般的なエラー メッセージを表示し、接続時にメンバー ID の先頭のゼロを削除していると考える傾向があることです。それが最も合理的な答えのようです - 3 番目の質問かもしれませんが、皆さんはその評価に同意しますか?)