116
Forms診断テクニック 診断テクニック 診断テクニック 診断テクニック Oracleテクニカル テクニカル テクニカル テクニカル・ホワイトペーパー ・ホワイトペーパー ・ホワイトペーパー ・ホワイトペーパー 20006

Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Embed Size (px)

Citation preview

Page 1: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック診断テクニック診断テクニック診断テクニック

Oracleテクニカルテクニカルテクニカルテクニカル・ホワイトペーパー・ホワイトペーパー・ホワイトペーパー・ホワイトペーパー2000年年年年6月月月月

Page 2: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー ii2000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

目次目次目次目次

1. はじめに ............................................................................................................................ 11.1 目的 ........................................................................................................................................... 11.2 対象読者 .................................................................................................................................... 11.3 用語 ........................................................................................................................................... 11.4 問題解決のための診断アプローチ ................................................................................................ 1

1.4.1 問題/セクションのマトリクス ........................................................................................... 3

2. FORMS SERVERの構成 ..................................................................................................... 42.1 概要 ........................................................................................................................................... 42.2 APPLETVIEWERの構成 ............................................................................................................. 6

2.2.1 クライアントにAppletviewerをインストールする ............................................................... 62.2.2 テスト・フォームの作成 ................................................................................................... 72.2.3 Web Serverの構成 ............................................................................................................. 72.2.4 Forms Listenerの起動 ........................................................................................................ 82.2.5 HTMLファイルの作成 ....................................................................................................... 92.2.6 Webを通じてフォームを実行する .....................................................................................11

2.3 APPLETVIEWERを使用する場合によくある問題 ........................................................................122.3.1 Web Serverに接続できない ..............................................................................................122.3.2 Web Serverの仮想ディレクトリが不適切 ..........................................................................122.3.3 CODEBASEが不適切 .......................................................................................................132.3.4 Forms Listenerに接続できない .........................................................................................13

2.4 JINITIATORの構成....................................................................................................................132.4.1 Oracle JInitiatorをクライアントにインストールする .........................................................132.4.2 Oracle JInitiatorをロードするHTMLファイルを作成する ...................................................142.4.3 JInitiatorとMicrosoft Internet Explorer ..............................................................................142.4.4 JInitiatorとNetscape Navigator..........................................................................................152.4.5 JInitiatorとNetscape NavigatorおよびInternet Explorer ......................................................182.4.6 自分のブラウザで使用されているOracle JInitiatorのバージョンを調べるには .....................192.4.7 NetscapeにインストールされているJInitiatorのバージョンを調べるには ............................19

2.5 ORACLE JINITIATORおよびINTERNET EXPLORERでのHTMLファイルの問題 .........................202.5.1 起動時にJARファイルを参照するjava.io.FileNotFoundException ........................................202.5.2 起動時のパフォーマンスが悪く、多数のクラス・ファイルがロードされるが、JARファイルは

1つもロードされない .......................................................................................................212.5.3 FRM-99999:Registry file

http://ukp14998.uk.oracle.com/forms60codes/oracle/forms/registry/Registry.datが見つかりません ................................................................................................................................22

2.5.4 「ファイルが見つかりません」エラー ..............................................................................232.5.5 「Javaアプレットをロードしています...」というメッセージが表示されて、ブラウザが停止す

る ...................................................................................................................................242.5.6 アプレットが表示されず、赤いxと共に空のボックスが表示される ....................................242.5.7 ブラウザを終了して再起動する必要がある場合 .................................................................25

2.6 ORACLE JINITIATORとNETSCAPE NAVIGATORとのHTMLファイルの問題 .............................262.6.1 getHashKeyロード・アプレットでのNullPointException ....................................................262.6.2 http://.../xxx.jarに接続できない、およびgetInputStreamでのFileNotFoundException ...........262.6.3 JInitiatorでFormsを実行しようとするとNetscapeに空白ページが表示される.......................272.6.4 Netscapeに空白ページが表示され、多数のクラス・ファイルがロードされる ......................282.6.5 Netscapeに空白ページが表示され、Javaコンソールにはバージョンとユーザー・ホーム・ディ

レクトリが表示される .....................................................................................................28

Page 3: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー iii2000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

3. FRM-99999エラー ............................................................................................................ 293.1 FRM-99999の原因 .....................................................................................................................293.2 FRM-99999の解決法 ..................................................................................................................30

3.2.1 アプレットの表示内容 .....................................................................................................303.2.2 Javaコンソールの表示内容 ...............................................................................................323.2.3 サーバーは着信接続要求を認識したか? ...........................................................................333.2.4 サーバーで専用のFormsプロセスを起動するには ..............................................................353.2.5 サーバーがクラッシュしたか? ........................................................................................36

3.3 判明しているFRM-99999の原因 .................................................................................................373.3.1 構成上の問題 ...................................................................................................................373.3.2 判明しているバグ ............................................................................................................373.3.3 Forms 6.0のFRM-99999エラー .........................................................................................39

4. サーバーのクラッシュ ....................................................................................................... 434.1 ダンプ・ファイルの情報の内容 ..................................................................................................434.2 どのような手掛かりになるのか ..................................................................................................454.3 複数の環境でのテスト ...............................................................................................................45

5. クライアントのクラッシュ ................................................................................................. 465.1 ダンプ・ファイルの例 ...............................................................................................................465.2 何が表示され、どのように役立つのか ........................................................................................48

6. アプリケーションの停止 .................................................................................................... 496.1 クライアントのスレッド・ダンプを入手する ..............................................................................496.2 スタック・ダンプの例 ...............................................................................................................496.3 何が表示され、どのように役立つのか ........................................................................................526.4 アプリケーションの停止を引き起こす一般的な原因 ....................................................................52

7. 散発的なエラー ................................................................................................................ 537.1 ネットワークの問題の診断 .........................................................................................................537.2 PINGを使用してネットワークをチェックする ............................................................................53

7.2.1 PINGの構文 .....................................................................................................................537.2.2 サンプル出力 ...................................................................................................................547.2.3 traceroute / tracertの使用 ..................................................................................................557.2.4 netstatの使用 ...................................................................................................................567.2.5 問題の追跡 ......................................................................................................................57

7.3 FORMSのネットワーク統計 .......................................................................................................577.4 メモリーの問題 .........................................................................................................................58

7.4.1 JVMランタイム・オプションの設定 .................................................................................597.5 メモリー・リーク ......................................................................................................................60

7.5.1 メモリー・リークとは何か ...............................................................................................607.5.2 Javaでのメモリー・リーク ...............................................................................................617.5.3 メモリー・リークを識別する方法 .....................................................................................61

8. パフォーマンスの問題 ....................................................................................................... 628.1 ORACLE JDKでのキャッシング .................................................................................................62

8.1.1 キャッシングとは何か .....................................................................................................628.1.2 キャッシングが重要な理由 ...............................................................................................628.1.3 キャッシングが使用可能かどうかを調べるには .................................................................628.1.4 OJDK 1.1.7.15でのパフォーマンスの向上 .........................................................................638.1.5 OJCK 1.1.7.15の構成 .......................................................................................................65

8.2 FORMS LATENCY METER .........................................................................................................68

Page 4: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー iv2000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

8.2.1 Forms Latency Meterとは何か ..........................................................................................688.2.2 Forms Latency Meterを使用可能にする方法 ......................................................................688.2.3 Latency Meterを使用する理由 ..........................................................................................708.2.4 結果の例 .........................................................................................................................71

8.3 期待されるパフォーマンスの例 ..................................................................................................71

付録A-FORMS SERVER接続アクティビティ・ログ機能 .......................................................... 72A 1 サーバー・ログ機能をオンにする ...............................................................................................72A 2 サンプル出力 .............................................................................................................................73

付録B-FORMS RUNTIME DIAGNOSTICS(FRD:FORMSランタイム診断機能) ..................... 77B 1 FRDの起動 ................................................................................................................................77

B 1.1 コマンド・ラインからFRDを起動するには .......................................................................77B 1.2 WebからFRDを起動するには ...........................................................................................78B 1.3 Oracle Enterprise Manager(OEM)からFRDを起動するには .............................................80B 1.4 コマンド・ラインからFRDを起動するには .......................................................................82

B 2 FRDの出力 ................................................................................................................................83B 2.1 追跡対象のイベント .........................................................................................................83B 2.2 予想される出力 ...............................................................................................................83

B 2.2.1 ナビゲーション .................................................................................................83B 2.2.2 トリガー ...........................................................................................................84B 2.2.3 ビルトイン ........................................................................................................85B 2.2.4 メッセージ ........................................................................................................86B 2.2.5 ファイル・オープン ...........................................................................................86B 2.2.6 未処理の例外 .....................................................................................................86

B 2.3 データ・ダンプ ...............................................................................................................87B 2.3.1 環境ダンプ ........................................................................................................87B 2.3.2 状態ダンプ ........................................................................................................88B 2.3.3 記録されるイベント/情報のマトリクス ...............................................................89

B 3 FRD出力の利用法 ......................................................................................................................90B 4 機能/バージョンのマトリクス ....................................................................................................91B 5 FRD定数 ...................................................................................................................................91

付録C 用語集 ...................................................................................................................... 111

Page 5: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 12000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

1. はじめにはじめにはじめにはじめに

1.1 目的目的目的目的

本書では、Oracle Forms Serverを使用してWebを通じてアプリケーションを実行するときに問題を解決する方法を説明します。本書では、エラーの一般的な原因、インストレーションの検証方法、そして問題を診断するためのテクニックとツールについて説明します。

1.2 対象読者対象読者対象読者対象読者

本書は、Oracle Forms、特に Oracle Forms Serverの問題の診断と解決を担当するユーザーを対象としています。本書を読めば、診断プロセスについて理解し、情報を収集して最終的に問題を解決するためのテクニックとツールが分かります。

本書の内容には Oracle E-Business Suiteには適用されない部分が含まれているので、Oracle Applicationのシステム管理者は注意してください。Oracle E-Business Suiteの動作環境は Oracle Forms Server製品とは別に管理、確認されており、実行しようとする処置が Oracle E-Business Suiteでサポートされるものかどうかをオラクル社のカスタマーサポートに確認してから、作業を行うようにしてください。

1.3 用語用語用語用語

本書では、‘Forms Listener’とは、着信接続をリスニングするプロセスを意味します。‘Forms Runtime’および‘Forms Runtime Engine’とは、特定のユーザーから要求されたフォームを実行するためにサーバーで起動されるプロセスのことで、‘Forms Server’とは Forms Listenerと関連する Forms Runtimeを意味します。

1.4 問題解決のための診断アプローチ問題解決のための診断アプローチ問題解決のための診断アプローチ問題解決のための診断アプローチ

問題へのアプローチは人によって異なります。以下では、トランザクションのヒントをリストアップします。このリストは、問題解決の絶対的な指針ではなく、必ず解決することが保証されるものではありませんが、複雑な問題に対処する際の参考として利用してください。

• 体系的に考える

− 直感や憶測から問題の原因と思われる部分に飛びつかないこと。まず、その他の可能性をすべて除外できるかどうか考えてください。実際に痕跡が示している事実を見ようとせずに、自分の理論を裏付けるような痕跡を探すのに長い時間を費やすことがよくあります。

− 小さいことや明らかな事実を見逃さないこと。

• 問題を小分けにしてみる。

− 問題を扱いやすい大きさに分割してください。こうすれば、調査範囲を絞り込むことができます。納得いくまでその部分を調べてそこに問題がなければ、次の部分に進んでください。問題を診断するには、基本的な部分にまで対象領域を狭めると効果的です。オラクル社のカスタマーサポートに相談して解決策を入手する場合には、これが重要になります。

Page 6: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 22000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

− 何が起きたか、いつ起こったのか、どのように起こったのかを定義してください。また、何が起きなかったか、どのような場合には起こらなかったのか、を見極めることも同様に重要です。たとえば、同じ建物の中にいるユーザー全員にいつも午前 9時から 10時の間に問題が発生するとしたら、別の建物や午前 10時以降には問題が起きていないかどうかを確認することが重要です。午前 9時から 10時の間にユーザーが特定のプラットフォームを使用しているだけなのか、あるいは午前 9時から 10時が最もシステム負荷が高いという可能性もあります。

• エラー・メッセージを読む

− 当たり前のようですが、時にはエラー・テキストに必要な情報がはっきり書かれていることがあります。残念ながら、エラー・メッセージの解釈はいつも簡単というわけではありません。

たとえば、JInitiatorと Internet Explorerを使用している場合、CODEBASEタグを省略すると、次のようなエラー・メッセージが表示されます。

FRM-99999: レジストリ・ファイルhttp://ukp14998.uk.oracle.com/oracle/forms/registry/Registry.dat

がありません。

ここでは次のようなファイルが見当たらないと報告されています。

http://ukp14998.uk.oracle.com/oracle/forms/registry/Registry.dat

ukp14998.uk.oracle.comというマシンと勘違いしそうですが、Forms 6のインストレーションではこれに対応するディレクトリ構造があり、実際に Registry.datというファイルが存在します。ただし、URLはこのファイルを参照していないので、ブラウザでこのファイルにアクセスしようとすると、次のようなエラーが表示されます。

HTTP/1.0 404 Not Found

− 本書はエラー・メッセージを理解し、どのような処置を取ったら良いのかを判断する上で役立ちます。

• 可能であれば、問題を再現できるかどうか確認してください。

− 問題を自分で再現できれば、エンドユーザーが見過ごした動作に気づくことがあるかも知れません。必ず発生していたためにエンドユーザーがエラーと考えていなかったような動作もありえます。問題を再現できなければ、解決への一歩を踏み出していることになります。このような状況ではラップトップ・コンピュータが大変重宝します。自分のデスクで問題を再現できなければ、ラップトップをユーザーの所まで持って行って、そこで再現できるかどうか確かめてください。再現できれば、原因はソフトウェアの構成とは考えにくく、2つのデスクでのネットワーク接続の違いにあると考えられます。

Page 7: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 32000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

• 使用しようとしているツールを理解していることを確認してください。

診断ツールを使用する場合には、そのツールの使用法と、ツールによって表示されるデータの解釈の方法を理解しているかどうか確認してください。問題が発生する前に、十分時間をかけてツールを理解しておくことです。通常は、問題が発生してからは時間との戦いになり、ツールのことをゆっくり勉強している余裕はありません。

1.4.1 問題問題問題問題/セクションのマトリクスセクションのマトリクスセクションのマトリクスセクションのマトリクス

本書は非常に長いので、以下の表を手掛かりに特定の問題に関連するセクションを探してください。

Form

s Se

rverの構成

の構成

の構成

の構成

FRM

-999

99エラー

エラー

エラー

エラー

サーバーのクラッシュ

サーバーのクラッシュ

サーバーのクラッシュ

サーバーのクラッシュ

クライアントのクラッシュ

クライアントのクラッシュ

クライアントのクラッシュ

クライアントのクラッシュ

アプリケーションの停止

アプリケーションの停止

アプリケーションの停止

アプリケーションの停止

散発的な問題

散発的な問題

散発的な問題

散発的な問題

パフォーマンスの問題

パフォーマンスの問題

パフォーマンスの問題

パフォーマンスの問題

接続アクティビテイ

接続アクティビテイ

接続アクティビテイ

接続アクティビテイ・ログ機能

・ログ機能

・ログ機能

・ログ機能

Form

s R

untim

e診断機能

診断機能

診断機能

診断機能

問題問題問題問題/章章章章 2 3 4 5 6 7 8 A B

フォームが起動しない ○ ○

一部のフォームが起動しない ○ ○ ○

FRM-99999 ○ ○ ○ ○ ○ ○

クライアントでの Javaエラー ○ ○

クライアントのクラッシュ ○ ○

サーバーのクラッシュ ○ ○ ○ ○

アプリケーションの停止 ○ ○ ○ ○

断続的な問題 ○ ○ ○

Formsの起動が遅い ○ ○ ○

起動後のパフォーマンスが悪い ○ ○ ○

Page 8: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 42000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

2. FORMS SERVERの構成の構成の構成の構成

ここでは、最も簡単な実装方法を使用して Forms Serverを構成する手順と、正常にインストールされたことを確認する方法を説明します。

Forms Serverおよび Forms Serverアーキテクチャの構成に関する詳細は、オンライン・ヘルプを参照してください。また、以下の Oracle Webサイトでも関連するホワイトペーパーを参照できます。

http://www.oracle.com

http://otn.oracle.com

http://metalink.oracle.com

http://otn.oracle.co.jp (日本語)

2.1 概要概要概要概要

初めて Forms Serverをセットアップする場合、または新しいマシンに Forms Serverをインストールできない場合は、まず最も簡単なインストール方法を試してテクノロジを「実証」することをお奨めします。この後で、他の機能を追加しながら、最終的に希望する構成になるまでテストしていきます。こうすれば、基本的な FormsServerが適切にインストールされていること、Web Serverが適切に構成され、正常に機能していること、そして、クライアント・マシンが Forms ServerとWeb Serverの両方と通信できることを確認できます。

Oracle Forms Serverはさまざまな組み合わせで構成できます。

• 静的 HTML

− 最も分かりやすい実装形式です。この方法では、アプレットが Forms Listenerとの対話を開始するために必要なすべての情報と、Forms Server がフォームを実行するのに必要なすべての情報が HTMLファイルに入ります。

• カートリッジ

− この実装方法では、渡される URLに関係なく、カートリッジは一部の情報を認識できます。カートリッジに URLが渡されると、カートリッジは URLで渡された追加情報をもとに、フォームを実行するために必要な HTMLファイルを生成します。

• CGI

− 6iの新機能

− Forms CGIは、Formsカートリッジと同じ機能を提供しますが、CGIをサポートするどのWeb Serverにも使用できます。Forms CGIは URLの一部として渡されたパラメータを使用して、動的に HTMLファイルを作成します。また、プライマリ・ノードとセカンダリ・ノードの間のロード・バランスも可能になります。

さらに、認定済みのクライアント・ブラウザを選択する方法もあります。

Page 9: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 52000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

• Appletviewer

− Appletviewerは、Javasoftが Java Development Kitで提供するアプリケーションです。Appletviewerを使用すれば、ユーザーは Java Appletを表示できます。Appletviewerでアプレットを実行するには、関連する APPLETタグを含んだ HTMLファイルが必要ですが、Appletviewerで HTMLを表示することはできません。

− Formsには、Oracle JDK(OJDK)に基づく Appletviewerのコピーが含まれています。Oracle JDKは、Javasoft JDKに基づいており、安定性とパフォーマンスを向上させるためにバグ fixが追加されているだけで、JDKの Oracle固有の実装ではありません。

− Appletviewerと Oracle E-Business Suite 11iとの動作はまだ確認されていません。

• JInitiator

− JInitiatorは、Oracle JDKに基づく Java Runtime Environment(Java実行環境)を提供するブラウザのプラグインです。このプラグインを使用すれば、ユーザーは各自のブラウザが提供するのとは別のJava バージョンが必要なアプレットを実行することができます。つまり、アプレットの実行はプラグインによって処理されます。JInitiatorを使用すれば、ユーザーは使い慣れたブラウザを使用することができます。JInitiatorの使用法については、セクション 2.4で詳しく説明します。

• ネイティブ・ブラウザ

− ブラウザの中には Java Runtime Environmentが組み込まれているものがあります。最新の JREを実装するベンダーが増えてきていますから、このようなブラウザのリストは常に更新されています。ネイティブ・ブラウザのサポートに関する情報は、http://otn.oracle.com/products/developer/ またはhttp://otn.oracle.co.jp/を参照してください。

さらに、Forms Runtimeと Javaアプレットの間で使用する通信プロトコルを選択できます。

• ソケット

− インターネット・ベースのテクノロジでは通信に「ソケット」を使用するものが多数あります。ソケットとは、ネットワークを通じて通信するプログラムのナンバリング・システムのようなものだと考えてください。クライアントとサーバーは、ソケットまたはポート番号(等々)でそれぞれ識別されます。クライアントとサーバー間のプログラム部分の通信は、いわゆる「ソケット接続」を通じて行われます。

− Forms 4.5.10.x、5.0.x、6.0.x、6iでサポート。

− サーバーとの通信には TCP/IPプロトコルを使用。

− 6iではデフォルトの通信方法。

• HTTP

− このモードでも「ソケット接続」が使用されますが、Forms Server と Java クライアントの間でやり取りされるメッセージが HTTPパケットにカプセル化される HTTPソケット接続が使用されます。

− 6.0ではベータ、6iではプロダクション。

Page 10: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 62000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

− ファイアーウォールを通じた通信が可能。

− HTTP 1.1を使用。

− インターネットを通じた安全な通信を確保するために SSLをサポート。

2.2 APPLETVIEWERの構成の構成の構成の構成

この要件リストでは、すでにWeb Serverが機能し、各プラットフォームのインストール手順にしたがって FormsServerがインストールされていることを前提としています。Web Serverを実行していない場合は、インストールしてください。インストールする前に、Web Serverが HTMLページに対応していることを確認してください。

2.2.1 クライアントにクライアントにクライアントにクライアントに Appletviewerをインストールするをインストールするをインストールするをインストールする

Appletviewerは、Oracle Forms Serverの配布 CDに含まれています。Appletviewerは、Oracleの Webサイトからもダウンロードできます。

Appletviewerにはいくつかのバージョンがあり、すべての構成で Appletviewerの使用がサポートされるわけではありません。詳細は、オラクル社のカスタマーサポートにお問い合わせください。

Appletviewerが適切にインストールされていることを確認するには、MSDOSコマンド・プロンプト・ウィンドウを開き、Appletviewerがインストールされているディレクトリ(c:¥appletviewerなど)を参照し、<インストール・ディレクトリ>¥jdk¥binディレクトリにナビゲートして、次のように入力してください。

appletviewer

Appletviewer がインストールされていれば、コマンドの使用法を説明したメッセージが表示されます。Appletviewer がインストールされていない場合は、コマンドを認識できません、というメッセージが表示されます。1

1 注:Appletviewerは$ORACLE_HOMEディレクトリに限らず、任意のディレクトリにインストールできます。PATH設定にAppletviewerを含めれば、簡単にスタートできます。

Page 11: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 72000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

Microsoft(R) Windows NT(TM)

(C) Copyright 1985-1996 Microsoft Corp.

D:¥>cd jdk¥1_1_7_20o¥bin

D:¥jdk¥1_1_7_20o¥bin>appletviewer

usage: appletviewer [-debug] [-J<runtime flag>] url|file ...

D:¥jdk¥1_1_7_20o¥bin>cd ..

D:¥jdk¥1_1_7_20o>appletviewer

指定した名前は、内部コマンドまたは外部コマンド、

操作可能なプログラムまたはバッチ ファイルとして認識されません。

D:¥jdk¥1_1_7_20o>

2.2.2 テストテストテストテスト・フォームの作成・フォームの作成・フォームの作成・フォームの作成

Forms Serverが適切にインストールされているかどうかをテストするには、簡単なフォームが必要です。アプリケーションから「簡単な」フォームを選ぶのは避けてください。アプリケーションのフォームは実際にはそれほど簡単なものではなく、特定のカスタマイズ・メニューや付属のライブラリ、データベース接続などが必要になることが多いからです。

簡単なフォームとは、データベース接続が不要で、簡単なキャンバスといくつかのテキスト、ボタンで構成されることが条件です。

2.2.3 Web Serverの構成の構成の構成の構成

Forms Serverソフトウェアをインストールして、インストールをテストするための簡単なフォームを作成したら、Web Serverの基本構成を行う必要があります。

最も簡単な構成で実行する場合、Forms Serverを特に構成する必要はありません。Web Serverが HTTPリクエストに対応できれば、それで十分です。自分でWeb Serverを選ぶ場合は、いくつかの仮想ディレクトリを作成する必要があります。仮想ディレクトリとは、サーバー・マシン上の 1つのディレクトリのエイリアスです。仮想ディレクトリの細かい作成方法は、使用する Web Server によって異なりますから、ご使用の Web Serverのマニュアルを参照してください。

各Web Serverに指定された適切な方法で、以下のような仮想ディレクトリを作成してください。

仮想ディレクトリ仮想ディレクトリ仮想ディレクトリ仮想ディレクトリ NT物理ディレクトリ物理ディレクトリ物理ディレクトリ物理ディレクトリ UNIX物理ディレクトリ物理ディレクトリ物理ディレクトリ物理ディレクトリ

forms60code %ORACLE_HOME%¥forms60¥java %ORACLE_HOME%/forms60/java

仮想ディレクトリの実際の名前は重要ではありませんが、HTMLファイルに指定された名前と一致している必要があります。

%ORACLE_HOME%または$ORACLE_HOMEを適切なディレクトリ名に置き換えてください。

Page 12: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 82000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

新しい仮想ディレクトリは、Formsアプレットの Javaクラス・ファイルを参照します。この仮想ディレクトリが入っているファイルへの参照が含まれる URLを検出すると、Web Server は仮想ディレクトリをマッピングで指定された物理ディレクトリに置き換えて、実際のファイル名を作成しようとします。

例:

仮想ディレクトリ=mystuff 物理ディレクトリ=/u01/website/misc

URL:http://test=pc.uk.oracle.com/mystuff/test.html /u01/website/misc/test.html

2.2.4 Forms Listenerの起動の起動の起動の起動

Forms Listenerを起動する構文は、オペレーティング・システムや Formsのバージョンによって異なります。

手動でリスナーを起動するには、以下の表を参照してください。

オペレーティングオペレーティングオペレーティングオペレーティング・・・・システムシステムシステムシステム

バージョンバージョンバージョンバージョン コマンドコマンドコマンドコマンド

NT FORMS 4.5 f45srv32 port=<ポート番号>

NT FORMS 5.0 f50srv32 port=<ポート番号>

NT FORMS 6.0 if60srv -listen port=<ポート番号>

UNIX FORMS 4.5 f45ctl start port=<ポート番号>

UNIX FORMS 5.0 f50ctl start port=<ポート番号>

UNIX FORMS 6.0 f60ctl start port=<ポート番号>

詳細はオンライン・ヘルプと、『Forms Server接続アクティビティ・ロギング(付録 A)』を参照してください。

サーバーが正常に起動したかどうかを確認するには、実行中のプロセスのリストをチェックしてください。UNIXでは、psコマンドを使用します。Formsのリリースによって、プロセスは f45srvm、f50srvm、または f60srvmという名前になります。

例:

cxlewis-sun.us.oracle.com [7] > ps -ef | grep f60srvm

cxlewis 18723 18638 0 02:47:30 pts/4 0:00 grep f60srvm

cxlewis 18714 18638 0 02:47:08 pts/4 0:00 f60srvm port=9000

cxlewis 18718 18638 0 02:47:20 pts/4 0:00 f60srvm port=9001

NTでは、タスク・マネージャを使用する必要があります。NTタスクバーのタスク・マネージャを右クリックしてください。

Page 13: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 92000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

Forms Listenerがどのポートをリスニングしているか分からない場合は、リスナーを起動し、使用するポートを指定してください。Forms Listenerを終了してから再起動しても、実行中の Forms Runtimeプロセスには影響はありません。

Forms Listenerを起動すると、別の Formsプロセスが作成されることがしばしばあります。この追加プロセスは、事前に生成される Forms Runtimeで、Forms Listenerはこのプロセスを最初の着信接続要求に使用します。このプロセスを事前生成することで、最初の接続時間を短縮できます。poolパラメータを使用して、リスナー起動時に事前生成されるプロセスの数を設定できます。

たとえば、次のような文は Forms Listenerを起動し、Forms Runtimeエンジンをあらかじめ 10作成します。

ifsrv60 -listen port=6000 pool=10

2.2.5 HTMLファイルの作成ファイルの作成ファイルの作成ファイルの作成

Forms Serverが適切にインストールされ、正常に機能していることを確認するには、HTMLファイルを作成する必要があります。HTMLファイルは、クライアントにどの Javaアプレットを実行するかを指示し、Javaランタイムまたは Forms Serverに必要な他の引数を渡します。以下は、デモで使用するサンプル HTMLファイルに基づいた非常に簡単な HTMLファイルの一例です。(たとえば NTなどに)デモをインストールしてある場合、このファイルは次のようになります。

C:¥ORANT¥TOOLS¥DEVDEM60¥WEB¥STATIC.HTM

Page 14: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 102000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

HTMLファイルの例ファイルの例ファイルの例ファイルの例

<HTML>

<!-- FILE: static.html -->

<!-Oracle静的(非カートリッジ)HTMLファイル・テンプレート(Windows NT)-->

<!-必要に応じて名前を変更し、タグおよびパラメータ値を変更する-->

<HEAD><TITLE>Oracle Forms Server</TITLE></HEAD>

<BODY><BR>Please wait while the Forms Client class files download and run.

<BR>This will take a second or two...

<P>

<!-アプレットの定義(開始) -->

<APPLET CODEBASE="/forms60code/"

CODE="oracle.forms.engine.Main"

ARCHIVE="/forms60code/f60web.jar"

HEIGHT=20

WIDTH=20>

<PARAM NAME="serverPort" VALUE="9000">

<PARAM NAME="serverArgs" VALUE="module=c:¥temp¥nolog">

<PARAM NAME="serverApp" VALUE="default">

</APPLET>

