2011年5月24日火曜日

ORA-12518

最近またもや「ORA-12518: TNS: リスナーはクライアント接続をハンドオフできませんでした」のエラーが頻発するようになった。

以前にも発生した事があったが、少し時間を置くを発生しなかったりしたので放置していた。 エラーの原因は、メモリにあることは感じていたがこの機会にスッキリと解決に向けて努力することとした。 発生するマシンは、Macbook PRO のBootCamp にインストールした Oracle10g です。

現象としては、ウィンドウズのコマンドから sqlplus での接続は問題なく接続できるが、sqlworksheet や OEM や クライアントアプリケーションから OracleDB(10g)に接続にいくとエラーが発生するという現象である。

  • コマンドからのSQLPLUSでの接続 → 問題ない
  • Windowsアプリケーションからの Oracle DB への接続 → エラーが発生する。

いろいろと調べた結果、通常 ORA-12518 が発生する場合は、Oracleの仮想メモリが2GBを超えた場合に発生する。(Windows 4GT参照)

しかし、私のマシンで発生している原因は上記の問題ではなく、hostsの設定によるものであった。
  ↓
テスト用にノートPCにOracle10gをインストールしているが、使用する無線LANによるアドレスが変わるので、その都度設定ファイルを変更するのが面倒なので hosts ファイルでPCのホスト名のアドレスを 127.0.0.1 に設定して対応したためのようであった。
この設定を行ってたまにエラー(ORA-12518)がでたが、少し時間をおくと問題なく使用できたので気にせずに利用を続けていた。

しかし、127.0.0.1 はループバックアドレスであるので通常のアプリでの利用には問題がある旨が記載されいる情報を発見し、早速正しいIPアドレスに変更して行ったところエラー(ORA-12518)は発生いなくなった。

面倒だけど、使用する無線LANが切り替わる時は、hostsファイルでアドレスを変更して対応することになった。

0 件のコメント:

コメントを投稿