• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ODBC経由での使用方法について)

ODBC経由での使用方法について

このQ&Aのポイント
  • Oracle8iをインストールして、OracleのODBC Driverを使用してDSNを設定
  • VB6にてConnect→select→Closeを繰り返すと使用メモリが増加し、selectだけを繰り返すと使用メモリは増えない
  • Closeの問題ではないかと思われるが、対処方法を教えてほしい

質問者が選んだベストアンサー

  • ベストアンサー
  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

Oracle8iに含まれるNet8のバグ 8.1.7.4.8で以降を使用する必要あり。 もしくは >アプリケーションの実行ディレクトリに空の tnsnames.ora ファイルを置くことで回避できます。 らしいです。 #このバグ情報は要サポート契約

mo_aries
質問者

補足

早速の回答、有難う御座います。 当方使用しているのバージョンは下記の通りです。 Oracle8i Client 8.1.7.0.0 Oracle8i ODBC Driver 8.1.7.8.10 早速 空のtnsnames.ora を作成して実行してみたのですが状況が変化しません。 Windowsの perfmon を使用して Private Byte とWorkingSet を監視しています。 確かに Handle Countは増加しないのですが、メモリリークの監視対象が違うのでしょうか?

その他の回答 (1)

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.2

>Windows 環境では Handle Count がリーク(増加)することが確認できます。 という記述があるので、別物かも。 と思って「ODBC リーク」で調べてみたら、こんな情報も >TNSNAMES.ORAに設定したネット・サービスの ADDRESS 句にダウン(停止)した >リスナーが存在する場合、データベースへの接続・切断を繰り返すとアプリケー >ションがメモリリークを起こします。 で、 > TNSNAMES.ORAファイルに次のようなネット・サービス(test.world)の設定が > あるとします。 > >test.world = > (DESCRIPTION= >  (FAILOVER=ON > (ADDRESS_LIST= > (ADDRESS=(PROTOCOL=TCP)(HOST=host01)(PORT=9001))  > <-- ポート9001のリスナーがダウンしているとします > (ADDRESS=(PROTOCOL=TCP)(HOST=host01)(PORT=9002)) > ) > (CONNECT_DATA= > (SERVICE_NAME=ora920) > ) >) のように、ADDRESSが2つあって接続できないのがいるとリークするそうです。 ちなみに9.2.0.6.0まで再現するそうです。 #この情報も要サポート契約

mo_aries
質問者

お礼

回答、本当に感謝しています。有難う御座います。 ネットサービスの設定は1つしか無いので問題はなさそうです。(設定しているものを使用しています) やはりOracleClientにパッチをあてるしか方法は無いようですね。 現Client 8.1.7.0.0 -> 8.1.7.x しかし、お金をケチってしまったせいか。サポート契約が切れていてパッチを入手するすでを失っている今、 手詰まりって感じですね。 本当に有難う御座いました。

関連するQ&A