<!-アプレットの定義(終わり)-->

</BODY>

</HTML>

基本インストールで変更が必要な個所は、ハイライト表示された項目だけです。2

HTMLタグタグタグタグ 使用目的使用目的使用目的使用目的 コメントコメントコメントコメント

CODEBASE アプレットを起動するときに初期クラ

スの実行を開始する(CODEに指定さ

れた)場所。

手順 2.2.3で定義した仮想ディレクトリ。

ARCHIVE JARファイルの場所。JARファイルは

Javaクラス・ファイルのまとまり。

別の仮想ディレクトリでも可能です。ただし、

Formsの標準インストールでは、jarファイルは

クラス・ファイルと同じディレクトリにインストー

ルされます。

serverPort アプレットが Forms Listenerとの

通信に使用するポートの番号。

デフォルト値は 9000。ここに指定する値は、リス

ナーによって使用されるポート番号と一致してい

る必要があります。

2 Formsの以前のバージョンでは、CODEパラメータは上記とは異なります。適切な値は、ソフトウェアに付属のサンプルHTMLを参照してください。

Page 15: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 112000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

ServerArgs Forms Listenerから Forms Web

Runtimeプロセスに渡されるコマン

ド・ライン。

サーバー・プラットフォームで ifrun60または

f60runmを実行する場合と同じ制限が構文に課せ

られる点に注意してください。。つまり、Forms

Serverに FORMS60_PATHが定義されていない場

合は、Formsモジュールの完全ファイル名を指定

する必要があります。

このファイルを作成して、関連するパラメータを変更したら、クライアント・マシンのWebブラウザが参照できるサーバー上の場所にファイルを置いてください。別の仮想ディレクトリを定義することもできます。

クライアント・マシンからこのファイルが参照できるかどうか確認するには、次のようにWebブラウザを使用してください。

ブラウザのステータス行にエラーが表示されても慌てる必要はありません。このテストの目的は、URLが適切に解決できるかどうかを確認することです。ページ・ソースを表示できれば(Netscapeでは、メニューから「表示」→「ページ・ソース」を選択します。Internet Explorerでは、「表示」→「ソース」を選択してください)、読み込まれたページが適切なページかどうかを確認できるはずです。適切なページでなければ、URLに指定した仮想ディレクトリ(ページの中に指定した仮想ディレクトリではないので注意してください。仮想ディレクトリを参照するページには何もロードされませんから、問題にはならないはずです)と、Web Serverの構成を確認してください。

2.2.6 Webを通じてフォームを実行するを通じてフォームを実行するを通じてフォームを実行するを通じてフォームを実行する

Forms Listenerを起動し、HTMLファイルをテストしたら、クライアントの Appletviewerを使用してテストを実行できます。これには、コマンド・プロンプトを開いて、JDK¥BINディレクトリにナビゲートし、次のようなコマンドを入力してください。

appletviewer <URL>

例:

appletviewer http://test-pc.uk.oracle.com/myvirtualdir/testform.html

Page 16: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 122000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

2.3 APPLETVIEWERを使用する場合によくある問題を使用する場合によくある問題を使用する場合によくある問題を使用する場合によくある問題

上記の方法でセットアップを実行できない場合は、以下のよくある問題とその解決方法に関する説明を参照してください。

2.3.1 Web Serverに接続できないに接続できないに接続できないに接続できない

Web Serverがダウンしているか、サーバーのアドレスに入力ミスがあると、次のようなエラー・メッセージが表示されます。

C:¥users>appletviewer "http://notarealserver/test.html"

I/O exception while reading: notarealserver

Is http://notarealserver/test.html the correct URL?

デフォルトでは、ほとんどのWeb Serverはポート 80で URL要求をリスニングするように設定されています。アクセス先のポートが違っていると、次のようなエラー・メッセージが表示されます。

C:¥users>appletviewer "http://cxlewis-sun.us.oracle.com:99/test.html"

I/O exception while reading: Connection refused

Is http://cxlewis-sun.us.oracle.com:99/test.html the correct URL?

2.3.2 Web Serverの仮想ディレクトリが不適切の仮想ディレクトリが不適切の仮想ディレクトリが不適切の仮想ディレクトリが不適切

URL に指定した仮想ディレクトリが、アプリケーション・サーバー上に定義されていないと、次のようなエラー・メッセージが表示されます。

C:¥users>appletviewer "http://ukp14901.uk.oracle.com/webhtml/testx.html"

Warning: No Applets were started. Make sure the input contains an <applet> tag.

usage: appletviewer [-debug] [-J<javaflag>] [-encoding <character encoding type>

] url|file ...

Page 17: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 132000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

2.3.3 CODEBASEが不適切が不適切が不適切が不適切

コードベース仮想ディレクトリがセットアップされていないと、次のようなエラー・メッセージが表示されます。

C:¥users>appletviewer "http://ukp14901.uk.oracle.com/webhtml/nocodebase.html"

JAR caching enabled.

Cache directory: d:¥jdk¥1_1_7_21o¥bin¥..¥jcache

Maximum cache size: 20971520 bytes

Unable to contact http://ukp14901.uk.oracle.com/forms60jarsxxx/f60all.jar

java.io.FileNotFoundException: http://ukp14901.uk.oracle.com/forms60jarsxxx/f60all.jar

at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Compiled Code)

at sun.net.www.protocol.http.HttpURLConnection.openConnectionCheckRedire

cts(Compiled Code)

at sun.applet.JARCache.beginStoring(JARCache.java:224)

at sun.applet.AppletResourceLoader.loadJar(AppletResourceLoader.java:184)

at sun.applet.AppletPanel.loadJarFiles(Compiled Code)

at sun.applet.AppletPanel.runLoader(AppletPanel.java:392)

at sun.applet.AppletPanel.run(Compiled Code)

at java.lang.Thread.run(Thread.java:466)

2.3.4 Forms Listenerに接続できないに接続できないに接続できないに接続できない

アプリケーション・サーバーで Forms Listenerが起動していない場合や、HTMLファイルに指定されたポートと Forms Listenerが接続しているポートが一致していない場合、アプレットは FRM-99999エラーを表示します。FRM-99999エラーを解決する方法については、セクション 3を参照してください。

2.4 JINITIATORの構成の構成の構成の構成

以下の説明は、Forms Serverが構成済みで、Appletviewerを使用して簡単なフォームが適切に配備されていることを前提としています。

2.4.1 Oracle JInitiatorをクライアントにインストールするをクライアントにインストールするをクライアントにインストールするをクライアントにインストールする

Windows NTまたは 95/98を実行するクライアント PCに Oracle JInitiatorをインストールします。インストール方法については、インストール・ガイドを参照してください。Oracle JInitiatorは、Oracle Developer Serverの配布 CDに含まれています。また、Oracleの Webサイト(http://otn.oracle.com等)から最新のバージョンをダウンロードできます。Oracle JInitiatorをインストールするには、配布 CDに含まれている(またはダウンロードした)jinit.exeインストール実行プログラムを実行する必要があります。Oracle JInitiatorの基本インストールについては後述しますが、使用している各バージョンで選択可能なオプションの詳細については、次のようなファイルを参照してください。

Page 18: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 142000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

ファイルファイルファイルファイル 内容内容内容内容

jinit_tags.htm Netscapeと Internet Explorerで HTMLタグを使用する方法の説明。

readme.htm Oracle JInitiator とブラウザのバージョン間の互換性およびサポートされるMIMEタイプと classidについての詳しい説明。

上記ファイルの格納場所は JInitiatorに選択されたインストール・ディレクトリによって異なります。

2.4.2 Oracle JInitiatorをロードするをロードするをロードするをロードする HTMLファイルを作成するファイルを作成するファイルを作成するファイルを作成する

Formsアプレットの実行に Oracle JInitiatorを使用することをブラウザに認識させるには、適切な HTMLファイルを作成する必要があります。適切な静的 HTMLファイルの一例(static_jinit.htm)は、Oracle JInitiatorの docsディレクトリに入っています。この HTMLファイルには、Netscapeと Internet Explorerで Oracle JInitiatorを使用するために必要な情報が入っています。この 2つのブラウザでは JInitiatorなどのプラグインをロードするのに使用される構文が異なるため、HTML ファイルに含まれる情報が重複している場合があります。<EMBED>タグで囲まれた情報は Netscapeで、<OBJECT>タグで囲まれた情報は Internet Explorerでそれぞれ認識されます。

2.4.3 JInitiatorととととMicrosoft Internet Explorer

以下は、Microsoft Internet Explorer(Explorer)用の HTMLファイルの一例です。Explorer用の HTMLファイルは、Oracle JInitiatorを直接参照せず、ロードされるオブジェクトの classidを定義するだけです。Oracle JInitiatorをインストールすると、その classidが登録され、これにより Explorerは JInitiatorを使用することを認識します。

Internet Explorerのののの HTMLファイルの例ファイルの例ファイルの例ファイルの例

<HTML>

<HEAD>

<TITLE>Oracle Developer Server and Oracle JInitiator</TITLE>

</HEAD>

<BODY>

<OBJECT classid="clsid:aa44da02-7f61-11d4-a3e1-00c04fa32518"

WIDTH=600

HEIGHT=480

codebase="http://acme.com/jinit11732.exe#Version=1.1.7.32">

<PARAM NAME="CODE" VALUE="oracle.forms.engine.Main">

<PARAM NAME="CODEBASE" VALUE="/forms60code/">

<PARAM NAME="ARCHIVE" VALUE="/forms60code/f60all.jar">

<PARAM NAME="type"

VALUE="application/x-jinit-applet;version=1.1.7.32">

<PARAM NAME="serverPort" VALUE="9000">

<PARAM NAME="serverArgs" VALUE="module=c:¥temp¥nolog">

<PARAM NAME="serverApp" VALUE="default">

</OBJECT>

</BODY>

</HTML>

Page 19: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 152000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

Developer Forms 63 の基本インストール用に変更する必要があるのは、ハイライト表示された部分だけです。

タグタグタグタグ 使用目的使用目的使用目的使用目的 コメントコメントコメントコメント

classid ロードされるアプリケーションの

classidです。Explorerはこの

IDをもとに、このアプリケーショ

ンのサポートに必要なモジュール

を判断し、該当するモジュールを

ロードします。

値はインストールされている JInitiatorのバー

ジョンによって異なります。使用している

JInitiatorのバージョンの適切な値については、

Oracle JInitiatorの readme.htmファイルを参

照してください。

Codebase このタイプのアプリケーションを

処理できるモジュールを

Explorerで検出できない場合、

ユーザーはこの URLからプログラ

ム(Oracle JInitiator)のコ

ピーをダウンロードできます。

Oracle JInitiatorを手動でインストールした場合

は、今の時点ではこのエントリは無視して構いません。

ただし、エントリ PARAM NAME=“CODEBASE”と混同

しないようにしてください。

PARAM NAME=

"CODEBASE"

このエントリは、サーバー上の

Javaクラス・ファイルのルート・

ディレクトリを参照します。

これはステップ 2.2.3で定義した仮想ディレクトリ

です。

PARAM NAME=

"ARCHIVE"

JARファイルの検索先を JVMに指

示します。

別の仮想ディレクトリでも可能です。ただし、Forms

の標準インストールでは、jarファイルはクラス・ファ

イルと同じディレクトリにインストールされます。

PARAM NAME=

"TYPE"

ロードされるアプリケーションの

MIMEタイプ。

PARAM NAME=

"serverPort"

アプレットが Forms Listener

との対話に使用するポートの番

号。

デフォルト値は 9000です。ここに指定する値は、

Forms Listenerによって使用されるポート番号と

一致している必要があります。

PARAM NAME=

"serverArgs"

Forms Listenerから Forms

Web Runtimeプロセスに渡され

るコマンド・ライン。

サーバー・プラットフォームで ifrun60または

f60runmを実行する場合と同じ制限が構文に課せら

れる点に注意してください。。つまり、Forms Server

に FORMS60_PATHが定義されていない場合は、Forms

モジュールの完全ファイル名を指定する必要がありま

す。

2.4.4 JInitiatorとととと Netscape Navigator

以下は、Netscape Navigator用の HTMLファイルの一例です。Netscape用の HTMLファイルは、プラグイン OracleJInitiatorを直接参照せず、処理可能なMIMEタイプを定義するだけです。Netscapeは各MIMEタイプに使用するプラグインを認識します。

<HTML>

3 Formsの以前のバージョンでは、CODEパラメータは上記とは異なります。適切な値は、ソフトウェアに付属のサンプルHTMLを参照してください。

Page 20: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 162000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

<HEAD>

<TITLE>Oracle Developer Server and Oracle Jinitiator with

Netscape</TITLE>

</HEAD>

<BODY>

<EMBED type="application/x-jinit-applet;version=1.1.7.32"

width="600" height="600"

java_code="oracle.forms.engine.Main"

java_codebase="/forms60code/"

java_archive="f60all.jar"

serverport="9000"

serverargs="module=c:¥temp¥nolog"

serverapp="default"

PLUGINSPAGE="http://ukp15069.uk.oracle.com/jinit_download.htm" >

<NOEMBED>

</BODY>

</HTML>

Developer Forms 64 の基本インストール用に変更する必要があるのは、ハイライト表示された部分だけです。

タグタグタグタグ 使用目的使用目的使用目的使用目的 コメントコメントコメントコメント

Type ロードされるアプリケーションの

MIMEタイプです。Netscapeはこ

の MIMEタイプをサポートできる

プラグインをロードします。

値はインストールされている JInitiatorのバー

ジョンによって異なります。適切な値については、doc

ディレクトリの readme.htmを参照してください。

例:type=“application/x-jinit-applet”

この MIMEタイプは Oracle JInitiatorのどのバー

ジョンでも動作します。ただし、JInitiatorの複数

のバージョンをインストールしてある場合は、常に最

新のバージョンが選択されるとは限りません。した

がって、JInitiatorの必要なバージョンを指定する

ことを推奨します。

java_codebase このエントリは、サーバー上の

Javaクラス・ファイルのルート・

ディレクトリを参照します。

これはステップ 2.2.3で定義した仮想ディレクトリ

です。

Java_archive JARファイルの検索先を JVMに指

示します。

別の仮想ディレクトリでも可能です。ただし、Forms

の標準インストールでは、jarファイルはクラス・ファ

イルと同じディレクトリにインストールされます。

serverport アプレットが Forms Listener

との対話に使用するポートの番

号。

デフォルト値は 9000です。ここに指定する値は、

Forms Listenerによって使用されるポート番号と

一致している必要があります。

4 Formsの以前のバージョンでは、CODEパラメータは上記とは異なります。適切な値は、ソフトウェアに付属のサンプルHTMLを参照してください。

Page 21: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 172000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

serverarg Forms Listenerから Forms

Web Runtimeプロセスに渡され

るコマンド・ライン。

サーバー・プラットフォームで ifrun60または

f60runmを実行する場合と同じ制限が構文に課せら

れる点に注意してください。。つまり、Forms Server

に FORMS60_PATHが定義されていない場合は、Forms

モジュールの完全ファイル名を指定する必要がありま

す。

PLUGINSPAGE このタイプのアプリケーションを

処理できるプラグインを

Explorerで検出できない場合、

ユーザーはこの URLからプラグイ

ン(Oracle JInitiator)のコ

ピーをダウンロードできます。

Oracle JInitiatorを手動でインストールした場合

は、今の時点ではこのエントリは無視して構いません。

Page 22: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 182000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

2.4.5 JInitiatorとととと Netscape Navigatorおよびおよびおよびおよび Internet Explorer

以下は、Netscapeと Internet Explorerの両方に適用される JInitiatorのタグです。

<HTML>

<!-- FILE: static_jinit.html -->

<!-Oracle静的(非カートリッジ)HTMLファイル・テンプレート(Windows NT) -->

<!-タグとパラメータが Oracle JInitiator用に変更されている-->

<HEAD><TITLE>Developer Server and Oracle JInitiator</TITLE></HEAD>

<BODY>

<P>

<OBJECT classid="clsid:aa44da02-7f61-11d4-a3e1-00c04fa32518"

WIDTH=600

HEIGHT=480

codebase="http://acme.com/jinit11732.exe#Version=1.1.7.32">

<PARAM NAME="CODE" VALUE="oracle.forms.engine.Main" >

<PARAM NAME="CODEBASE" VALUE="/forms60code/" >

<PARAM NAME="ARCHIVE" VALUE="/forms60code/f60all.jar" >

<PARAM NAME="type" VALUE="application/x-jinit-applet">

<PARAM NAME="serverPort" VALUE="6000">

<PARAM NAME="serverArgs" VALUE="module=c:\users¥web¥forms¥f60test">

<PARAM NAME="serverApp" VALUE="default">

<COMMENT>

<EMBED type="application/x-jinit-applet"

java_CODE="oracle.forms.engine.Main"

java_CODEBASE="/forms60code/"

java_ARCHIVE="/forms60code/f60all.jar"

WIDTH=500

HEIGHT=550

serverPort="6000"

serverArgs="module=c:¥users¥web¥forms¥f60test"

serverApp="default"

pluginspage="http://ukp14901.uk.oracle.com/download/jinitiator/jinit_download.htm">

<NOEMBED>

</COMMENT>

</NOEMBED></EMBED>

</OBJECT>

</BODY>

</HTML>

Page 23: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 192000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

2.4.6 自分のブラウザで使用されている自分のブラウザで使用されている自分のブラウザで使用されている自分のブラウザで使用されている Oracle JInitiatorのバージョンを調べるにはのバージョンを調べるにはのバージョンを調べるにはのバージョンを調べるには

JInitiatorを使用して Formsを実行しているときに、使用されている Oracle JInitiatorのバージョンを調べるには、Java Consoleを使用可能にする必要があります。詳細は、セクション 3.2.2を参照してください。

JInitiatorの EMBEDタグまたは OBJECTタグを参照するページが参照されると、コンソールが現れ、バージョン番号が表示されます。

2.4.7 Netscapeにインストールされているにインストールされているにインストールされているにインストールされている JInitiatorのバージョンを調べるにはのバージョンを調べるにはのバージョンを調べるにはのバージョンを調べるには

JInitiatorのどのバージョンがインストールされているか、またそのバージョンでサポートされるMIMEタイプを調べるには、Netscapeメニューから「ヘルプ」→「プラグインについて」の順に選択してください。出力に次のような情報が表示されます。

Oracle JInitiator 1.1.7.11 for Netscape Navigator

File name: C:¥Program Files¥Netscape¥Communicator¥Program¥plugins¥NPJinit-11711.dll

Oracle JInitiator 1.1.7.11 for Netscape Navigator with OJDK/JRE 1.1.7.11

Mime Type Description Suffixes Enabled

application/x-jinit-applet Java Applet class Yes

application/x-jinit-applet;version=1.1.5.3 Java Applet class Yes

application/x-jinit-applet;version=1.1.5.21.1 Java Applet class Yes

application/x-jinit-applet;version=1.1.7.9 Java Applet class Yes

application/x-jinit-applet;version=1.1.7.10 Java Applet class Yes

application/x-jinit-applet;version=1.1.7.11 Java Applet class Yes

Oracle JInitiator 1.1.7.18 for Netscape Navigator

File name: C:¥Program Files¥Netscape¥Communicator¥Program¥plugins¥NPJinit-11718.dll

Oracle JInitiator 1.1.7.18 for Netscape Navigator with OJDK/JRE 1.1.7.18

Mime Type Description Suffixes Enabled

application/x-jinit-applet Java Applet class No

application/x-jinit-applet;version=1.1.7.18 Java Applet class Yes

Page 24: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 202000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

上記の出力を見ると、JInitiatorの二つのバージョンがインストールされていることが分かります。ただし、バージョン指定なしで汎用的に application/x-init-applet MIMEタイプが指定された場合、Enabled(使用可能)とマークされている JInitiatorの古い方のバージョンが使用されます。

2.5 ORACLE JINITIATORおよびおよびおよびおよび INTERNET EXPLORERでのでのでのでの HTMLファイルの問題ファイルの問題ファイルの問題ファイルの問題

2.5.1 起動時に起動時に起動時に起動時に JARファイルを参照するファイルを参照するファイルを参照するファイルを参照する java.io.FileNotFoundException

ARCHIVEタグの VALUEが間違っていると、このエラーが発生します。ARCHIVEタグが適切な仮想ディレクトリを参照しているかどうか、またこの仮想ディレクトリが適切に構成されているかどうかを確認してください。また、JARファイルの名前が適切かどうかもチェックしてください。ARCHIVEタグが次のように指定されている場合には:

<PARAM NAME="ARCHIVE" VALUE="/forms60code/f60all.jar">

以下を参照するようにブラウザに指定してください。

http://yourserver/forms60code/f60all.jar

これで「HTTP/1.0 404 Not Found」エラーが表示されるようなら、仮想ディレクトリの構成に問題があります。

/forms60code/の代わりにの代わりにの代わりにの代わりに/forms60codes/を使用した場合の出力を使用した場合の出力を使用した場合の出力を使用した場合の出力

Opening http://ukp14998.uk.oracle.com/forms60codes/f60all.jar

proxy=emeacache.uk.oracle.com:80

Unable to contact http://ukp14998.uk.oracle.com/forms60codes/f60all.jar

Opening http://ukp14998.uk.oracle.com/forms60codes/f60all.jar

proxy=emeacache.uk.oracle.com:80

java.io.FileNotFoundException:

http://ukp14998.uk.oracle.com/forms60codes/f60all.jar

at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Compiled

Code)

at

sun.net.www.protocol.http.HttpURLConnection.openConnectionCheckRedirects(

Compiled Code)

at sun.applet.JARCache.beginStoring(JARCache.java:224)

at sun.applet.AppletResourceLoader.loadJar(AppletResourceLoader.java:184)

at sun.applet.JinitAppletPanel.loadJarFiles(Compiled Code)

at sun.plugin.AppletViewer.loadJarFiles(Compiled Code)

at sun.applet.JinitAppletPanel.runLoader(JinitAppletPanel.java:524)

at sun.applet.JinitAppletPanel.run(Compiled Code)

at java.lang.Thread.run(Thread.java:466)

Page 25: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 212000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

2.5.2 起動時のパフォーマンスが悪く、多数のクラス起動時のパフォーマンスが悪く、多数のクラス起動時のパフォーマンスが悪く、多数のクラス起動時のパフォーマンスが悪く、多数のクラス・ファイルがロードされるが、・ファイルがロードされるが、・ファイルがロードされるが、・ファイルがロードされるが、JARファイルはファイルはファイルはファイルは 1つもロードされないつもロードされないつもロードされないつもロードされない

ARCHIVEタグが欠落していたり、ARCHIVEの綴りが間違っていると、パフォーマンスが低下します。また、終了タグ‘>’の前の開始タグが欠落している場合も同じ問題が発生します。

ARCHIVEタグが欠落している場合のサンプル出力タグが欠落している場合のサンプル出力タグが欠落している場合のサンプル出力タグが欠落している場合のサンプル出力

Oracle Jinitiator version 1.1.7.18

Using JRE version 1.1.7.18o

User home directory = C:¥WINNT¥Profiles¥ntriggs

JAR caching enabled.

Cache directory: D:¥JINIT1~1.18¥jcache

Maximum cache size: 20971520 bytes

Opening http://ukp14998.uk.oracle.com/forms60code/oracle/forms/engine/Main.class

proxy=emeacache.uk.oracle.com:80

Opening

http://ukp14998.uk.oracle.com/forms60code/oracle/ewt/lwAWT/BufferedApplet.class

proxy=emeacache.uk.oracle.com:80

Opening

http://ukp14998.uk.oracle.com/forms60code/oracle/ewt/popup/PopupApplet.class

proxy=emeacache.uk.oracle.com:80

Opening

http://ukp14998.uk.oracle.com/forms60code/oracle/ewt/popup/PopupOwner.class

proxy=emeacache.uk.oracle.com:80

Opening

http://ukp14998.uk.oracle.com/forms60code/oracle/ewt/event/tracking/MouseGrabPro

vider.class proxy=emeacache.uk.oracle.com:80

Opening

http://ukp14998.uk.oracle.com/forms60code/oracle/ewt/help/HelpCapable.class

proxy=emeacache.uk.oracle.com:80

Opening

http://ukp14998.uk.oracle.com/forms60code/oracle/ewt/lwAWT/ImmediatePainter.clas

s proxy=emeacache.uk.oracle.com:80

Opening

http://ukp14998.uk.oracle.com/forms60code/oracle/ewt/lwAWT/DoubleBufferer.class

proxy=emeacache.uk.oracle.com:80

Opening

http://ukp14998.uk.oracle.com/forms60code/oracle/ewt/lwAWT/VirtualComponent.clas

s proxy=emeacache.uk.oracle.com:80

Page 26: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 222000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

2.5.3 FRM-99999:Registry filehttp://ukp14998.uk.oracle.com/forms60codes/oracle/forms/registry/Registry.datが見つかりませんが見つかりませんが見つかりませんが見つかりません

HTMLファイルの CODEBASE値が不適切な場合、次のようなエラーが表示されます。

CODEBASE パラメータの値を確認してください。上記の例では、/forms60codes/が定義されていません。CODEBASEタグが欠落していると、次のようなエラー・メッセージが表示されます。

FRM-99999: Registry file

http://ukp14998.uk.oracle.com/oracle/forms/registry/Registry.dat

が見つかりません。

欠落ファイルは次のように報告されることに注意してください。

http://ukp14998.uk.oracle.com/oracle/forms/registry/Registry.dat

ukp14998.uk.oracle.comというマシンと勘違いしそうですが、Developer Forms 6のインストレーションではこれに対応するディレクトリ構造があり、実際にこのファイルが存在します。ただし、上記の URL はこのファイルを参照していないので、ブラウザでこのファイルにアクセスしようとすると、次のようなエラーが表示されます。

HTTP/1.0 404 オブジェクトが見つかりません

これは、VALUE=の後にスピーチ・マーク( " )がないなど、CODEBASEタグの構文エラーにもなります。

<PARAM NAME="CODEBASE" VALUE=/forms60code/">

この場合には、次のような Formsエラーが表示されます。

Page 27: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 232000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

2.5.4 「「「「File Not Found」エラー」エラー」エラー」エラー

<PARAM NAME="CODEBASE" VALUE="/forms60code/>

上記のように CODEBASE行の VALUEエントリの閉じ引用符がない、などの構文エラーが HTMLファイルにあると、次のようなエラーが Javaコンソールに表示されます。

Opening http://ukp14998.uk.oracle.com/forms60code/>

<PARAM NAME=/oracle/forms/engine/Main.class

proxy=emeacache.uk.oracle.com:80

File not found when looking for: oracle.forms.engine.Main

java.lang.NullPointerException

at sun.applet.JinitAppletPanel.createApplet(JinitAppletPanel.java:603)

at sun.applet.JinitAppletPanel.runLoader(JinitAppletPanel.java:525)

at sun.applet.JinitAppletPanel.run(Compiled Code)

at java.lang.Thread.run(Thread.java:466)

このエラーは、Explorerの CODEタグの値が不適切な場合にも発生します。

<PARAM NAME="CODE" VALUE="Oracle.forms.engine.Main">

また、Netscapeの java_codeタグの値が不適切な場合にも表示されます。

java_code="Oracle.forms.engine.Main"

CODE タグと java_code タグでは大文字・小文字が区別されることに注意してください(上記の例では Oracleは小文字で表記する必要があります)。

Page 28: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 242000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

Opening http://ukp14998.uk.oracle.com/forms60code/Oracle/forms/engine.Main

proxy=emeacache.uk.oracle.com:80

File not found when looking for: Oracle.forms.engine

java.lang.NullPointerException

at sun.applet.JinitAppletPanel.createApplet(JinitAppletPanel.java:603)

at sun.applet.JinitAppletPanel.runLoader(JinitAppletPanel.java:525)

at sun.applet.JinitAppletPanel.run(Compiled Code)

at java.lang.Thread.run(Thread.java:466)

2.5.5 「「「「Loading Java Applet ...」というメッセージが表示されて、ブラウザが停止する」というメッセージが表示されて、ブラウザが停止する」というメッセージが表示されて、ブラウザが停止する」というメッセージが表示されて、ブラウザが停止する

Forms アプレットを実行する HTML ファイルをロードしようとすると、「Java アプレットをロードしています...」というメッセージが表示され、ステータス行に「アプレットをロードしています...」と表示された後にブラウザが停止します。

CODEパラメータが存在し、適切に定義されているかどうか確認してください。

2.5.6 アプレットが表示されず、赤いアプレットが表示されず、赤いアプレットが表示されず、赤いアプレットが表示されず、赤い xと共に空のボックスが表示されると共に空のボックスが表示されると共に空のボックスが表示されると共に空のボックスが表示される

classidが不適切な場合には、画面に次のような赤い xが表示されます。

Page 29: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 252000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

メニューから「ファイル」→「プロパティ」の順に選択してから、「分析」ボタンをクリックすると、次のような画面が表示されます。

2.5.7 ブラウザを終了して再起動する必要がある場合ブラウザを終了して再起動する必要がある場合ブラウザを終了して再起動する必要がある場合ブラウザを終了して再起動する必要がある場合

JInitiatorを使用していて Formsアプレットのロードが不完全に終わった場合は、いったんブラウザを終了して再起動する必要がある場合があります。たとえば、Forms Server Listenerを最初に起動しないで Formsを実行しようとすると、次のようなエラーが表示されます。

FRM-99999: Failed to connect to the Server

Page 30: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 262000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

このページをブラウザに再ロードすれば、エラーは表示されません。また、サーバーがすでに起動されている場合には、やはりブラウザを再起動しないと、Formsは正しくロードされません。ブラウザを完全に終了する必要があるので注意してください。別のブラウザ・ウィンドウが開いている状態で Formsアプレットが表示されたウィンドウを閉じただけでは、不十分です。

2.6 ORACLE JINITIATORとととと NETSCAPE NAVIGATORとのとのとのとの HTMLファイルの問題ファイルの問題ファイルの問題ファイルの問題

2.6.1 getHashKeyロードロードロードロード・アプレットでの・アプレットでの・アプレットでの・アプレットでの NullPointException

java_codeタグが無いと(またはタグ名の綴りが間違っていると)、コンソール・ウィンドウに次のようなエラーが表示されます。

Netscapeにににに java_codeタグが欠落している場合のエラータグが欠落している場合のエラータグが欠落している場合のエラータグが欠落している場合のエラー

Oracle Jinitiator version 1.1.7.18

Using JRE version 1.1.7.18o

User home directory = C:¥WINNT¥Profiles¥ntriggs

JAR caching enabled.

Cache directory: D:¥JINIT1~1.18¥jcache

Maximum cache size: 20971520 bytes

java.lang.NullPointerException

at sun.applet.JinitAppletPanel.getHashKey(JinitAppletPanel.java:777)

at

sun.applet.JinitAppletPanel.isAppletInCache(JinitAppletPanel.java:695)

at sun.plugin.AppletViewer.init(AppletViewer.java:334)

at

sun.plugin.navig.win32.AppletPluginPanel.startPanel(AppletPluginPanel.java:2

12)

at

sun.plugin.navig.win32.PluginObject.startPlugin(PluginObject.java:132)

at

sun.plugin.navig.win32.PluginObject.setDocumentURL(PluginObject.java:210)

2.6.2 http://.../xxx.jarに接続できない、およびに接続できない、およびに接続できない、およびに接続できない、および getInputStreamでのでのでのでの FileNotFoundException

Netscapeでは、java_archiveエントリの値が間違っていると、問題が発生します。たとえば、次のように設定した場合です。

java_archive="xf60all.jar"

java_codebaseタグが欠落していたり、不適切な仮想ディレクトリに設定した場合にも同じエラーが発生します。

Page 31: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 272000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

サンプル出力サンプル出力サンプル出力サンプル出力

Oracle JInitiator version 1.1.7.18

Using JRE version 1.1.7.18o

User home directory = C:¥WINNT¥Profiles¥ntriggs

JAR caching enabled.

Cache directory: D:¥JINIT1~1.18¥jcache

Maximum cache size: 20971520 bytes

Opening http://ukp14998.uk.oracle.com/forms60code/xf60all.jar no proxy

Unable to contact http://ukp14998.uk.oracle.com/forms60code/xf60all.jar

Opening http://ukp14998.uk.oracle.com/forms60code/xf60all.jar no proxy

java.io.FileNotFoundException:

http://ukp14998.uk.oracle.com/forms60code/xf60all.jar

at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Compiled

Code)

