データベースへの接続が切れた時の対応について
Magic4.7および4Plusを使用しています。
Azure上のSQLServerに接続する環境なのですが、タイトルが"DB Error"、メッセージが①なし②TCP Provider 既存の接続はリモートホストに強制的に切断されました、のどちらかで落ちる現象が不定期で発生しています。
現象自体はアプリ再起動すればすむのですが、ユーザーに上記エラーを見せずに再起動を促すメッセージを表示する方法が見つかりませんでした。
エラーキャッチについて知見をお持ちの方、いらっしゃいましたらご教示ください。
試したこと1
メインプログラムに未定義エラーのイベントを宣言してそこでメッセージ表示

結果
DB Errorのメッセージ→再起動メッセージ→アボート
試したこと2
未定義エラーイベントでErrDbmsCode 、ErrDbmsMessage を取得
結果
Code0、Messageは空
以上、よろしくお願いします。
-
こんにちは
Azureのデータベースを利用する場合、一定時間アクセスが無いと接続を切られてしまうので、定期的に(ポーリングの意味で)PINGを飛ばして、自動切断を防いだことがあります。
エラーメッセージは、、、DB関数でエラーコードを拾って、それ毎にメッセージを代えています。
が、まぁ、障害自体、発生させない方が良いでしょうね...
HAYATO@アインシュタイン設計社
-
HAYATO様
ご回答ありがとうございます。
投稿後にヘルプを見ていたら、しっかり記載がありました…

DBErrorはメッセージ特性をNoにすることで表示させないようにすることができました。
ただ、今回のエラー以外の発生に気付けなくなってしまうため、しっかり検討していきたいと思います。
-
nakadaSOさん、
HAYATOさんのアドバイスのように、タイマーを掛けて、定期的に何かをするような処理を「メインプログラム」に記述してやるというのも一つの手だと思いますよ。
サインインしてコメントを残してください。
コメント
3件のコメント