2017-01-24 17 views
1

私のアプリはFireDACコンポーネントを使用しているMySQLデータベースと接続しています。私がネットワークの問題を抱えている最後の時間、私はそれをテストし、それは4 pingの要求を失うような(時間)のように見えます。私のアプリは私にエラーを返します: "[FireDAC] [Phys] [MySQL]クエリ中にMySQLサーバーへの接続が失われました"。今質問:fdconnection.TFDUpdateOptions.LockWaitをtrue(デフォルトはfalse)に設定すると、私の問題が解決されるか、新しい問題が発生しますか?Delphi + Firedacとネットワーク接続エラー

答えて

1

TFDUpdateOptions.LockWaitは、データベースへの接続に影響しません。レコードのロックをすぐに取得できないときに何が起こるかを決定します。 documentationはかなり明確にそれを言う:

Use the LockWait property to control whether FireDAC should wait while the pessimistic lock is acquired (True), or return the error immediately (False) if the record is already locked. The default value is False.

The LockWait property is used only if LockMode = lmPessimistic.

FireDACは、それが接続を失った場合、明らかにどちらかのロックを要求したり、それが得られたかどうかを判断する方法はありませんように、ロックを取得するために待つことができません。したがって、LockWaitを変更しても、接続の切断の問題は変わりません。そのため、他の多くの操作がデータに対して遅くなる可能性があります。

失われたping要求に対する唯一の解決策は、ネットワーク接続を修正してパケットの廃棄を停止することです。 TFDConnectionのオプションをランダムに変更するだけでは、ネットワークの問題を修正するつもりはありません。

+0

私はあなたを驚かせる - それは働いた。接続が戻ると、アプリケーションはもはや 'ハングしていません' –

関連する問題