web-dev-qa-db-ja.com

Oracle 12c Express Enterprise ManagerのWebページが読み込まれない

問題の概要

Oracle 12c EM Express Webインターフェースにアクセスすると、次のようなURLを使用するとページがタイムアウトします。

  • http(s):// hostname:5500/em
  • http(s)://hostname.domain:5500/em

IPアドレスまたはlocalhostを含むURLを使用すると、ページの読み込みは非常に遅くなります(最大5分)。

  • http(s):// ip-address/em
  • http(s):// localhost/em

ホスト名を使用すると、リスナーログにエラーが表示されます(これらの倍数)。

03-DEC-2015 11:25:33 * http * (ADDRESS=(PROTOCOL=tcps)(Host=<ip address>%14)(PORT=52925)) * handoff * http * 12518
TNS-12518: TNS:listener could not hand off client connection
TNS-12560: TNS:protocol adapter error

IPアドレスまたはlocalhostを使用する場合、リスナーログにエラーは表示されません。

03-DEC-2015 11:23:39 * http * (ADDRESS=(PROTOCOL=tcps)(Host=<ip address>)(PORT=52902)) * handoff * http * 0

この問題はWeb全体で発生し(フッターの参照を参照)、誰もこの原因を見つけることができないようです。私は-私が見つけることができるすべての提案を試みて、以下の結果をリストしました。この素晴らしいコミュニティにひびを入れさせてから、Oracleのサポートに任せます...

プラットフォーム情報

  • Windows Server 2012 R2 x64
  • Oracle 12.1.0.2.0
  • 2つのプラグ可能なデータベース(PDB)を備えたマルチテナントコンテナーデータベース(CDB)
  • 自動ストレージ管理(ASM)は使用されていませんが使用されています
  • ファイアウォールを完全に無効にして、サーバーでローカルにテストを実行する

すでに実行されたテスト

emctl
多くの人が習慣から「emctl」をチェックすることを勧めます。これは、データベース制御ではなくEM Expressを使用するため、12cには存在しません。

http/https
これをセットアップし、httpおよびhttpsでテストしました。変わりはない。

ブラウザ
IE 11、chrome and firefoxのVanillaインストールでこれをテストしました。アドオンが有効になっていません。

データベースアクセス
SQLBを介してCDBとPDBの両方にアクセスしてクエリを実行できます

Telnet
ポート(5500など)へのTelnet接続を開くことができます。

アラートログ
Oracleアラートログにエラーメッセージが含まれていません。

私の仮説

  • ホスト名の代わりにIPアドレスを使用すると-わずかに-機能するため、ホスト名の検索に関連するもの。
  • 証明書に関連するものですが、httpでも同じ問題が発生します。
  • XDBまたはリスナーサービスの構成に関連するもの。
  • ホスト名のドメイン部分に関連する何かが含まれているかどうか。これはほとんどの設定ファイルに追加されていますが、どこにでもあるとは限りませんか?

詳細なプラットフォーム情報

注:これらのスニペットでは、実際のホスト名を常に「HOSTNAME」に、実際のドメインを「domain」に置き換えています。 「HOSTNAME」が使用されている場合、ドメイン名の後にないことを意味します。ケースは、ホスト名が表示される実際のケースを表します。

SYS_CONTEXT( 'USERENV'、 'SERVER_Host')
ホスト名

CMDのホスト名変数
ホスト名

SYS_CONTEXT( 'USERENV'、 'DB_DOMAIN')
ドメイン

dbms_xdb_config.gethttpsport()
5500

dbms_xdb_config.gethttpport()
2200