at

sun.net.www.protocol.http.HttpURLConnection.openConnectionCheckRedirects(Com

piled Code)

at sun.applet.JARCache.beginStoring(JARCache.java:224)

at

sun.applet.AppletResourceLoader.loadJar(AppletResourceLoader.java:184)

at sun.applet.JinitAppletPanel.loadJarFiles(Compiled Code)

at sun.plugin.AppletViewer.loadJarFiles(Compiled Code)

at sun.applet.JinitAppletPanel.runLoader(JinitAppletPanel.java:524)

at sun.applet.JinitAppletPanel.run(Compiled Code)

at java.lang.Thread.run(Thread.java:466)

2.6.3 JInitiatorでででで Formsを実行しようとするとを実行しようとするとを実行しようとするとを実行しようとすると Netscapeに空白ページが表示されるに空白ページが表示されるに空白ページが表示されるに空白ページが表示される

EMBEDタグに‘type’タグが無いと、ブラウザに空白ページが表示されます。

Page 32: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 282000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

2.6.4 Netscapeに空白ページが表示され、多数のクラスに空白ページが表示され、多数のクラスに空白ページが表示され、多数のクラスに空白ページが表示され、多数のクラス・ファイルがロードされる・ファイルがロードされる・ファイルがロードされる・ファイルがロードされる

java_archiveタグが無いと、JInitiatorは個々のクラス・ファイルのロードを開始しますが、ブラウザは空白の画面を表示して停止します(バグ 919679)。

Oracle JInitiator version 1.1.7.18

Using JRE version 1.1.7.18o

User home directory = C:¥WINNT¥Profiles¥ntriggs

JAR caching enabled.

Cache directory: D:¥JINIT1~1.18¥jcache

Maximum cache size: 20971520 bytes

Opening

http://ukp14998.uk.oracle.com/forms60code/oracle/forms/engine/Main.class no

proxy

Opening

http://ukp14998.uk.oracle.com/forms60code/oracle/ewt/lwAWT/BufferedApplet.cl

ass no proxy

Opening

http://ukp14998.uk.oracle.com/forms60code/oracle/ewt/popup/PopupApplet.class

no proxy

Opening

http://ukp14998.uk.oracle.com/forms60code/oracle/ewt/popup/PopupOwner.class

no proxy

.

.

.

Opening

http://ukp14998.uk.oracle.com/forms60code/oracle/ewt/graphics/ImageUtils.cla

ss no proxy

2.6.5 Netscapeに空白ページが表示され、に空白ページが表示され、に空白ページが表示され、に空白ページが表示され、Javaコンソールにはバージョンとユーザーコンソールにはバージョンとユーザーコンソールにはバージョンとユーザーコンソールにはバージョンとユーザー・ホーム・ホーム・ホーム・ホーム・ディレ・ディレ・ディレ・ディレクトリが表示されるクトリが表示されるクトリが表示されるクトリが表示される

‘width’または‘height’タグが無いと、Netscapeでは空白ページが表示され、コンソールには次のように表示されます。

Oracle JInitiator version 1.1.7.18

Using JRE version 1.1.7.18o

User home directory = C:¥WINNT¥Profiles¥ntriggs

Page 33: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 292000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

3. FRM-99999エラーエラーエラーエラー

Formsのバージョン 4.5.x、5.xおよび 6.0.xでは、Webを通じて Formsを実行すると、FRM-99999エラーが発生することがあります。FRM-99999は汎用エラー・メッセージで、Formsアプレットが Formsサーバーと対話できないことを知らせるものです。

例:

FRM-99999エラーはさまざまな状況で発生します。このエラーが表示されたら、さらに詳しい情報を入手して問題を解決する必要があります。ここでは、便利な診断ツールを紹介し、この診断ツールを使用して問題を解決する方法を説明します。5

3.1 FRM-99999の原因の原因の原因の原因

FRM-99999エラーの原因は次のようなカテゴリに分類できます。

• 構成上の問題

− FRM-99999エラーの中には構成上の問題が原因となって発生するものがあります。たとえば、FormsServer が起動していなかったり、HTML ファイルに指定されたポートとは別のポートでリスニングしている場合などです。このようなエラーは常に再現できます。

• Forms Serverプロセスのクラッシュ

− 接続が確立された後、フォームを起動した後で発生する FRM-99999エラーのほとんどは、サーバーのクラッシュが原因で発生します。サーバー・プロセスがダウンすると、クライアントは動作を継続できません。アプレットはサーバー・プロセスと対話できなくなると、単独で存続することはできません。

− この種のエラーは診断が難しく、常に再現できるわけではありません。また、ユーザーがクラッシュに至ったイベントの流れに気づかないこともあります。

• アプレットと Forms Serverプロセスの間の通信にネットワーク障害が発生し、通信が遮断された。

5 Developer 6iでは、これまでは汎用メッセージFRM-99999が表示されていたインスタンスの多くで、より詳細なエラー・メッセージが表示されるようになりました。詳細は、セクション3.3.3を参照してください。

Page 34: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 302000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

• 判明済みのバグ

− 判明済みの FRM-99999の原因はセクション 3.3を参照してください。

3.2 FRM-99999の解決法の解決法の解決法の解決法

3.2.1 アプレットの表示内容アプレットの表示内容アプレットの表示内容アプレットの表示内容

Forms アプレットに表示された内容を見ると FRM-99999 の原因を突き止めることができる場合が多くあります。

FRM-99999エラーが発生すると、エラー・ダイアログには「Details」ボタンが表示されます。

「詳細」ボタンをクリックすると、現在の Javaスタックが表示されます。表示されるスタックは、エラーの根本的な原因と Formsのリリースによって異なります。これは、リリースごとにアプレット・クラス・ファイルに使用されるパッケージ構造が異なるからです。

このボタンをクリックすると、Javaエラー・スタックが表示されます。

Page 35: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 312000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

たとえば、次のようなスタック・トレースは、Forms Serverが起動していないことが原因の場合に生成されます。ただし、生成されるスタックは異なります。

Forms 4.5

Java Exception:

oracle.forms.uiclient.v1_4.engine.RunformException:FRM-99999:failed to connect

to the server:cxlewis-pc:4500

at java.lang.Throwable.<init>(compiled code)

at java.lang.Exception.<init>(Compiled code)

at oracle.forms.uiclient.v1_4.engine.RunformException.<init>(compiled code)

at oracle.forms.uiclient.v1_4.engine.Runform.initConnection(compiled code)

at oracle.forms.uiclient.v1_4.engine.Runform.startRunform(Compiled code)

at oracle.forms.uiclient.v1_4.engine.Runform.run(Compiled code)

at java.lang.Thread.run(Compiled code)

Forms 6.0

Java Exception:

oracle.forms.engine.RunformException: FRM-99999: Failed to connect to the

Server: ukp14901.uk.oracle.com:6001

at oracle.forms.engine.Runform.initConnection(Runform.java)

at oracle.forms.engine.Runform.startRunform(Runform.java)

at oracle.forms.engine.Main.createRunform(Main.java)

Page 36: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 322000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

at oracle.forms.engine.Main.startImpl(Main.java)

at oracle.forms.engine.Main.start(Compiled Code)

at sun.applet.AppletPanel.run(Compiled Code)

at java.lang.Thread.run(Thread.java:466)

3.2.2 Javaコンソールの表示内容コンソールの表示内容コンソールの表示内容コンソールの表示内容

Appletviewerを実行している場合は、Appletviewerを起動したコンソール・セッションに直接 Javaエラーが表示されます。

JInitiatorの実行中に Javaエラーが発生した場合、エラーはブラウザのステータス行に表示されます。ただし、完全なエラー・スタックが表示されるわけではありません。エラー・スタックをすべて表示するには、Javaコンソールをオンに設定する必要があります。これは、JInitiatorのコントロール・パネルから行います。

JInitiatorコントロール・パネルにアクセスするには、Windowsの「スタート」→「プログラム」の順に選択してください。

注:設定を有効にするには、ブラウザを再起動する必要があります。

このチェック・ボックスをチェックします。

Page 37: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 332000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

3.2.3 サーバーは着信接続要求を認識したか?サーバーは着信接続要求を認識したか?サーバーは着信接続要求を認識したか?サーバーは着信接続要求を認識したか?

クライアントを初めて起動したときに FRM-99999 エラーが発生した場合には、これが重要なポイントになります。Formsアプレットは起動すると、Forms Listenerとの通信を試みます。このとき、アプレットは起動元のHTMLファイルに指定されたパラメータに基づいて通信方法を決定します。

配備プロトコルとして選択された通信方法によって、ポートとの通信に使用されるパラメータは異なります。

connectMode Forms Serverとの通信に使用する通信方法をアプレットに指示します。

有効な値は次のとおりです。

HTTP-HTTP 1.1を使用します。

HTTPS-インターネットを通じた安全な通信を確保するためにSSLを使用した HTTPS

Socket-デフォルトの接続方法

ServerHost メッセージの送信先マシンをアプレットに指示します。

指定がないと、デフォルトで URLに指定されたサーバーが指定されます。

Page 38: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 342000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

serverPort メッセージの送信先 TCP/IPポートをアプレットに指示します。

HTMLファイルの PORTパラメータとサーバーがリスニングしているポートが一致していなければなりません。Forms Server の起動時に指定されていないと、デフォルトで 9000に設定されます。

たとえば、次のようなパラメータが定義された HTMLファイルがあるとします。

PORT=4500

SERVERHOST=cxlewis-sun.us.oracle.com

Formsアプレットはマシン cxlewis-sun.us.oracle.comのポート 4500でリスニングしている Forms Serverに接続しようとします。

Forms ListenerとWeb Serverリスナーは全く異なる別個のプロセスであることを理解しておくことが重要です。一般に、Web Serverはポート 80または 81でリスニングします。すでに使用中のポートで Forms Listenerを起動しようとすると、「FRM-60009:Network bind error, probably the port is already in use.」というエラーが表示されます。

次のようなコマンドで、Forms Listenerが着信接続要求を処理できるかどうかを確認することができます。

telnet <マシン名> <ポート番号>

例:

telnet ukp14901.uk.oracle.com 6000

Trying 138.3.65.126...

Connected to ukp14901.uk.oracle.com.

Escape character is '^]'.

ポートが開いていれば、接続は確立され、quit の後に‘^]’と入力すれば終了できます。このコマンドを使用しても、Forms Listenerのポートが開いているかどうかがチェックされるのではなく、何らかの原因でポートが開けないということしか分かりません。たとえば、Web Serverが原因であることも考えられます。

ポートが開いていない場合は、エラーが表示されます。これは、Forms Listenerがそのポート番号でリスニングしていないか、ポートが閉じていることを意味します。

telnet ukp14901.uk.oracle.com 6001

Trying 138.3.65.126...

telnet: リモート・ホストに接続できません。接続が拒否されました。

Page 39: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 352000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

あるいは、Forms Listenerを停止して、次のようなパラメータを指定して再起動してください。

PORT=<リスニングするポート番号>

Forms Server が着信接続要求を認識したかどうかを確認する最も簡単な方法は、Forms Server 接続アクティビティ・ログ機能をオンにすることです。

オンに設定する方法や表示される出力を含む Forms Server接続アクティビティ・ログ機能の詳細については、付録 Aを参照してください。

サーバーが着信接続要求を認識しているようでも、サーバー上でフォームを実行するためのプロセスを生成できない場合は、Forms Listenerをバイパスできますから、事前生成された Forms Runtimeプロセスとアプレットを直接対話させてください。

3.2.4 サーバーで専用のサーバーで専用のサーバーで専用のサーバーで専用の Formsプロセスを起動するにはプロセスを起動するにはプロセスを起動するにはプロセスを起動するには

この手順を理解するには、ユーザーがブラウザで HTMLページを参照してフォームを起動すると、どのような処理が行われるのかを理解しておくことが不可欠です。まず、Web Serverが HTMLファイルをブラウザに送信します。ブラウザはファイルを処理し、HTMLファイルの中にアプレットを起動するように指示するタグ、または JInitiatorを起動するように指示するタグが含まれているのを認識します。ファイルに JInitiatorタグが含まれている場合、ブラウザは JInitiatorを起動してから、アプレットを起動します。アプレットを起動すると、FormsServerとの変換が開始されます。HTMLファイルには、クライアントにどのマシンと対話するか、その対話にどのプロトコルを使用するか、そしてメッセージをどのポート宛に送信するかを指示する情報が含まれています。Forms Listenerプロセスはブローカーとしての役割を果たし、指定されたポートで着信接続要求をリスニングします。着信接続要求が受信されると、Forms Listenerは Forms Runtime Engineプロセスを生成してフォームを実行します。ユーザー・インタフェースが動作するのはブラウザだけで、フォームの処理はサーバーで行われることに注意してください。生成されたプロセスは、さらにクライアントと対話するためのポートを開き、このポート番号が使用可能なポートのプールから割り当てられます。次に、新しく開かれたポートを使用して新しいプロセスと対話するようにアプレットが「リダイレクト」されます。さまざまなクライアントとその対応するサーバー・プロセスとの間でメッセージがやり取りされるときに Forms Listenerプロセスがボトルネックにならないのは、このような仕組みによるものです。

サーバーで専用の Formsプロセスを起動すれば、リスナーを完全にバイパスすることができます。1つのコンポーネントを除外すれば、問題の原因を突き止めやすくなります。

注:上記の手順は、通常の操作時に Forms Listenerをバイパスするためのものではありません。あくまで、問題を診断する上での手段として使用してください。

プロセスを起動するには、次のようなパラメータを指定して Forms Webランタイム・プロセスを実行します。

webfile=-<ポート番号>

Page 40: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 362000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

オペレーティングオペレーティングオペレーティングオペレーティング・・・・システムシステムシステムシステム

バージョンバージョンバージョンバージョン コマンドコマンドコマンドコマンド

Windows FORMS 4.5 f45web32 webfile=-4501

Windows FORMS 5.0 f50web32 webfile=-5001

Windows FORMS 6.0 ifweb60 webfile=-6001

UNIX FORMS 4.5 f45webm webfile=-4501

UNIX FORMS 5.0 f50webm webfile=-5001

UNIX FORMS 6.0 f60webm webfile=-6001

専用プロセスを起動する場合、指定されたポート番号を使用するように HTMLファイルを変更する必要があります。

注:クライアントが切断すると、サーバー・プロセスは終了します。

3.2.5 サーバーがクラッシュしたか?サーバーがクラッシュしたか?サーバーがクラッシュしたか?サーバーがクラッシュしたか?

ログ機能をオフにしていない状態で、Forms Serverプロセスが不意に終了した場合は、プロセスが Forms Serverの起動元ディレクトリの中のファイルにスタック・トレースを書き込んでいます。このダンプ・ファイルの名前は次のとおりです。6

<forms_runtime_process>_dump_<process id>

オペレーティングオペレーティングオペレーティングオペレーティング・・・・システムシステムシステムシステム

バージョンバージョンバージョンバージョン ファイル名ファイル名ファイル名ファイル名

Windows FORMS 4.5 f45run32_dump_12345

Windows FORMS 5.0 f50run32_dump_12345

Windows FORMS 6.0 ifrun60_dump_12345

UNIX FORMS 4.5 f45runm_dump_12345

UNIX FORMS 5.0 f50runm_dump_12345

UNIX FORMS 6.0 f60runm_dump_12345

詳細はセクション 4を参照してください。

6 現時点ではこれは機能せず、バグ1211961として記録されます。Forms ServerをUNIXで実行している場合、環境変数FORMSxx_CATCHTERM=0(たとえば、FORMS60_CATCHTERM)を設定すれば、FormsRuntimeプロセスに強制的にサーバーにコア・ファイルを書き出させることができます。dbxなどのデバッグ・ツールを使用してこのコア・ファイルを調べれば、スタック・トレースを入手できます。

Page 41: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 372000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

3.3 判明している判明している判明している判明している FRM-99999の原因の原因の原因の原因

以下の表は、判明している FRM-99999の原因と、問題を解決するための処置です。

3.3.1 構成上の問題構成上の問題構成上の問題構成上の問題

問題問題問題問題 FRM-99999 Archiveパラメータとして F60LOV.JARを使用

解決法 F60ALL.JARまたは F60SPLASH.JARを使用する

リファレンス バグ:548499

問題問題問題問題 WEBFORMS: ボイラープレート・イメージが含まれていると、APPLETVIEWER が実行しない。

解決法 レジストリに FORMS60_OUTPUTおよび FORMS60_MAPPINGを設定する。

リファレンス バグ:548499

問題問題問題問題 サーバーには同時に 80人のユーザーが接続できる。ユーザー数が 80人を超えると、

以降のユーザーには FRM-99999 ...エラーが表示される。

サーバー・ポート 9000に接続できない。

サーバー・マシンに「COMCTL32.DLLで初期化に失敗しました」というエラーが表示される。

解決法 追加の Webリスナー・ポート/Forms Serverポートを作成して、全ユーザーが同じ組み合

わせのポートを使用するのを回避する。

問題問題問題問題 FRM-99999 アプレットが起動しない。

解決法 JARファイルが壊れている、または空である。

リファレンス 2089108.6

3.3.2 判明しているバグ判明しているバグ判明しているバグ判明しているバグ

問題問題問題問題 FRM-99999 POOL を 0以上に設定すると FORMS SERVER <FORMS SERVER>:9000 に接

続できない。

解決法 pool=0に設定して起動する。4.5.10.14.1で修正済み。

リファレンス バグ:701797

問題問題問題問題 WEBFORMS: FIND IN LONG LOVで FRM-99999エラー:ネットワーク・エラーが発生する。

解決法 4.5.10.1で修正済み。

リファレンス バグ:609004

問題問題問題問題 DISPLAYを設定しないで FORMS SERVER (F45CTL)を起動すると FRM-99999エラーが発

生する。

解決法 DISPLAYを有効なディスプレイに設定する。キャラクタ・モード・ターミナルは使用せず、

DISPLAYを空白のままにしない。4.5.10.9.1で修正済み。

リファレンス バグ:547459

問題問題問題問題 RUN_PRODUCTの実行が FRM-99999エラーで失敗する。

FRM-99999:ネットワーク・エラーが発生しました。クライアントは動作を継続できません。

詳細...Java Exception : java.io.EOFException

解決法 4.5.9.0で修正済み

リファレンス バグ:662478

Page 42: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 382000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

問題問題問題問題 WEBFORMS: FORMS60_TIMEOUT値が無効で FRM-99999エラーが発生する。

解決法 6.0.6.3で修正済み。

リファレンス バグ:811390

問題問題問題問題 ポップアップ・メニューのあるタブ・キャンバス - 右マウスをクリックすると WEBプレビュー

アがクラッシュする。

CLICK OFM0899

解決法 7.0で修正予定。

リファレンス バグ:958270

問題問題問題問題 タブ・キャンバスをマウスでクリックしたり、マウス・クリックで起動すると、クラッシュ

する。

解決法 6.0.6.4で修正済み。

リファレンス バグ:714903

問題問題問題問題 Developer R1.6.1 Patch8: SOLARIS SERVERと NTクライアントの互換性がない。

FRM-99999: ネットワーク・エラーが発生しました。クライアントは動作を継続できません。

詳細...

Java Exception:

java.lang.ClassCastException: java.lang.Object

at oracle.forms.uiClient.v1_4.ui.ImageItem.OnUpdate(ImageItem.java)

at oracle.forms.uiClient.v1_4.ui.UiCommon.onUpdate(Compiled Code)

at oracle.forms.uiClient.v1_4.engine.Runform.onUpdateHandler

解決法 4.5.10.14.1で修正済み。

リファレンス バグ:968665

問題問題問題問題 WEBFORMS:DELETE_TREE_NODEレコード・グループを移入すると FRM-99999エラーが発

生する。

解決法 6.0.8.3.0で修正済み。

リファレンス バグ:989310

問題問題問題問題 RUN_PRODUCT(GRAPHICS)を使用時に ASSERTION FAILED が発生。

クライアントで'FRM-99999 ネットワーク・エラー'が発生し、RUN_PRODUCT(GRAPHICS,

'emp', SYNCHRONOUS, BATCH, FILESYSTEM, pl_id, 'DEPT.CHART_EMP')"を実行

すると、Forms Serverで“ASSERTION FAILED : FALSE, file uisf.c, line 107"

エラーが発生する。

アプレットは停止する。

解決法 5.0.6.20.0で修正済み。

リファレンス バグ:839418

問題問題問題問題 参照できないノードの FTREE.SET_TREE_SELECTIONをコールすると、FRM-99999エラー

が発生する。

解決法 6.0.6.4で修正済み。

リファレンス バグ:883818

問題問題問題問題 FORMS 5.0の TLISTで CLEAR_LISTが FRM-99999エラーになる。

Page 43: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 392000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

解決法 6.xで修正済み。

リファレンス バグ:868487

問題問題問題問題 WEBFORMS: 別々のフレームでアプリケーションを起動すると、FRM-99999エラーになる。

separateFrame=yes に設定して Webでフォームを起動すると、次のようなエラー・メッ

セージが表示されます。

FRM-99999: ネットワーク・エラーが発生しました。クライアントは動作を継続できません。

詳細...

Java Exception:

java.lang.NullPointerException

at oracle.forms.handler.UICommon.moveAbove(UICommon.java:2322)

at

oracle.forms.handler.UICommon.onComponentUpdate(UICommon.java:1409)

at oracle.forms.handler.UICommon.onUpdate(UICommon.java:941)

解決法 6.0.5.0.3で修正済み。

リファレンス バグ:862193

問題問題問題問題 oracle.forms.engine.RunformException:FRM-99999: 内部エラー:

Javaクラスが見つかりません。

詳細: FRM-99999: 内部エラー: handleClassId=0のクラスの名前が見つかりません。

レジストリに存在しますか?”

at oracle.forms.engine.Runform.onCreateHandler(Runform.java)

at oracle.forms.engine.Runform.processMessage(Runform.java)

at oracle.forms.engine.Runform.processSet(Runform.java)

at oracle.forms.engine.Runform.onMessageReal(Runform.java)

at oracle.forms.engine.Runform.onMessage(Runform.java)

at

oracle.forms.handler.DialogThread.doUserAlert(DialogThread.java.449)

at oracle.forms.handler.DialogThread.run(DialogThread.java:369)

at java.lang.Thread.run(Thread.java:474)

解決法 6.0.5.33で修正済み。

リファレンス バグ: 840668

3.3.3 Forms 6.0のののの FRM-99999エラーエラーエラーエラー

Forms 6のソースより:

1 エラー "FRM-99999: 内部エラー: Javaクラスにアクセスできません¥n詳細: {0}"

説明 これは、いずれかのクラス・ファイルのロード中に Java言語が

IllegalAccessExceptionを呼び出すと発生する内部エラーです。通常は、システ

ムに何らかの構成上のエラーがあることを意味します。パラメータ 0の中の(表示さ

れた)テキストが原因の手掛かりになります。

パラメータ パラメータ 0: [Javaで生成された]問題の原因

Page 44: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 402000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

2 エラー "FRM-99999: serverArgs パラメータが設定されていない、または NULL"

説明 これは、Appletパラメータ"serverArgs"が存在しないか、NULL値が設定されて

いる場合に発生するクライアントの不適切な構成エラーです。

3 エラー "FRM-99999: 無効な URL {0} がターゲット{1}を指定してブラウザに送信されま

した。¥n詳細: {2}

説明 要求された URLまたはブラウザ・ターゲットが何らかの理由でブラウザによって拒否

されたことを意味します。

パラメータ パラメータ 0: 要求された URL

パラメータ 1: 要求されたブラウザ・ターゲット

パラメータ 2: [Java で生成された] 問題の原因

4 エラー "FRM-99999: 内部エラー: handleClassId={0}クラスの名前が見つかりません。

レジストリに存在しますか?"

説明 Javaクラス・ファイルが無いことが原因のサーバーの不適切な構成エラー。

パラメータ パラメータ 0: 登録されていなかった数値 handlerClassId

5 エラー "FRM-99999: 内部エラー: Javaクラスが見つかりません。¥n詳細: {0}"

説明 Java クラス・ファイルが無いことが原因のサーバーの不適切な構成エラー。このエ

ラーは、クライアントがサーバー上に存在しない Javaクラスを要求した場合に発生

します。

パラメータ パラメータ 0: [Java で生成された] 問題の原因。

6 エラー "FRM-99999: サーバーに接続できません:{0}:{1,number,#######}"

説明 クライアントが、宛先ソケット{ポート}上のサーバー・マシン{ホスト}との接続を確

立できませんでした。

パラメータ パラメータ 0: 接続が試みられたサーバー・ホスト。

パラメータ 1:使用されたサーバー上のポートまたはソケット。

7 エラー "FRM-99999: サーバーに接続できません。¥nマシンの仕様に問題があります。:

