Visual Basic 5.0
WindowsNT4.0
Oracle 8.1.7
常駐プログラムにてORACLEへ接続を行っています。
プログラム内は、
ORACLEへの接続 → SELECT → 処理 → ORACLEへの接続を切断
という処理を無限ループ(特定の場所に、ファイルをおくと処理終了)
しています。
>>>>>>> ここからが処理内容 <<<<<<<<
'Workspaceオブジェクトの生成
Set WS = CreateWorkspace("", "admin", "")
db_dsn = "接続文字列"
'Databaseオブジェクトの参照を取得
Set DB = WS.OpenDatabase(db_dsn, False, True, SERVER_CONNECT)
'検索SQL文の取得
sSQL = "SELECT * FROM TEST"
'検索を実行し、Recordsetオブジェクトを取得
Set RS = DB.OpenRecordset(sSQL, dbOpenSnapshot, dbSQLPassThrough)
〜 処理 〜
RS.Close
SET RS = Nothing
DB.Close
SET DB = Nothing
WS.Close
SET WS = Nothing
>>>>>>> ここまで <<<<<<<<<<<<<<<<<<
この処理を繰り返し行っていると、ORACLEへの接続が不可能となり
接続エラーが発生しています。
当初、ORACLEの問題かと思い色々と調査、検証を行ったのですが
どの原因も当てはまりませんでした。
周りの色々な推測の中で
・プログラムを常に起動しているとORACLEへ接続するためのプロセスが
解放されないのでは?
というのがあったので、早速Windowsのタスクスケジューラーより起動を
行う事で、プログラムを毎回終了するという方式を試してみたところ
ORACLEへの接続エラーが発生しませんでした。
常駐と毎回処理の違いが何なのかのはっきりした結論がわかりません。
同じような状況を経験した事の有る方、原因自体がわかるかたが
いましたら、ご指導お願いしたく思います。
ツイート | ![]() |