« Panther De Oracle10g その8 | トップページ | Panther De Oracle10g その10 »

2005年6月 5日 (日) / Author : Hiroshi Sekiguchi.

Panther De Oracle10g その9

前回(Panther De Oracle10g その8)で、リスナーがハングアップする問題が発生したが、その解決方法が、Oracle10g for MacOS Xに付属するリリースノートに記載されていた。ようするに、”既知の問題” ということですな〜。

リリースノートには以下のように記載されている。

Stopping the Oracle Net Listener



On Mac OS X, make sure that Oracle Names Server (ONS) is running before entering the listener stop command. If ONS is not running, the listener stop command may cause the listener to hang. To start ONS, enter the following command:



$ onsctl start

2007/2/27 追記

ここで言う、ONSとはOracle Notification Serverのことだということが確認できたので修正。尚、引用部分はそのまま残しておきます。


上記にある、ONSとは、Oracle9iASで初めて登場し、Oracle10gのRAC構成時でも利用されている Oracle Nofitication Service 又は、Oracle Notification Serverの事である事が判明! マニュアルバグですね。なお、それを直訳している日本語版マニュアルでも ONSをOracle Names Serverと記載している。 Oracle10g R1や、Oracle10gASなどでONSと言ったら現在では、Oracle Notification Serviceの事を指すと覚えておきましょう。


Oracle Namesなんて私も1999年に一度触ったことがある程度で完璧に記憶の外にあった等こともあるが、これが災いして、鵜呑みにしてしまった。 Oracle10g ASや、Oracle10g RACのマニュアルにも頻繁に登場してくるので紛らわしいと思いつつ。 このエントリでも実行している onsctlの中身を見ると、 起動しているのは、$ORACLE_HOME/opmn/bin/ons だったのである。

そういえば、Oracle Net Service 管理者ガイドにもOracle Namesのサポート停止とありましたね。今更ながら。。。。ですが。
http://otndnld.oracle.co.jp/document/products/oracle10g/101/generic/B13723-07/ch05.htm#568162

MacOSXのドキュメント (ONSをOracle Names Serverとしている)が直訳なのでしかなあるまい。
http://otndnld.oracle.co.jp/document/products/oracle10g/101/mac/B15788-01.pdf


以下、opmn関連のマニュアルなど
http://otndnld.oracle.co.jp/document/products/as10g/1013/doc_cd/core.1013/B28581-01/intro.htm

http://www.oracle.co.jp/events/10g_2005/conference/doc/b-3.pdf

ということで、記載の通り、Oracle Names Server Oracle Notification Serverは起動しておけ!というものである。そうしなければ、リスナーがハングするのである。
では、早速確認してみよう!


2007/2/27 修正

前述の通り、ここで言う、ONSとは、Oracle Names Serverではなく、Oracle Notification Serverであることが判明したので、Oracle Namesの概略に関する部分の記述を削除した。


cube: oracle$ onsctl start 
onsctl: ons started

cube: oracle$ 
cube: oracle$ lsnrctl start

LSNRCTL for MacOS X Server: Version 10.1.0.3.0 - Production on 05-6月 -2005 18:27:31

Copyright (c) 1991, 2004, Oracle. All rights reserved.

/Volumes/ExtraDisk2/u01/app/oracle/product/10.1.0/panther/bin/tnslsnrを起動しています。
お待ちください...

TNSLSNR for MacOS X Server: Version 10.1.0.3.0 - Production
システム・パラメータ・ファイルは/Volumes/ExtraDisk2/u01/app/oracle/product/10.1.0/
panther/network/admin/listener.oraです。
ログ・メッセージを/Volumes/ExtraDisk2/u01/app/oracle/product/10.1.0/
panther/network/log/listener.logに書き込みました。
リスニングしています: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=cube.discus.jp)(PORT=1521)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=cube.discus.jp)(PORT=1521)))に接続中
リスナーのステータス
------------------------
別名 LISTENER
バージョン TNSLSNR for MacOS X Server: Version 10.1.0.3.0 - Production
開始日 05-6月 -2005 18:27:32
稼働時間 0 日 0 時間 0 分 0 秒
トレース・レベル OFF
セキュリティ ON: Local OS Authentication
SNMP OFF
パラメータ・ファイル /Volumes/ExtraDisk2/u01/app/oracle/product/10.1.0/
panther/network/admin/listener.ora
ログ・ファイル /Volumes/ExtraDisk2/u01/app/oracle/product/10.1.0/
panther/network/log/listener.log
リスニング・エンドポイントのサマリー...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=cube.discus.jp)(PORT=1521)))
サービスのサマリー...
サービス"panther"には、1件のインスタンスがあります。
インスタンス"panther"、状態UNKNOWNには、このサービスに対する1件のハンドラがあります...
コマンドは正常に終了しました。

cube: oracle$ 
cube: oracle$
cube: oracle$
cube: oracle$ lsnrctl stop

LSNRCTL for MacOS X Server: Version 10.1.0.3.0 - Production on 05-6月 -2005 18:27:42

Copyright (c) 1991, 2004, Oracle. All rights reserved.

(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=cube.discus.jp)(PORT=1521)))に接続中
コマンドは正常に終了しました。
cube: oracle$

cube: oracle$ 
cube: oracle$
cube: oracle$ onsctl stop
onsctl: shutting down ons daemon ...
cube: oracle$

おお〜っ!。 ハングアップしていたリスナーが正常に停止できました〜!。 一件落着。
次回は、oem 10g で発生する java exception を回避する方法及びその確認です。

| |

トラックバック


この記事へのトラックバック一覧です: Panther De Oracle10g その9:

コメント

コメントを書く