{0}:{1,number,#######}"

説明 ホストのフォーマットが原因でクライアントがサーバーとの接続を確立できない。

パラメータ パラメータ 0: 接続が試みられたサーバー・ホスト。

パラメータ 1: 使用されたサーバー上のポートまたはソケット。

8 エラー "FRM-99999: 内部エラー: Javaオブジェクトを作成できません。¥n詳細: {0}"

説明 何らかの理由でクライアントが新しいオブジェクトを作成できませんでした。パラ

メータ 0の値がエラーの原因の手掛かりになります。

パラメータ パラメータ 0: [Javaで生成された] 問題の原因。

9 エラー "FRM-99999: コマンドの実行に失敗しました。¥n コマンド = {0}

{1}¥n詳細: {2}"

説明 外部ブラウザ・モジュールを起動するためにオペレーティング・システムを実行した

ときに問題が発生しました。

パラメータ パラメータ 0:ブラウザに要求された実行可能プログラムの名前。

パラメータ 1: ブラウザに渡された URLターゲット。

パラメータ 2: [Javaで生成された] 問題の原因。

Page 45: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 412000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

10 エラー "FRM-99999: 予期しないエラーが発生しました。"

説明 予期しないエラーが発生しました。

11 エラー "FRM-99999: ネットワーク・エラーが発生しました。クライアントは動作を継続で

きません。"

説明 予期しないネットワーク・エラーが発生しました。

12 エラー "FRM-99999: 新しいパスワードが一致しません。同じパスワードに変更してくださ

い。"

説明 「パスワードの変更」ダイアログで、新しいパスワードと入力されたパスワードが一

致しません。パスワードは同じでなければなりません。

13 エラー "FRM-99999: Registryファイル {0} が見つかりません。"

説明 クライアントが重要なファイル(Registry)を検出できないことを示すサーバーの

構成エラー。

パラメータ パラメータ 0: 検出できない Registryファイルに指定された完全修飾 URL。

14 エラー "FRM-99999: Registryが無いか、Dispatcherに無効なエントリが含まれていま

す。¥n詳細: {0}"

説明 重要なファイル(Registry)が設定されていないことを示すサーバーの構成エラー。

パラメータ パラメータ 0: [Javaで生成された] エラーの原因。

15 エラー "FRM-99999: エラー {0,番号,#######} が発生しました。このエラーに関する情

報はリリースノート・ファイル(relnotes)を参照してください。"

説明 詳細はリリースノートを参照してください。

16 エラー "FRM-99999: WEB クライアントのバージョンが新しい。"

説明 クライアントのバージョンがサーバーのバージョンより新しい。

17 エラー "FRM-99999: WEB クライアントのバージョンが古い。"

説明 クライアントのバージョンがサーバーのバージョンより古い。

既存のエラーについて表示される既存のエラーについて表示される既存のエラーについて表示される既存のエラーについて表示される Forms 6iのメッセージのメッセージのメッセージのメッセージ・コード表・コード表・コード表・コード表

1 エラー "FRM-92000: 内部エラー: Javaクラスにアクセスできません。¥n詳細: {0}"

2 エラー "FRM-92010: serverArgsパラメータが設定されていないか、または NULLに設定

されています。"

3 エラー "FRM-92020: ターゲット{1}が指定されてブラウザに無効な URL {0}が送信されま

した。¥n詳細: {2}

4 エラー "FRM-92030: 内部エラー: handleClassId=0のクラスの名前が見つかりません。

レジストリに存在しますか?"

5 エラー "FRM-92040: 内部エラー: Javaクラスが見つかりません。¥n詳細: {0}"

6 エラー "FRM-92050: サーバーに接続できません: {0}:{1,番号,#######}"

7 エラー "FRM-92060: サーバーに接続できません。¥nマシンの仕様に問題があります:

{0}:{1,番号,#######}"

8 エラー "FRM-92070: 内部エラー: Javaオブジェクトを作成できません.¥n詳細: {0}"

9 エラー "FRM-92080: コマンドの実行に失敗しました。¥n コマンド = {0} {1}¥n詳細:

{2}"

Page 46: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 422000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

10 エラー "FRM-92090: 予期しないエラーが発生しました。"

11 エラー "FRM-92100: サーバーとの接続が中断されました。¥nネットワーク・エラーが原因

か、サーバーの障害が考えられます。¥nセッションを再確立してください。"},

12 エラー "FRM-92110: 新しいパスワードが一致しません。同じパスワードに変更してくださ

い。"

13 エラー "FRM-92120: Registry ファイル {0} が見つかりません。"

14 エラー "FRM-92130: Registryが無いか、Dispatcherに無効なエントリが含まれてい

ます。¥n詳細: {0}"

15 エラー "FRM-92140: エラー {0,番号,#######} が発生しました。このエラーに関する情

報はリリースノート・ファイル(relnotes)を参照してください。"

16 エラー "FRM-92150: WEB クライアントのバージョンが新しい。"

17 エラー "FRM-92160: WEB クライアントのバージョンが古い。"

6iの新しいエラーの新しいエラーの新しいエラーの新しいエラー・メッセージ・メッセージ・メッセージ・メッセージ

新規 エラー FRM-92170: ファイアーウォールまたはプロキシからの応答がありません。

説明 ファイアーウォールが原因で接続が中断されました。

新規 エラー FRM-92180: パフォーマンスを低下させるネットワーク・エラーが検出されました。

¥n ファイアーウォールまたはプロキシ・サーバーが HTTP 1.1に対応していないと

思われます。

説明 ファイアーウォールまたはプロキシがパフォーマンス低下の原因です。

Page 47: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 432000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

4. サーバーのクラッシュサーバーのクラッシュサーバーのクラッシュサーバーのクラッシュ

Forms Runtime Engineが予期せず終了した場合、サーバーのランタイム・プロセスは次のいずれかの場所にスタック・トレースを書き込む必要があります。

• サーバー接続アクティビティ・ログ

− 接続アクティビティ・ログをオンに設定して Forms Server を起動した場合、スタック・トレースはログ・ファイルに書き込まれます。

− 詳細は付録 Aを参照してください。

• 作業ディレクトリ内のファイル

− このファイルのフォーマットは次のようになります。

<forms_runtime_process>_dump_<process id>

4.1 ダンプダンプダンプダンプ・ファイルの情報の内容・ファイルの情報の内容・ファイルの情報の内容・ファイルの情報の内容

ダンプ・ファイルには実行中のプロセスのスタック・トレースが入っており、Formsによって最後に正常に実行された操作が表示されます。

ダンプダンプダンプダンプ・ファイルの例・ファイルの例・ファイルの例・ファイルの例

[Tue Dec 7 15:13:11 1999 PDT]::Client Status [ConnId=0, PID=2220]

>> ERROR: Abnormal termination of connection, Error Code: 11

FORM/BLOCK/FIELD: X:BLOCK3.STATUS

Last Trigger: WHEN-BUTTON-PRESSED - (In Progress)

Msg: <NULL>

Last Builtin: REPORT_OBJECT_STATUS - (In Progress)

------------- Call Stack Trace [ConnId = 0, ProcId = 2220] -------------

calling call entry argument values in hex

location type point (? means dubious value)

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

siehjmpterm()+412 CALL siehdst()+0 BA1958 ? A8CDB8 ? A8CC4C ?

A8CDA4 ? A8CD88 ? EFFF3BA4 ?

sigacthandler()+40 PTR_CALL B ? B6A95C ? B6AB44 ?

AE7DEC ? 0 ? E ?

zrcctcx_CheckAuthRe CALL zrcctcc_ClientCommo B ? 0 ? EFFF4758 ? 0 ? 50 ?

DB2112 ?

zrcctco_Connect CALL zrcctcx_CheckAuthRe DAE5B8 ? 0 ? 0 ? 0 ?

FFFFFFC0 ? FFFFFFF0 ?

ibfnjurJobUpdate CALL zrcctco_Connect()+0 DAE5B8 ? EFFF4B40 ?

EFFF4B38 ? 0 ? 76 ?

EFFF4B40 ?

Page 48: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 442000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

ibfrun()+5940 CALL ibfnjurJobUpdate BE8198 ? BE7BB0 ? BDF328 ?

EFFF56A4 ? AE7DEC ?

EFFF4B40 ?

pfrrun()+23596 PTR_CALL CC4E40 ? AE7DEC ? 0 ? 0 ?

BE8198 ? CBC6A8 ?

peicnt()+248 CALL pfrrun()+0 CC5720 ? CC4E40 ? 0 ? 1 ?

25 ? BF1858 ?

CALL BF1858 ? CC4E40 ? CC4E40 ?

BF1858 ? EFFF7B64 ? CBD0C0 ?

ipkxcr()+32 CALL 191F7000 ? D396F8 ? 0 ? 0 ?

0 ? FFBF ?

ipfrun()+916 CALL ipkxcr()+0 BE8198 ? CBC6A8 ? BE8198 ?

0 ? 0 ? BEEE20 ?

ifzmgt()+3260 CALL ipfrun()+0 BE8198 ? 0 ? D396F8 ?

D291C8 ? EE7427EC ? 0 ?

ifzmky()+64 CALL ifzmgt()+0 BE7BB0 ? EE7432A0 ? AE7DEC ?

BED6D8 ? EE7427EC ? 2000000 ?

ifzevl()+80 CALL ifzmky()+0 BE7BB0 ? BE7BB0 ? A8395C ?

AE7DEC ? 7FFFFFFF ?

EE7427EC ?

ifzefi()+176 CALL ifzevl()+0 BE7BB0 ? BE7BB0 ? AE7DEC ?

80000000 ? B3B460 ? BDC8C8 ?

ifzevf()+900 CALL ifzefi()+0 BE7BB0 ? BE7BB0 ? AE7DEC ?

1 ? D29250 ? EE743184 ?

ifzerc()+2244 CALL ifzevf()+0 4000 ? FFFFBFFF ? BE7BB0 ?

4000 ? EE743184 ? EE742B28 ?

ifzebk()+1976 CALL ifzerc()+0 0 ? AE7DEC ? BE7BB0 ?

BDC8C8 ? BED6D8 ? EE7427EC ?

ifzefm()+316 CALL ifzebk()+0 0 ? AE7DEC ? BE7BB0 ? 4000 ?

FFFEFFFF ? 10000 ?

ifzeif()+844 CALL ifzefm()+0 BE7BB0 ? BE9F08 ? BE7BB0 ?

AE7DEC ? 0 ? BDC8C8 ?

ifzexf()+1188 CALL ifzeif()+0 BE7BB0 ? 0 ? 0 ? 1 ? BED6D8 ?

2000000 ?

ifzexe()+164 CALL ifzexf()+0 BE7BB0 ? 1 ? 0 ? BE8198 ?

BDC8C8 ? 0 ?

ifzman()+5276 CALL ifzexe()+0 0 ? BEAD68 ? 2 ? BEAB48 ?

BE7BB0 ? AE7DEC ?

if4mmo()+40 CALL ifzman()+0 10000000 ? 0 ? 1 ? 0 ?

BB2C30 ? 0 ?

PTR_CALL 0 ? 0 ? 0 ? 3 ? BB2250 ?

CC57C ?

PTR_CALL BB12CC ? EFFFA42C ? 0 ? 2 ?

EFFF99D0 ? 0 ?

main()+168 CALL 0 ? EFFF9918 ? 3 ? EFFF99CC ?

Page 49: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 452000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

EFFF986C ? EFFF992C ?

_start()+220 CALL main()+0 3 ? EFFF99CC ? EFFF99CC ?

B12400 ? 0 ? 0 ?

------------- End of Call Stack Trace -------------

このスタック・トレースでは、先頭の 2つの関数 siehimptem()と sigacthandler()が信号処理コードです。スタック・トレースにはたいていこの 2つの関数が含まれています。エラーが発生した時にプログラムが実行していた関数を調べるには、スタックをさらに下に読んでいく必要があります。

4.2 どのような手掛かりになるのかどのような手掛かりになるのかどのような手掛かりになるのかどのような手掛かりになるのか

スタック・トレースは 2つのレベルで手掛かりを提供してくれます。

• スタックの情報をもとに、判明済みの問題を識別することができます。100%の信頼性はなくても、スタック・トレースが全く同じであれば、判明済みのバグと一致するかどうかを判断できます。

• 問題が判明済みのバグではない場合は、スタックは原因を突き止める上での貴重な情報を提供してくれます。

4.3 複数の環境でのテスト複数の環境でのテスト複数の環境でのテスト複数の環境でのテスト

Formsのあるバージョンでは問題が再現されても、別のバージョンでは再現されないという場合もあります。同様に、オペレーティング・システムや実装方法が違うと、問題が再現されないこともあります。

別のバージョンでテストしてみれば、新しいバージョンではバグが修正されていたり、異なるエラー・メッセージが表示される、あるいは異なる診断情報が提供されるなどが判明することがあります。バグは通常、Formsのバージョンを指定して報告されます。あるバージョンのスタック・トレースが判明済みのバグと一致しなくても、別のバージョンのスタック・トレースと一致する場合があります。これをもとに、その他の解決法で問題を解決したり、追加情報を利用して問題を回避することも可能になります。

特に注意が必要なのが、Forms Builderの‘Run Forms Web’ボタンからフォームを実行する場合です。通常の配備方法を使用してWebを通じてフォームを実行した場合には再現されない問題があります。影響を受けるのが開発環境だけであったりすると、実際に純粋な問題があるのに、問題に対する危機感が薄れることもあります。また、HTMLファイルを介してフォームを実行した場合、Javaエラーが発生すれば Javaスタックが生成されますが、Builderの中から実行した場合にはスタックは生成されません。

異なる環境やバージョンで実行した情報を収集することは、解決法や対処を得られるだけでなく、バグを記録する必要がある場合の貴重な情報源になります。

Page 50: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 462000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

5. クライアントのクラッシュクライアントのクラッシュクライアントのクラッシュクライアントのクラッシュ

Forms アプレットが予期せず終了してしまい、重大なエラーを示すダイアログが表示された場合は、Forms アプレットがクラッシュしたことを意味します。Windowsでは、クラッシュが起こるとオペレーティング・システムが「不正な処理」メッセージを表示するか、ワトソン博士がエラーを報告します。

クラッシュしたかどうかを確認するには、クラッシュのスタック・トレース・ファイルをチェックしてください。クライアントがクラッシュした場合、.rpt という拡張子が付いたファイルが実行ファイルと同じディレクトリに作成されます。このファイル名のルートは、実行ファイルと同じ名前になります。

たとえば、

c:¥jdk¥1_1_7_2-¥binディレクトリから Appletviewerを使用して起動した場合、クライアントのスタック・トレース・ファイルの名前は、c:¥jdk¥1_1_7_2-¥bin¥appletviewer.rptになります。

JInitiatorを使用すると、実行ファイルはブラウザとしてみなされます。

ブラウザブラウザブラウザブラウザ ファイル名ファイル名ファイル名ファイル名

Appletviewer appletviewer.rpt

Netscape netscape.rpt

Internet Explorer ie4.rpt

アプレットがクラッシュしたように見えても、対応する.rpt ファイルが見つからないことがあります。このような場合には、Forms Serverプロセスがクライアントから不意に切断されたものと考えられます。アプレットはまだ実行中ですが、Formsウィンドウがすべてシャットダウンされ、クライアントがクラッシュしたかのように見えます。

5.1 ダンプダンプダンプダンプ・ファイルの例・ファイルの例・ファイルの例・ファイルの例

===============================================================================

Exception code: C0000005 ACCESS_VIOLATION

Fault address: 004A5892 01:000A4892

Module: C:¥Program Files¥Netscape¥Communicator¥Program¥netscape.exe

System Information:

Operating System: Windows NT Version 4.0 Build 1381 Service Pack 3

Date and Time: 4/14/1999, 10:02

Command line: "C:¥Program Files¥Netscape¥Communicator¥Program¥netscape.exe"

Registers:

EAX:00000000

EBX:006A3FCA

ECX:00000000

EDX:FFFFFFFF

ESI:0019F61E

EDI:009BFBE0

Page 51: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 472000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

CS:EIP:001B:004A5892

SS:ESP:0023:0012FE84 EBP:00862F5C

DS:0023 ES:0023 FS:0038 GS:0000

Flags:00010246

Could not find Module32First

Call stack:

Address Frame Logical addr Module

004A5892 00862F5C 0001:000A4892 C:¥Program Files¥Netscape¥Communicator¥

Program¥netscape.exe

===============================================================================

Exception code: C0000005 ACCESS_VIOLATION

Fault address: 0064D943 01:0024C943

Module: C:¥Program Files¥Netscape¥Communicator¥Program¥netscape.exe

System Information:

Operating System: Windows NT Version 4.0 Build 1381 Service Pack 3

Date and Time: 12/14/1999, 10:30

Command line: "C:¥Program Files¥Netscape¥Communicator¥Program¥netscape.exe"

Registers:

EAX:736966A8

EBX:00000001

ECX:009BF8A0

EDX:00000000

ESI:00000000

EDI:009BF8A0

CS:EIP:001B:0064D943

SS:ESP:0023:0012FBA0 EBP:0012FBBC

DS:0023 ES:0023 FS:0038 GS:0000

Flags:00010216

Could not find Module32First

Call stack:

Address Frame Logical addr Module

0064D943 0012FBBC 0001:0024C943 C:¥Program Files¥Netscape¥Communicator

¥Program¥netscape.exe

0066ECF8 0012FBD4 0001:0026DCF8 C:¥Program Files¥Netscape¥Communicator

¥Program¥netscape.exe

5F4039DB 0012FC04 0001:000029DB C:¥WINNT¥System32¥MFC42.DLL

5F403C5A 0012FC20 0001:00002C5A C:¥WINNT¥System32¥MFC42.DLL

0066D908 0012FC50 0001:0026C908 C:¥Program Files¥Netscape¥Communicator

¥Program¥netscape.exe

Page 52: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 482000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

5F411E08 0012FCA0 0001:00010E08 C:¥WINNT¥System32¥MFC42.DLL

5F411FED 0012FD6C 0001:00010FED C:¥WINNT¥System32¥MFC42.DLL

5F40230B 0012FD8C 0001:0000130B C:¥WINNT¥System32¥MFC42.DLL

5F402294 0012FDEC 0001:00001294 C:¥WINNT¥System32¥MFC42.DLL

5F40221F 0012FE08 0001:0000121F C:¥WINNT¥System32¥MFC42.DLL

5F4021D6 0012FE34 0001:000011D6 C:¥WINNT¥System32¥MFC42.DLL

77E7288D 0012FE50 0001:0000188D C:¥WINNT¥system32¥USER32.dll

77E72918 0012FE70 0001:00001918 C:¥WINNT¥system32¥USER32.dll

006A36E9 0012FE98 0001:002A26E9 C:¥Program Files¥Netscape¥Communicator

¥Program¥netscape.exe

77E71250 00862F64 0001:00000250 C:¥WINNT¥system32¥USER32.dll

5.2 何が表示され、どのように役立つのか何が表示され、どのように役立つのか何が表示され、どのように役立つのか何が表示され、どのように役立つのか

ダンプ・ファイルに表示される情報は、Oracle 開発部門 にとって非常に貴重な情報ですから、必ずバグの記録に含めて問題を報告してください。

Page 53: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 492000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

6. アプリケーションの停止アプリケーションの停止アプリケーションの停止アプリケーションの停止

クライアントが停止したように見える場合は、サーバー・プロセスがまだ生きているかどうかを確認することが重要です。

サーバー・プロセスはクラッシュしていなくても、クライアントがユーザー入力に対して応答しない場合は、アプリケーションが停止しているとみなされます。

このような場合は、スレッド・ダンプを見ればデッドロックを突き止めることができます。

6.1 クライアントのスレッドクライアントのスレッドクライアントのスレッドクライアントのスレッド・ダンプを入手する・ダンプを入手する・ダンプを入手する・ダンプを入手する

Javaスレッド・ダンプは Appletviewerからのみ入手できます。

スタック・ダンプを入手するには、Appletviewerを起動したコマンド・プロンプト(または DOSセッション)で CTRL+BREAKを押してください。

JInitiatorから Javaスレッド・ダンプを入手する方法は今のところありません。

6.2 スタックスタックスタックスタック・ダンプの例・ダンプの例・ダンプの例・ダンプの例

Full thread dump:

"AWT-Finalizer" (TID:0xf91c50, sys_thread_t:0x907b40, Win32ID:0x127,

state:W) prio=4

java.lang.Object.wait(Compiled Code)

sun.awt.AWTFinalizer.run(Compiled Code)

"Thread-3" (TID:0xf527e0, sys_thread_t:0x8fce50, Win32ID:0x145, state:CW)

prio=4

oracle.forms.engine.Heartbeat.run(Compiled Code)

java.lang.Thread.run(Thread.java:466)

"Thread-2" (TID:0xf52a80, sys_thread_t:0x8fc630, Win32ID:0xec, state:CW)

prio=4

java.lang.Object.wait(Compiled Code)

oracle.forms.engine.FlushQueue.run(Compiled Code)

java.lang.Thread.run(Thread.java:466)

"TaskScheduler timer" (TID:0xf8c0d8, sys_thread_t:0x8fae50, Win32ID:0x87,

state:CW) prio=4

java.lang.Object.wait(Compiled Code)

oracle.ewt.timer.Timer._waitTilScheduled(Compiled Code)

oracle.ewt.timer.Timer.run(Compiled Code)

java.lang.Thread.run(Thread.java:466)

"Busy indicator" (TID:0xf55d08, sys_thread_t:0x8f7280, Win32ID:0x146,

state:CW) prio=2

oracle.ewt.timer.Timer.accurateSleep(Compiled Code)

oracle.ewt.timer.Timer.run(Compiled Code)

java.lang.Thread.run(Thread.java:466)

"Forms-StreamMessageWriter" (TID:0xf7f0a0, sys_thread_t:0x8d2770,

Page 54: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 502000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

Win32ID:0dc, state:CW) prio=4

java.lang.Object.wait(Compiled Code)

oracle.forms.net.SingleAccessorQueue.get(Compiled Code)

oracle.forms.net.StreamMessageWriter.run(Compiled Code)

"Forms-StreamMessageReader" (TID:0xf7fa38, sys_thread_t:0x8d2690,

Win32ID:0111, state:R) prio=4

java.net.SocketInputStream.read(Compiled Code)

oracle.forms.net.EncryptedInputStream.fill(Compiled Code)

oracle.forms.net.EncryptedInputStream.read(Compiled Code)

java.io.DataInputStream.readUnsignedByte(Compiled Code)

oracle.forms.engine.Message.readDetails(Compiled Code)

oracle.forms.engine.Message.readDetails(Compiled Code)

oracle.forms.net.StreamMessageReader.run(Compiled Code)

"Screen Updater" (TID:0xf8d798, sys_thread_t:0x8c5970, Win32ID:0xef,

state:W) prio=4

java.lang.Object.wait(Compiled Code)

sun.awt.ScreenUpdater.nextEntry(Compiled Code)

sun.awt.ScreenUpdater.run(Compiled Code)

"thread applet-oracle.forms.engine.Main" (TID:0xf7dbd8, sys_thread_t:0x8b85

0, Win32ID:0x136, state:CW) prio=4

java.lang.Object.wait(Compiled Code)

sun.applet.AppletPanel.getNextEvent(Compiled Code)

sun.applet.AppletPanel.run(Compiled Code)

java.lang.Thread.run(Thread.java:466)

"AWT-Windows" (TID:0xf7a0b0, sys_thread_t:0x8a6ec0, Win32ID:0x13b, state:R)

prio=5

sun.awt.windows.WToolkit.run(Wtoolkit.java:98)

java.lang.Thread.run(Thread.java:466)

"AWT-EventQueue-0" (TID:0xf79e90, sys_thread_t:0x8a6e60, Win32ID:0xfc,

state:CW) prio=5

java.lang.Object.wait(Compiled Code)

oracle.forms.net.SingleAccessorQueue.get(Compiled Code)

oracle.forms.net.StreamMessageReader.get(Compiled Code)

oracle.forms.net.SocketConnection.get(Compiled Code)

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

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

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

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

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

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

java.awt.Component.dispatchEventImpl(Compiled Code)

java.awt.Container.dispatchEventImpl(Compiled Code)

java.awt.Component.dispatchEvent(Compiled Code)

java.awt.LightweightDispatcher.retargetMouseEvent(Compiled Code)

java.awt.LightweightDispatcher.processMouseEvent(Compiled Code)

Page 55: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 512000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

java.awt.LightweightDispatcher.dispatchEvent(Compiled Code)

java.awt.Container.dispatchEventImpl(Compiled Code)

java.awt.Component.dispatchEvent(Compiled Code)

java.awt.EventDispatchThread.run(Compiled Code)

"Finalizer thread" (TID:0xf60088, sys_thread_t:0x879fa0, Win32ID:0xee,

state:CW) prio=2

"main" (TID:0xf600b0, sys_thread_t:0x87b5d0, Win32ID:0xfd, state:CW) prio=5

Monitor Cache Dump:

<unknown key> (0x8f7280): <unowned>

Waiters: 1

oracle.ewt.timer.Timer@F8BD60/145A940: <unowned>

Waiters: 1

java.lang.Object@F7F038/1394130: <unowned>

Waiters: 1

sun.awt.ScreenUpdater@F8D798/136F748: <unowned>

Waiters: 1

sun.awt.AWTFinalizer@F91C50/135AE00: <unowned>

Waiters: 1

oracle.forms.engine.FlushQueue@F8B440/14D1100: <unowned>

Waiters: 1

java.lang.Object@F7F130/1394350: <unowned>

Waiters: 1

sun.applet.AppletViewerPanel@F79508/101DF78: <unowned>

Waiters: 1

oracle.forms.net.EncryptedInputStream@F80490/14E30D0: owner "Forms-StreamMe

sageReader" (0x8d2690, 1 entry)

oracle.forms.engine.Heartbeat@F52748/152E8C0: <unowned>

Waiters: 1

Registered Monitor Dump:

SymcJIT Method Monitor: <unowned>

Verifier lock: <unowned>

SymcJIT Method Monitor: <unowned>

SymcJIT Method List Monitor: <unowned>

SymcJIT Fixups Allocation: <unowned>

SymcJIT Code Allocation: <unowned>

SymcJIT Data Allocation: <unowned>

Thread queue lock: <unowned>

Waiters: 1

Name and type hash table lock: <unowned>

String intern lock: <unowned>

JNI pinning lock: <unowned>

JNI global reference lock: <unowned>

BinClass lock: <unowned>

Class loading lock: <unowned>

Java stack lock: <unowned>

Page 56: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 522000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

Code rewrite lock: <unowned>

Heap lock: <unowned>

Has finalization queue lock: <unowned>

Finalize me queue lock: <unowned>

Waiters: 1

Monitor registry: <unowned>

6.3 何が表示され、どのように役立つのか何が表示され、どのように役立つのか何が表示され、どのように役立つのか何が表示され、どのように役立つのか

スレッド・ダンプに表示される情報は、Oracle 開発部門がコードから問題を識別する上で役立つ情報です。必ずバグ・フィールドに含めて問題を報告してください。

6.4 アプリケーションの停止を引き起こす一般的な原因アプリケーションの停止を引き起こす一般的な原因アプリケーションの停止を引き起こす一般的な原因アプリケーションの停止を引き起こす一般的な原因

• Javaクラス・ファイルと Forms Serverのバージョンの不適合

− アプレットと Forms Serverプロセスの対話はメッセージ IDに基づいて行われます。メッセージ IDが適合していないと、アプレットとサーバーの間で互いの指示が認識できなくなります。jarファイルを使用している場合は、ARCHIVEタグを削除してから再試行してください。それでも問題が解決しない場合は、手動でインストール CD/パッチ CDから適切なクラス・ファイルをインストールしてください。

• Forms Runtimeがダウンしている

− サーバー上の Forms Runtimeプロセスがまだ生きているかどうか確認してください。

− FORMSxx_TIMEOUTパラメータが設定されているかどうか確認してください。タイムアウト機能は、ハートビートのような役割を果たし、Forms Server は定期的にクライアントに‘PING’して、しばらくクライアントから応答がない場合に限り、Forms Serverプロセスをクリーンアップさせます。これは主に、親のないサーバー・プロセスが生じるのを防ぐことを目的とした機能ですが、サーバー・プロセスが早期にクリーンアップされるのを防止する役割も果たします。

Page 57: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 532000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

7. 散発的なエラー散発的なエラー散発的なエラー散発的なエラー

最も厄介なのが、散発的または明らかにランダムに発生するエラーです。予測が難しいために、何をデバッグしたら良いか、どのような場合にデバッグ機能をオンにしたら良いかを判断するのも難しくなります。

散発的なエラーの多くは次のようなことが原因で発生します。

• 基礎となるネットワーク・スタックの問題

• メモリー関連の問題

7.1 ネットワークの問題の診断ネットワークの問題の診断ネットワークの問題の診断ネットワークの問題の診断

ネットワーク接続が予測せず切断される場合、よく表示されるのは次のようなエラーです。

FRM-99999 ネットワーク・エラーが発生しました。クライアントは動作を継続できません。

この状況ではアプレットの「詳細」画面に次のようなメッセージが表示されます。

java.net.socketexception. connection reset by peer.

7.2 PINGを使用してネットワークをチェックするを使用してネットワークをチェックするを使用してネットワークをチェックするを使用してネットワークをチェックする

ほとんどの開発者やシステム管理者は PING コマンドを使い慣れています。PING コマンドは、マシンが接続可能か、オペレーティング・システムでマシン名を解決できるかを確認するのによく使用されます。

ただし、PINGはマシンやネットワークが生きているかをチェックするだけのユーティリティではありません。PING を使用して、ネットワーク上の問題を特定したり、ネットワークのパフォーマンスや堅牢性をチェックすることができます。

FRM-99999エラーを診断する際に注意すべきなのは、パケット損失だけです。パフォーマンスが悪いと、Formsの起動が遅くなり、応答時間が長くなりますが、Formsをクラッシュさせる原因にはなりません。パケットが消失すると、Formsはネットワーク接続が切断されたものと判断し、FRM-99999エラーを表示します。パケットが宛先に到達しないと、Formsはサーバー・プロセスが生きているのかどうかを判断できません。

7.2.1 PINGの構文の構文の構文の構文

Windowsの場合

PING -l 1472 -n 90 <IPアドレスまたはホスト名>ここで:

-l は転送バイト数を指定します。-n オプションは実行する PINGの数を定義します。

Page 58: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 542000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

オペレーティングオペレーティングオペレーティングオペレーティング・システム・システム・システム・システム ヘルプを呼び出すコマンドヘルプを呼び出すコマンドヘルプを呼び出すコマンドヘルプを呼び出すコマンド

UNIX man ping

Windows ping -?

UNIXの場合、構文はベンダーごとに異なります。

たとえば、Solarisでは次のようになります。

ping -s <ホスト名> 1472 90

7.2.2 サンプル出力サンプル出力サンプル出力サンプル出力

PINGコマンドは次のような行を返します。

# ping -s ukp14901.uk.oracle.com 1472 10

PING ukp14901.uk.oracle.com: 1472 data bytes

1480 bytes from ukp14901.uk.oracle.com (138.3.65.126): icmp_seq=0. time=264. Ms

1480 bytes from ukp14901.uk.oracle.com (138.3.65.126): icmp_seq=1. time=211. Ms

1480 bytes from ukp14901.uk.oracle.com (138.3.65.126): icmp_seq=2. time=227. Ms

1480 bytes from ukp14901.uk.oracle.com (138.3.65.126): icmp_seq=3. time=212. Ms

1480 bytes from ukp14901.uk.oracle.com (138.3.65.126): icmp_seq=4. time=210. Ms

1480 bytes from ukp14901.uk.oracle.com (138.3.65.126): icmp_seq=5. time=212. ms

1480 bytes from ukp14901.uk.oracle.com (138.3.65.126): icmp_seq=6. time=225. ms

1480 bytes from ukp14901.uk.oracle.com (138.3.65.126): icmp_seq=7. time=212. ms

1480 bytes from ukp14901.uk.oracle.com (138.3.65.126): icmp_seq=8. time=232. ms

1480 bytes from ukp14901.uk.oracle.com (138.3.65.126): icmp_seq=9. time=255. ms

----ukp14901.uk.oracle.com PING Statistics----

10 packets transmitted, 10 packets received, 0% packet loss

round-trip (ms) min/avg/max = 210/226/264

損失パケットが大量にあると、応答時間が非常に遅くなり、パケットの受信順序が狂うと、ネットワークに障害が発生します。LANでは、ラウンドトリップの所要時間は 10ミリ秒以下と極めて短いことが要求されます。

上記の例では、ラウンドトリップ時間が非常に長くなっています。これは、PINGが実行されたマシンがWAN上にあるからです。マシンに到達するまでに必要なホップ数も多くなっています。tracertについての詳細はセクション 7.2.3を参照してください。

以下の PINGからの出力は、ネットワーク上に何らかの問題があることを示しています。

Page 59: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 552000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

C:¥>ping jcarlin-sun -l 1472 -n 90

Pinging jcarlin-sun.us.oracle.com [144.25.80.48] with 1472 bytes of data:

Reply from 144.25.80.48: bytes=1472 time=15ms TTL=253

Reply from 144.25.80.48: bytes=1472 time<10ms TTL=253

Reply from 144.25.80.48: bytes=1472 time<10ms TTL=253

Reply from 144.25.80.48: bytes=1472 time<10ms TTL=253

Request timed out.

Request timed out.

Request timed out.

Request timed out.

Request timed out.

Request timed out.

Request timed out.

Request timed out.

Request timed out.

Request timed out.

Reply from 144.25.80.48: bytes=1472 time<10ms TTL=253

Reply from 144.25.80.48: bytes=1472 time=16ms TTL=253

この出力を見ると、要求タイムアウトとパケット損失が多発したために、ピアによる接続のリセットが行われたものと考えられます。

注:Windows NTでは送受信されたパケットの数やパケット損失率は表示されません。この場合には、次のような式を使用して損失率を計算する必要があります。

パケット損失率(%)=(タイムアウトの回数÷PINGの数)×100

上記の例では jarlin-sunで 90回 PINGが実行され、23回失敗しています。

したがって、パケット損失率は次のようになります。

パケット損失率(%)=(23÷90)×100=26%

7.2.3 traceroute / tracertの使用の使用の使用の使用

UNIXシステムの tracerouteは、TCP/IPパケットが 1つのマシンから別のマシンに送られるまでに経由したルートを追跡するユーティリティです。

Windowsでこれに該当するユーティリティが TRACERTです。

以下の出力は、LAN上のマシンとWAN上のマシンでの tracertの結果です。比較してみましょう。

Page 60: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 562000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

LAN

D:¥>tracert jcarlin-pc.us.oracle.com

Tracing route to jcarlin-pc.us.oracle.com [130.35.96.107]

over a maximum of 30 hops:

1 <10 ms <10 ms <10 ms jcarlin-pc.us.oracle.com [130.35.96.107]

Trace complete.

WAN

D:¥>tracert ukp14901.uk.oracle.com

Tracing route to ukp14901.uk.oracle.com [138.3.65.126]

over a maximum of 30 hops:

1 <10 ms <10 ms <10 ms whq4op3-rtr-744-f2.us.oracle.com [130.35.96.1]

2 <10 ms <10 ms 15 ms whq4op3-rtr-771-f0.us.oracle.com [144.25.252.71]

3 <10 ms 16 ms <10 ms usrtr11-f0-0.us.oracle.com [137.254.20.11]

4 156 ms 172 ms 156 ms ukrtr8-atm5-0-0-1.us.oracle.com [137.254.22.2]

5 156 ms 172 ms 172 ms ukrtr1-f0.us.oracle.com [137.254.1.1]

6 203 ms 297 ms 172 ms bracknell-rtr-2-atm-301.uk.oracle.com [138.3.0.38]

7 172 ms 172 ms 172 ms edinburgh-rtr-1-s0.uk.oracle.com [138.3.1.54]

8 172 ms 188 ms 187 ms ukp14901.uk.oracle.com [138.3.65.126]

Trace complete.

この結果を見れば、当然ながら PINGによって報告されたリターン時間はWAN上のマシンで PINGを実行した場合の方がかなり高いことが分かります。ネットワーク接続が時々タイミング・アウトするようなら、tracertを使用すれば問題がどこにあるのかを突き止め、調査対象を絞り込むことができます。

7.2.4 netstatの使用の使用の使用の使用

最初のテストで接続が不安定であることが分かったら、netstatを使用すれば有益な情報を得ることができます。

UNIX

# netstat -I

Name Mtu Net/Dest Address Ipkts Ierrs Opkts Oerrs Collis Queue

lo0 8232 loopback localhost 965676 0 965676 0 0 0

fddi0 4352 haggis haggis 652193 43 193048 0 0 0

loopbackの行は無視して、haggisの行だけに注目してください。

送信できなかったネットワーク・パケットがキューに入れられることはないので、‘Queue’にはゼロと表示されるはずです。

Page 61: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 572000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

衝突(‘Collis’)に表示された値が大きい場合、ネットワークが飽和状態にあると考えられます。この値が 5%以上の場合は、調査してください。

‘Ieers’や‘Oerrs’の値が高い場合は、ネットワークに物理的な問題があることを意味します。この値はゼロに近くなければなりません。値が 100 以上の場合は、(送信データの量にかかわらず)調査する必要があります。

Windowsでも netstatコマンドを使用できます。ただし、構文は少し異なり、短い要約を入手することはできません。

次のようなコマンドを使用してネットワーク・ステータスに関する情報を入手することができます。

C:¥>netstat -s

7.2.5 問題の追跡問題の追跡問題の追跡問題の追跡

フォームを実行して、FRM-99999エラーがネットワーク上の多数のタイムアウトに合致して発生するかどうか調べてください。合致する場合は、ネットワークのタイムアウトが問題の原因と考えられます。パケット損失があると Formsに問題が発生します。Formsがすぐにクラッシュを起こさなかった場合でも、以降は理解できない問題を受け取ることになるので Formsが混乱します。

PING、traceroute、ipconfigを併用すれば、どこから調査を始めたら良いかを特定できます。配線に関連する問題については、電気ケーブル・テスターを使用する必要があります。配線がゆるんでいたり、接続が不完全であることも考えられます。ハブやスイッチには診断機能が内蔵されているものもありますから、これもチェックしてください。問題の原因を特定できない場合は、Protocol Analyzer を使用して原因を絞り込んでいく必要があります。

7.3 FORMSのネットワーク統計のネットワーク統計のネットワーク統計のネットワーク統計

HTMLファイルを変更すれば、Formsでラウンドトリップの回数や、Formsの実行中に Forms通信レイヤーで送信されたバイトの合計数を表示することができます。

ネットワーク統計を表示するにいは、HTMLファイルに次のようなパラメータを追加してください。

<param name=" networkStats " value="true">

フォームを起動すると、ネットワーク統計がステータス行の‘busybar’コンポーネントに表示されます。

Page 62: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 582000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

このパラメータで報告されるネットワーク統計は、いわゆるネットワーク「sniffer」で検出される統計とは異なります。networkStatsを使用すれば、Formsは内部 Forms通信方式によって送信されたバイト数を報告します。これには、ヘッダーなどのネットワーク・パケットのプロトコル固有のセクションは含まれていません。この情報が加わると、ネットワークを通じてやり取りされた全体的なバイト数が増えます。

networkStats は、Web 環境のほとんどの時間を占有する機能を追跡するのに非常に有効です。たとえば、特定の操作を実行した場合に限り、ラウンドトリップやネットワーク・トラフィックが大幅に増えることが分かれば、この操作に絞り込んで調査を進めることでパフォーマンスの向上を実現することができます。

注:networkStatsパラメータはサポートされているパラメータではありません。networkStatsが指定されている場合にだけ起こる問題となる動作は、Oracleではバグまたは不具合として取り扱うことができません。

7.4 メモリーの問題メモリーの問題メモリーの問題メモリーの問題

一般のソフトウェア・プログラムと同様に、Javaアプレットもメモリーを使用します。Javaの場合、言語仕様では Java仮想マシン(JVM)の内部メモリー・マネージャである「ガベージ・コレクタ」が必要とされます。Javaプログラムではメモリーが必要になると、JVMを通じてメモリーを要求します。空きメモリーがないと、JVMはガベージ・コレクタを使用してメモリーを解放しようとします。ガベージ・コレクタは、プログラムを実行するのに不要になったメモリーを解放して JVM に返します。それでもタスクの実行に必要なメモリーが不足する場合は、JVMはオペレーティング・システムからメモリーを獲得しようとします。このメモリーの割当てに失敗すると、実行プログラムは動作を続行できなくなります。

たとえば、次のような出力は代表的な「メモリー不足」エラーを示します。

Page 63: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 592000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

D:¥>appletviewer -J-mx24M "http://testpc.us/webforms/mem.html"

Default cache directory d:¥forms6i¥jdk¥bin¥..¥jcache not found. JAR caching

disabled.

Forms Applet version is : 4

java.lang.OutOfMemoryError

at sun.awt.image.GifImageDecoder.<init>(Compiled Code)

at sun.awt.image.InputStreamImageSource.getDecoder(Compiled Code)

at sun.awt.image.URLImageSource.getDecoder(URLImageSource.java:119)

at sun.awt.image.InputStreamImageSource.doFetch(Compiled Code)

at sun.awt.image.ImageFetcher.fetchloop(Compiled Code)

at sun.awt.image.ImageFetcher.run(Compiled Code)

7.4.1 JVMランタイムランタイムランタイムランタイム・オプションの設定・オプションの設定・オプションの設定・オプションの設定

JVMについては、割当て最大メモリーと共に初期割当てメモリーも設定できます。全パラメータのリストは、http://java.sun.com/products/jdk/1.1/docs/tooldocs/solaris/java.htmlを参照してください。

以下に、一部のパラメータを紹介します。

D:¥testjava>appletviewer -J-help x

usage: java [-options] class

オプションには次のものが含まれます。

-help このメッセージを表示します。

-version ビルドのバージョンを表示します。

-v -verbose verboseモードをオンにします。

-debug リモート JAVAデバッグ機能を使用可能にします。

-noasyncgc 非同期ガベージ・コレクションを禁止します。

-verbosegc ガベージ・コレクションが実行されると、メッセージを表示します。

-noclassgc クラス・ガベージ・コレクションを使用不可にします。

-ss<数字> 任意のスレッドの最大ネイティブ・スタック・サイズを設定します。

-oss<数字> 任意のスレッドの最大 Javaスタック・サイズを設定します。

-ms<数字> 初期 Javaヒープ・サイズを設定します。

-mx<数字> 最大 Javaヒープ・サイズを設定します。

-classpath <ディレクトリ名をセミコロンで区切る>クラスを検索するディレクトリを一覧します。

-prof[:<ファイル>] .¥java.prof または.¥<ファイル>にプロファイル・データを出力します。

-verify 読込み時にすべてのクラスを検証します。

-verifyremote ネットワークを通じて読み込まれたクラスを検証します。[デフォルト]

-noverify クラスを検証しません。

-nojit JITコンパイラを使用不可にします。

Appletviewerを使用する場合は、次のような構文を使用する必要があります。

appletviewer -J<オプション> <ファイル名>

Page 64: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 602000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

たとえば、次のようなコマンドは初期「Javaヒープ」(JVMによって使用されるメモリー)を 20MBに設定し、JVMによって使用される最大メモリーを 32MBに設定します。

Appletviewer -J-ms20m -J-mx32Mb "http://test-pc.us/webforms/maxmem.html"

Appletviewerのデフォルトの初期サイズおよび最大サイズはそれぞれ、16MBと 20MBです。

JInitiatorを使用する場合、JInitiatorコントロール・パネルでランタイム・オプションを設定する必要があります。

注:JVMは使用が許されているメモリーのみを使用します。オペレーティング・システム用のメモリーに余裕があっても、JVMは使用しません。

7.5 メモリーメモリーメモリーメモリー・リーク・リーク・リーク・リーク

7.5.1 メモリーメモリーメモリーメモリー・リークとは何か・リークとは何か・リークとは何か・リークとは何か

メモリー・リークとは、プログラムのダイナミック・ストア割当てロジックのエラーで、廃棄されたメモリーを再現できなくなり、最終的にはメモリー不足に陥り、プログラムが実行不可能になります。

これは何を意味するのでしょうか?プログラムを実行すると、特定のタスクの実行に必要なメモリーを割り当てる必要があります。プログラムがそのメモリーの使用を終えてメモリーが不要になっても、マシン上で実行中の他のプログラムが使用できるようにメモリーを返せない場合は、メモリー・リークが発生したと言われます。

メモリー・リークを検出する一般的な方法は、一連の手順を反復して、アプリケーションによって使用されるメモリーを観察することです。実行するたびにメモリーの使用量が増え続けるようなら、プログラムにメモリー・リークが発生していると考えられます。

Page 65: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 612000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

ただし、問題はそれほど単純ではありません。複雑なソフトウェアの中には、割当て済みのメモリーを後で再利用できるようにしばらく保持するものもあります。メモリー割当てはコストのかかる操作ですから、プログラムが後でより多くのメモリーが必要になると予測している場合は、未使用メモリーを再利用できるように取っておく方が効率的です。

7.5.2 Javaでのメモリーでのメモリーでのメモリーでのメモリー・リーク・リーク・リーク・リーク

Java言語の仕様では、JVMにガベージ・コレクタ(GC)が必要とされています。Javaを使用する場合、プログラマーは新しいオブジェクトを作成してメモリーを割り当てます。このメモリーを割当て解除することはできません。ガベージ・コレクタは定期的にプログラムに割り当てられたメモリーを整理し、廃棄しても問題のないオブジェクトを判断し、メモリーを解放します。

ガベージ・コレクタは、廃棄しても問題のないオブジェクトを判断するアクティブな参照が残っているメモリーをマークしながら、オブジェクトへの考えられるパスをすべて調べ、マークの付いていないオブジェクトを不要と判断します。これらのオブジェクトがガベージ・コレクションの対象としてみなされます。

Javaプログラミングにおいて誤解されがちなのは、ガベージ・コレクタが存在するからメモリー・リークは発生しないと思われることです。これは間違いです。ガベージ・コレクタはアクティブ参照のあるオブジェクトをマークして、マークされていないオブジェクトを破壊するだけです。オブジェクトに不要なアクティブ参照がまだ残っていることも考えられます。これが Javaでのメモリー・リークです。リークを解決するには、不要になったオブジェクトの参照を破壊して、破壊しても問題がないとガベージ・コレクタに認識させる必要があります。Javaプログラムにメモリー・リークがある場合は、ガベージ・コレクタを呼び出す回数を増やしても効果はありません。

さらに事態を複雑にするのは、JVMが使用されないメモリーをオペレーティング・システムに返さない場合があることです。たいていのプログラムは将来のある時点で追加のメモリーが必要になり、JVMの空きメモリーを再利用できるので、現実にはオペレーティング・システムにメモリーが返されないと言ったことはほとんど起こりません。ただし、JVM に割り当てられたメモリーがすべて、JVM で実行中のプログラムによって使用されるわけではないということは覚えておく必要があります。

7.5.3 メモリーメモリーメモリーメモリー・リークを識別する方法・リークを識別する方法・リークを識別する方法・リークを識別する方法

一般に、特定の一連の操作を実行するたびにメモリーの使用量が増えるようなら、メモリー・リークがあると考えられます。できれば、次のような方法で判断するのが理想です。

1. フォームを初期の基本状態にして、メモリーの使用量を記録する。

2. 一連の手順を実行して問題を例証する。

3. 初期の基本状態に戻って、メモリーの使用量を記録する。

手順 2と 3を繰り返せば、一定のメモリー・リークがあるかどうかを判断できます。何度も操作を実行しても、メモリー使用量の増加がわずかであれば、リークではなく、JVMが未使用メモリーを保持しているか、ガベージ・コレクタが思ったほど頻繁に実行していないことが考えられます。

Page 66: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 622000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

8. パフォーマンスの問題パフォーマンスの問題パフォーマンスの問題パフォーマンスの問題

8.1 ORACLE JDKでのキャッシングでのキャッシングでのキャッシングでのキャッシング

Javaプログラムを実行するときには、Java仮想マシンがクラス・ファイルをロードする必要があります。インターネットを通じて実行する場合、プログラムを実行するたびにクラス・ファイルをロードしているとパフォーマンスが低下します。このダウンロードの問題を解決するために、JDKでは Java Archive(JAR)ファイルをサポートしています。jarファイルとは、複数のクラス・ファイルが 1つの圧縮ファイルにまとめられたものです。一般に、jarファイルのサイズは、中に入っているクラス・ファイル全体よりかなり小さくなります。jarファイルを使用すれば、送信データの量を減らすことができる上に、JInitiatorや Oracle JDKでキャッシングと呼ばれるプロセスを使用することが可能になります。

8.1.1 キャッシングとは何かキャッシングとは何かキャッシングとは何かキャッシングとは何か

JVM は最初にクラスを参照するときに、ローカル・マシンをチェックしてすでにキャッシュに入れられた jarファイルにこのクラスが含まれているかどうかを調べます。すでにキャッシュに入っている jar ファイルにクラスが存在する場合は、JVMはアプリケーション・サーバー上にこの jarファイルの新しいバージョンがあるかどうかチェックします。jar ファイルのもっと新しいバージョンが存在する場合は、jar ファイルの新しい方のコピーがクライアント・キャッシュにダウンロードされます。キャッシュに入っている jar ファイルが最新のバージョンであれば、クラス・ファイルはネットワークからではなく、キャッシュに入っている jar ファイルからロードされます。

8.1.2 キャッシングが重要な理由キャッシングが重要な理由キャッシングが重要な理由キャッシングが重要な理由

アプリケーション jarファイルに変更がなければ、アプリケーションを 1回実行すると、必要な jarファイルがすべてクライアント上のキャッシュに入り、以降にそのアプリケーションを起動するとローカル・キャッシュ・コピーからクラスがロードされます。これにより、アプリケーションの起動時のパフォーマンスが大幅に向上します。アプリケーションの特定の部分を実行するのに新しいクラスが必要になれば、必要に応じて該当するクラスがダウンロードされます。

8.1.3 キャッシングが使用可能かどうかを調べるにはキャッシングが使用可能かどうかを調べるにはキャッシングが使用可能かどうかを調べるにはキャッシングが使用可能かどうかを調べるには

使用している OJDKのバージョンが 1.1.7.15.1以前の場合、キャッシングが使用可能かどうかを調べるには、キャッシュ・ディレクトリ内のファイルをチェックする必要があります。OJDK 1.1.7.15.1以上を使用している場合は、ログ出力を書き出すキャッシング機構を構成できます。(詳細はセクション 8.1.5を参照してください)。

使用している OJDKのバージョンを調べるには、次のようにします。

• JInitiatorまたは Appletviewerディレクトリに入っている readmeファイルを参照してください。

• JInitiatorでは、JInitiatorコンソールに OJDKのバージョンが表示されます。

• Appletviewerにはバージョンを表示するための次のようなオプションがあります。

Appletviewer -J-version test

Page 67: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 632000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

8.1.4 OJDK 1.1.7.15でのパフォーマンスの向上でのパフォーマンスの向上でのパフォーマンスの向上でのパフォーマンスの向上

キャッシングを利用すれば、アプリケーションを起動するたびにサーバーから jar ファイルをダウンロードしなくても済みますが、それでもパフォーマンスに影響する問題が残ります。

• JAR ファイルには圧縮データが入っています。このデータをキャッシュに入っている jar ファイルから解凍するのに時間がかかり、せっかくネットワークからデータをダウンロードする必要がなくなっても帳消しになります。

• JARファイルにはデジタル署名が設定され、ネットワークを通じて送信中に変更が加えられていないことを確認するために認証を受けます。この手順では、メモリーを大量に使用する算術計算を実行する必要があります。

1.1.7.15で導入された新しいキャッシング機構は、これらの問題に次のように対応します。

JARファイルを初めてダウンロードすると、次のような 2つのファイルが作成されます。

• JARファイルから解凍されたすべてのデータが入ってデータ・ファイル

− データ・ファイルには.dxxという拡張子が付いています。ここで、xxは 00から 99までの数字です(例:10f756d8.d00)。

• ロード元の URL や、サーバー上でデータが最後に更新された日付、目次など、JAR ファイルに関する情報が入ったインデックス・ファイル。目次には、JARファイルに含まれるすべてのエントリとデータ・ファイル内のエントリのオフセット、各エントリの認証ステータスが一覧されます。

− インデックス・ファイルには.ixxという拡張子が付いています。ここで、xxは 00から 99までの数字です(例:10f756d8.i00)。

これらのファイルの情報はバイナリ・フォーマットで格納されています。読むのは難しく、それほどの苦労をする価値もありません。

キャッシュ・ファイルの最初の 8文字は、JARファイルのダウンロード元 URLを表しています。この数字によって、キャッシング機構は URLをその対応する 8文字表記にマッピングし、URLを素早く見つけて、その名前を持つファイルを検索することができます。

アプレットの実行に JARファイルが必要な場合には、次のようなロジックが使用されます。

Page 68: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 642000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

はい

はい

いいえ

いいえ

ハッシング・アルゴリズムを使用して、

JARファイル URLを 8文字のファイル名にマッピングする。

この 8文字のファイル名に一致するインデックス・ファイルをキャッシュ・

ディレクトリから検索する。

URLに接続して、キャッシュに入っているJARファイルのコピーが最新のバージョンか

どうかを確認する。

キャッシュ・ヒット。インデックス・ファイルの目

次をメモリーに読み込む。

JARファイルをダウンロー

ドする必要が

ある。サーバー

から JARファイルをダウン

ロードする。

一致するファイルが

見つかったか?

キャッシュに入っているコピーは最新のバージョン

か?

アプリケーションにクラス・ファイルが必要になると、OJDKは目次の情報をもとに、データ・キャッシュからクラス・ファイルを探し出します。データにデジタル署名がある場合は、認証された署名者のリストがデータ・ファイルから読み込まれます。

Page 69: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 652000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

8.1.5 OJCK 1.1.7.15の構成の構成の構成の構成

バージョン 1.1.7.15以降の Oracle JDK では、キャッシング機構によりログ情報を出力して、実行されたキャッシング操作を表示することができます。このログ情報は、オフ(デフォルト)、verbose、キャッシュ・ヒット、キャッシュ・ミス、ファイルに記録、という 5つのモードで実行するように構成できます。verboseモードを指定すると、実行されるごとにすべてのキャッシュ操作が記録されます。この情報には、キャッシュ・ミスまたはヒットが発生した時、キャッシュに追加されたファイル、キャッシュから削除されたファイルなどの詳細情報が含まれます。キャッシュ・ヒット・モードを指定すると、ローカル・キャッシュから JARファイルをロードするキャッシング操作のみが記録され、キャッシュ・ミス・モードの場合は、ネットワークから JARファイルをロードするキャッシング操作のみが記録されます。ログ・ファイル・モードでは、キャッシング・メッセージをファイルに書き込んで後で使用することができます。

プロパティ名プロパティ名プロパティ名プロパティ名 プロパティ値プロパティ値プロパティ値プロパティ値 アクションアクションアクションアクション

指定なし キャッシングが使用可能かどうかを示し、キャッシュ・ディレクトリの名前とそのサイズを出力します。

Cache.verbose true Oracle JInitiator コンソール・ウィンドウにすべてのキャッシュ操作を出力します。

キャッシュ・ヒットやキャッシュ・ミス、キャッシュ・ディレクトリ、キャッシュ・サイズ、キャッシュに追加されたファイル、キャッシュから削除されたファイルなどの情報が表示されます。

Cache.verbose.hit true キャッシュからファイルが取り出されると、メッセージを表示します。

Cache.verbose.miss true キャッシュからファイルが取り出されると、メッセージを表示します。

Cache.logfile ログ・ファイル名 このプロパティを指定すると、キャッシング機構によって生成された verbose 出力がファイルに格納されます。Oracle JInitiator が実行するたびに、指定されたファイルに verbose出力が追加されます。実行ごとの情報は実行日時が入ったヘッダで区切られて格納されます。出力ログ・ファイルを指定すれば、verbose情報は常にそのファイルに格納されます。出力ファイル・プロパティに加えて cache.verbose、cache.hitまたは cache.missを指定すると、出力メッセージはコンソール・ウィンドウにも表示されます。

Page 70: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 662000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

キャッシングを構成するには、次のような形式で構成するキャッシュ・ログ・オプションの関連する Javaプロパティを指定してください。

-D<パラメータ>=<値>

たとえば、JInitiatorでは、JInitiatorコントロール・パネルでパラメータを指定します。

JInitiatorを使用して次のように指定して簡単なフォームを実行した場合

-Dcache.verbose=true

Javaコンソールには次のような出力が表示されます。

Oracle JInitiator version 1.1.7.18

Using JRE version 1.1.7.18o

User home directory = C:¥WINNT¥Profiles¥cxlewis.000

Cache: JAR caching enabled.

Cache directory: C:¥PROGRA~1¥Oracle¥JINITI~1.18¥jcache

Maximum cache size: 20000000 bytes

Opening http://ukp14901.uk.oracle.com/forms60code/f60all.jar

proxy=emeacache.uk.oracle.com:80

Cache: Cache hit for http://ukp14901.uk.oracle.com/forms60code/f60all.jar

Opening http://ukp14901.uk.oracle.com/forms60code/javax/swing/JinternalFrame.class

proxy=emeacache.uk.oracle.com:80

Opening

http://ukp14901.uk.oracle.com/forms60code/oracle/forms/engine/RunformBundle_en_GB

.class proxy=emeacache.uk.oracle.com:80

Opening

http://ukp14901.uk.oracle.com/forms60code/oracle/forms/engine/RunformBundle_en_GB

.properties proxy=emeacache.uk.oracle.com:80

Page 71: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 672000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

Opening http://ukp14901.uk.oracle.com/forms60code/oracle/forms/registry/Registry.dat

proxy=emeacache.uk.oracle.com:80

Opening http://ukp14901.uk.oracle.com/forms60code/oracle/forms/registry/default.dat

proxy=emeacache.uk.oracle.com:80

Forms Applet version is : 4

ログ・ファイルの値を指定すると、出力は指定されたファイルに格納されます。

=========================================================================

Mon Jan 10 11:27:00 GMT 2000

JAR caching enabled.

Cache directory: C:¥PROGRA~1¥Oracle¥JINITI~1.18¥jcache

Maximum cache size: 20000000 bytes

Cache hit for http://ukp14901.uk.oracle.com/forms60code/f60all.jar

キャッシング・ディレクトリを上書きしたり、キャッシュのサイズを変更するには、次のようなパラメータを使用してください。

-Dcache.directory=<ディレクトリ名>

-Dcache.size=<キャッシュ・サイズ>

注:ここで説明するパラメータはすべて、JInitiatorと Appletviewerで指定できます。

appletviewer -J-Dcache.directory="c:¥mycache" -J-Dcache.size=32000000

"http://ukp14901.uk.oracle.com/webhtml/test.html"

Page 72: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 682000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

8.2 FORMS LATENCY METER

Forms Latency Meterは、Forms 6iの新機能ですが、サポート対象ではありません。Latency Meterの誤動作や、Latency Meterを使用可能にしたことで発生し、Latency Meterを使用しない状態では再現できない動作はバグとして記録することはできず、Oracleでもバグとして扱いません。

8.2.1 Forms Latency Meterとは何かとは何かとは何かとは何か

Forms Network Latency Meterは、Forms Serverがネットワークを使用し、アプレットと Forms Serverの間でやり取りされる一般的なメッセージをシミュレートするのと同じ方法で、ネットワークをテストします。LatencyMeterはネットワークの応答時間を測定し、平均応答時間を表示します。

デフォルトのテストでは、1.4Kチャンクと 6Kチャンクのデータ・パケットを 3回送信してパフォーマンスを測定します。この応答時間の平均が X:Yという形式で表示されます。ここで、Xは 1.4Kメッセージの平均応答時間を、Yは 6Kメッセージの平均応答時間を示します。

測定単位はミリ秒です。

1.4Kバイトのチャンクは、データ入力や Canvasの項目をナビゲートするなど、Formsとの通常の対話時にネットワークで生成される標準的なストリームを表します。

6Kチャンクは、フォームを開く/閉じるなど、より複雑な操作で生成されるデータ・ストリームを表します。

8.2.2 Forms Latency Meterを使用可能にする方法を使用可能にする方法を使用可能にする方法を使用可能にする方法

Forms Latency Meter を使用可能にするには、フォームの起動に使用する HTML ファイルを変更して、“latencyCheck”アプレット・パラメータを追加します。

例:

...

<param name="serverPort" value="9000">

<param name="latencyCheck" value="true">

...

フォームを起動して、ステータス行の‘busybar’コンポーネントをダブルクリックすると、待ち時間テストが開始されます。

Page 73: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 692000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

ステータス行のこの部分に‘Latency’というテキストとカウンタが表示されます。

カウンタが 5で停止し、待ち時間が表示されます。

Page 74: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 702000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

8.2.3 Latency Meterを使用する理由を使用する理由を使用する理由を使用する理由

Latency Meterがどのように役立つのか疑問に思っている読者もいることでしょう。PINGを実行すればネットワークの待ち時間を調べられるのに、それでも Forms Latency Meterについて知っておく必要はあるのでしょうか?

PINGとは異なり、Latency Meterは httpプロトコルを使用してファイアーウォールを通じたネットワーク待ち時間を測定できるのです。たとえば、httpを通じて Forms Server 6iを実行する場合、クライアントとサーバーの両側にファイアーウォールが設置されていることがあります。Latency Meterを使用すれば、このような複雑な環境でも、ネットワーク待ち時間がパフォーマンスに及ぼす影響を調べることができます。

Page 75: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 712000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

8.2.4 結果の例結果の例結果の例結果の例

テストテストテストテスト X((((1.4K)))) Y((((6K))))

ローカル Forms Server(たとえば、同じマシン上にあるクライアントとサーバー)

0 3

同じ LAN上にある Forms Server(クライアントからサーバーまで 4ホップ)

33 105

WAN上にある Forms Server(クライアントからサーバーまで 8ホップ)

185 440

8.3 期待されるパフォーマンスの例期待されるパフォーマンスの例期待されるパフォーマンスの例期待されるパフォーマンスの例

以下の表では次のような環境を想定しています。

• deptと empに基づくマスター/ディテール・フォームで構成される簡単なフォームを使用。

• Forms Serverとデータベースは LAN上に存在。つまり、Formsランタイム・エンジンとデータベースの間で Net8トラフィックによる大きな遅延は生じない。

• クライアント PCは Pentium Ⅲ、450MHz

• Formsのバージョンは 6i

注:以下の数字は、あくまでキャッシングとネットワーク待ち時間が Formsのパフォーマンスに及ぼす影響を説明することを目的としており、パフォーマンス・レベルを保証するものではありません。

ネットワーク速度ネットワーク速度ネットワーク速度ネットワーク速度

((((1.4K/6K))))

簡単なフォームを起動する簡単なフォームを起動する簡単なフォームを起動する簡単なフォームを起動するまでの秒数までの秒数までの秒数までの秒数

(キャッシングを使用しない(キャッシングを使用しない(キャッシングを使用しない(キャッシングを使用しない場合)場合)場合)場合)

簡単なフォームを起動する簡単なフォームを起動する簡単なフォームを起動する簡単なフォームを起動するまでの秒数までの秒数までの秒数までの秒数

((((f60all.jar をキャッシュに入をキャッシュに入をキャッシュに入をキャッシュに入れた場合)れた場合)れた場合)れた場合)

<10 / <10 27 7

40 / 130 30 8

Page 76: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 722000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

付録付録付録付録 A----FORMS SERVER接続アクティビティ接続アクティビティ接続アクティビティ接続アクティビティ・ログ機能・ログ機能・ログ機能・ログ機能

接続要求および切断要求を監視し、Forms Serverのすべてのアクティビティを記録するログ・ファイルを提供する Forms Server接続アクティビティ・ログ機能は、さまざまな問題の診断に役立ちます。

この機能をオンにするのは簡単で、発生するオーバーヘッドもごくわずかです。したがって、この機能は常時オンに設定しておくことをお奨めします。7

Forms Serverによって生成されるメッセージはすべて指定されたログ・ファイルに書き込まれます。

これには、Forms Serverの起動、接続要求、確立された接続(要求が満たされたかどうか)、接続と切断、異常終了に関する情報が含まれます。ログ・ファイルには IPアドレス、ポート番号、プロセス ID情報も記録されるので、サーバー管理者はどのユーザーにどのプロセスが属するかを調べることができます。

さらに、Formsプロセスが突然終了した場合にも、ログ・ファイルにスタック・トレースが記録されます。

A 1 サーバーサーバーサーバーサーバー・ログ機能をオンにする・ログ機能をオンにする・ログ機能をオンにする・ログ機能をオンにする

Forms Server接続アクティビティ・ログ機能をオンに設定するには、Forms Serverの起動時にログ・ファイルの場所を指定してください。

Windows NT

バージョンバージョンバージョンバージョン コマンドコマンドコマンドコマンド

FORMS 4.5 f45srv32 log=d:¥logs¥f45srv.log

FORMS 5.0 f50srv32 log=d:¥logs¥f50srv32.log

FORMS 6.0 ifsrv60 -listen log=d:¥logs¥f60srv.log

Unix

バージョンバージョンバージョンバージョン コマンドコマンドコマンドコマンド

FORMS 4.5 f45ctl start log=/u01/logs/f45srv.log

FORMS 5.0 f50ctl start log=/u01/logs/f50srv.log

FORMS 6.0 f60ctl start log=/u01/logs/f60srv.log

コマンド・ラインにログ・ファイルの指定がないと、ログ機能は使用可能になっていても、メッセージは書き込まれません。

7 NTの場合、Forms Server 6iより前のバージョンでは、Forms Server接続アクティビティ・ログ機能をオンに設定した状態で、NTサービスを自動的に起動するように設定することはできません。Forms 6i以降では、サービスとしてサーバーをインストールする時にオプションを構成したり、後で適切なレジストリ変数を編集できます。

Page 77: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 732000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

A 2 サンプル出力サンプル出力サンプル出力サンプル出力

以下は、生成されるログ・ファイルの一例です。

FORMS CONNECTION ACTIVITY LOG FILE

Developer:Forms/LogRecord

[12/02/99 19:49:27 Pacific Standard Time]::Server Start-up Data:

Server Log Filename: d:¥users¥web¥logs¥f60srv.txt

Server Hostname: forms-ddr2-pc

Server Port: 6000

Server Pool: 1

Server Process Id: 271

[12/02/99 19:50:05 Pacific Standard Time]::LISTN: Connection Request [ConnId=0,

Addr=130.35.99.68:37640]

[12/02/99 19:50:05 Pacific Standard Time]::RUNFORM Client Connected [ConnId=0,

PID=294]

[12/02/99 19:50:13 Pacific Standard Time]::RUNFORM Client Disconnected

[ConnId=0, PID=294]

[12/02/99 19:50:41 Pacific Standard Time]::LISTN: Connection Request [ConnId=1,

Addr=130.35.99.68:39432]

[12/02/99 19:50:41 Pacific Standard Time]::RUNFORM Client Connected [ConnId=1,

PID=290]

[12/02/99 19:50:44 Pacific Standard Time]::RUNFORM Client Disconnected

[ConnId=1, PID=290]

Formsランタイム・プロセスがクラッシュした場合には、スタック・トレースが書き込まれます。ログ機能がオンに設定されていると、スタック・トレースはログ・ファイルに書き込まれます。

FORMS CONNECTION ACTIVITY LOG FILE

Developer:Forms/LogRecord

[Wed Feb 23 07:39:02 2000 PST]::Server Start-up Data:

Server Log Filename: log.txt

Server Hostname: cxlewis-sun.us.oracle.com

Server Port: 6992

Server Pool: 1

Server Process Id: 16838

[Wed Feb 23 07:39:13 2000 PST]::LISTN: Connection Request [ConnId=0,

Addr=138.3.65.126:2485]

[Wed Feb 23 07:39:13 2000 PST]::RUNFORM Client Connected [ConnId=0, PID=16839]

[Wed Feb 23 07:39:19 2000 PST]::Client Status [ConnId=0, PID=16839]

>> ERROR: Abnormal termination of connection, Error Code: 11

Page 78: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 742000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

FORM/BLOCK/FIELD: DUMP45:<NULL>.<NULL>

Last Trigger: ON-LOGON - (Successfully Completed)

Msg: <NULL>

Last Builtin: - (No error number)

------------- Call Stack Trace [ConnId = 0, ProcId = 16839] -------------

calling call entry argument values in hex

location type point (? means dubious value)

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

siehjmpterm()+408 CALL siehdst()+0 C3F5D8 ? B67274 ? B67260 ?

B67250 ? B67244 ? B67108 ?

sigacthandler()+40 PTR_CALL B ? 0 ? C08614 ? A ? C3F5D8 ?

0 ?

lmmstcalloc()+44 CALL lmmstmalloc()+0 B ? 0 ? EFFF7EE0 ? 0 ?

EFFF8174 ? BC3484 ?

iwpbxo()+32 CALL EFFF815C ? A ? EFFF815C ? 2 ?

EE863100 ? 1066 ?

iwpbeh()+556 CALL iwpbxo()+0 CA6448 ? C9B168 ? 1 ? 0 ? 0 ?

CB2428 ?

ixobjhm_handlemessa PTR_CALL C9A4F0 ? 800000 ? C9B168 ?

EEED209C ? 1 ? 1 ?

ixwsru()+184 CALL ixobjhm_handlemessa C9A4F0 ? 0 ? C9B6C8 ?

D80B48 ? D82330 ? D82330 ?

ifzget()+964 CALL iftogi()+0 D7DB38 ? C9A4F0 ? C9B6C8 ?

C9B6C8 ? BC3484 ? C74428 ?

ifzeky()+84 CALL ifzget()+0 CA6448 ? 1 ? 0 ? EEED1BC8 ?

1 ? CB2428 ?

ifzmgt()+1152 CALL ifzeky()+0 CA6448 ? CA6448 ? FFFFFFFD ?

CB2428 ? EEED1BC8 ? CB2428 ?

ifzmky()+48 CALL ifzmgt()+0 CA6448 ? 0 ? 0 ? CB2428 ?

EEED1BC8 ? CB2428 ?

ifzevl()+56 CALL ifzmky()+0 0 ? CA6448 ? B5E7B0 ?

7FFFFFFF ? 8000000 ?

EEED1BC8 ?

ifzefi()+140 CALL ifzevl()+0 CA6448 ? CA6448 ? 80000000 ?

A3E79C ? C9A4F0 ? 1 ?

ifzevf()+868 CALL ifzefi()+0 CA6448 ? CA6448 ? 1 ?

CB1330 ? EEED209C ? CB2428 ?

ifzerc()+2172 CALL ifzevf()+0 4000 ? FFFFBFFF ? CA6448 ?

8000000 ? 4000 ? EEED209C ?

ifzebk()+1940 CALL ifzerc()+0 CB2428 ? D71D38 ? CA6448 ?

C9A4F0 ? CB2428 ? EEED1BC8 ?

ifzefm()+232 CALL ifzebk()+0 0 ? 4000 ? CA6448 ? 1 ?

FFFEFFFF ? 10000 ?

ifzeif()+816 CALL ifzefm()+0 CA6448 ? CB3860 ? CA6448 ?

Page 79: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 752000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

2000000 ? 0 ? C9A4F0 ?

ifzexf()+1212 CALL ifzeif()+0 CA6448 ? 0 ? 0 ? 1 ? CB2428 ?

2000000 ?

ifzexe()+148 CALL ifzexf()+0 CA6448 ? 1 ? 0 ? CA6A30 ? 0 ?

0 ?

ifzman()+5564 CALL ifzexe()+0 0 ? CB0488 ? 6 ? CB0188 ?

CA6448 ? CB1288 ?

if4mmo()+40 CALL ifzman()+0 CBEA50 ? 8 ? 0 ? 0 ? 0 ? 0 ?

PTR_CALL 0 ? 0 ? 0 ? 2 ? C71410 ?

112830 ?

PTR_CALL C71014 ? 0 ? EEA0925C ?

C712CC ? C712E4 ? C712C0 ?

CALL 0 ? EFFF9730 ? 2 ? EFFF97E4 ?

6E ? 0 ?

CALL 8000 ? A0BC7C ? EFFF97E4 ?

64 ? 7 ? A0BF9C ?

------------- End of Call Stack Trace -------------

[Wed Feb 23 07:39:30 2000 PST]::RUNFORM Client Disconnected [ConnId=0, PID=16839]

サーバー・プロセスがクラッシュすると、終了メッセージにはオペレーティング・システム固有のエラー・コードが表示されます。

>> ERROR: 接続が異常終了しました。エラー・コード: 11

UNIXでは、signal.hに定義されます。signal.hは通常、/usr/include/signal.hに入っています。

NT の場合も、エラー・コードは signal.h に定義されます。signal.h は通常、C:¥program Files¥Microsoft VisualStudio¥VC98¥Includeに入っています。

以下の表は、NTの一般的な信号です。

名前名前名前名前 値値値値 説明説明説明説明

SIGINT 2 CTRL+Cで割込み。デフォルトのアクションでは、INT 23Hを発行します。

SIGILL 4 無効な命令。デフォルトのアクションでは、コール側プログラムを終了します。

SIGFPE 8 オーバーフローやゼロによる除算、無効な演算などの浮動少数点エラー。デフォルトのアクションでは、コール側プログラムを終了します。

SIGSEGV 11 無効なストレージ・アクセス。デフォルトのアクションでは、コール側プログラムを終了します。

SIGTERM 15 プログラムに送られる終了要求。デフォルトのアクションでは、コール側プログラムを終了します。

Page 80: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 762000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

SIGABRT 22 異常終了。デフォルトのアクションでは、終了コード 3 でコール側プログラムを終了します。

クラッシュ発生時に呼び出される信号は、Oracle 開発部門でもバグを調査する上で活用しています。

Page 81: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 772000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

付録付録付録付録 B----FORMS RUNTIME DIAGNOSTICS((((FRD::::FORMSランタイム診断機能)ランタイム診断機能)ランタイム診断機能)ランタイム診断機能)

Forms Runtime Diagnostics は、実行中のフォームから診断情報を収集するための機構です。この機能は、開発者がアプリケーションをデバッグしたり、システム管理者や Oracleのサポート・スタッフが問題の根本的原因を特定するのに役立ちます。

FRDは、個々のプロセス・レベルで使用可能に設定します。すなわち、1人のユーザーについて FRDを使用可能に設定しても、他のユーザーには影響がありません。FRDは、フォームのコマンド・ラインでオンに設定したり、オペレーティング・システム・コマンドまたはユーティリティを使用して、すでに実行中のフォームについてオンに設定できます。

FRDを使用可能にしてフォームを実行すると、外部ユーザー・イベントと内部処理イベントが発生順にログ・ファイルに書き込まれます。このログ・ファイルを調べれば、ある時点でフォームがどのような処理を実行していたか、または特定のユーザー・イベントによってどんな内部イベントが起動されたかを判断できます。

FRDは外部出力を生成します。したがって、特定の問題が発生した場合にのみ使用することをお奨めします。このためには、FRDを動的にオンに設定するか(セクション B1.3および B1.4を参照してください)、FRDをオンに設定する代替 HTMLファイルを作成します。こうすれば、問題が発生した場合に、調査を進める間にそのユーザーはこの代替 HTMLファイルにダイレクトされます。

B 1 FRDの起動の起動の起動の起動

B 1.1 コマンドコマンドコマンドコマンド・ラインから・ラインから・ラインから・ラインから FRDを起動するにはを起動するにはを起動するにはを起動するには

データ収集を開始するには、ランタイム引数“record”に次のように文字列“collect”を挿入してください。

Windows

バージョンバージョンバージョンバージョン コマンドコマンドコマンドコマンド

FORMS 4.5 f45run32 module=myform userid=scott/tiger@hockey

record=collect

FORMS 5.0 f50run32 module=myform userid=scott/tiger@hockey

record=collect

FORMS 6.0 ifrun60 module=myform userid=scott/tiger@hockey

record=collect

UNIX

バージョンバージョンバージョンバージョン コマンドコマンドコマンドコマンド

FORMS 4.5 f45runm module=myform userid=scott/tiger@hockey

record=collect

FORMS 5.0 f50runm module=myform userid=scott/tiger@hockey

record=collect

FORMS 6.0 f60runm module=myform userid=scott/tiger@hockey

record=collect

Page 82: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 782000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

これで、現在の作業ディレクトリに次のような名前のファイルが作成されます。

collect_<プロセス ID>.

ファイルに名前を指定するには、“log=”引数の値として文字列を入力してください。

Windows

バージョンバージョンバージョンバージョン コマンドコマンドコマンドコマンド

FORMS 4.5 f45run32 module=myform userid=scott/tiger@hockey

record=collect log=c:¥logs¥frd50.log

FORMS 5.0 f50run32 module=myform userid=scott/tiger@hockey

record=collect log=c:¥logs¥frd50.log

FORMS 6.0 ifrun60 module=myform userid=scott/tiger@hockey

record=collect log=c:¥logs¥frd60.log

UNIX

バージョンバージョンバージョンバージョン コマンドコマンドコマンドコマンド

FORMS 4.5 f45runm module=myform userid=scott/tiger@hockey

record=collect log=/u01/logs/frd45.log

FORMS 5.0 f50runm module=myform userid=scott/tiger@hockey

record=collect log=/u01/logs/frd50.log

FORMS 6.0 f60runm module=myform userid=scott/tiger@hockey

record=collect log=/u01/logs/frd60.log

B 1.2 Webからからからから FRDを起動するにはを起動するにはを起動するにはを起動するには

Webで FRDを起動するには、上記と同じように、起動 HTMLファイルでコマンド・ライン・パラメータを指定する必要があります。

FRDは、大量のデータを生成するため、デフォルトで FRDをオンに設定しないことをお奨めします。システム管理者は FRDをオンに設定した状態で代替 HTMLファイルを提供し、問題が発生したユーザーを FRD対応の代替ファイルにリダイレクトしてください。

Page 83: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 792000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

JInitiator

<OBJECT classid="clsid:9F77a997-F0F3-11d1-9195-00C04FC990DC"

WIDTH=400

HEIGHT=400

codebase="http://mymachine/jinit.exe">

<PARAM NAME="CODE" VALUE="oracle.forms.engine.Main" >

<PARAM NAME="CODEBASE" VALUE="/form60code/" >

<PARAM NAME="ARCHIVE" VALUE="/form60code/f60all.jar" >

<PARAM NAME="type" VALUE="application/x-jinit-applet">

<PARAM NAME="serverPort" VALUE="6000">

<PARAM NAME="serverArgs" VALUE="module=test userid=scott/tiger@hockey

record=collect log=frd.txt">

<PARAM NAME="serverApp" VALUE="default">

<COMMENT>

<EMBED type="application/x-jinit-applet"

java_CODE="oracle.forms.engine.Main"

java_CODEBASE="/form60code/"

java_ARCHIVE="/form60code/f60all.jar"

WIDTH=400

HEIGHT=400

serverPort="6000"

serverArgs="module=test userid=scott/tiger@hockey

record=collect log=frd.txt"

serverApp="default"

pluginspage="http://mymachine/jinit.html">

<NOEMBED>

</COMMENT>

Page 84: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 802000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

Appletviewer

<APPLET

CODEBASE="/forms60code/"

CODE="oracle.forms.engine.Main"

ARCHIVE="f60all.jar"

HEIGHT=500

WIDTH=500

>

<PARAM NAME="serverPort" value="9000">

<PARAM NAME="serverApp" value="default">

<PARAM NAME="serverArgs"

VALUE="module=test_form record=collect log=c:¥temp¥frdlog.txt">

</APPLET>

B 1.3 Oracle Enterprise Manager((((OEM)から)から)から)から FRDを起動するにはを起動するにはを起動するにはを起動するには8

Oracle Enterprise Managerをインストールおよび構成する方法については、オンライン・マニュアルを参照してください。

OEMリポジトリに Forms 6iをインストールする方法は、『インストール・ガイド』と以下のテクニカル・ホワイトペーパーを参照してください。

タイトル: Oracle Developer Serverバージョン 6iでWebに Formsアプリケーションを配備するには⇒ 第 13章、Oracle Enterprise Managerの Formsサポート

場所: Oracle Developer 6iドキュメント

Forms 6iサポートを構成すると、次のような OEM画面が表示されます。

8 訳注: 日本では、Oracle Enterprise ManagerのFormsサポートはOracle Developer R6i出荷時点では提供されていません。

Page 85: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 812000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

Forms Listenerから実行中のプロセスを見るには、リスナーを右クリックしてから「プロパティ」を選択してください。プロパティ画面の右のタブに、実行中のプロセスが表示されます。

追跡対象の Forms Serverプロセスを選択したら、プロセス表の行を右クリックして、「ログ機能をオンにする」を選択してください。

Page 86: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 822000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

ログ機能が使用可能になると、OEMの中から FRDログを表示することができます。

B 1.4 コマンドコマンドコマンドコマンド・ラインから・ラインから・ラインから・ラインから FRDを起動するにはを起動するにはを起動するにはを起動するには

NTでは、ランタイム・プロセスのスレッド IDにメッセージを送信します。ランタイムのプロセス IDが分かったら、ランタイム・プロセスによって書き込まれた一時ファイルの中の対応するプロセス ID を参照する必要があります。このファイルは、$orahome/forms60/emの中にあり、ファイル名は em_PID.rtiです。ランタイム・プロセスのスレッド IDは、このテキスト・ファイルの中の 1つのエントリです。スレッド IDが見つかったら、cmdシェルで次のようなコマンドを実行してください。

動的ログ機能をオンに設定するには、次のようにします。

$orahome/bin/ifctrl60 -s thread_ID 1

動的ログ機能をオフに設定するには、次のようにします。

$orahome/bin/ifctrl60 -s thread_ID 0

ログ・ファイルは$orahome/forms60/logディレクトリに書き込まれます。

Solarisでは、動的ログ機能をオン/オフに設定するには、ランタイム・プロセスに信号を送信します。ランタイムの PIDが分かったら、次のようなコマンドを発行してください。

kill -16 PID

動的ログ機能をオフに設定するには、次のようにします。

kill -1 PID

Page 87: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 832000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

B 2 FRDの出力の出力の出力の出力

B 2.1 追跡対象のイベント追跡対象のイベント追跡対象のイベント追跡対象のイベント

FRDは次のようなイベントを追跡します。

• ナビゲーション

• トリガーの起動:名前と階層構造内の場所を含む

• ビルトインの実行:名前と INおよび OUTパラメータ・タイプおよび値を含む

• メッセージには、メッセージ番号とテキストが含まれる

• FMX/MMXファイル・オープン

• 未処理の例外:表示された場合はエラー・メッセージを含む。表示されない場合は、エラー番号のみ。

B 2.2 予想される出力予想される出力予想される出力予想される出力

FRDは、連続番号で各イベントを識別します。この連続番号は、runformセッションの中で一意です。同じイベント IDに対して複数の関連情報を記録することができます。

# 4 - EMP:EMP.EMPNO - LOV

FORM EMP

STATUS CHANGED

BLOCK EMP

STATUS CHANGED

RECSTATUS CHANGED

FIELD DEPTNO

VALUE 10

END

# 4 - EMP:EMP.EMPNO.1225090206

LOV 10 ACCOUNTING

Out Argument 0 - Type: Boolean Value: TRUE

以下では、各 FRDイベントについて予想される出力を詳しく説明します。

B 2.2.1 ナビゲーションナビゲーションナビゲーションナビゲーション

• フォーム・レベル-ナビゲート先/ナビゲート元のフォーム名を記録します。

• ブロック・レベル-ナビゲート先/ナビゲート元のブロック名を記録します。

イベントID

Page 88: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 842000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

• アイテム・レベル-ナビゲート先/ナビゲート元のアイテム名を記録します。

# 5 - TEST_FORM:BLOCK3.PUSH_BUTTON7 - CLICK

FORM TEST_FORM

BLOCK BLOCK4

FIELD MY_TEXT_ITEM

VALUE 1

END

B 2.2.2 トリガートリガートリガートリガー

トリガーが起動されると、次のような情報が記録されます。

<trigger_name> Trigger Fired:

Form: <form_name>

Block: <block_name>

Item: <item_name>

トリガーのレベルは、リストの最後のアイテムに対応します。したがって、フォーム・レベルのトリガーの場合は、トリガー名の下にフォーム名だけが表示されます。アイテム・レベルで起動されたトリガーは、フォーム、ブロック、アイテムが指定されています。

トリガーの起動に続いて、ログには“State Delta”が書き込まれます。State Deltaは、1つ前の State Deltaが発生してから変更されたすべての内部情報のダンプです。デルタ機構は、出力ファイルのサイズを小さくする目的で使用されます。

# 5 - TEST_FORM:BLOCK3.TEXT_ITEM4.3962681314971500

CLICK TEST_FORM BLOCK3 PUSH_BUTTON7 1 MOUSE

WHEN-BUTTON-PRESSED Trigger Fired:

Form: TEST_FORM

Block: BLOCK3

Item: PUSH_BUTTON7

State Delta:

FORM TEST_FORM

ナビゲート元のフォーム

ナビゲート元のブロック

ナビゲート元のアイテム

ナビゲート方法:マウス・クリック

ナビゲート先のフォーム

ナビゲート先のブロック

ナビゲート先のアイテム

フォームの中からコンテキストを起動

State Delta

Page 89: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 852000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

CURFIELD PUSH_BUTTON7

この例では、イベント開始のフォーカスは BLOCK3.TEXT_ITEM4にあります。ユーザーがBLOCK3.PUSH_BUTTON7をクリックし、WHEN-BUTTON-PRESSEDトリガーが起動しました。イベントの最後に、State Deltaにはフォーカスが PUSH_BUTTON7に移ったことが示されています。

B 2.2.3 ビルトインビルトインビルトインビルトイン

PL/SQL Formsビルトインを実行すると、次のような出力が記録されます。

Executing <ビルトイン名> Built-In:

In Argument 0 - Type: <タイプ> Value: <値>

In Argument 1 - Type: <タイプ> Value: <値>

Out Argument 0 - Type: <タイプ> Value: <値>

Out引数 0は通常、関数の戻り値を表します。

# 20 - EMP:EMP.JOB.1223921846

KEY Next_item

WHEN-VALIDATE-ITEM Trigger Fired:

Form: EMP

Block: EMP

Item: JOB

State Delta:

Executing FIND_ITEM Built-in:

In Argument 0 - Type: String Value: comm

Out Argument 0 - Type: Integer Value: 65544

Executing SET_ITEM_PROPERTY/SET_FIELD Built-in:

In Argument 0 - Type: Integer Value: 65544

In Argument 1 - Type: Number Value: 79

In Argument 2 - Type: String Value: NULL

In Argument 3 - Type: Oracle Number Value: 5

In Argument 4 - Type: Oracle Number Value: 0

注:上記の例では、pl/sqlコードは次のようになります。

set_item_property('comm',enabled,property_false);

FIND_ITEMへのコールは Formsによって暗黙的に行われています。

FIND_ITEMビルトイン

Forms定数使用可能

Page 90: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 862000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

B 2.2.4 メッセージメッセージメッセージメッセージ

Formsによって生成されるメッセージはすべて、画面に表示されたのと同じようにログに記録されます。

Error Message: <message>

# 33 - EMP:EMP.DEPTNO.1223954763

MENU DEFAULT Action Save

Error Message: FRM-40508: ORACLE error: unable to INSERT record.

注:FRD は、メッセージが画面に表示されない場合でもエラー・メッセージを記録します。これは、SYSTEM.MESSAGE_LEVELがメッセージの表示を抑止する値に設定されている場合などに便利です。

B 2.2.5 ファイルファイルファイルファイル・オープン・オープン・オープン・オープン

FRDは次のようなタイプのファイルのオープンを記録します。9

• ライブラリ(pll/px)

• アイコン(ico)

• フォーム・バイナリ(fmx)

• メニュー・バイナリ(mmx)

オープンされたファイルは次のような形式でログに書き込まれます。

Opened file: <file_name>

Opened file: test_form.fmx

ファイルをオープンできなかった場合は、次のように記録されます。

Failed to open file: <file_name>

Failed to open file: text_form2.fmx

B 2.2.6 未処理の例外未処理の例外未処理の例外未処理の例外

呼び出された例外が検出されなかった場合、例外は次のような形式でファイルに記録されます。

Unhandled Exception: <exception_name>

名前が分からない場合、FRDは例外番号を記録します。

Unhandled Exception ORA- <exception_number>

9 現時点では一部のファイル・タイプには対応していません。これはバグ1216294として認識されています。

Page 91: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 872000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

ログでは、未処理の例外の後に State Deltaを記録する必要があります(State Deltaについての詳細は上記の「トリガー」の説明を参照してください)。

# 2 - FRD:BLOCK3.CNT.1227978389

CLICK FRD BLOCK3 PUSH_BUTTON8 1 MOUSE

WHEN-BUTTON-PRESSED Trigger Fired:

Form: FRD

Block: BLOCK3

Item: PUSH_BUTTON8

State Delta:

FORM FRD

CURFIELD PUSH_BUTTON8

Unhandled Exception ORA-03114

State Delta:

Error Message: FRM-40735: WHEN-BUTTON-PRESSED trigger raised unhandled exception

ORA-03114.

B 2.3 データデータデータデータ・ダンプ・ダンプ・ダンプ・ダンプ

ほとんどのイベントでは、イベントが発生すると、関連するデータがログ・ファイルに書き込まれます。

B 2.3.1 環境ダンプ環境ダンプ環境ダンプ環境ダンプ

環境ダンプは、ログの最初のエントリで、FRDの起動時にのみ書き込まれます。環境ダンプには次のような情報が含まれます。

• ファイル名

• 関連する runformインスタンスのプロセス ID

• (接続アクティビティ・ログから抽出された)ユーザーの IPアドレス

• バージョン情報-Formsおよびすべての Formsサブコンポーネント

• すべての環境変数の値および該当する Oracleレジストリ・エントリ

Page 92: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 882000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

Forms Runtime Diagnostic Collection Log

File Name: /tmp/cxl.log

Process ID: 4774

Forms 6.0 (Forms Runtime) Version 6.0.8.4.0 (Production)

PL/SQL Version 8.0.6.0.0 (Production)

Oracle Virtual Graphics System Version 6.0.5.31.0 (Production)

Oracle Multimedia Version 6.0.5.33.0 (Production)

Oracle Tools Integration Version 6.0.5.32.0 (Production)

Oracle Tools Common Area Version 6.0.5.31.0

Oracle CORE Version 4.0.6.0.0 - Production

B 2.3.2 状態ダンプ状態ダンプ状態ダンプ状態ダンプ

状態ダンプは、特定の時点での内部コンテキストのスナップショットを提供します。状態ダンプのログ出力は、起動時、トリガー起動後、例外または障害発生時など、多数のイベントによって起動されます。

# 3 - EMP:EMP.EMPNO - CLICK

FORM EMP

STATUS QUERY

BLOCK EMP

STATUS QUERY

RECSTATUS QUERY

FIELD ROWID

VALUE AAAAosAABAAAEpmAAA

FIELD EMPNO

VALUE 7369

FIELD ENAME

VALUE SMITH

FIELD JOB

VALUE CLERK

FIELD MGR

VALUE 7902

FIELD HIREDATE

VALUE 17-DEC-1980

FIELD SAL

VALUE 800

FIELD DEPTNO

VALUE 20

END

Page 93: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 892000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

B 2.3.3 記録されるイベント記録されるイベント記録されるイベント記録されるイベント/情報のマトリクス情報のマトリクス情報のマトリクス情報のマトリクス

イベントイベントイベントイベント 説明説明説明説明 関連する項目関連する項目関連する項目関連する項目

起動 ランタイムの新しいイン

スタンス

environment_dump

state_dump

フォームのナビゲート ユーザーがフォーム間を移動

to_form / from_form

ブロックのナビゲート ユーザーがブロック間を移動

to_form / from_form

to_block / from_block

アイテムのナビゲート ユーザーがアイテム間を移動

to_form / from_form

to_block / from_block

to_item / from_item

トリガーの起動 トリガーが実行される trigger_name

trigger_location

state_dump

ビルトインの実行 Forms ビルトインがランタイムに実行される

bulletin_name

arguments

return_value

ファイル・オープン OSをナビゲートする任意のオープン・コール

file_name

file_path

メッセージの送信 フォームによってメッセージが送信される

Message_code

message_text

未処理の例外 未処理の例外が呼び出される

error_code

error_text

state_dump

Page 94: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 902000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

アイテム名アイテム名アイテム名アイテム名 説明説明説明説明

environment_dump ファイル名、プロセス ID、ユーザーIP、バージョン情報、システム変数

state_dump 階層および値に関する情報

to_form ナビゲート先フォームの名前

from_form ナビゲート元フォームの名前

to_block ナビゲート先ブロックの名前

from_block ナビゲート元ブロックの名前

to_item ナビゲート先アイテムの名前

from_item ナビゲート元アイテムの名前

trigger_location モジュール階層構造内でのトリガーの完全修飾された場所

object_name トリガーが入っているオブジェクトの名前

builtin_name 実行されたビルトインの名前

Arguments ビルトインに渡された引数の値

return_value ビルトインから返された値

file_name オープンされたファイルの名前

file_path オープンされたファイルの完全パス

message_code メッセージ・コード(FRM-12345など)

message_text メッセージのテキスト

Error_code エラーのコード

Error_text エラーのテキスト

B 3 FRD出力の利用法出力の利用法出力の利用法出力の利用法

入手した情報はどうやって活用したら良いのでしょうか?

FRDログ・ファイルにはスタック・トレースが含まれていますから、この情報をもとにオラクル社のサポート・サービスの Webサイトで関連する問題を検索できます。この情報は Oracleサポート・サービスに提出することもできます。

FRDログを調べれば、フォームで発生した最後のイベントは何か、どんなトリガーが起動されたか、どのような内部ナビゲーションが行われたかを特定できます。この情報は問題を絞りこんでいく上で役立ちます。問題再現のパターンを特定してください。

たとえば、

Page 95: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 912000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

• ユーザーは特定の順序でアクションを実行するたびに必ず問題に遭遇しているのか?

• この問題を経験したことのないユーザーについても、イベントの発生順序は同じか?

• 問題が特定のトリガーで発生しているのか、障害が発生した時点でフォームはどのビルトインを実行していたか?

• FRDログに報告されたエラー・メッセージの中で画面に表示されないものはあるか?

このような疑問は問題を切り分けるのに有効です。問題の解決に直結しなくても、問題の性質を理解する上で役立ちますから、対処方法の特定につながる可能性があります。問題を簡潔かつ正確に説明できれば、サポート・サービスや Forms Developmentが問題の解決法を識別するのにも役立ちます。

B 4 機能機能機能機能/バージョンのマトリクスバージョンのマトリクスバージョンのマトリクスバージョンのマトリクス

機能機能機能機能 1.6.1 2.1 6.0 6i

runformコマンド・ライン/HTMLから FRDをオンに設定する

✓ ✓ ✓ ✓

OEMから FRDをオンに設定する ✓ ✓

コマンド・ライン・ユーティリティから FRDをオンに設定する

✓ ✓

NTスタック・トレース10 ✓ ✓ ✓ ✓

UNIXスタック・トレース11 ✓ ✓ ✓ ✓

B 5 FRD定数定数定数定数

たとえば、Formsビルトインに引数を表示する場合など、FRD出力には Formsに定義された定数の値が含まれることがしばしばあります。以下では、Forms定数とその意味を説明します。

/*

** レコード番号定数

*/

#define IP_CURRENT_RECORD ((ip_plsql_int)0)

/* ブロック・プロパティ*/

/*

10 現時点では使用できません。これは、バグ1211969として認識されています。11 キャラクタ・モードでFormsを実行する場合には使用できません。これは、バグ1208557として認識されています。

Page 96: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 922000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

** パッケージ TOOLSに定義された定数

*/

#define IP_TEXT_PARAMETER ((ip_plsql_int)1)

#define IP_DATA_PARAMETER ((ip_plsql_int)6)

#define IP_FILESYSTEM ((ip_plsql_int)11)

#define IP_DB ((ip_plsql_int)12)

#define IP_FORMS ((ip_plsql_int)1)

#define IP_REPORTWRITER ((ip_plsql_int)2)

#define IP_GRAPHICS ((ip_plsql_int)3)

#define IP_BOOKVIEWER ((ip_plsql_int)4)

#define IP_BOOKVIEWER2 ((ip_plsql_int)5)

#define IP_SYNCHRONOUS ((ip_plsql_int)1)

#define IP_ASYNCHRONOUS ((ip_plsql_int)2)

#define IP_BATCH ((ip_plsql_int)21)

#define IP_RUNTIME ((ip_plsql_int)22)

/*

** ibp40wsに定義された定数

**

** これらは同期および非同期の値と一致する

*/

#define IP_RESTRICTED ((ip_plsql_int)1)

#define IP_UNRESTRICTED ((ip_plsql_int)2)

/*

** 内部定数

*/

#define IP_INTERNAL_NULL_PARAMETERLISTID ((ip_plsql_int)-1)

#define IP_NON_KWD ((ip_plsql_int)0)

#define IP_ALL_RECORDS ((ip_plsql_int)-1) /* Execute_, Enter_Query */

#define IP_FOR_UPDATE ((ip_plsql_int)2) /* Execute_, Enter_Query */

#define IP_NO_SCREEN ((ip_plsql_int)3) /* Host */

#define IP_ATTR_ON ((ip_plsql_int)4) /* Set_Field */

#define IP_ATTR_OFF ((ip_plsql_int)5) /* Set_Field */

#define IP_PROPERTY_ON ((ip_plsql_int)4) /* Set_XXX_Property */

#define IP_PROPERTY_OFF ((ip_plsql_int)5) /* Set_XXX_Property */

#define IP_NO_PROMPT ((ip_plsql_int)60) /* Host */

/*

** Call, Call_Query

*/

#define IP_HIDE ((ip_plsql_int)6)

#define IP_NO_HIDE ((ip_plsql_int)7)

/*

Page 97: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 932000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

** Clear_Forms, Clear_Block

*/

#define IP_ASK_COMMIT ((ip_plsql_int)8)

#define IP_NO_COMMIT ((ip_plsql_int)9)

#define IP_DO_COMMIT ((ip_plsql_int)10)

#define IP_NO_VALIDATE ((ip_plsql_int)11)

/*

** Set_Field, Field_Characteristic, Block_Characteristic attributes

*/

#define IP_AUTO_HELP ((ip_plsql_int)12)

#define IP_AUTO_SKIP ((ip_plsql_int)13)

#define IP_BASE_TABLE ((ip_plsql_int)14)

#define IP_DATATYPE ((ip_plsql_int)15)

#define IP_DISPLAYED ((ip_plsql_int)16)

#define IP_DISPLAY_LENGTH ((ip_plsql_int)17)

#define IP_ECHO ((ip_plsql_int)18)

#define IP_ENTERABLE ((ip_plsql_int)19)

#define IP_FIXED_LENGTH ((ip_plsql_int)21)

#define IP_FIELD_LENGTH ((ip_plsql_int)22)

#define IP_LIST ((ip_plsql_int)23)

#define IP_PAGE ((ip_plsql_int)24)

#define IP_PRIMARY_KEY ((ip_plsql_int)25)

#define IP_QUERY_LENGTH ((ip_plsql_int)26)

#define IP_QUERYABLE ((ip_plsql_int)27)

#define IP_REQUIRED ((ip_plsql_int)28)

#define IP_UPDATEABLE ((ip_plsql_int)29)

#define IP_UPDATE_NULL ((ip_plsql_int)30)

#define IP_UPPER_CASE ((ip_plsql_int)31)

#define IP_X_POS ((ip_plsql_int)32)

#define IP_Y_POS ((ip_plsql_int)33)

#define IP_FIRST_FIELD ((ip_plsql_int)34)

#define IP_LAST_FIELD ((ip_plsql_int)35)

#define IP_FIRST_ITEM ((ip_plsql_int)34)

#define IP_LAST_ITEM ((ip_plsql_int)35)

#define IP_LAST_QUERY ((ip_plsql_int)510)

/*

** Create_List

*/

#define IP_REMOVE_LIST ((ip_plsql_int)36)

#define IP_NO_REMOVE_LIST ((ip_plsql_int)37)

/*

** Call, Call_Query

*/

Page 98: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 942000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

#define IP_DO_REPLACE ((ip_plsql_int)38)

#define IP_NO_REPLACE ((ip_plsql_int)39)

/*

** Block_Characteristic attributes

*/

#define IP_NEXT_BLOCK ((ip_plsql_int)40)

#define IP_NEXTBLOCK ((ip_plsql_int)40)

#define IP_PREVIOUS_BLOCK ((ip_plsql_int)41)

#define IP_TOP_RECORD ((ip_plsql_int)42)

/*

** Field_Characteristic

*/

#define IP_NEXT_FIELD ((ip_plsql_int)43)

#define IP_PREVIOUS_FIELD ((ip_plsql_int)44)

/*

** Forms_Characteristic

*/

#define IP_FIRST_BLOCK ((ip_plsql_int)45)

#define IP_LAST_BLOCK ((ip_plsql_int)46)

/*

** Application_Characteristic

*/

#define IP_CURRENT_FORM ((ip_plsql_int)47)

#define IP_CALLING_FORM ((ip_plsql_int)48)

/*

** List_Values

*/

#define IP_DO_RESTRICT ((ip_plsql_int)49)

#define IP_NO_RESTRICT ((ip_plsql_int)50)

/*

** Replace_Menu

*/

#define IP_PULL_DOWN ((ip_plsql_int)51)

#define IP_BAR ((ip_plsql_int)52)

#define IP_FULL_SCREEN ((ip_plsql_int)53)

/*

** Block_Characteristic

*/

#define IP_RECORDS_DISPLAYED ((ip_plsql_int)54)

Page 99: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 952000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

/*

** Execute_Query,Enter_Query

*/

#define IP_NO_WAIT ((ip_plsql_int)55)

/*

** Clear_Form, Exit_Form, New_Form

*/

#define IP_TO_SAVEPOINT ((ip_plsql_int)56)

#define IP_FULL_ROLLBACK ((ip_plsql_int)57)

/*

** Set_Input_Focus

*/

#define IP_MENU ((ip_plsql_int)58)

/*

** Exit_Form, New_Form

*/

#define IP_NO_ROLLBACK ((ip_plsql_int)59)

/*

** Set_Block

*/

#define IP_AUTO ((ip_plsql_int)62)

#define IP_KEY_MODE ((ip_plsql_int)63)

#define IP_LOCKING_MODE ((ip_plsql_int)64)

#define IP_UNIQUE_KEY ((ip_plsql_int)65)

#define IP_IMMEDIATE ((ip_plsql_int)66)

#define IP_DELAYED ((ip_plsql_int)67)

/*

** Set_Form

*/

#define IP_CURSOR_MODE ((ip_plsql_int)68)

#define IP_SAVEPOINT_MODE ((ip_plsql_int)69)

#define IP_OPEN_AT_COMMIT ((ip_plsql_int)70)

#define IP_CLOSE_AT_COMMIT ((ip_plsql_int)71)

/*

** アプリケーション特性

*/

#define IP_SAVEPOINT_NAME ((ip_plsql_int)72)

#define IP_USERNAME ((ip_plsql_int)73)

#define IP_PASSWORD ((ip_plsql_int)74)

Page 100: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 962000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

#define IP_CONNECT_STRING ((ip_plsql_int)75)

/*

** Field_Characteristic

*/

#define IP_DATABASE_VALUE ((ip_plsql_int)76)

/*

** Set_Block

*/

#define IP_UPDATEABLE_PRIMARY_KEY ((ip_plsql_int)77)

#define IP_NON_UPDATEABLE_PRIMARY_KEY ((ip_plsql_int)78)

/*

** アイテム特性

*/

#define IP_ENABLED ((ip_plsql_int)79)

#define IP_NAVIGABLE ((ip_plsql_int)80)

/*

** Create_Timer

*/

#define IP_NO_CHANGE ((ip_plsql_int)-1)

#define IP_REPEAT ((ip_plsql_int)82)

#define IP_NO_REPEAT ((ip_plsql_int)83)

/*

** アプリケーション特性

*/

#define IP_TIMER_NAME ((ip_plsql_int)84)

/*

** Set/Get ブロック特性

*/

#define IP_QUERY_HITS ((ip_plsql_int)85)

#define IP_QUERY_OPTIONS ((ip_plsql_int)86)

#define IP_RECORDS_TO_FETCH ((ip_plsql_int)87)

/* really UPDATE_CHANGED_COLUMNS */

#define IP_UPDATE_CHANGED_ONLY ((ip_plsql_int)88)

/*

** Show_Alert 戻り値

*/

#define IP_ALERT_BUTTON1 ((ip_plsql_int)88)

#define IP_ALERT_BUTTON2 ((ip_plsql_int)89)

Page 101: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 972000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

#define IP_ALERT_BUTTON3 ((ip_plsql_int)90)

#define IP_BOOLEAN_PARAMETER ((ip_plsql_int)91) /* Add_Parameter */

#define IP_DATE_PARAMETER ((ip_plsql_int)92) /* Add_Parameter */

#define IP_BLOCK_NAME ((ip_plsql_int)93) /* Get_Item */

/*

** ステータス定数 (100-120)

*/

#define IP_STATUS ((ip_plsql_int)100)

#define IP_INSERT_STATUS ((ip_plsql_int)101)

#define IP_CHANGED_STATUS ((ip_plsql_int)102)

#define IP_QUERY_STATUS ((ip_plsql_int)103)

#define IP_NEW_STATUS ((ip_plsql_int)104)

/*

** メッセージ行定数 (121-140)

*/

#define IP_ACKNOWLEDGE ((ip_plsql_int)121)

#define IP_NO_ACKNOWLEDGE ((ip_plsql_int)122)

#define IP_ACKNOWLEDGE_PREVIOUS ((ip_plsql_int)123)

#define IP_NO_ACKNOWLEDGE_PREVIOUS ((ip_plsql_int)124)

/*

** その他のプロパティ

*/

#define IP_INITIAL_VALUE ((ip_plsql_int)141) /* Get_Field_Property */

#define IP_UNUSED_142 ((ip_plsql_int)142)

#define IP_GROUP_NAME ((ip_plsql_int)143) /* Get_LOV_Property */

#define IP_LOV_SIZE ((ip_plsql_int)144) /* Set_LOV_Property */

#define IP_AUTO_REFRESH ((ip_plsql_int)145) /* Get/Set_LOV_Property */

#define IP_AUTO_DISPLAY ((ip_plsql_int)146) /* Get/Set_LOV_Property */

#define IP_AUTO_CONFIRM ((ip_plsql_int)147) /* Get/Set_LOV_Property */

#define IP_LONGLIST ((ip_plsql_int)148) /* Get/Set_LOV_Property */

#define IP_RETURNITEM ((ip_plsql_int)149) /* Get/Set_LOV_Column_Property */

/*

** リレーション定数 (151-180)

*/

#define IP_MASTER_NAME ((ip_plsql_int)151)

#define IP_DETAIL_NAME ((ip_plsql_int)152)

#define IP_NEXT_RELATION ((ip_plsql_int)153)

#define IP_NEXT_MASTER_RELATION IP_NEXT_RELATION

#define IP_MASTER_DELETES ((ip_plsql_int)154)

#define IP_DEFERRED_COORDINATION ((ip_plsql_int)155)

Page 102: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 982000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

#define IP_AUTOQUERY ((ip_plsql_int)156)

#define IP_ISOLATED ((ip_plsql_int)157)

#define IP_NON_ISOLATED ((ip_plsql_int)158)

#define IP_CASCADING ((ip_plsql_int)159)

#define IP_FIRST_RELATION ((ip_plsql_int)160)

#define IP_COORDINATED ((ip_plsql_int)161)

#define IP_COORDINATION_OPERATION ((ip_plsql_int)162)

#define IP_NON_COORDINATED ((ip_plsql_int)163)

#define IP_COORDINATION_STATUS ((ip_plsql_int)164)

#define IP_NEXT_DETAIL_RELATION ((ip_plsql_int)165)

#define IP_PREVENT_MASTERLESS_OPERATION ((ip_plsql_int)166)

#define IP_DEFER_UNTIL_VISIBLE ((ip_plsql_int)167)

/*

** ブロック・プロパティ (181-250)

*/

#define IP_ORDER_BY ((ip_plsql_int)181)

#define IP_DELETE_ALLOWED ((ip_plsql_int)182)

#define IP_UPDATE_ALLOWED ((ip_plsql_int)183)

#define IP_INSERT_ALLOWED ((ip_plsql_int)184)

#define IP_COLUMN_SECURITY ((ip_plsql_int)185)

#define IP_OPTIMIZER_HINT ((ip_plsql_int)186)

#define IP_FIRST_MASTER_RELATION IP_FIRST_RELATION

#define IP_FIRST_DETAIL_RELATION ((ip_plsql_int)187)

#define IP_NEXT_NAVIGATION_BLOCK ((ip_plsql_int)188)

#define IP_PREVIOUS_NAVIGATION_BLOCK ((ip_plsql_int)189)

#define IP_DEFAULT_WHERE ((ip_plsql_int)190)

#define IP_NAVIGATION_STYLE ((ip_plsql_int)191)

#define IP_SAME_RECORD ((ip_plsql_int)192)

#define IP_CHANGE_RECORD ((ip_plsql_int)193)

#define IP_CHANGE_BLOCK ((ip_plsql_int)194)

#define IP_QUERY_ALLOWED ((ip_plsql_int)195)

#define IP_QUERY_SOURCE ((ip_plsql_int)196)

#define IP_QUERY_SOURCE_TYPE ((ip_plsql_int)197)

#define IP_INSERT_SOURCE ((ip_plsql_int)198)

#define IP_INSERT_SOURCE_TYPE ((ip_plsql_int)199)

#define IP_UPDATE_SOURCE ((ip_plsql_int)200)

#define IP_UPDATE_SOURCE_TYPE ((ip_plsql_int)201)

#define IP_DELETE_SOURCE ((ip_plsql_int)202)

#define IP_DELETE_SOURCE_TYPE ((ip_plsql_int)203)

#define IP_TABLE_SOURCE ((ip_plsql_int)204)

#define IP_PROCEDURE_SOURCE ((ip_plsql_int)205)

#define IP_ALIAS ((ip_plsql_int)206)

#define IP_BLOCKSCROLLBAR_POSITION ((ip_plsql_int)207)

#define IP_BLOCKSCROLLBAR_X_POS ((ip_plsql_int)208)

#define IP_BLOCKSCROLLBAR_Y_POS ((ip_plsql_int)209)

Page 103: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 992000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

#define IP_FIRST_BUTTON ((ip_plsql_int)210)

#define IP_NEXT_BUTTON ((ip_plsql_int)211)

#define IP_SELECTED_RADIO_BUTTON ((ip_plsql_int)212)

#define IP_ICON_IN_HTOOLBAR ((ip_plsql_int)213)

#define IP_ICON_IN_VTOOLBAR ((ip_plsql_int)214)

#define IP_ICON_IN_MENU ((ip_plsql_int)215)

/*

** アプリケーション・プロパティ (251-300)

*/

#define IP_OPERATING_SYSTEM ((ip_plsql_int)251)

#define IP_TOOLKIT ((ip_plsql_int)252)

#define IP_DATASOURCE ((ip_plsql_int)253)

#define IP_VERSION ((ip_plsql_int)254)

#define IP_DISPLAY_WD ((ip_plsql_int)255)

#define IP_DISPLAY_HT ((ip_plsql_int)256)

#define IP_CURRENT_FORM_NAME ((ip_plsql_int)257)

#define IP_CALLING_FORM_NAME ((ip_plsql_int)258)

#define IP_USER_NLS_CHARACTER_SET ((ip_plsql_int)259)

#define IP_USER_NLS_LANG ((ip_plsql_int)260)

#define IP_USER_NLS_LANGUAGE ((ip_plsql_int)261)

#define IP_USER_NLS_TERRITORY ((ip_plsql_int)262)

#define IP_CURSOR_STYLE ((ip_plsql_int)263)

#define IP_BUILTIN_DATE_FORMAT ((ip_plsql_int)264)

#define IP_BUILTIN_DECIMAL_CHAR ((ip_plsql_int)265)

#define IP_MENU_BUFFERING ((ip_plsql_int)266)

#define IP_DB_DESIGN_PROPERTIES ((ip_plsql_int)267)

#define IP_PLSQL_DATE_FORMAT ((ip_plsql_int)268)

#define IP_USER_NLS_DATE_FORMAT ((ip_plsql_int)269)

#define IP_DATE_FORMAT_COMPATIBILITY_MODE ((ip_plsql_int)270)

#define IP_USER_DATE_FORMAT ((ip_plsql_int)271)

#define IP_USER_DATETIME_FORMAT ((ip_plsql_int)272)

#define IP_OUTPUT_DATE_FORMAT ((ip_plsql_int)273)

#define IP_OUTPUT_DATETIME_FORMAT ((ip_plsql_int)274)

#define IP_PLSQL_NUMERIC_CHARACTERS ((ip_plsql_int)275)

#define IP_FLAG_USER_VALUE_TOO_LONG ((ip_plsql_int)276)

/*

** フォーム・プロパティ (301-400)

*/

#define IP_DEFAULT ((ip_plsql_int)301)

#define IP_FORM ((ip_plsql_int)302)

#define IP_BLOCK ((ip_plsql_int)303)

#define IP_RECORD ((ip_plsql_int)304)

#define IP_ITEM ((ip_plsql_int)305)

#define IP_VALIDATION_UNIT ((ip_plsql_int)306)

Page 104: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 1002000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

#define IP_FIRST_NAVIGATION_BLOCK ((ip_plsql_int)307)

#define IP_FORM_NAME ((ip_plsql_int)308)

#define IP_FILE_NAME ((ip_plsql_int)309)

#define IP_GLOBAL ((ip_plsql_int)310)

#define IP_MODULE_NLS_CHARACTER_SET ((ip_plsql_int)311)

#define IP_MODULE_NLS_LANG ((ip_plsql_int)312)

#define IP_MODULE_NLS_LANGUAGE ((ip_plsql_int)313)

#define IP_MODULE_NLS_TERRITORY ((ip_plsql_int)314)

#define IP_ERROR_NOTIFICATION ((ip_plsql_int)315)

#define IP_GENERAL_EXCEPTION ((ip_plsql_int)316)

#define IP_NO_EXCEPTION ((ip_plsql_int)317)

#define IP_SPECIFIC_EXCEPTION ((ip_plsql_int)318)

#define IP_COORDINATE_SYSTEM ((ip_plsql_int)319)

#define IP_CHARACTER_CELL_WIDTH ((ip_plsql_int)320)

#define IP_CHARACTER_CELL_HEIGHT ((ip_plsql_int)321)

#define IP_BLOCKING ((ip_plsql_int)322)

#define IP_NON_BLOCKING ((ip_plsql_int)323)

#define IP_PROPERTY_4_5 ((ip_plsql_int)324)

/*

** アイテム・プロパティ (401-500)

*/

#define IP_CASE_INSENSITIVE_QUERY ((ip_plsql_int)401)

#define IP_LOCK_RECORD_ON_CHANGE ((ip_plsql_int)402)

#define IP_DERIVED_COLUMN ((ip_plsql_int)403)

#define IP_HINT_TEXT ((ip_plsql_int)404)

#define IP_LOV_NAME ((ip_plsql_int)405)

#define IP_ALTERABLE ((ip_plsql_int)406)

#define IP_FORMAT_MASK ((ip_plsql_int)407)

#define IP_FORMATTED_VALUE ((ip_plsql_int)408)

#define IP_UNFORMATTED_VALUE ((ip_plsql_int)409)

#define IP_UPDATE_PERMISSION ((ip_plsql_int)410)

#define IP_ITEM_IS_VALID ((ip_plsql_int)411)

#define IP_VALUE_CHANGED ((ip_plsql_int)413) /* UPDATE_COLUMN */

#define IP_NEXT_NAVIGABLE_ITEM ((ip_plsql_int)414)

#define IP_PREVIOUS_NAVIGABLE_ITEM ((ip_plsql_int)415)

#define IP_OLE_IUNKNOWN_PTR ((ip_plsql_int)416)

#define IP_CMP_QUALITY ((ip_plsql_int)417)

#define IP_IMAGE_DEPTH ((ip_plsql_int)418)

#define IP_IMAGE_FORMAT ((ip_plsql_int)419)

/*

** その他

*/

#define IP_QUERY_ONLY ((ip_plsql_int)501)

#define IP_NO_QUERY_ONLY ((ip_plsql_int)502)

Page 105: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 1012000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

#define IP_DEVELOPER_NAMES ((ip_plsql_int)503)

#define IP_ENABLE_VALIDATION ((ip_plsql_int)504)

#define IP_DISABLE_VALIDATION ((ip_plsql_int)505)

#define IP_VALIDATION ((ip_plsql_int)506)

#define IP_DEFER_REQUIRED_ENFORCEMENT ((ip_plsql_int)507)

#define IP_CURRENT_ROW_VA ((ip_plsql_int)508)

/*

** オープン・フォーム (ピア・フォーム)

*/

#define IP_NO_ACTIVATE ((ip_plsql_int)511)

#define IP_ACTIVATE ((ip_plsql_int)512)

#define IP_SESSION ((ip_plsql_int)513)

#define IP_NO_SESSION ((ip_plsql_int)514)

#define IP_SHAREDATA ((ip_plsql_int)515)

#define IP_NO_SHAREDATA ((ip_plsql_int)516)

/*

** Forms_Characteristic (続き)

*/

#define IP_INTERACTION_MODE ((ip_plsql_int)517)

#define IP_ISOLATION_MODE ((ip_plsql_int)518)

#define IP_MAX_QUERY_TIME ((ip_plsql_int)519)

#define IP_MAX_RECORDS_FETCHED ((ip_plsql_int)520)

/*

** その他 (続き)

*/

#define IP_DIRECTION_DEFAULT ((ip_plsql_int)521)

#define IP_ALTERABLE_PLUS ((ip_plsql_int)522)

#define IP_ENTERABLE_PLUS ((ip_plsql_int)523)

#define IP_DISPLAYED_PLUS ((ip_plsql_int)524)

#define IP_BALLOON_TEXT ((ip_plsql_int)525)

#define IP_BALLOON_ATTRIBUTE ((ip_plsql_int)526)

#define IP_HORIZONTAL ((ip_plsql_int)527)

#define IP_VERTICAL ((ip_plsql_int)528)

#define IP_TOPMOST_TAB_PAGE ((ip_plsql_int)529)

#define IP_ITEM_TAB_PAGE ((ip_plsql_int)530)

#define IP_RECORDS_TO_INSERT ((ip_plsql_int)531)

#define IP_RECORDS_TO_UPDATE ((ip_plsql_int)532)

#define IP_RECORDS_TO_DELETE ((ip_plsql_int)533)

#define IP_TAB_X_OFFSET ((ip_plsql_int)535)

#define IP_TAB_Y_OFFSET ((ip_plsql_int)536)

Page 106: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 1022000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

#define IP_HELP_TOPIC ((ip_plsql_int)541)

#define IP_HELPBOOK_TITLE ((ip_plsql_int)542)

#define IP_UNUSED_551 ((ip_plsql_int)551)

#define IP_UNUSED_552 ((ip_plsql_int)552)

#define IP_UNUSED_553 ((ip_plsql_int)553)

#define IP_UNUSED_554 ((ip_plsql_int)554)

#define IP_UNUSED_555 ((ip_plsql_int)555)

#define IP_UNUSED_556 ((ip_plsql_int)556)

#define IP_UNUSED_557 ((ip_plsql_int)557)

#define IP_UNUSED_558 ((ip_plsql_int)558)

#define IP_UNUSED_559 ((ip_plsql_int)559)

#define IP_UNUSED_560 ((ip_plsql_int)560)

#define IP_UNUSED_561 ((ip_plsql_int)561)

#define IP_UNUSED_562 ((ip_plsql_int)562)

#define IP_UNUSED_563 ((ip_plsql_int)563)

#define IP_UNUSED_564 ((ip_plsql_int)564)

#define IP_UNUSED_565 ((ip_plsql_int)565)

#define IP_UNUSED_566 ((ip_plsql_int)566)

#define IP_UNUSED_567 ((ip_plsql_int)567)

#define IP_UNUSED_568 ((ip_plsql_int)568)

#define IP_UNUSED_569 ((ip_plsql_int)569)

#define IP_UNUSED_570 ((ip_plsql_int)570)

#define IP_ALIGNMENT_LEFT ((ip_plsql_int)571)

#define IP_ALIGNMENT_RIGHT ((ip_plsql_int)572)

#define IP_ALIGNMENT_CENTER ((ip_plsql_int)573)

#define IP_ALIGNMENT_START ((ip_plsql_int)574)

#define IP_ALIGNMENT_END ((ip_plsql_int)575)

#define IP_LEFT_TO_RIGHT ((ip_plsql_int)576)

#define IP_RIGHT_TO_LEFT ((ip_plsql_int)577)

#define IP_DIRECTION ((ip_plsql_int)578)

#define IP_UNUSED_581 ((ip_plsql_int)581)

#define IP_UNUSED_582 ((ip_plsql_int)582)

#define IP_UNUSED_583 ((ip_plsql_int)583)

#define IP_UNUSED_584 ((ip_plsql_int)584)

#define IP_UNUSED_585 ((ip_plsql_int)585)

#define IP_UNUSED_586 ((ip_plsql_int)586)

#define IP_UNUSED_587 ((ip_plsql_int)587)

#define IP_UNUSED_588 ((ip_plsql_int)588)

#define IP_UNUSED_589 ((ip_plsql_int)589)

#define IP_UNUSED_590 ((ip_plsql_int)590)

/*

** Block_Characteristic属性 (続き)

*/

Page 107: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 1032000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

#define IP_QUERY_DATA_SOURCE_NAME ((ip_plsql_int)591)

#define IP_QUERY_DATA_SOURCE_TYPE ((ip_plsql_int)592)

#define IP_DML_DATA_TARGET_NAME ((ip_plsql_int)593)

#define IP_DML_DATA_TARGET_TYPE ((ip_plsql_int)594)

/*

** その他 (続き)

*/

#define IP_RAISED ((ip_plsql_int)595)

#define IP_LOWERED ((ip_plsql_int)596)

#define IP_PLAIN ((ip_plsql_int)537)

/*

** グループ定数

*/

#define IP_END_OF_GROUP ((ip_plsql_int)-2) /* Add_Group_Row によって使用される*/

#define IP_CHAR_COLUMN ((ip_plsql_int)1300) /* CHAR列セレクタ*/

#define IP_DATE_COLUMN ((ip_plsql_int)1301) /* DATE列セレクタ*/

#define IP_NUMBER_COLUMN ((ip_plsql_int)1302) /* NUMBER列セレクタ*/

#define IP_LONG_COLUMN ((ip_plsql_int)1303) /* LONG列セレクタ*/

/*

** Canvas && Window定数 (1400-1499)

*/

#define IP_DISPLAY ((ip_plsql_int)1400)

#define IP_VISIBLE ((ip_plsql_int)1401)

#define IP_POSITION ((ip_plsql_int)1402)

#define IP_WINDOW_SIZE ((ip_plsql_int)1403)

#define IP_VIEW_SIZE ((ip_plsql_int)1404)

#define IP_POSITION_ON_CANVAS ((ip_plsql_int)1405)

#define IP_X_POS_ON_CANVAS ((ip_plsql_int)1406)

#define IP_Y_POS_ON_CANVAS ((ip_plsql_int)1407)

#define IP_DISPLAY_POSITION ((ip_plsql_int)1408)

#define IP_DISPLAY_X_POS ((ip_plsql_int)1409)

#define IP_DISPLAY_Y_POS ((ip_plsql_int)1410)

#define IP_CANVAS_SIZE ((ip_plsql_int)1411)

#define IP_TITLE ((ip_plsql_int)1412)

#define IP_WINDOW_NAME ((ip_plsql_int)1413)

#define IP_STACKED ((ip_plsql_int)1414)

#define IP_WINDOW_X_POS ((ip_plsql_int)1416)

#define IP_WINDOW_Y_POS ((ip_plsql_int)1417)

#define IP_WINDOW_WIDTH ((ip_plsql_int)1418)

#define IP_WINDOW_HEIGHT ((ip_plsql_int)1419)

#define IP_WINDOW_POSITION ((ip_plsql_int)1420)

Page 108: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 1042000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

#define IP_PROPERTY_MAXIMIZE ((ip_plsql_int)1421)

#define IP_PROPERTY_MINIMIZE ((ip_plsql_int)1422)

#define IP_PROPERTY_NORMAL ((ip_plsql_int)1423)

#define IP_WINDOW_STATE ((ip_plsql_int)1424)

#define IP_REMOVE_ON_EXIT ((ip_plsql_int)1425)

/*

** Get/Set_Item_Property (1500-1599)

*/

#define IP_NEXT_ITEM ((ip_plsql_int)1501)

#define IP_PREVIOUS_ITEM ((ip_plsql_int)1502)

#define IP_ITEM_SIZE ((ip_plsql_int)1503)

#define IP_ITEM_TYPE ((ip_plsql_int)1504)

#define IP_LABEL ((ip_plsql_int)1505)

#define IP_ICONIC_BUTTON ((ip_plsql_int)1506)

#define IP_MAX_LENGTH ((ip_plsql_int)1507)

#define IP_WIDTH ((ip_plsql_int)1508)

#define IP_HEIGHT ((ip_plsql_int)1509)

#define IP_ITEM_NAME ((ip_plsql_int)1510)

#define IP_SECURE ((ip_plsql_int)1511)

#define IP_ITEM_CANVAS ((ip_plsql_int)1512)

#define IP_WRAP_STYLE ((ip_plsql_int)1513)

#define IP_KEEP_POSITION ((ip_plsql_int)1514)

#define IP_SCROLLBAR ((ip_plsql_int)1515)

#define IP_AUTO_NAVIGATE ((ip_plsql_int)1516)

#define IP_ALIGNMENT ((ip_plsql_int)1517)

#define IP_CASE_RESTRICTION ((ip_plsql_int)1518)

#define IP_BORDER_BEVEL ((ip_plsql_int)1519)

#define IP_MULTI_LINE ((ip_plsql_int)1520)

#define IP_AUTO_HINT ((ip_plsql_int)1521)

#define IP_UPPERCASE ((ip_plsql_int)1522)

#define IP_LOWERCASE ((ip_plsql_int)1523)

#define IP_NONE ((ip_plsql_int)1524)

#define IP_VISUAL_ATTRIBUTE ((ip_plsql_int)1525)

#define IP_ITEM_DEFAULT_VALUE ((ip_plsql_int)1526)

#define IP_ICON_NAME ((ip_plsql_int)1527)

#define IP_RANGE_LOW ((ip_plsql_int)1528)

#define IP_RANGE_HIGH ((ip_plsql_int)1529)

#define IP_ENFORCE_KEY ((ip_plsql_int)1530)

#define IP_EDITOR_NAME ((ip_plsql_int)1531)

#define IP_EDITOR_XPOS ((ip_plsql_int)1532)

#define IP_EDITOR_YPOS ((ip_plsql_int)1533)

#define IP_LOV_XPOS ((ip_plsql_int)1534)

#define IP_LOV_YPOS ((ip_plsql_int)1535)

#define IP_WINDOW_HANDLE ((ip_plsql_int)1536)

#define IP_APPLICATION_INSTANCE ((ip_plsql_int)1537)

Page 109: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 1052000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

#define IP_MNEMONIC ((ip_plsql_int)1538)

#define IP_SHOW_POPUPMENU ((ip_plsql_int)1539)

#define IP_POPUPMENU_CUT_ITEM ((ip_plsql_int)1540)

#define IP_POPUPMENU_COPY_ITEM ((ip_plsql_int)1541)

#define IP_POPUPMENU_PASTE_ITEM ((ip_plsql_int)1542)

#define IP_POPUPMENU_PASTESPEC_ITEM ((ip_plsql_int)1543)

#define IP_POPUPMENU_INSOBJ_ITEM ((ip_plsql_int)1544)

#define IP_POPUPMENU_DELOBJ_ITEM ((ip_plsql_int)1545)

#define IP_POPUPMENU_LINKS_ITEM ((ip_plsql_int)1546)

#define IP_POPUPMENU_OBJECT_ITEM ((ip_plsql_int)1547)

#define IP_LOV_VALIDATION ((ip_plsql_int)1548)

#define IP_SHOW_PALETTE ((ip_plsql_int)1549)

#define IP_PROMPT_TEXT ((ip_plsql_int)1550)

#define IP_PROMPT_EDGE ((ip_plsql_int)1551)

#define IP_PROMPT_EDGE_OFFSET ((ip_plsql_int)1552)

#define IP_PROMPT_EDGE_ALIGNMENT ((ip_plsql_int)1553)

#define IP_PROMPT_ALIGNMENT_OFFSET ((ip_plsql_int)1554)

#define IP_PROMPT_TEXT_ALIGNMENT ((ip_plsql_int)1555)

#define IP_PROMPT_DISPLAY_STYLE ((ip_plsql_int)1556)

#define IP_PROMPT_VISUAL_ATTRIBUTE ((ip_plsql_int)1557)

#define IP_SHOW_PLAY_BUTTON ((ip_plsql_int)1558)

#define IP_SHOW_REWIND_BUTTON ((ip_plsql_int)1559)

#define IP_SHOW_FAST_FORWARD_BUTTON ((ip_plsql_int)1560)

#define IP_SHOW_RECORD_BUTTON ((ip_plsql_int)1561)

#define IP_SHOW_VOLUME_CONTROL ((ip_plsql_int)1562)

#define IP_SHOW_TIME_INDICATOR ((ip_plsql_int)1563)

#define IP_SHOW_SLIDER ((ip_plsql_int)1564)

#define IP_MERGE_VISUAL_ATTRIBUTE ((ip_plsql_int)1565)

#define IP_MERGE_PROMPT_VISUAL_ATTRIBUTE ((ip_plsql_int)1566)

#define IP_MERGE_CURRENT_ROW_VA ((ip_plsql_int)1567)

#define IP_MERGE_BALLOON_ATTRIBUTE ((ip_plsql_int)1568)

/*

** IMAGE Zoom 定数

*/

#define IP_ZOOM_IN ((ip_plsql_int)-1)

#define IP_ZOOM_OUT ((ip_plsql_int)-2)

#define IP_SELECTION_RECTANGLE ((ip_plsql_int)-3)

#define IP_ADJUST_TO_FIT ((ip_plsql_int)-4)

#define IP_ZOOM_PERCENT ((ip_plsql_int)-5)

/*

** OLE Object Set_Item_Property定数

*/

#define IP_POPUP_MENUITEM_HIDDEN ((ip_plsql_int)-3)

#define IP_POPUP_MENUITEM_DISABLED ((ip_plsql_int)-2)

Page 110: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 1062000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

#define IP_FILENAME ((ip_plsql_int)100)

#define IP_CLASSNAME ((ip_plsql_int)101)

/*

** Get/Set_Menu_Item_Property (1600-1699)

*/

#define IP_CHECKED ((ip_plsql_int)1600)

#define IP_COLUMN_NAME ((ip_plsql_int)1601)

/*

** Set_Alert_Property (1700-1799)

*/

#define IP_ALERT_MESSAGE_TEXT ((ip_plsql_int)1700)

#define IP_ALERT_DEFAULT ((ip_plsql_int)1701)

/*

** Get/Set_Report_Object_Property (1800-1899)

*/

#define IP_REPORT_FILENAME ((ip_plsql_int)1800)

#define IP_REPORT_EXECUTION_MODE ((ip_plsql_int)1801)

#define IP_REPORT_COMM_MODE ((ip_plsql_int)1802)

#define IP_REPORT_SOURCE_BLOCK ((ip_plsql_int)1803)

#define IP_REPORT_QUERY_NAME ((ip_plsql_int)1804)

#define IP_REPORT_DESNAME ((ip_plsql_int)1805)

#define IP_REPORT_DESTYPE ((ip_plsql_int)1806)

#define IP_REPORT_DESFORMAT ((ip_plsql_int)1807)

#define IP_REPORT_SERVER ((ip_plsql_int)1808)

#define IP_REPORT_OTHER ((ip_plsql_int)1809)

#define IP_PREVIEW ((ip_plsql_int)1810)

#define IP_FILE ((ip_plsql_int)1811)

#define IP_PRINTER ((ip_plsql_int)1812)

#define IP_MAIL ((ip_plsql_int)1813)

#define IP_CACHE ((ip_plsql_int)1814)

#define IP_SCREEN ((ip_plsql_int)1815)

/*

** Get/Set_xx_Property - ビジュアル・プロパティ (1900-1999)

*/

#define IP_FONT_NAME ((ip_plsql_int)1900)

#define IP_FONT_SIZE ((ip_plsql_int)1901)

#define IP_FONT_WEIGHT ((ip_plsql_int)1902)

#define IP_FONT_STYLE ((ip_plsql_int)1903)

#define IP_FONT_SPACING ((ip_plsql_int)1904)

#define IP_FOREGROUND_COLOR ((ip_plsql_int)1905)

#define IP_BACKGROUND_COLOR ((ip_plsql_int)1906)

#define IP_FILL_PATTERN ((ip_plsql_int)1907)

Page 111: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 1072000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

#define IP_WHITE_ON_BLACK ((ip_plsql_int)1908)

#define IP_PROMPT_FONT_NAME ((ip_plsql_int)1909)

#define IP_PROMPT_FONT_SIZE ((ip_plsql_int)1910)

#define IP_PROMPT_FONT_WEIGHT ((ip_plsql_int)1911)

#define IP_PROMPT_FONT_STYLE ((ip_plsql_int)1912)

#define IP_PROMPT_FONT_SPACING ((ip_plsql_int)1913)

#define IP_PROMPT_FG_COLOR ((ip_plsql_int)1914)

#define IP_PROMPT_BG_COLOR ((ip_plsql_int)1915)

#define IP_PROMPT_FILL_PATTERN ((ip_plsql_int)1916)

#define IP_PROMPT_WHT_ON_BLK ((ip_plsql_int)1917)

#define IP_TOOLTIP_FONT_NAME ((ip_plsql_int)1918)

#define IP_TOOLTIP_FONT_SIZE ((ip_plsql_int)1919)

#define IP_TOOLTIP_FONT_WEIGHT ((ip_plsql_int)1920)

#define IP_TOOLTIP_FONT_STYLE ((ip_plsql_int)1921)

#define IP_TOOLTIP_FONT_SPACING ((ip_plsql_int)1922)

#define IP_TOOLTIP_FG_COLOR ((ip_plsql_int)1923)

#define IP_TOOLTIP_BG_COLOR ((ip_plsql_int)1924)

#define IP_TOOLTIP_FILL_PATTERN ((ip_plsql_int)1925)

#define IP_TOOLTIP_WHT_ON_BLK ((ip_plsql_int)1926)

#define IP_CURRENT_ROW_FONT_NAME ((ip_plsql_int)1927)

#define IP_CURRENT_ROW_FONT_SIZE ((ip_plsql_int)1928)

#define IP_CURRENT_ROW_FONT_WEIGHT ((ip_plsql_int)1929)

#define IP_CURRENT_ROW_FONT_STYLE ((ip_plsql_int)1930)

#define IP_CURRENT_ROW_FONT_SPACING ((ip_plsql_int)1931)

#define IP_CURRENT_ROW_FG_COLOR ((ip_plsql_int)1932)

#define IP_CURRENT_ROW_BG_COLOR ((ip_plsql_int)1933)

#define IP_CURRENT_ROW_FILL_PATTERN ((ip_plsql_int)1934)

#define IP_CURRENT_ROW_WHT_ON_BLK ((ip_plsql_int)1935)

/*

** Get/Set_Graphics_Property (2000-2099)

*/

#define IP_GRAPHICS_TEXT ((ip_plsql_int)2000)

#define IP_GRAPHICS_TYPE ((ip_plsql_int)2001)

/*

** 階層ツリー・プロパティ (2100-2199)

*/

#define IP_RECORD_GROUP ((ip_plsql_int)2100)

#define IP_QUERY_TEXT ((ip_plsql_int)2101)

#define IP_ALLOW_EMPTY_BRANCHES ((ip_plsql_int)2102)

#define IP_ALLOW_MULTI_SELECT ((ip_plsql_int)2103)

#define IP_NODE_STATE ((ip_plsql_int)2104)

#define IP_NODE_DEPTH ((ip_plsql_int)2105)

#define IP_NODE_LABEL ((ip_plsql_int)2106)

#define IP_NODE_ICON ((ip_plsql_int)2107)

Page 112: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 1082000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

#define IP_NODE_VALUE ((ip_plsql_int)2108)

#define IP_NODE_COUNT ((ip_plsql_int)2109)

#define IP_SELECTION_COUNT ((ip_plsql_int)2110)

#define IP_DATA_SOURCE ((ip_plsql_int)2111)

/*

** ツリー・ノード・オフセット

*/

#define IP_PARENT_OFFSET ((ip_plsql_int)1)

#define IP_SIBLING_OFFSET ((ip_plsql_int)2)

#define IP_LAST_CHILD ((ip_plsql_int)0)

#define IP_PREVIOUS_NODE ((ip_plsql_int)-1)

#define IP_NEXT_NODE ((ip_plsql_int)-2)

#define IP_FIRST_CHILD ((ip_plsql_int)-3)

/*

** ツリー検索タイプ

*/

#define IP_FIND_NEXT ((ip_plsql_int)1)

#define IP_FIND_NEXT_CHILD ((ip_plsql_int)2)

/*

** ツリー・ノード状態

*/

#define IP_EXPANDED_NODE ((ip_plsql_int)1)

#define IP_COLLAPSED_NODE ((ip_plsql_int)-1)

#define IP_LEAF_NODE ((ip_plsql_int)0)

/*

** ツリー・ノード選択タイプ

*/

#define IP_SELECT_ON ((ip_plsql_int)0)

#define IP_SELECT_OFF ((ip_plsql_int)1)

#define IP_SELECT_TOGGLE ((ip_plsql_int)2)

/*

** ツリー・ノード削除タイプ

*/

#define IP_NODE_AND_CHILDREN ((ip_plsql_int)1)

#define IP_CHILDREN_ONLY ((ip_plsql_int)2)

/*

** Get_File_Name定数

*/

#define IP_OPEN_FILE ((ip_plsql_int)1)

#define IP_SAVE_FILE ((ip_plsql_int)2)

Page 113: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 1092000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

/*

** Write_Image_File定数

*/

#define IP_ORIGINAL_DEPTH ((ip_plsql_int)0)

#define IP_MONOCHROME ((ip_plsql_int)1)

#define IP_GRAYSCALE ((ip_plsql_int)2)

#define IP_LUT ((ip_plsql_int)3)

#define IP_RGB ((ip_plsql_int)4)

#define IP_NO_COMPRESSION ((ip_plsql_int)0)

#define IP_MINIMIZE_COMPRESSION ((ip_plsql_int)1)

#define IP_LOW_COMPRESSION ((ip_plsql_int)2)

#define IP_MEDIUM_COMPRESSION ((ip_plsql_int)3)

#define IP_HIGH_COMPRESSION ((ip_plsql_int)4)

#define IP_MAXIMIZE_COMPRESSION ((ip_plsql_int)5)

/*

** Write_Sound_File定数

*/

#define IP_ORIGINAL_SETTING ((ip_plsql_int)0)

#define IP_ORIGINAL_QUALITY ((ip_plsql_int)0)

#define IP_MONOPHONIC ((ip_plsql_int)1)

#define IP_STEREOPHONIC ((ip_plsql_int)2)

#define IP_COMPRESSION_OFF ((ip_plsql_int)1)

#define IP_COMPRESSION_ON ((ip_plsql_int)2)

#define IP_HIGHEST_SOUND_QUALITY ((ip_plsql_int)1)

#define IP_HIGH_SOUND_QUALITY ((ip_plsql_int)2)

#define IP_MEDIUM_SOUND_QUALITY ((ip_plsql_int)3)

#define IP_LOW_SOUND_QUALITY ((ip_plsql_int)4)

#define IP_LOWEST_SOUND_QUALITY ((ip_plsql_int)5)

/*

** item Prompt定数

*/

#define IP_TOP_EDGE ((ip_plsql_int)0)

#define IP_BOTTOM_EDGE ((ip_plsql_int)1)

#define IP_START_EDGE ((ip_plsql_int)2)

#define IP_END_EDGE ((ip_plsql_int)3)

#define IP_HIDDEN ((ip_plsql_int)-3)

#define IP_PROMPT_FIRST_RECORD ((ip_plsql_int)1)

/*

** VA定数

Page 114: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 1102000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

*/

#define IP_UNSPECIFIED ((ip_plsql_int)-1)

/*

** フォント重み定数

*/

#define IP_FONT_MEDIUM ((ip_plsql_int)0)

#define IP_FONT_ULTRALIGHT ((ip_plsql_int)1)

#define IP_FONT_EXTRALIGHT ((ip_plsql_int)2)

#define IP_FONT_LIGHT ((ip_plsql_int)3)

#define IP_FONT_DEMILIGHT ((ip_plsql_int)4)

#define IP_FONT_DEMIBOLD ((ip_plsql_int)5)

#define IP_FONT_BOLD ((ip_plsql_int)6)

#define IP_FONT_EXTRABOLD ((ip_plsql_int)7)

#define IP_FONT_ULTRABOLD ((ip_plsql_int)8)

/*

** フォント・スタイル定数

*/

#define IP_FONT_PLAIN ((ip_plsql_int)0)

#define IP_FONT_ITALIC ((ip_plsql_int)1)

#define IP_FONT_OBLIQUE ((ip_plsql_int)2)

#define IP_FONT_UNDERLINE ((ip_plsql_int)3)

#define IP_FONT_OUTLINE ((ip_plsql_int)4)

#define IP_FONT_SHADOW ((ip_plsql_int)5)

#define IP_FONT_INVERTED ((ip_plsql_int)6)

#define IP_FONT_OVERSTRIKE ((ip_plsql_int)7)

#define IP_FONT_BLINK ((ip_plsql_int)8)

/*

** 文字間定数

*/

#define IP_FONT_NORMAL ((ip_plsql_int)0)

#define IP_FONT_ULTRADENSE ((ip_plsql_int)1)

#define IP_FONT_EXTRADENSE ((ip_plsql_int)2)

#define IP_FONT_DENSE ((ip_plsql_int)3)

#define IP_FONT_SEMIDENSE ((ip_plsql_int)4)

#define IP_FONT_SEMIEXPAND ((ip_plsql_int)5)

#define IP_FONT_EXPAND ((ip_plsql_int)6)

#define IP_FONT_EXTRAEXPAND ((ip_plsql_int)7)

#define IP_FONT_ULTRAEXPAND ((ip_plsql_int)8)

Page 115: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Forms診断テクニック、Oracleテクニカル・ホワイトペーパー 1112000年 6月 Oracle Corporation発行の

「Form Diagnostic Techniques, An Oracle White Paper 」の翻訳版です。

付録付録付録付録 C 用語集用語集用語集用語集

Java Javaは、プログラミング言語でもあり、プラットフォームでもあります。

Java言語は、オブジェクト指向のインタープリター型ハイレベル言語です。Java言語に関する詳細は、「Java言語環境」(http://java.sun.com)等のホワイトペーパーを参照してください。

Javaプラットフォームは、ハードウェア・プラットフォーム上にあるソフトウェア専用のプラットフォームです。このプラットフォームは、JVMと Javaアプリケーション・プログラミング・インタフェース(API)という 2つのコンポーネントで構成されます。

JDK Java Development Kit

Javasoftが開発者向けに作成した開発キット。開発者は JDKを使用して、Javaプログラムを作成して実行できます。

OJDK Oracle Java Development Kit

Oracleによって行われたバグ修正が含まれた JDKのバージョン。

JVM Java仮想マシン

Java仮想マシンは、Javaコンパイラによって生成されたコードを解釈して実行します。

JInitiator Oracleの Javaプラグイン。JInitiatorは独自の JVMを使用して Javaコードを実行するので、任意のブラウザを使用することができます。

Appletviewer あらゆる Javaアプレットを実行できる簡単なアプリケーション。AppletviewerはJDKの一部です。

Forms Listener Forms Listenerは、指定されたポート番号で着信接続要求をリスニングするプロセスです。

Forms Server Forms Serverは、Forms Listenerとその関連する Forms Runtime Engineの総称です。

Forms Runtime Engine Forms Runtime Engineは、要求されたフォームを実行する Formsプロセスで、FormsListenerへの接続要求が満たされると、生成されます。

Web Server Web Serverは、http要求に対応し、要求元にファイルを配信します。

Page 116: Forms診断テクニック - otndnld.oracle.co.jpotndnld.oracle.co.jp/.../developer/pdf/Forms_diagnostic_tech.pdf7.4.1 JVMランタイム・オプションの設定 ... B 1.3 Oracle

Oracle CorporationWorld Headquarters500 Oracle ParkwayRedwood Shores, CA 94065U.S.A.

世界共通窓口:+1. 650-506-7000FAX:+1. 650-506-7200http://www.oracle.com/

タイトル:Oracle Forms診断テクニックバージョン:1.0.1作成日:2000年 6月作成者:Chris Lewis, Nick Triggs編集者:協力者:Ros Rason, Matt Hawkins

版権 © Oracle Corporation 1999, 2000無断転載を禁ず

この文書はあくまでも参考資料であり、掲載されている情報は予告なしに変更されることがあります。万一、誤植などにお気づきの場合は、オラクル社までお知らせください。オラクル社は本書の内容に関していかなる保証もしません。また、本書の内容に関連したいかなる損害についても責任を負いかねます。

Oracleはオラクル社の登録商標です。Oracle8i、Oracle8、PL/SQL、および Oracle Expertはオラクル社の商標です。他のすべての企業名と製品名は、識別のためにのみ掲載されており、それぞれの所有者の商標です。