http://www.ilovex.co.jp/Division/ITD/archives/2004/10/oracle_windowsx.html
テスト環境用等で WindowsXP(SP2)マシンに Oracle9i(サーバ:Personal)をインストールすることが
あるかと思うが、この場合 Oracleは WindowsXP-SP2の『Windowsファイアウォール』の影響もあって、
そのマシンの外部からはそのままでは使用できなくなってしまう。
どうすれば使えるようになるかというと、以下の3つの設定を見直さなくてはいけない。
1.コントロールパネル → Windowsファイアウォール → 『例外』タブ → 『ポートの追加』ボタン TCP-1521 を追加する。(名前は自由に付けてよい)
これでマシン自体がOracleプロトコルの開始の通信を受け付けるようになる。
通常は Windowsファイアウォールで、受信パケットを全く受け付けなくなっているので、例外を設ける必要があるということ。
2.以下のレジストリを追加する [HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0] USE_SHARED_SOCKET(文字列値) = TRUE
サーバー側の通信ポートを共有する設定にする。
詳しくは省くが『リダイレクション』を抑えてサーバー側のポートを共有化するのだそう。
ただ、これが合点がいかないのだが、試しに使っていた 9.2.0.1 では自分が見渡す限りこの操作に相当する管理インターフェイスを探しても見つけることはできなかった。レジストリを直接いじる操作になる。
なお、Windowsではレジストリだが、Unixの場合は環境変数に設定する値だそう。
3.OracleHome\NETWORK\Admin\tnsnames.ora ファイルを編集する。 PROTOCOL / SERVICE_NAME を見て、メインで使用しているサービス名を見つけ出し、SERVERを DEDICATED にする。 ILOVEXxx.ILOVEX.CO.JP = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ilovexXX)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ilovexXX) ) )
クライアントから接続するサーバーのタイプを『共有サーバー(SHARED)』ではなく 『専用サーバー(DEDICATED)』にしなくてはいけない。
(デフォルトがいずれになっているのかは環境に依存するようだが)
『共有サーバー』にした場合は、デフォルトの TCP-1521も使いながら、それ以外の通信用ポートも必要になるため。
ここまで設定してようやく通常の接続が可能となる。
なお、Oracleに付属している TNSPING.exe という設定確認ツールがあるが、これはあくまでもTCP/IPでの ping相当のものであって複雑な複雑な往復通信をするわけではない。
よって、TNSPINGで接続が確認できたからといって通信が全くうまくいくとは限らない。
少なくとも上記設定は SQL/plusで接続できるかどうか試してみる必要があるようだ。
上記は Windowsファイアウォールによる制限を避けるための設定だが、一般的に FirewallやNAT(NAPT)/BOXを越えたような場所に Oracleがある場合は、同様の設定が必要になる。
[通知用URL]
Tweet
最終更新時間:2008年05月25日 22時57分17秒