HAMLOG開発室は、HAMLOGに関連したプログラム開発(C、パスカル、VB言語等、又はDLL)についての
専用BBSです。プログラム言語に関する投稿以外は通常のHAMLOG相談室に投稿して下さい。
HAMLOG開発室BBS

> 自作のプログラムでhdbを参照しているときに、時々HAMLOGでインデクス
> ファイルがないとのエラーが出て停止出来なく成ります。
> ・・・ということでしょうか?
その通りです

> 具体的にどんなエラーでしょうか?
> インデックスファイルがない、というエラーですか?
No.5ファイルがオープンできない
(c:Hamlog\Hamlog.dx0)

インデックス構築が出来ません

と出ます。連続で参照中にHamlogデータ入力などを行う時に発生していますので、Hamlogで新データでインデクスファイルを構築するとき、外部からアクセスして、インデクスファイルがないか矛盾があり、外部からのコールでも再構築しようとしてお互いにおかしくなるのだと思います。

>
> > 極端な時ですが、別のプログラムで参照中にデータを削除処理すると同様のエラーが出ます。
>
> 極端な時ですが、自作のプログラムでQSOデータを共有中にHAMLOGでデー
> タを削除処理すると、自作のプログラムで同様のエラーが出ます。
> ・・・ということでしょうか?
その通りです。

>
> HAMLOGでQSOデータを1件以上削除したときは、インデックスファイルを
> 削除してから生成してますので、そうなると思います。

と言う事は、インデックス再構築中は他からのアクセスを待たせる機能は持っていないのですね。
> 共有を使わなければファイルはロックされてますので大丈夫です。
当然ですね。

と言う事で、原因は理解できましたが、困ったな。共有可能と言っても、HDBへのアクセスが衝突した場合の処理はしてないと言う事ですよね。
「インデックス再構築中は他からのアクセスを待たせる機能」自体は、HDB操作開始時にフラグを上げ、終了時にフラグを下げるようにし、HDB操作はこのフラグが下がっているときのみ可能にすれば、対応出来るのでしょうが。これは私の所だけでは対処出来ないし、DLLをいじると、何が起きるか予測もつかないし(待ち時間の問題、デッド・ロックの問題 無いかもしれないが、あったら大変)。別バージョンをお願いしても常に2バージョンあるのも困るし。困ったな。何か良いアイデアありませんか。

2016/06/03(Fri) 08:12:19  [No.705]


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)
- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)
Call 名前 ※必須
文字色
Eメール
タイトル sage
URL
メッセージ 手動改行 強制改行 図表モード
メッセージには上記と同じURLを書き込まないで下さい
画像File  (130kBまで)
暗証キー (英数字で8文字以内)
投稿キー (投稿時 投稿キー を入力してください)
プレビュー