"lsnrctl status"出力

    LSNRCTL for 64-bit Windows: Version 12.1.0.2.0 - Production on 03-DEC-2015 15:33:12

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

    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=hostname.domain)(PORT=1521)))
    STATUS of the LISTENER
    ------------------------
    Alias                     listener
    Version                   TNSLSNR for 64-bit Windows: Version 12.1.0.2.0 - Production
    Start Date                03-DEC-2015 12:27:51
    Uptime                    0 days 3 hr. 5 min. 21 sec
    Trace Level               off
    Security                  ON: Local OS Authentication
    SNMP                      OFF
    Listener Parameter File   C:\Oracle\HOME\network\admin\listener.ora
    Listener Log File         C:\Oracle\diag\tnslsnr\HOSTNAME\listener\alert\log.xml
    Listening Endpoints Summary...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(Host=HOSTNAME.domain)(PORT=1521)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(Host=HOSTNAME.domain)(PORT=2200))(Presentation=HTTP)(Session=RAW))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(Host=HOSTNAME.domain)(PORT=5501))(Security=(my_wallet_directory=C:\Oracle\admin\ecoomdb\xdb_wallet))(Presentation=HTTP)(Session=RAW))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(Host=HOSTNAME.domain)(PORT=5500))(Security=(my_wallet_directory=C:\Oracle\admin\ecoomdb\xdb_wallet))(Presentation=HTTP)(Session=RAW))
    Services Summary...
    Service "CLRExtProc" has 1 instance(s).
      Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
    Service "bibliodb.domain" has 1 instance(s).
      Instance "ecoomdb", status READY, has 1 handler(s) for this service...
    Service "ecoomdb.domain" has 1 instance(s).
      Instance "ecoomdb", status READY, has 1 handler(s) for this service...
    Service "ecoomdbXDB.domain" has 1 instance(s).
      Instance "ecoomdb", status READY, has 1 handler(s) for this service...
    Service "technodb.domain" has 1 instance(s).
      Instance "ecoomdb", status READY, has 1 handler(s) for this service...
    The command completed successfully

"lsnrctl services"出力

    LSNRCTL for 64-bit Windows: Version 12.1.0.2.0 - Production on 03-DEC-2015 15:34:22

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

    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=HOSTNAME.domain)(PORT=1521)))
    Services Summary...
    Service "CLRExtProc" has 1 instance(s).
      Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
        Handler(s):
          "DEDICATED" established:0 refused:0
             LOCAL SERVER
    Service "bibliodb.domain" has 1 instance(s).
      Instance "ecoomdb", status READY, has 1 handler(s) for this service...
        Handler(s):
          "DEDICATED" established:9 refused:0 state:ready
             LOCAL SERVER
    Service "ecoomdb.domain" has 1 instance(s).
      Instance "ecoomdb", status READY, has 1 handler(s) for this service...
        Handler(s):
          "DEDICATED" established:9 refused:0 state:ready
             LOCAL SERVER
    Service "ecoomdbXDB.domain" has 1 instance(s).
      Instance "ecoomdb", status READY, has 1 handler(s) for this service...
        Handler(s):
          "D000" established:8 refused:21 current:0 max:1022 state:ready
             DISPATCHER <machine: HOSTNAME, pid: 4040>
             (ADDRESS=(PROTOCOL=tcp)(Host=HOSTNAME.domain)(PORT=49179))
    Service "technodb.domain" has 1 instance(s).
      Instance "ecoomdb", status READY, has 1 handler(s) for this service...
        Handler(s):
          "DEDICATED" established:9 refused:0 state:ready
             LOCAL SERVER
    The command completed successfully

listener.ora

    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = CLRExtProc)
          (Oracle_HOME = C:\Oracle\HOME)
          (PROGRAM = extproc)
          (ENVS = "EXTPROC_DLLS=ONLY:C:\Oracle\HOME\bin\oraclr12.dll")
        )
      )

    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(Host = HOSTNAME.domain)(PORT = 1521))
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
        )
      )

init.ora(トリミング、他の設定も含まれています...)

db_domain=domain
db_name="ecoomdb"
dispatchers="(PROTOCOL=TCP) (SERVICE=ecoomdbXDB)"
local_listener=LISTENER*

netstat -a
(関連する選択)

 TCP    0.0.0.0:1521           ECONECOOMDB1:0         LISTENING
TCP    0.0.0.0:5500           ECONECOOMDB1:0         LISTENING
TCP    0.0.0.0:5501           ECONECOOMDB1:0         LISTENING
TCP    [::]:5500              ECONECOOMDB1:0         LISTENING
TCP    [::]:5501              ECONECOOMDB1:0         LISTENING

windows hostsファイル
(このファイルは空です)

環境変数

  • PATHにはC:\ Oracle\HOME\binが含まれています
  • Oracle_HOME = C:\ Oracle\HOME
  • Oracle_SID = ecoomdb

レジストリHKEY_LOCAL_MACHINE\SOFTWARE\Oracle\KEY_OraDB12Home1

  • Oracle_HOME = C:\ Oracle\HOME
  • Oracle_SID = ecoomdb

関連および重複した(未回答の)質問/ドキュメント

オンラインリソース

Stackexchangeの質問

Redditスレッド

Oracleコミュニティ

13
Wouter

これらのコマンドをdb Hostで実行すると何が得られますか

コマンドプロンプトからping Host ping ipaddress(Host ipaddress)tnsping tnsalias

