初めまして、フルといいます。
よろしくお願いいたします。
DelphiでDLLを作成しています。
ある値を渡すとOracleからデータを抽出し
HTMLファイルを作成するものです。
このDLLが動作しなくなることがあります。
アクセスが集中すると動作しなくなるように
感じているのですが・・・。
DelphiでDLLを作成するにあたって
注意することなどありますでしょうか?
どなたかお分かりになられる方いらっしゃいましたら、
手助けをよろしくお願いいたします。
メモリリークなどはしていませんよね。
Oracleとのセッションはそのつど取得・解放していますか?
「動作しなくなる」というのがどういう現象のことなのかわからないので、この程度しかかけません。
DLL で Oracle にアクセスする場合、条件によってコメントが変わると思います。まず、その DLL は単一のプロセスから利用されるのでしょうか?それとも複数のプロセスから同時に利用されるのでしょうか?もし後者だった場合は排他処理で問題が起こっている可能性が高いと思います。
アクセスが集中というのは、起動からの回数の事でなく複数のプロセスからと取れるかもしれませんが...
にしのさん、ゆうさん、ご返答ありがとうございます。
返信が遅くなってしまい申し訳ありません。
メモリリークはしていないと思われます。
また、ゆうさんのおっしゃったように複数のプロセスから同時に利用されます。
排他処理での問題というのはどういったケースでしょうか?
現在はSQL発行ごとのDLLを分けています。(以前は1つのDLLが多数のSQL発行を担っていました。)
これって無駄なことでしょうか?
未だ解決はされていませんが、もうしばらく調査してみます。
何か思いつくことあれば、どんなことでも結構ですのでアドバイスください。
よろしくお願いします。
ソースを全て見ないと、排他処理での問題に関わらず問題点を指摘することができません。力になれずすみません。
基本的な事ですが、問題が発生するDLLでログを取ってみてはどうでしょうか?再現性があるなら、最初は大きな区切りでログを記述し異常時に少しづつ範囲を狭めていけば問題となるコードが早く発見できるかもしれません。ただしログを記録するタイムラグでバグが出なくなる事も考えられす。その場合でもタイミングで発生する、しないの判断で問題箇所の推測がつくかもしれません。