26
Forms Listener Servlet のトラブル シューティング オラクル・ホワイト・ペーパー 2005 1

Forms Listener Servletのトラブルシューティングotndnld.oracle.co.jp/.../doc/Troubleshooting_fls.pdfOC4J_BI_Forms Application.log 最後に、Forms Listener Servlet は、個々のForms

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

  • Forms Listener Servletのトラブルシューティング

    オラクル・ホワイト・ペーパー 2005年 1月

  • Forms Listener Servletのトラブルシューティング

    概要 ...................................................................................................................... 3 目的................................................................................................................. 3 対象ユーザー................................................................................................. 3

    Forms Listener Servletとは................................................................................. 3 Forms Listener Servletのトラブルシューティングが必要な理由............ 4

    Listener Servletの診断情報があるログ・ファイル ........................................ 4 Jinitiatorトレース・ファイル...................................................................... 5 Oracle HTTP Server の Access_logおよび Error_log ................................. 5 OC4J_BI_Forms Application.log.................................................................... 6

    Oracle 9iAS Rel 1 Forms Services(Forms 6i(6.0.8)) ........................ 6 Oracle 9iAS Rel 2(9.0.2)および Oracle Application Server 10g(9.0.4)................................................................................................................... 6 Oracle 9iDS Rel 2(9.0.2)...................................................................... 6 Oracle Developer Suite 10g(9.0.4)....................................................... 6

    ログ・ファイルの情報の解釈と診断............................................................... 7 Jinitiatorトレース・ファイル...................................................................... 7 Oracle HTTP Server の Access_logおよび Error_log ............................... 10 OC4J_BI_Forms Application.log.................................................................. 12

    Getリクエスト ...................................................................................... 12 Postリクエスト ..................................................................................... 13

    異なるタイプのエラーの検出......................................................................... 17 クライアントのエラー............................................................................... 17 ネットワーク・エラー............................................................................... 19 例を示します。 ..................................................................................... 19

    PL/SQLエラー ............................................................................................ 22 例を示します。 ..................................................................................... 22

    JVMエラー.................................................................................................. 24 例を示します。 ..................................................................................... 24

    まとめ ................................................................................................................ 25

    Forms Listener Servlet のトラブルシューティング

    2

    Oracle Corporation 発行「Troubleshooting the Forms Listener Servlet」の翻訳版です。

  • Forms Listener Servletのトラブルシューティング

    概要

    目的

    このホワイト・ペーパーの目的は、Webにデプロイされた Oracle Application Server

    10g Formsアプリケーションに通常発生する様々な異常やエラーの診断または検

    出に Form Listener Servletの活用方法を提供することです。ここでは、Form Listener

    Servletに関する診断情報を含むファイルの特定およびその情報を効果的に解釈す

    る方法を説明します。

    対象ユーザー

    このドキュメントは、Oracle Forms 10g、特に OracleAS Forms Services(Oracle

    Application Server 10gのコンポーネント)での問題の診断と解決の担当者を対象と

    しています。ただし、このホワイト・ペーパーの情報を最大限に活用するために

    は、OracleAS Forms Servicesのアーキテクチャおよび一般的なWebデプロイ・プ

    ロセスの適切な理解が重要です。

    Forms Listener Servlet とは

    Forms Listener Servletは、次のとおりWebにデプロイされる Formsアプリケーショ

    ンで中心的役割を果たします。

    • Formsセッションを要求する各Formsクライアントの専用Formsランタイ

    ム・プロセスの作成

    • Formsクライアントから HTTP Get/Postリクエストの受信、これらのリク

    エストの Formsランタイム・プロセスのルーティング、およびクライア

    ントへのレスポンスの返送

    • ユーザーが Formsアプリケーションまたはブラウザを終了した場合の

    Formsランタイム・プロセスの終了

    Forms Listener Servlet のトラブルシューティング

    3

    Oracle Corporation 発行「Troubleshooting the Forms Listener Servlet」の翻訳版です。

  • Forms Listener Servlet のトラブルシューティングが必要な理由

    エラーの原因によっては、Formsが正確なエラーの情報を判断し、記録すること

    が困難な場合があります。たとえば、クライアントとアプリケーション・サーバー

    間のネットワーク接続の切断は、(サーバーがエラーを認識できるかぎり)サー

    バーとクライアント間での情報が送受信されないことを意味します。したがって、

    Webにデプロイされた Formsアプリケーションは、FRM-92100/FRM-92101のよう

    な一般的な包括的エラーを相当数スローすることがあります。

    そのような一般的なエラーや切断の原因の検出が困難にもなります。問題は、

    Formsのクライアント、ネットワークまたはデータベース関連、またはアプリケー

    ション・コードのバグに関するものなど様々な原因が考えられます。Forms Listener

    Servletの診断は、このような問題の解決に効果的なため、トラブルシューティン

    グ方法を理解することは非常に有意義になります。

    Listener Servlet の診断情報があるログ・ファイル

    FormsアプリケーションをWebで実行する場合は、初期化、実行および通信用の

    様々なコンポーネントが必要です。これらの個々のコンポーネントは、別個のプ

    ロセスであり、物理的に異なる場所に存在する場合があるため、トレースおよび

    診断情報も別々の場所に分散されます。

    Forms Listener Servlet のトラブルシューティング

    4

    Oracle Corporation 発行「Troubleshooting the Forms Listener Servlet」の翻訳版です。

  • Jinitiator トレース・ファイル

    トレース情報を探すには、まずクライアント・マシンを確認します。Jinitiatorは、

    Formsの Javaクライアントを実行する Java Virtual Machine(JVM)です。次の Java

    ランタイム・パラメータを Jinitiatorコントロール・パネルで設定すると、Jinitiator

    トレースが有効になります。

    Windows の「スタート」メニューから「設定」、「コントロール・パネル」

    「Jinitiator」を選択してJinitiator コントロール・パネルを開き、「Basic」タブで「Java ランタイム・パラメータ」を選択します。

    - Djavaplugin.trace = true

    - Djavaplugin.trace.option = basic | net | security | ext | liveconnect.

    これにより、ユーザーのホーム・ディレクトリにトレース・ファイルである

    Jinitiator.traceが生成されます。たとえば、ユーザーのホーム・ディレク

    トリが C:\Documentsで、Settings\username and Jinitiatorバージョン 1.3.1.9が使

    用されている場合、ファイル C:\Documents and Settings\username\

    jinitiator1319.traceが生成されます。

    Oracle HTTP Server の Access_log および Error_log

    FormsアプリケーションをWeb上で実行中、HTTP Serverは、Formsのクライアン

    トとFormsランタイム間で標準HTTPメッセージとしてメタデータを送信します。

    HTTP Serverのデフォルトでは、すべての HTTPリクエストに関する基本情報を

    access_logファイルにログ記録し、エラーを error_logファイルに記録するよう設

    定されています。httpd.confの LogLevelディレクティブを使用し、HTTP Serverで

    ロギング・レベルを上げることができます。ただし、デフォルトの基本ログ情報

    は、Forms Listener Servletのトラブルシューティングに十分であり、詳細なログ記

    録をとる必要がありません。

    Oracle HTTP Serverの Access_logと Error_logは、アプリケーション・サーバーの

    次のディレクトリにあります。

    /Apache/Apache/logs

    Forms Listener Servlet のトラブルシューティング

    5

    Oracle Corporation 発行「Troubleshooting the Forms Listener Servlet」の翻訳版です。

  • OC4J_BI_Forms Application.log

    最後に、Forms Listener Servletは、個々の Formsのクライアントと対応する Forms

    ランタイム・プロセス間の通信を整頓しています。

    Forms Listener Servletがデフォルト・モードで使用されている場合、このコンポー

    ネントの基本診断情報は application.log(または Forms 6iの jserv.log)にあります。

    詳細な診断情報は、次のとおり、Forms Listener Servletでデバッグを有効にして

    application.logから取得できます。

    - /debugオプションを formsweb.cfgファイルの serverURLに追加

    例: serverURL=/forms90/l90servlet/debug

    - /debugオプションを直接 URLの serverURLに追加または formsweb.cfgファイ

    ルで既に提供された debug configセクションを使用

    例: http://:port/f90servlet?serverURL=forms90/l90servlet/debug

    http://:port/f90servlet?config=debug

    使用中の Formsのバージョンによっては、application.logは次の場所にあります。

    Oracle 9iAS Rel 1 Forms Services(Forms 6i(6.0.8))

    [ORACLE_HOME]/Apache/Jserv/logs/jserv.log

    Oracle 9iAS Rel 2(9.0.2)および Oracle Application Server 10g(9.0.4)

    [ORACLE_HOME]/j2ee/OC4J_BI_Forms/application-

    deployments/forms90app/OC4J_BI_Forms_default_island_[n]/application.log

    Oracle 9iDS Rel 2(9.0.2)

    [ORACLE_HOME]/j2ee/Oracle9iDS/application-deployments/forms/application.log

    Oracle Developer Suite 10g(9.0.4)

    [ORACLE_HOME]/j2ee/DevSuite/application-deployments/forms/application.log

    Forms Listener Servlet のトラブルシューティング

    6

    Oracle Corporation 発行「Troubleshooting the Forms Listener Servlet」の翻訳版です。

    http://:port/f90servlet?config

  • ログ・ファイルの情報の解釈と診断

    ログ・ファイルを特定すると、問題解決のツールとして情報の解釈および理解が

    必要になります。

    Jinitiator トレース・ファイル

    Jinitiatorは、Formsのユーザー・インタフェース(UI)の役割を果たす Javaアプ

    レットを実行し、クライアントとアプリケーション・サーバー間の通信を行いま

    す。

    Jinitiatorトレース・ファイルには次の情報があります。

    • UI相互作用および通信のための Formsアプレット・クラスの検索と実行

    の成功

    • 有用な Javaスタック・ダンプ、主にエラーがクライアントから発生した

    場合

    • Formsセッションを固有に識別する JsessionIDForms Listener Servletは、次

    の 2つのセッション・トラッキング・メカニズムを使用します。

    - Cookie、サーブレット・コンテナは Cookieをクライアントに送信。

    クライアントは、HTTPリクエストにより Cookieをサーバーに返し、

    それによってセッションを Cookieに関連付ける。

    - Servletコンテナがセッション IDを URLパスに追加する場合の URL

    リライティングの例

    http://host[:port]/forms90/l90servlet;jsessionid = a23445bcde89

    次の Jinitiatorトレースは、一般的な Javaスタック・トレースを示します。その場

    合、Formsアプレットがクライアントのリソースにアクセスし、Jinitiator JVMに

    より課されたセキュリティ制限を超えたため、AppletSecurityExceptionが生成され

    ました。

    Forms Listener Servlet のトラブルシューティング

    7

    Oracle Corporation 発行「Troubleshooting the Forms Listener Servlet」の翻訳版です。

  • sun.applet.AppletSecurityException: checkwrite

    at sun.applet.AppletSecurity.checkWrite(Compiled Code)

    at java.io.FileOutputStream.(FileOutputStream.java:55)

    at java.io.FileWriter.(FileWriter.java:35)

    at Test.writeFile(Test.java:18)

    at Test.setProperty(Compiled Code)

    at oracle.forms.handler.ComponentItem.setCustomProperty(Compiled

    Code)

    at oracle.forms.handler.ComponentItem.onUpdate(Compiled Code)

    at oracle.forms.handler.JavaContainer.onUpdate(Compiled Code)

    at oracle.forms.handler.UICommon.onUpdate(Compiled Code)

    at oracle.forms.engine.Runform.onUpdateHandler(Compiled Code)

    at oracle.forms.engine.Runform.processMessage(Compiled Code)

    at oracle.forms.engine.Runform.processSet(Compiled Code)

    at oracle.forms.engine.Runform.onMessageReal(Compiled Code)

    at oracle.forms.engine.Runform.onMessage(Compiled Code)

    at oracle.forms.engine.Runform.processEventEnd(Compiled Code)

    at oracle.ewt.event.AnyEventMulticaster.processEventEnd(Compiled

    Code)

    at oracle.ewt.lwAWT.LWComponent.redispatchEvent(Compiled Code)

    at oracle.ewt.lwAWT.LWComponent.processEvent(Compiled Code)

    at java.awt.Component.dispatchEventImpl(Compiled Code)

    at java.awt.Container.dispatchEventImpl(Compiled Code)

    at java.awt.Component.dispatchEvent(Compiled Code)

    at java.awt.LightweightDispatcher.retargetMouseEvent(Compiled

    Code)

    at java.awt.LightweightDispatcher.processMouseEvent(Compiled

    Code)

    at java.awt.LightweightDispatcher.dispatchEvent(Compiled Code)

    at java.awt.Container.dispatchEventImpl(Compiled Code)

    at java.awt.Component.dispatchEvent(Compiled Code)

    at java.awt.EventDispatchThread.run(Compiled Code)

    次の Jinitiatorトレースは、JsessionIDおよび jarファイルを正常にロードするため

    の情報です。

    Forms Listener Servlet のトラブルシューティング

    8

    Oracle Corporation 発行「Troubleshooting the Forms Listener Servlet」の翻訳版です。

  • Oracle JInitiator: Version 1.3.1.17

    Using JRE version 1.3.1.17-internal Java HotSpot(TM) Client VM

    User home directory = C:\Documents and Settings\kprakash

    Proxy Configuration: Manual ConfigurationProxy:

    www-proxy..com:80Proxy Overrides:

    a.us.oracle.com,b.uk.oracle.com,*.oracle.com,*.ora.com,*.oracle

    .com,*.oraclel.com,

    JAR cache enabled

    Location: C:\Documents and Settings\kprakash\Oracle Jar

    Cache

    Maximum size: 50 MB

    Compression level: 0

    ----------------------------------------------------

    c: clear console window

    f: finalize objects on finalization queue

    g: garbage collect

    h: display this help message

    l: dump classloader list

    m: print memory usage

    q: hide console

    s: dump system properties

    t: dump thread list

    x: clear classloader cache

    0-5: set trace level to

    ----------------------------------------------------

    Forms Listener Servlet のトラブルシューティング

    9

    Oracle Corporation 発行「Troubleshooting the Forms Listener Servlet」の翻訳版です。

  • Loading http://mymachine-

    pc2.uk.oracle.com:8889/forms90/java/f90all_jinit.jarfrom JAR

    cache

    最初の3つのエントリは、f90all_jinit.jar、webutil.jar および Jacob.jar ファイルのロードを示します。この後に、Jsession IDが示されます。

    Loading http://mymachine-

    pc2.uk.oracle.com:8889/forms90/java/webutil.jar from JAR cache

    Loading http://mymachine-

    pc2.uk.oracle.com:8889/forms90/java/jacob.jar from JAR cache

    proxyHost=nullproxyPort=0connectMode=HTTP, native.Forms Applet

    version is : 9.0.4.0RegisterWebUtil - Loading Webutil Version 1.0.4

    BetaOpening

    http://mymachine-pc2.uk.oracle.com:8889/forms90/l90servlet;jses

    sionid=8a03960422b943572eabdb5d47e8ac1ab294c4adb43b

    Connecting http://mymachine-

    pc2.uk.oracle.com:8889/forms90/l90servlet;jsessionid=8a03960422

    b943572eabdb5d47e8ac1ab294c4adb43b with no proxyConnecting

    http://mymachine-pc2.uk.oracle.com:8889/forms90/l90servlet;jses

    sionid=8a03960422b943572eabdb5d47e8ac1ab294c4adb43b with cookie

    "ORA_UCM_VER=%2FMP%2F8i_tgrf_%2Cnp_i_qf%3Emp_ajc%2CamkMP%2F8g%5

    Drepd%5D*ln%5Dg%5Dod%3Ckn%5D_ha*_kiMP%2F8pckmrcGnMP%2F8naikpaEl

    ;

    ORA_UCM_INFO=3~00027147766664608925227816870092~Kavitha~Prakash

    [email protected]~GBR~en~39~41~1~~1;

    ORA_UCM_SRVC=3*OTN~1~0~//~null~*OPN~1~0~//~SE1%3ASE1%3ASE1%3ASE

    1%3ASE1%3ASE1%3ASE1%3ASE1%3A~*EMP~1~0~/34/~null~*GMO~1~0~//~nul

    l"

    Oracle HTTP Server の Access_log および Error_log

    Oracle HTTP Serverの access_logファイルには、Formsクライアントからアプリケー

    ション・サーバーへのすべての Getと Postリクエストが含まれます。特定の Forms

    セッションに対するすべての Get/Postリクエストは、一意の JsessionIDを使用し

    て追跡できます。

    Forms アプレットのダウンロード、Forms Listener Servletセッションの設定、Forms ランタイム・プロセスとの接続に、Get リクエストが使用されます。次に、Forms Listener を介した Forms クライアント・アプレットと Forms ランタイム・プロセス間の情報交換に Post リクエストが使用されます。

    次に、access_logの Get/Postリクエストの例を示します。

    123.321.41.24 - - [20/Jun/2003:09:16:29 +0200] "GET

    /ecap/forms90java/f90all.cab HTTP/1.1" 304 - "-" "Mozilla/4.0

    (compatible; MSIE 5.0; Win32)"\ 0

    前述の GETリクエストは、f90all.cabのダウンロードを試行し、サーバーから http

    304 "Not Modified"(HTTP/1.1" 304)レスポンスを受信します。これは、クライア

    ントにキャッシュした f90all.cabのコピーを使用できることを伝えます。

    123.321.41.24 - - [20/Jun/2003:09:16:30 +0200] "GET

    /ecap/forms90java/java/awt/KeyboardFocusManager.class HTTP/1.1"

    404 347 "-" "Mozilla/4.0 (compatible; MSIE 5.0; Win32

    Forms Listener Servlet のトラブルシューティング

    10

    Oracle Corporation 発行「Troubleshooting the Forms Listener Servlet」の翻訳版です。

  • 前述の GETリクエストは、KeyboardFocusManager.classのダウンロードを試行し、

    サーバーから http 404 "File Not Found"(HTTP/1.1" 404)レスポンスを受信します。

    123.321.41.24 - - 20/Jun/2003:09:16:35 +0200] "POST

    /ecap/jecap/oracle.forms.servlet.ListenerServlet?JServSessionId

    jecap=7jf415vfr1.nkbKq79ycALJmQ5Go6XNr3COc30Mbu-- HTTP/1.1" 200 2

    "-" "Mozilla/4.0 (compatible; MSIE 5.0; Win32)"\ 0

    前述の POSTリクエストは、一意のセッション ID

    7jf415vfr1.nkbKq79ycALJmQ5Go6XNr3COc30Mbuを使用してサーバーに情報を送

    信し、http 200 "success"レスポンスおよび 2バイトのデータ(HTTP/1.1" 200 2)を

    受信します。これは、2つのフィールド間のユーザーのタブ操作による結果です。

    Oracle HTTP Serverの error_logは通常、サーバーからのファイルへのアクセス中

    または OC4Jや Jservとの対話中に発生したエラーを記録します。たとえば、

    error_logファイルの次のエラーは、default.datファイルのダウンロード時の問題を

    示します。httpd.confファイルの LogLevelディレクティブが Criticalに設定されて

    いる場合、そのようなエラーは、error_logファイルにログ記録されないため注意

    が必要です。

    Jserv と OC4J は J2EE コンテナです。 両方とも、特に Forms Listener Servletなどの Java サーブレットの実行に使用されています。Jserv は、iAS Release 1(1.0.2.x)で使用し、OC4J は、最近のリリースで使用されています。

    [Tue Sep 23 09:54:18 2003] [error] [client 148.87.19.50] File does not exist:

    /private/ias/iAS902/forms90/java/oracle/forms/registry/default.dat

    .

    java.io.FileNotFoundException: null_1455 (Permission denied)

    at java.io.FileOutputStream.open(Native Method)

    at java.io.FileOutputStream.(FileOutputStream.java:102)

    at java.io.FileOutputStream.(Compiled Code)

    at oracle.forms.servlet.RunformProcess.listProcesses(Compiled Code)

    at oracle.forms.servlet.RunformProcess.addProcess(Unknown Source)

    at oracle.forms.servlet.RunformProcess.connect(Compiled Code)

    at oracle.forms.servlet.RunformProcess.dataToRunform(Compiled Code)

    at oracle.forms.servlet.RunformSession.dataToRunform(Unknown Source)

    at oracle.forms.servlet.ListenerServlet.doPost(Unknown Source)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:521)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:588)

    at org.apache.jserv.JServConnection.processRequest(JServConnection.java:435)

    at org.apache.jserv.JServConnection.run(JServConnection.java:290)

    Forms Listener Servlet のトラブルシューティング

    11

    Oracle Corporation 発行「Troubleshooting the Forms Listener Servlet」の翻訳版です。

  • at java.lang.Thread.run(Compiled Code)

    Problem opening process list file null_1455 - process list disabled

    OC4J_BI_Forms Application.log

    OC4J_BI_Formsの application.log(9iAS Release 1での Jserv.log)には、Forms Listener

    Servletがデバッグ・モードで実行中にのみ Formsのクライアントから Application

    Serverへの Get/Postリクエストが含まれます。application.logに報告された個々の

    Get/Postリクエストは、access_logと同様のリクエストよりも有益です。access_log

    の Get/Postリクエストには、リクエストの URL、リクエストの時間、HTTPレス

    ポンス・コードのような基本情報が含まれます。application.logの Get/Postリクエ

    ストには、それに関連づけられた様々な HTTPヘッダーが含まれます。HTTPヘッ

    ダーは、リクエストにより送信されたバイト数、クライアントが使用している

    Jinitiatorのバージョン、セッション・トラッキング方法などの詳細な情報を提供

    します。application.logは、Formsランタイム・セッションに関する他の有用な情

    報も提供し、OC4J JVMのエラーを記録します。

    Get リクエスト

    application.logファイルの Getリクエストは次の情報を提供します。

    • クライアント PCのホスト名 Forms アプレットのダウンロード、Forms Listener Servletセッションの設定、Forms ランタイム・プロセスとの接続に、Get リクエストが使用されます。

    • クライアント PCの IPアドレス

    • JsessionID

    • セッション・トラッキング方法: Cookieまたは URLリライティング

    たとえば、次に示される Getリクエストから、クライアント PCのホスト名は

    kavitha-uk、クライアントの IPアドレスは 123.1.151.120、JsessionIDは

    3116db55b1154b1c85dcc8f81078228dで、セッション・トラッキングに URL

    リライティングが使用されていることがわかります(not from cookieを参照)。

    29/06/04 09:53 forms90web: GET request received, cmd=getinfo, qstring=ifcmd=getinfo&ifhost=kavitha-uk&ifip=123.1.151.120

    29/06/04 09:53 forms90web: Existing servlet session, id = 3116db55b1154b1c85dcc8f81078228d, not from cookie

    29/06/04 09:53 forms90web: Creating new Runtime Process using default executable

    29/06/04 09:53 forms90web: startProcess: executing ifweb90 server webfile=HTTP-0

    29/06/04 09:53 forms90web: Getting stdin, stdout and stderr of child process

    29/06/04 09:53 forms90web: New server process created

    29/06/04 09:53 forms90web: Forms session started for kavitha-uk ( 123.1.151.120 )

    Forms Listener Servlet のトラブルシューティング

    12

    Oracle Corporation 発行「Troubleshooting the Forms Listener Servlet」の翻訳版です。

  • Post リクエスト

    application.logファイルのPostリクエストには、非常に有用な情報を提供するHTTP

    ヘッダーがいくつか含まれています。プロキシ・サーバーまたはクライアントと

    アプリケーション・サーバー間のロード・バランサもそれぞれのヘッダー情報を

    Postリクエストに加えることがあります。次にいくつかの一般的なHTTPヘッダー

    について説明します。

    HTTP などのリクエスト/レスポンス・プロトコルでは、Forms Listener を介したForms クライアント・アプレットとForms ランタイム・プロセス間の情報交換に Post リクエストが使用されます。

    PRAGMA

    プラグマ・ヘッダーは、特定な Formsセッションの連番であり、Formsランタイ

    ム・プロセスに Formsアプレットから来るリクエストのタイプおよびこれらのリ

    クエストを処理する順序を通知します。

    COOKIE

    Cookieヘッダーは、セッションの追跡に使用される Cookieを提供します。

    HOST

    ホスト・ヘッダーは、アプリケーション・サーバーのホスト名を提供します。

    CONTENT-LENGTH

    このヘッダーは、Formsのクライアントから送信されるバイト数を提供します。

    ACCEPT-LANGUAGE:

    このヘッダーは、クライアントのブラウザで使用される言語を提供します。

    USER-AGENT

    ユーザー・エージェントは、クライアントで使用される Jinitiatorのバージョンを

    提供します。

    IFSESSION

    IFSESSIONヘッダーは、CLOSEに設定され、Formsセッションを 終了するよう

    リクエストを示します。

    CONTENT-TYPE

    コンテンツ・タイプ・ヘッダーには、MIMEコンテンツ・タイプが含まれ、クラ

    イアントから送信されたデータのフォーマットを記述します。

    HTTPヘッダーの様々な情報とは別に、Postリクエストは、次の補足情報も提供

    します。

    • 一定の Formsセッションに対する Formsランタイム・プロセスのプロセ

    ス ID

    • JsessionID

    • セッション・トラッキング方法: Cookieまたは URLリライティング

    • Fromsランタイム・プロセスとの通信に Listener Servletが使用するポート

    番号

    Forms Listener Servlet のトラブルシューティング

    13

    Oracle Corporation 発行「Troubleshooting the Forms Listener Servlet」の翻訳版です。

  • たとえば、次の Postリクエストから、ブラウザの言語は英語、ホストはテスト・

    マシン、Jsession IDは 27f6412da05c426ab47db4ae77636113、セッションの追跡に

    Cookieは使用されていない(セッションの識別に URLリライティングが使用され

    ていることを意味する)などがわかります。さらに、jinitiator 1.3.1.17が使用され、

    f90webmプロセスのプロセス IDは 474であり、Listener Servletが Formsランタイ

    ム・プロセスとの対話にポート 2791を使用し、クライアントは 8バイトを Forms

    ランタイム・プロセスに送信し、8バイトを受信することがわかります。

    Got POST request, length HTTP request headers:

    ACCEPT-LANGUAGE: en

    PRAGMA 1

    CONTENT-TYPE: application/x-www-form-urlencoded

    ACCEPT:text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2

    USER-AGENT: Java1.3.1.17-internal

    HOST:test-machine:8888

    CONTENT-LENGTH: 8

    CONNECTION: Keep-Alive

    Existing servlet session, id = 27f6412da05c426ab47db4ae77636113,

    not from cookie

    Forms session runtime process id = 474 Port number is 2791

    RunformProcess.connect(): connected after 1 attempts Connected to

    ifweb process at port 2791 Forms session : request processed in

    1.032 sec. Received 8 bytes, returned 8 bytes.

    Postリクエストは、プラグマ・ヘッダーの値により、次のように大きく分類され

    ます。

    正のプラグマ・ヘッダー

    正のプラグマとゼロ以外のコンテンツ長を持つ Postリクエストは、ビルトインの

    実行などの通常の Forms操作または問合せやストアド・プロシージャの実行のよ

    うなデータベース操作に使用されます。

    例を示します。正のプラグマ・ヘッダーのある Postリクエスト

    Got POST request, length = 20

    HTTP request headers:

    PRAGMA: 9

    CONTENT-TYPE: application/octet-stream

    USER-AGENT: Java1.3.1.17-internal

    HOST: mymachine.domain:8889

    ACCEPT: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2

    CONNECTION: keep-alive

    CONTENT-LENGTH: 20

    Existing servlet session, id =

    8a03931b22b97634765bbfc84cffa15ccf8f70d1919c, not from cookie

    forms90web: Forms session : request processed in 0.000 sec.

    Received 20 bytes, returned 7 bytes.

    Forms Listener Servlet のトラブルシューティング

    14

    Oracle Corporation 発行「Troubleshooting the Forms Listener Servlet」の翻訳版です。

  • 負のプラグマ・ヘッダー

    負のプラグマ・ヘッダーのある Postリクエストは、0(ゼロ)のコンテンツ長を

    持つ再試行リクエストに使用され、Formsランタイム・プロセスが前のリクエス

    トを完了したかどうかを調べます。Formsランタイム・プロセスに長時間実行リ

    クエスト(問合せの実行など)が送信されたとき、Listener Servletは、リクエスト

    の終了までデフォルト時間を 1秒待ちます。1秒のデフォルト時間は、

    maxBlockTimeと呼ばれる Listener Servletパラメータを使用して構成できます。問

    合せが終了しない場合、Listener Servletは、クライアントに busyレスポンスを送

    信し、クライアントに再試行を要求します。次に、クライアントは、負のプラグ

    マのある 0(ゼロ)のコンテンツ長の retryリクエストを送信し、前のリクエスト

    が終了したかどうかを確認します。この busyレスポンスと retryリクエスト対話

    は、Formsランタイム・プロセスが問合せを終了するまで続きます。

    例を示します。負のプラグマ・ヘッダーのある Postリクエスト

    Got POST request, length = 0

    HTTP request headers:

    PRAGMA: -21

    CONTENT-TYPE: application/octet-stream

    USER-AGENT: Java1.3.1.17-internal

    HOST: mymachine.domain:8889

    ACCEPT: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2

    CONNECTION: keep-alive

    CONTENT-LENGTH: 0

    Existing servlet session, id = 27f6412da05c426ab47db4ae77636113,

    not from cookie

    Forms session : request processed in 1.003 sec. Received 0 bytes,

    Returned 0 bytes

    Read timed out. Sending Response Pending with retry time = 200

    Forms session : request processed in 1.003 sec. Received 0 bytes,

    returned 0 bytes.

    Read timed out. Sending Response Pending with retry time = 200

    Forms Listener Servlet のトラブルシューティング

    15

    Oracle Corporation 発行「Troubleshooting the Forms Listener Servlet」の翻訳版です。

  • 複製の正のプラグマ・ヘッダー

    複製プラグマのある Postリクエストは、Formsセッションの停止を要求するター

    ミナルの 0(ゼロ)のコンテンツ長のクローズ・リクエストに使用されます。こ

    の Postリクエストには、値 Closeの付いた追加 IFESSIONヘッダーが含まれます。

    例を示します。複製プラグマ・ヘッダーのある Postリクエスト

    Got POST request, length = 16

    HTTP request headers

    PRAGMA: 13

    CONTENT-TYPE: application/octet-stream

    USER-AGENT: Java1.3.1.17-internal

    HOST: ukp16646.uk.oracle.com:8889

    ACCEPT: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2

    CONNECTION: keep-alive

    CONTENT-LENGTH: 16

    Existing servlet session, id = 8a03931b22b97634765bbfc84cffa15ccf8f70d1919c, not from cookie

    Forms session : request processed in 0.041 sec. Received 16 bytes, returned 90 bytes.

    Got POST request, length = 0

    HTTP request headers

    PRAGMA: 13

    CONTENT-TYPE: application/octet-stream

    IFSESSION: close

    USER-AGENT: Java1.3.1.17-internal

    HOST: ukp16646.uk.oracle.com:8889

    ACCEPT: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2

    CONNECTION: keep-alive

    CONTENT-LENGTH: 0

    Existing servlet session, id =

    8a03931b22b97634765bbfc84cffa15ccf8f70d1919c, not from cookie

    Got close Forms Session request, forwarding 0 length request to runtime

    Forms session ended

    Total duration of network exchanges: 0.471

    Total number of network exchanges: 12 (0 "long" ones over 1.000 sec)

    Average time for one network exchange (excluding long ones): 0.039

    Total bytes: sent 5,635, received 655

    RunformSession.valueUnbound(): stopping server process

    RunformSession.stop(): Invalidating servlet session

    Forms Listener Servlet のトラブルシューティング

    16

    Oracle Corporation 発行「Troubleshooting the Forms Listener Servlet」の翻訳版です。

  • 異なるタイプのエラーの検出

    前述した様々なトレースおよびログ・ファイルで提供される診断情報を使用し、

    様々なエラーと問題の原因を効率的に検出します。

    クライアントのエラー

    クライアントのエラーは、Forms Javaクライアント・アプレットの問題により発

    生します。これらのエラーは次のように検出できます。

    Jinitiatorトレース・ファイルには、通常、有用なスタック・ダンプがあります。

    application.logファイルは、エラーの後に Formsランタイム・プロセスの動作に関

    する情報を提供します。エラー後でもクライアント・アプレットがサーバーから

    のハートビートに応答できる場合、Formsランタイム・プロセスは終了せず、デッ

    ドロックまたはオーファン・プロセスになります。Formsランタイム・プロセス

    は、FORMS90_TIMEOUT期間の後、適切に終了することもあります。

    例を示します。Jinitiatorトレース・ファイルの次の Javaスタック・トレースは、

    モーダル・ウィンドウ(アラート・ボックスのようなもの)のマウス・イベント

    により発生した Formsアプレットのエラーを示します。

    Exception occurred during event dispatching:

    java.lang.ArrayIndexOutOfBoundsException: -1 < 0

    at java.util.Vector.elementAt(Unknown Source)

    at oracle.ewt.lwAWT.lwWindow.SystemModalStyle.grabMouseEvent(Unknown Source)

    at oracle.ewt.lwAWT.lwWindow.LWWindow$MouseGrab.grabMouseEvent(Unknown Source)

    at oracle.ewt.lwAWT.lwWindow.LWWindow$MouseGrab.mouseExited(Unknown Source)

    at java.awt.AWTEventMulticaster.mouseExited(Unknown Source)

    at oracle.ewt.event.tracking.GlassMouseGrabProvider.processMouseGrabs(Unknown Source)

    at oracle.ewt.event.tracking.GlassMouseGrabProvider$Disp._redispatchEvent(Unknown Source)

    at oracle.ewt.event.tracking.GlassMouseGrabProvider$Disp._redispatchEvent(Unknown Source)

    at oracle.ewt.event.tracking.GlassMouseGrabProvider$Disp._checkTarget(Unknown Source)

    at oracle.ewt.event.tracking.GlassMouseGrabProvider$Disp.mouseClicked(Unknown Source)

    at java.awt.Component.processMouseEvent(Unknown Source)

    Forms Listener Servlet のトラブルシューティング

    17

    Oracle Corporation 発行「Troubleshooting the Forms Listener Servlet」の翻訳版です。

  • at oracle.ewt.lwAWT.LWComponent.processMouseEvent(Unknown Source)

    at java.awt.Component.processEvent(Unknown Source)

    at java.awt.Container.processEvent(Unknown Source)

    at oracle.ewt.lwAWT.LWComponent.processEventImpl(Unknown Source)

    at oracle.ewt.lwAWT.LWComponent.redispatchEvent(Unknown Source)

    at oracle.ewt.lwAWT.LWComponent.processEvent(Unknown Source)

    at java.awt.Component.dispatchEventImpl(Unknown Source)

    at java.awt.Container.dispatchEventImpl(Unknown Source)

    at java.awt.Component.dispatchEvent(Unknown Source)

    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)

    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)

    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)

    at java.awt.Container.dispatchEventImpl(Unknown Source)

    at java.awt.Component.dispatchEvent(Unknown Source)

    at java.awt.EventQueue.dispatchEvent(Unknown Source)

    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)

    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)

    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

    at java.awt.EventDispatchThread.run(Unknown Source)

    Forms Listener Servlet のトラブルシューティング

    18

    Oracle Corporation 発行「Troubleshooting the Forms Listener Servlet」の翻訳版です。

  • ネットワーク・エラー

    ネットワーク・エラーは、ルーター、プロキシ・サーバー、ファイアウォール、

    ロード・バランサなど、各種ネットワーク機器が原因で発生した待ち時間やパケッ

    ト・ロスまたは異常のようなネットワーク問題により発生します。これらのエラー

    は次のように検出できます。

    • access_logと application.logファイルは、Get/Postリクエスト間でのさらに

    長い時間間隔を示します。

    • application.logファイルには、ネットワークのパケット・ロスにより、ク

    ライアントがリクエストの再送を示す、同一のプラグマ・ヘッダー番号

    が付いた Postリクエストの複製が存在する場合があります。通常では、

    Formsセッションを終了させる最後の Postリクエストのみに複製プラグ

    マ・ヘッダー番号が存在します。

    • application.logには、PRAGMAや CONTENT-LENGTHのような重要な http

    ヘッダーのない Postリクエストが含まれる場合があり、これはネット

    ワーク装置がクライアントからのリクエストを効率的に操作したことを

    示します。

    ネットワーク・トレース・ツールおよび

    Sniffer は、これらのエラーの原因の詳しい診断に使用できます。ブラウザのクラ

    イアントとのネットワーク・トラフィッ

    クのトレースに ethereal(http://www.etheral.com)やiehttpheaders(http://www.blunck.info/ieHTTPHeaders.html)などの簡単なトレース・ユーティリティをクライアント PC にインストールできます。

    例を示します。

    次の access_logおよび application.logは、同様のプラグマ 45ヘッダーが付いた、

    リクエスト間の時間間隔が 2分の Postリクエストを示します。

    ACCESS_LOG

    123.321.41.24 - - [20/Jun/2003:07:45:54 +0200] "POST /ecap/jecap/oracle.forms.servlet.ListenerServlet/debug?JServSessionIdjecap=y99r25ugm1.nkbKq79ycALJmQ5Go6XNr3COc30MbK-- HTTP/1.1" 200 147 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Win32)"\ 0 123.321.41.24 - - [20/Jun/2003:07:47:55 +0200] "POST /ecap/jecap/oracle.forms.servlet.ListenerServlet/debug?JServSessionIdjecap=y99r25ugm1.nkbKq79ycALJmQ5Go6XNr3COc30MbK-- HTTP/1.1" 200 64200 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Win32)"

    \ 0

    APPLICATION.LOG

    Got POST request, length = 2

    HTTP request headers:

    user-agent: Mozilla/4.0 (compatible; MSIE 6.0; Win32)

    x-forwarded-host: sso.domain.co

    accept-language: de

    [20/06/2003 07:45:54:938 GMT+01:00]

    ***********************************************

    x-forwarded-for: 123.111.22.13

    connection: close

    Forms Listener Servlet のトラブルシューティング

    19

    Oracle Corporation 発行「Troubleshooting the Forms Listener Servlet」の翻訳版です。

  • [20/06/2003 07:45:54:939 GMT+01:00] Got POST request, length = 2

    x-forwarded-server: sso.domain.co

    content-length: 2

    [20/06/2003 07:45:54:939 GMT+01:00] HTTP request headers:

    cookie: JSESSIONID=FLLNAFLBOCBN;

    JServSessionIdjecap=y99r25ugm1.nkbKq79ycALJmQ5Go6XNr3COc30MbK--

    content-type: application/octet-stream

    [20/06/2003 07:45:54:939 GMT+01:00]

    user-agent: Mozilla/4.0 (compatible; MSIE 6.0; Win32)

    accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2

    authorization: Basic ZGwyMGJ1bjpsaWZlYm9vazIx

    [20/06/2003 07:45:54:939 GMT+01:00] x-forwarded-host:

    sso.domain.co

    via: 1.0 sso.domain.co

    host: 123.321.37.46:8080

    [20/06/2003 07:45:54:939 GMT+01:00]

    accept-language: de

    pragma: 45

    Existing servlet session, id =

    y99r25ugm1.nkbKq79ycALJmQ5Go6XNr3COc30MbK--, from cookie

    [20/06/2003 07:45:54:939 GMT+01:00] x-forwarded-for:

    123.111.22.13

    [20/06/2003 07:45:54:939 GMT+01:00] connection: close

    [20/06/2003 07:45:54:939 GMT+01:00] x-forwarded-server:

    sso.domain.co

    [20/06/2003 07:45:54:939 GMT+01:00] content-length: 2

    [20/06/2003 07:45:54:939 GMT+01:00] cookie:

    JSESSIONID=FLLNAFLBOCBN;

    JServSessionIdjecap=y99r25ugm1.nkbKq79ycALJmQ5Go6XNr3COc30MbK--

    [20/06/2003 07:45:54:939 GMT+01:00] content-type:

    application/octet-stream

    [20/06/2003 07:45:54:939 GMT+01:00] accept: text/html,

    image/gif, image/jpeg, *; q=.2, */*; q=.2

    [20/06/2003 07:45:54:939 GMT+01:00] authorization:

    Basic ZGwyMGJ1bjpsaWZlYm9vazIx

    [20/06/2003 07:45:54:940 GMT+01:00] via: 1.0

    sso.domain.co

    [20/06/2003 07:45:54:940 GMT+01:00] host:

    123.321.37.46:8080

    [20/06/2003 07:45:54:940 GMT+01:00] pragma: 45

    [20/06/2003 07:45:54:940 GMT+01:00] Existing servlet session, id

    = y99r25ugm1.nkbKq79ycALJmQ5Go6XNr3COc30MbK--, from cookie

    Forms Listener Servlet のトラブルシューティング

    20

    Oracle Corporation 発行「Troubleshooting the Forms Listener Servlet」の翻訳版です。

    Forms session : request processed in 0.006 sec. Received 2 bytes,

    returned 147 bytes.

  • [20/06/2003 07:45:54:946 GMT+01:00] Forms session : request

    processed in 0.006 sec. Received 2 bytes, returned 147 bytes.

    Got POST request, length = 2

    HTTP request headers:

    user-agent: Mozilla/4.0 (compatible; MSIE 6.0; Win32)

    x-forwarded-host: sso.domain.co

    accept-language: de

    x-forwarded-for: 123.111.22.13[20/06/2003 07:47:55:450

    GMT+01:00] ***********************************************

    connection: close

    x-forwarded-server: sso.domain.co[20/06/2003 07:47:55:450

    GMT+01:00] Got POST request, length = 2

    content-length: 2

    [20/06/2003 07:47:55:451 GMT+01:00] HTTP request headers:

    cookie: JSESSIONID=FLLNAFLBOCBN;

    JServSessionIdjecap=y99r25ugm1.nkbKq79ycALJmQ5Go6XNr3COc30MbK-

    content-type: application/octet-stream

    [20/06/2003 07:47:55:451 GMT+01:00] user-agent:

    Mozilla/4.0 (compatible; MSIE 6.0; Win32)

    accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2

    authorization: Basic ZGwyMGJ1bjpsaWZlYm9vazIx

    [20/06/2003 07:47:55:451 GMT+01:00] x-forwarded-host:

    sso.domain.co

    via: 1.0 sso.domain.co

    host: 123.321.37.46:8080

    [20/06/2003 07:47:55:451 GMT+01:00] accept-language: de

    pragma: 45

    Existing servlet session, id =

    y99r25ugm1.nkbKq79ycALJmQ5Go6XNr3COc30MbK--, from

    cookie[20/06/2003 07:47:55:451 GMT+01:00] x-forwarded-for:

    123.111.22.13

    [20/06/2003 07:47:55:451 GMT+01:00] connection: close

    [20/06/2003 07:47:55:451 GMT+01:00] x-forwarded-server:

    sso.domain.co

    [20/06/2003 07:47:55:452 GMT+01:00] content-length: 2

    [20/06/2003 07:47:55:452 GMT+01:00] cookie:

    JSESSIONID=FLLNAFLBOCBN;

    JServSessionIdjecap=y99r25ugm1.nkbKq79ycALJmQ5Go6XNr3COc30MbK--

    [20/06/2003 07:47:55:452 GMT+01:00] content-type:

    application/octet-stream

    Forms Listener Servlet のトラブルシューティング

    21

    Oracle Corporation 発行「Troubleshooting the Forms Listener Servlet」の翻訳版です。

  • PL/SQL エラー

    Formsランタイム・プロセスは、データベース操作の実行中、ファイルの入出力

    中、PL/SQLコード等の実行中などに PL/SQLエラーを発生させることがあります。

    これらのエラーは、有用な FRM/ORAメッセージを示します。ただし、

    FRM-92101/FRM-92102のような一般的なエラー・メッセージも示します。これら

    のエラーは次のように検出できます。

    FRM-93000エラーは通常、エラーが原因で Listener Servletが Formsランタイム・

    プロセスと通信できない場合に application.logファイルに表示されます。

    Jinitiatorトレース・ファイルは、多くの場合、次の例外を示します。

    oracle.forms.net.ConnectionException:Forms session

    aborted:unable to communicate with runtime process

    PL/SQLエラーは、次の機能により詳しく診断できます。

    • Sqlnet tracing

    • Forms Runtime Diagnostics

    • Forms Trace

    例を示します。

    Jinitiatorトレース・ファイルは、クライアントとランタイム・プロセスとの通信

    が切断されたことを示します。application.logファイルの FRM-93000エラーは、

    Forms Listener Servletセッションが Formsランタイム・プロセスと通信できないこ

    とを確認します。

    Jinitiator トレース・ファイル

    Java Exception

    oracle.forms.net.ConnectionException:Forms session

    aborted:unable tocommunicate with runtime process

    at java.lang.Throwable.(Compiled Code)

    at java.lang.Exception.(Compiled Code)

    at java.ioException.(IOException.java:45)

    at oracle.forms.netConnectionException.(Unknown Source)

    at

    oracle.forms.netConnectionException.createConnectionException(C

    ompiled Code)

    at oracle.forms.net.HTTPNStream.getResponse(Compiled Code)

    at oracle.forms.net.HTTPNStream.doFlush(Compiled Code)

    at oracle.forms.net.HTTPNstream.flush(Compiled Code)

    at java.io.DataOutputStream.flush(Compiled Code)

    at oracle.forms.net.StreamMessageWrite.run(Compiled Code)

    .

    Forms Listener Servlet のトラブルシューティング

    22

    Oracle Corporation 発行「Troubleshooting the Forms Listener Servlet」の翻訳版です。

  • APPLICATION.LOG

    [17/05/2002 22:32:48:060 JST] Got POST request, length = 8

    [17/05/2002 22:32:48:060 JST] HTTP request headers:

    [17/05/2002 22:32:48:060 JST] content-type:

    application/x-www-form-urlencoded

    @ [17/05/2002 22:32:48:060 JST] host: tsoeda04.jp.oracle.com

    [17/05/2002 22:32:48:060 JST] accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2

    [17/05/2002 22:32:48:060 JST] user-agent: Java1.1.8.16

    [17/05/2002 22:32:48:060 JST] pragma: 7188

    [17/05/2002 22:32:48:060 JST] content-length: 8

    [17/05/2002 22:32:48:060 JST] connection: keep-alive

    [17/05/2002 22:32:48:060 JST] Existing servlet session, id = 5eozm0ffd1.JS4, not from cookie

    [17/05/2002 22:32:48:060 JST] writing data into runform

    [17/05/2002 22:32:48:070 JST] Forms session aborted: unable to communicate with runtime process.

    [17/05/2002 22:32:48:511 JST] Forms session exception stack trace:

    java.io.IOException: FRM-93000: Unexpected internal error.

    Details : Invalid or absent Content-Length from runform

    at oracle.forms.servlet.ListenerServlet.forwardResponseFromRunform(Unknown Source)

    at java.lang.Exception.(Exception.java, Compiled Code)

    at java.io.IOException.(IOException.java, Compiled Code)

    at oracle.forms.servlet.ListenerServlet.forwardResponseFromRunform(Unknown Source)

    at oracle.forms.servlet.ListenerServlet.doPost(Unknown Source)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java, Compiled Code)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java, Compiled Code)

    at org.apache.jserv.JServConnection.processRequest(JServConnection.java, Compiled Code)

    at org.apache.jserv.JServConnection.run(JServConnection.java, Compiled Code)

    at java.lang.Thread.run(Thread.java, Compiled Code)

    Forms Listener Servlet のトラブルシューティング

    23

    Oracle Corporation 発行「Troubleshooting the Forms Listener Servlet」の翻訳版です。

  • JVM エラー

    Forms Listener Servletが実行中(OC4Jまたは Jserv)の JVMコンテナもエラー発

    生の原因である場合があります。たとえば、JVMは、最大ヒープ・サイズ限度ま

    たはファイル記述子のようなオペレーティング・システムの制限を超えることが

    あります。また、アイドル状態の Listener Servletセッションを終了する場合、OC4J

    セッションのタイムアウトが発生する場合もあります。application.logファイルの

    Javaスタック・ダンプは、これらのエラーの検出に役立ちます。

    例を示します。

    application.logファイルの次の Javaスタック・ダンプは、セッションのタイムアウ

    トを示します。

    [17/05/2002 22:32:48:060 JST] Got POST request, length = 8

    [17/05/2002 22:32:48:060 JST] HTTP request headers:

    [17/05/2002 22:32:48:060 JST] content-type:

    application/x-www-form-urlencoded

    @ [17/05/2002 22:32:48:060 JST] host:

    tsoeda04.jp.oracle.com

    [17/05/2002 22:32:48:060 JST] accept: text/html,

    image/gif, image/jpeg, *; q=.2, */*; q=.2

    [17/05/2002 22:32:48:060 JST] user-agent: Java1.1.8.16

    [17/05/2002 22:32:48:060 JST] pragma: 7188

    [17/05/2002 22:32:48:060 JST] content-length: 8

    [17/05/2002 22:32:48:060 JST] connection: keep-alive

    [17/05/2002 22:32:48:060 JST] Existing servlet session, id =

    5eozm0ffd1.JS4, not from cookie

    [17/05/2002 22:32:48:060 JST] writing data into runform

    [17/05/2002 22:32:48:070 JST] Forms session aborted: unable to

    communicate with runtime process.

    [17/05/2002 22:32:48:511 JST] Forms session exception stack

    trace:

    java.io.InterruptedIOException: Read timed out

    at java.net.SocketInputStream.socketRead(Native Method)

    at

    java.net.SocketInputStream.read(SocketInputStream.java:90)

    at

    java.io.BufferedInputStream.fill(BufferedInputStream.java:190)

    at

    java.io.BufferedInputStream.read(BufferedInputStream.java,

    Compiled Code)

    Forms Listener Servlet のトラブルシューティング

    24

    Oracle Corporation 発行「Troubleshooting the Forms Listener Servlet」の翻訳版です。

  • まとめ

    エンタープライズ・アプリケーション同様、Oracle Formsアプリケーションの開

    発と管理には、定期的な検証やデバッグ、および監視が必要です。Webインフラ

    ストラクチャは性質が異なるため、診断情報を収集して解釈することが困難にな

    る傾向があります。Forms Listener Servletは、わかりやすい非常に有用な診断情報

    を提供し、WebにデプロイされたOracle Application Server 10gのForms アプリケー

    ションにおいて、難解で断続的に発生する様々な問題を、効果的に検出すること

    を支援します。

    Forms Listener Servlet のトラブルシューティング

    25

    Oracle Corporation 発行「Troubleshooting the Forms Listener Servlet」の翻訳版です。

  • Forms Listener Servlet のトラブルシューティング 2005 年 1 月 著書: Kavitha Prakash 寄稿者: Grant Ronald Oracle Corporation World Headquarters 500 Oracle Parkway Redwood Shores, CA 94065 U.S.A. 海外からのお問合せ窓口: 電話: +1.650.506.7000 ファックス: +1.650.506.7200 www.oracle.com Copyright © 2005, Oracle. All rights reserved. この文書はあくまで参考資料であり、掲載されている情報は予告なしに変更されることがあります。 オラクル社は、本ドキュメントの無謬性を保証しません。また、本ドキュメントは、法律で明示的または暗黙的に記載

    されているかどうかに関係なく、商品性または特定の目的に対する適合性に関する暗黙の保証や条件を含む一切の保証

    または条件に制約されません。オラクル社は、本書の内容に関していかなる保証もいたしません。また、本書により、

    契約上の直接的および間接的義務も発生しません。本書は、事前の書面による承諾を得ることなく、電子的または物理

    的に、いかなる形式や方法によっても再生または伝送することはできません。 Oracle は、Oracle Corporation の登録商標です。その他の名称は、それぞれの所有者の商標です。

    概要目的対象ユーザー

    Forms Listener ServletとはForms Listener Servletのトラブルシューティングが必要な理由

    Listener Servletの診断情報があるログ・ファイルJinitiatorトレース・ファイルOracle HTTP Server のAccess_logおよびError_logOC4J_BI_Forms Application.logOracle 9iAS Rel 1 Forms Services(Forms 6i(6.0.8�Oracle 9iAS Rel 2(9.0.2)およびOracle Application SerOracle 9iDS Rel 2(9.0.2)Oracle Developer Suite 10g(9.0.4)

    ログ・ファイルの情報の解釈と診断Jinitiatorトレース・ファイルOracle HTTP ServerのAccess_logおよびError_logOC4J_BI_Forms Application.logGetリクエストPostリクエストPRAGMACOOKIEHOSTCONTENT-LENGTHACCEPT-LANGUAGE:USER-AGENTIFSESSIONCONTENT-TYPE正のプラグマ・ヘッダー負のプラグマ・ヘッダー複製の正のプラグマ・ヘッダー

    異なるタイプのエラーの検出クライアントのエラーネットワーク・エラー例を示します。ACCESS_LOGAPPLICATION.LOG

    PL/SQLエラー例を示します。Jinitiatorトレース・ファイルAPPLICATION.LOG

    JVMエラー例を示します。

    まとめ