lsnrctlサービスを実行して、接続が拒否されているかどうかを確認します

oracleクライアントがクライアントマシンにインストールされている場合(Oracle em expressへのアクセス元)

コマンドプロンプトから実行1)ping ipaddress(db Host ipaddress)->>エラーが発生した場合は、ホストファイルにipaddressとドメイン名を追加します2)tnsping tnsalias

編集:

Dispatcher D000は、21の接続が拒否されたことを示します。ネットワークに問題があります。

リスナーを再起動してem expressに接続し、lsnrctlサービスの出力が理想的に拒否された接続がゼロであることを確認してください。

2
user82397

Oracleサポートに連絡した後、何が起こっているのかを理解できました。このサーバーには、4つのネットワークアダプター、1つのアダプターがネットワークに接続され、3つの未構成のアダプターがiSCSIストレージに接続されています。この問題は、WebクライアントまたはEMサーバー(ここでは不明)がWebページ要求を間違ったアダプターに送信しようとしたことが原因であると思われます。

同じ問題に直面している人は、(hostname.domainを使用して)URLを参照し、次にlistener.logファイル(-Oracle_base-/diag/tnslsnr/-instance-/listener/trace/listener。ログ)。私にとって、エラーメッセージには、サーバーのメインネットワークアダプターのIPアドレスとは異なるIPアドレスが表示されました。表示されているiSCSIに接続されているネットワークアダプターの1つのIPアドレス。元の投稿でIPアドレスを省略したとき、このIPアドレスの違いはわかりませんでした。

18-DEC-2015 14:17:04 * http * (ADDRESS=(PROTOCOL=tcps)(Host=<NOT SERVER IP address!>%14)(PORT=62119)) * handoff * http * 12518
TNS-12518: TNS:listener could not hand off client connection
 TNS-12560: TNS:protocol adapter error

追加のネットワークアダプターを無効にすると、すべてが正常に動作します。

さらに、Chromeで「chrome:// net-internals /#dns」にアクセスすると、4つのネットワークアダプターすべてのIPアドレスがホスト名として表示されました。

どうやら、この問題は、別のホストからWebページを閲覧するときに発生することはありません。また、nslookupは正しいIPアドレスのみを返します。したがって、これはDNSの問題ではなく、ローカルの問題のようです。ネットワークアダプターを無効にすることは最終的な解決策にはならないので、これは問題に対する完全な答えではないと思いますが、将来この問題に直面している人には、「もっと先に進む」ことができると思います...

DNSサーバーから返されたIPアドレスと、Webブラウザーが使用するIPアドレスの不一致はどこから来たのですか?

また、最終的なソリューションに影響を与えた可能性があるいくつかの追加の変更を加えたので、完全にするためにそれらを含めます。適切かどうかわからない...:

  • データベースのプロセスパラメータが300から1000に増加
  • 「(DISPATCHERS = 5)」を追加して「ディスパッチャ」パラメータを変更しました
1
Wouter

Windows 2016にOracle 12.2.0.1をインストールした後も同じ問題が発生しました。

まず、TCP/IPv6がオンになっているのを見つけたので、オフにしました。

次に、Oracle Note Number(Doc ID 1608258.1)に従って試してみました-12c EM ExpressがWebブラウザに無効な証明書エラーを表示します。

また、うまくいきませんでした。

私は古い学校の方法でそれを修正しました... :)

WindowsユーザーOracle_DBA(PCにログオンし、Oracle 12cのインストールに使用)が、「xdb_wallet」フォルダの下の2つのファイルに対する権限を持っていないことを発見しました。

そう:

1-「xdb_wallet」フォルダの所有権を、それがあったものからOracle_DBAに変更しました。

enter image description here

2-「xdb_wallet」フォルダの下にある2つのファイル(ewallet.p12、cwallet.sso)の所有権をOracle_DBAに変更しました。

enter image description here

3-ステップ1を再度実行し、2つのファイルの所有権が変更されたことを確認しました。

Webサイト https:// hostname:5500/em は、FireFoxで正常に動作しました。これは、IE11/Win2016がFlash Playerでおかしな問題を抱えているためです。

セキュリティの観点からは、それが何を意味するのか(手順1〜3)、またはこれらの変更によりどのような脅威が発生する可能性があるのか​​はわかりません。

ご存知でしたらアドバイスをお願いします。

0
Najee Ghanim

IPアドレスを使用してみてください。

http(s)://192.168.1.100:5500/em

このようにして、IPにバインドされているネットワークカードに確実にヒットします。

0
Brian McGinity