常駐プログラムでのDB接続エラー


Beck  2005-01-14 18:37:26  No: 118893

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への接続エラーが発生しませんでした。

常駐と毎回処理の違いが何なのかのはっきりした結論がわかりません。

同じような状況を経験した事の有る方、原因自体がわかるかたが
いましたら、ご指導お願いしたく思います。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加