Oracle 12c Express Enterprise Manager Webページがロードされません


13

問題の概要

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全体で発生し(フッターの参照を参照)、誰もこの原因を見つけることができないようです。私は見つけることができるすべての提案を試みましたが、以下の結果をリストしました。この素晴らしいコミュニティに亀裂を持たせ、それからオラクルのサポートに任せます...

プラットフォーム情報

  • 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、firefoxのバニラインストールでこれをテストしました。アドオンは有効になっていません。

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

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

警告ログ
Oracle警告ログには、エラーメッセージは含まれていません。

私の仮説

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

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

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

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

CMD
HOSTNAMEのホスト名変数

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ホストファイル
(このファイルは空です)

環境変数

  • 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コミュニティ


マシンのホスト名はDNSにありますか、それともホストファイルに追加しましたか?
フィリー

ホストファイルが空です。ホスト名の正確な管理方法は不明ですが、ネットワークはActiveDirectoryサーバーを使用しており、サーバーはホスト名に登録されており、DNSサーバーはそれをそのように認識します。
Wouter

すべてDNSの問題/タイムアウトのように疑わしく聞こえます。
フィリー

デバッグ、正確な原因の追跡方法に関するアイデアはありますか?
Wouter

回答:


2

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

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

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

Oracleクライアントがクライアントマシンにインストールされている場合(Oracle Em Expressにアクセスしている場所から)

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

編集:

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

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


すべてのテストをdbホストで実行しています。ホスト名とIPアドレスのping、およびCDBとPDBへのtnspingは正常に機能します。拒否された接続についての素晴らしいキャッチ!リスナーを再起動し、hostname-EM-URLを使用しました。同じ問題「webpage not available」、およびlsnerctlはXDBのエントリをまだ表示しません。ip-EM-URLを使用すると、EMが(ゆっくりと)ロードされ、XDBエントリが取得されますが、拒否された接続はありません。これをどうすればいいのかわかりませんが、多分あなたにはどうでしょうか
Wouter

1
コンテナdbからのこれら2つのコマンドの出力は何ですか?デュアルからSELECT UTL_INADDR.get_host_address; デュアルからSELECT UTL_INADDR.get_host_name;

host_addressはipv6アドレスを返し、ホストはドメインを付加せずに大文字でホスト名を返します。また、RDAレポートを実行したところ、「DNS Lookup-FAILED」と表示されました。また、ホスト名を使用するとCloud Controlのインストールは失敗しますが、IPアドレスを使用すると動作します。私は今、これが何らかのDNSの問題であることを確信しています。デバッグ/分析の方法については無知です...
Wouter

1

オラクルのサポートに連絡した後、私は何が起こっているのかを知ることができました。このサーバーには、4つのネットワークアダプター、ネットワークに接続された1つのアダプター、およびiSCSIストレージに接続された3つの未構成アダプターがあります。この問題は、Webクライアント、またはEMサーバー(ここではわかりません)がWebページ要求を間違ったアダプターに送信しようとしたために発生したようです。

同じ問題に直面している人については、hostname.domainを使用してURLを参照し、listener.logファイル(-oracle_base- / diag / tnslsnr / -instance- / listener / trace / listener)を確認することでこれを確認できます。ログ)。私にとって、エラーメッセージには、サーバーのメインネットワークアダプターのIPアドレスとは異なるIPアドレスが表示されました。iSCSIに接続されているネットワークアダプターのいずれかの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)」を追加して「dispatchers」パラメーターを変更しました

0

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

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

この方法で、ネットワークカードがIPにバインドされていることを確認できます。


つまり、URLにポート番号を追加してみますか?私の投稿で、http(s):// ip-address / emを試したと言いましたが、それはタイプミスであると疑われ、実際にポート番号で試しました。デフォルトのポート(80)を介してロードされるとは思わない。いずれにせよ、OracleからSQL Serverに切り替えたので、今はこれをテストする方法がありません。Oracleは、巨大な環境以外では意味がありません。
はWouter

0

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に変更しました:

ここに画像の説明を入力してください

2-フォルダー "xdb_wallet"の下の2つのファイル(ewallet.p12、cwallet.sso)の所有権をOracle_DBAから変更しました:

ここに画像の説明を入力してください

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

IE11 / Win2016にはFlash Playerに関するおかしな問題があるため、Webサイト https:// hostname:5500 / emはFireFoxで正常に機能しました。

セキュリティの観点から、それが何を意味するのか(ステップ1〜3)、またはそれらの変更によってどのような脅威が発生するのかはわかりません。

知っているならアドバイスをお願いします。


-1

/etc/hostsファイル内のホスト名のIPアドレスを確認します

たとえば、以下は私のhostsファイルです

127.0.0.1       localhost
10.148.180.115  tom

tom私のホスト名であり、私のホスト10.148.180.115のIPアドレスです

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.