- ベストアンサー
ODBC経由での使用方法について
- Oracle8iをインストールして、OracleのODBC Driverを使用してDSNを設定
- VB6にてConnect→select→Closeを繰り返すと使用メモリが増加し、selectだけを繰り返すと使用メモリは増えない
- Closeの問題ではないかと思われるが、対処方法を教えてほしい
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Oracle8iに含まれるNet8のバグ 8.1.7.4.8で以降を使用する必要あり。 もしくは >アプリケーションの実行ディレクトリに空の tnsnames.ora ファイルを置くことで回避できます。 らしいです。 #このバグ情報は要サポート契約
その他の回答 (1)
- taka_tetsu
- ベストアンサー率65% (1020/1553)
>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まで再現するそうです。 #この情報も要サポート契約
お礼
回答、本当に感謝しています。有難う御座います。 ネットサービスの設定は1つしか無いので問題はなさそうです。(設定しているものを使用しています) やはりOracleClientにパッチをあてるしか方法は無いようですね。 現Client 8.1.7.0.0 -> 8.1.7.x しかし、お金をケチってしまったせいか。サポート契約が切れていてパッチを入手するすでを失っている今、 手詰まりって感じですね。 本当に有難う御座いました。
補足
早速の回答、有難う御座います。 当方使用しているのバージョンは下記の通りです。 Oracle8i Client 8.1.7.0.0 Oracle8i ODBC Driver 8.1.7.8.10 早速 空のtnsnames.ora を作成して実行してみたのですが状況が変化しません。 Windowsの perfmon を使用して Private Byte とWorkingSet を監視しています。 確かに Handle Countは増加しないのですが、メモリリークの監視対象が違うのでしょうか?