サーーバにParadoxのDBファイルを保存し、各PCに業務用に開発したソフトをインストールしデータを共有しているのですが1日数回固まる事象が発生する場合があります。事象としてはフィアルロックがかかっている感じ。
その都度全ユーザのソフトを強制終了させ再起動させています。
原因を特定したいのですが、どのPCが起因でロックがかかったか特定する方法はないでしょうか。
また、ロックがかかっている場合のエラー処理方法いい方法ありませんか、現在はtry finallyでテーブルをcloseし処理を終了しようとしているのですがファイルにアクセスにいきずっと待っている状態のようで処理の終了がされず、ダンマリ状態となります。
開発はDelphi7 Pro , BDE , Paradox , 一部ADO利用(ACCESSからのデータ取込用)
データ出力はExcel利用,PARADOXファイル50セット程度
ユーザ数20程度 常に利用しているユーザは5ユーザ程度
各ユーザのOSも混在95,98,XP
DataModuleCreateで以下の設定でSessionの設定
Session.AddPassword('xxxxx');
Session.PrivateDir := mPath01;//
Session.NetFileDir := mPath02;//
私の職場でも同様の環境で運用しています。
1.BDEの設定
すべてのクライアントのBDEのNET DIRをサーバの共有のパスに設定されている か
2.プログラム起動中に電源OFF−−−>インデックス破壊
操作の教育を徹底する。
1が可能性が高いような気がしますが?
miwaさん resありがとうございます。原因判明しました。
ちょっとした業務用のアプリケーションの場合外部発注ではなく自主開発する場合がでてきますが、問題となるのは開発者の異動等誰がその後維持メンテするのかが問題となります。以前は他の者がメンテできるようAccessを利用しVBAで開発していたのですがこちらはユーザ数分のライセンスを用意しなければならない。また、VBAでも結局は開発者のところにメンテの依頼がきてしまい稼動がかかる。そんなわけで今回はDelphi+Paradoxで開発したわけですが複数利用にかかるトラブルが発生したわけです。その際プログラム起因なのかデータベース起因なのか切り分けができずメンテに時間が要したのが今回の質問でした。
プログラム起因と思われるエラー等はほぼ修正したにもかかわらずプログラムが固まる事象が発生し、Paradoxの限界なのかと考えたりしてとところでした。
ご指摘をいただいた「2.プログラム起動中に電源OFF−−−>インデックス破壊操作の教育を徹底する。」データベース、プログラムにばかり目がいっていましたが、思い当たることがあり調べたところ特定のユーザの使い方に原因があったようです。
一応概略
メイン画面からShowModalで指定の画面を開き最大化する設定にしていました。その際各PCの画面サイズに合わせて各コンポーネントもフォームとディスプレイ比で拡大する設定にしていましたが特定の1台だけこのサイズ調整がうまくいかない事象が発生していました(フォームのサイズがディスプレイ以上に大きくなる)。このユーザは画面を移動、最小化等して利用していましたが、ShowModalで呼びだしたフォームを最小化してもメインフォームは表示され最小化はされないわけですが、メイン画面が操作できなかったことからこの事象もダンマリの事象と勘違いし強制終了していたようです。
使い方を指導してからは順調に運用できています。
ありがとうございました。
解決おめでとうございます。
私の職場はDelphi5 , BDE , Paradox でいろいろなアプリケーションを作成し動かしています。プログラム遮断によりインデックス破壊は年2〜3回おきます。
しかし市販データベースもライセンス料が膨らみ効果はいかほどか疑問でしたのでファイル共有で運用していす。
ML等では評価を得ない傾向がありますが,特に問題を感じていません。またWindowsのすべてのバージョンで動くのがいいですね。
ツイート | ![]() |