情シスは何度でも甦るさ。

OracleDB/Ruby好きの情シス部員がお送りします

Oracle10g OEM dbconsoleでssl: nzos_Handshake failed

転職後の会社で電話番してたのですが、意外とOracle使ってるらしく、でも、運用管理はそんなに面倒みきれてないそうで、「OEMが最近うまく動かないんだよねー」とのことで、暇だし中身見てみることに。

OSが、Windowsだったので、サービスから起動しても、失敗。
コマンドプロンプトから、実行するも

emctl start dbconsole

ずっと起動中のままで、5分くらいしてやっぱりエラー。
エラーメッセージ見ろって出るから見たら、「サービスでのエラーです」とか、そんなのわかっとるわい。
しかも、起動中にOEMにアクセスしたら、その間だけ見れるという謎仕様。
しょうがなく、ログを色々漁る。

#emagent.trc
2014-05-22 13:16:32 Thread-6552 ERROR ssl: nzos_Handshake failed, ret=29024
2014-05-22 13:16:32 Thread-6552 ERROR http: 1100: Unable to initialize ssl connection with server,aborting connection attempt
2014-05-22 13:16:32 Thread-6552 ERROR pingManager: nmepm_pingReposURL:Cannot connect to https://hostname:1158/em/upload/: retStatus=-1

#emdctl.trc
2014-05-22 13:16:57 Thread-7580 ERROR ssl: nzos_Handshake failed, ret=29024
2014-05-22 13:16:57 Thread-7580 ERROR http: 680: Unable to initialize ssl connection with server,aborting connection attempt

#emoms.trc
2014-05-22 13:08:29,742 [Orion Launcher] ERROR app.ContextInitializercontextInitialized.272 - Integration Class not found: oracle.sysman.ias.ias.IASIntegration
2014-05-22 13:08:30,320 [Orion Launcher] ERROR app.ContextInitializercontextInitialized.272 - Integration Class not found: oracle.sysman.eml.target.slb.common.SLBIntegration
2014-05-22 13:08:30,461 [Orion Launcher] ERROR app.ContextInitializercontextInitialized.272 - Integration Class not found: oracle.sysman.eml.ssl.intg.SSLIntegration
2014-05-22 13:08:30,632 [Orion Launcher] ERROR app.ContextInitializercontextInitialized.272 - Integration Class not found: oracle.tip.oem.central.domain.ProcessConnectDomainIntg
2014-05-22 13:08:30,632 [Orion Launcher] ERROR app.ContextInitializercontextInitialized.272 - Integration Class not found: oracle.tip.oem.central.instance.ProcessConnectInstanceIntg
2014-05-22 13:08:30,632 [Orion Launcher] ERROR app.ContextInitializercontextInitialized.272 - Integration Class not found: oracle.webdb.admin.em.PortalIntegration
2014-05-22 13:08:30,632 [Orion Launcher] ERROR app.ContextInitializercontextInitialized.272 - Integration Class not found: oracle.webdb.admin.em.SSOIntegration
2014-05-22 13:08:30,632 [Orion Launcher] ERROR app.ContextInitializercontextInitialized.272 - Integration Class not found: oracle.reports.em.RepIntg
2014-05-22 13:08:30,632 [Orion Launcher] ERROR app.ContextInitializercontextInitialized.272 - Integration Class not found: oracle.sysman.ocs.mntr.target.OcsEmailIntegration
2014-05-22 13:08:30,632 [Orion Launcher] ERROR app.ContextInitializercontextInitialized.272 - Integration Class not found: oracle.sysman.ocs.mntr.target.OcsOidIntegration
2014-05-22 13:08:30,632 [Orion Launcher] ERROR app.ContextInitializercontextInitialized.272 - Integration Class not found: oracle.sysman.ocs.mntr.target.OcsOvfIntegration
2014-05-22 13:08:30,632 [Orion Launcher] ERROR app.ContextInitializercontextInitialized.272 - Integration Class not found: oracle.sysman.ocs.mntr.target.OcsWebconfIntegration
2014-05-22 13:08:30,632 [Orion Launcher] ERROR app.ContextInitializercontextInitialized.272 - Integration Class not found: oracle.sysman.ocs.mntr.target.OcsWirelessIntg
2014-05-22 13:08:30,632 [Orion Launcher] ERROR app.ContextInitializercontextInitialized.272 - Integration Class not found: oracle.sysman.ocs.mntr.target.OcsCalGrpIntegration

#OracleDBConsoleSIDsrvc.log
-------------- [OracleDBConsoleTIMSFMD] ------------
EMDROOT=D:\oracle\product\10.2.0\db_1
ORACLE_HOME=D:\oracle\product\10.2.0\db_1
EMDSTATE=D:\oracle\product\10.2.0\db_1\SID
CONSOLE_CFG=dbconsole
TRACE_LEVEL=16
TIMEOUT=15
05/22/14 13:08:08 Job Process API is available
05/22/14 13:08:08 Start pending...
05/22/14 13:08:08 Verifying dbconsole is not started already. Command
line "D:\oracle\product\10.2.0\db_1\bin\emctl.bat" istatus dbconsole
05/22/14 13:08:12 dbconsole launch commandline is "D:\oracle\product\10.
2.0\db_1\bin\emctl.bat" istart dbconsole
05/22/14 13:08:12 Tracking process launch...
05/22/14 13:08:45 Received exitCode 1 from emctl istatus
〜〜〜
同じのがいっぱい
〜〜〜
05/22/14 13:16:57 Received exitCode 1 from emctl istatus
05/22/14 13:17:02 Timedout while tracking process to start. Terminating..

最初の「ERROR ssl: nzos_Handshake failed, ret=29024」のあたりが怪しかったので、そっからGoogle先生に聞いて海外のサイトを巡るとどうやら、OEMには、内部的に証明書の有効期限があるらしくそれが切れているとか。
別に社内の環境だし、sslいらんし。とのことで、httpで見れるように設定変更をする。

#状況確認
emctl status agent
emctl status dbconsole

#念のため止める
emctl stop dbconsole

#ssl設定を止める
emctl unsecure dbconsole

#起動
emctl start dbconsole

で、起動は正常終了。
アドレスをhttpsからhttpに変えてアクセスしたら見れた。
なお、再度ssl設定にしたらエラーが再現したので、間違いなくこれが原因。

さらに調べると日本語のサイトでも説明されてた。
http://tunes.sakura.ne.jp/tipi/?Oracle%2FEnterprise%20Manager%A4%AC%B5%AF%C6%B0%A4%B7%A4%CA%A4%A4

しかし、思わぬ時限爆弾だよねこれ。