Oracle Developer Suiteリリース・ノート 10gリリース2(10.1.2)for Solaris Operating System (SPARC), Microsoft Windows, and Linux x86 B25106-03 |
|
![]() 戻る |
![]() 次へ |
この章では、Oracle Reportsに関する問題について説明します。この章の内容は次のとおりです。
関連項目:
|
この項では、Oracle Reportsの一般的な問題とその対処方法について説明します。この項の内容は次のとおりです。
第5.1.7項「グループ上およびマトリックス・スタイルを指定したJSPベースのWebレポートで、サマリー列が位置揃えされない」
第5.1.8項「Oracle Enterprise Manager 10gでOracle ReportsのHTML出力のイメージが表示されない」
第5.1.9項「Acrobat Reader 7.0で拡張フォント・サブセット機能を使用すると、大容量のマルチバイト・レポートに文字位置のずれが生じる」
第5.1.10項「「ペーパー・デザイン」ビューで、複数行からなるテキストにインラインでHTMLタグを使用すると色が不正になる」
Oracle Reports 10gリリース2(10.1.2)では、Borland社のVisiBrokerではなく、業界標準であるSun社のJava Developer's Kit Object Request Broker(JDK ORB)が使用されます。これによって、複数のサブネットにわたるクライアントからのReports Serverリクエストのサポートが提供され、サブネット内および複数のサブネットで、動的なReports Serverの検出のためのブロードキャスト・メカニズムが使用されます。JDK ORBに関連する変更の詳細は、『Oracle Application Server Reports ServicesレポートWeb公開ガイド』を参照してください。
9.0.4.3より前のリリースでは、9.0.4.2用に発行されているパッチを適用して、クライアントとサーバー間のOracle Reports 10g(9.0.4)と10gリリース2(10.1.2)のORB下位互換を実現する必要があります。リリース9.0.4.3以降のリリースでは、インストール時にこのパッチが組み込まれる予定です。
このパッチに関するプラットフォーム固有の詳細は、Bug 4092150を参照してください。
Oracle Reports 10gリリース2(10.1.2)では、自動保存機能が導入されました。これにより、Reports Builderの予期しないイベントやシステム障害が発生した場合に保存していない変更がリカバリされます。自動保存を有効にすると、開いているレポートの保存していない変更を自動的にリカバリできます。
自動保存機能を有効にするには、次の手順を実行する必要があります。
Reports Builderで「編集」→「プリファレンス」を選択して「プリファレンス」ダイアログ・ボックスを表示します。
「プリファレンス」ダイアログ・ボックスの「一般」タブで、「自動保存」を選択します。
自動保存機能は、プリファレンス・ファイルのReports.auto_save
プロパティを変更することによっても有効化できます。このプリファレンス・ファイルは、Windowsではcauprefs.ora、UNIXプラットフォームではprefs.oraです。ファイルを次のように変更します。
Reports.auto_save = [YES|NO] DEFAULT: NO
使用上の注意
自動保存を有効にした場合、開いているレポートで行った変更は、Reports Builderのメニュー、ツールバー、ツール・パレット、オブジェクト・ナビゲータ、プロパティ・インスペクタおよび他のエディタ・ウィンドウからの様々なイベントの発生時に、一時リカバリ・ファイルに自動的に保存されます。
新しいレポート定義の場合、自動保存はレポートが初めて保存された後に有効になります。
レポートの保存後は、現行のリカバリ・ファイルが削除されます。保存していない変更をリカバリしただけの場合でも、レポートを保存するとリカバリ・ファイルが削除されます。
一時リカバリ・ファイルは、元の定義ファイルと同じ場所に.rdf
形式で作成および保存されます。リカバリ・ファイルの形式は、reportname_extension.rdf
です。たとえば、元の定義ファイルemp.jsp
のリカバリ・ファイルはemp_jsp.rdf
になります。emp_jsp.rdf
ファイルはemp.jsp
ファイルと同じ場所に保存されます。
リカバリ・ファイルが存在する、保存していないレポート定義ファイルを再度開いた場合、変更内容を保存するように求められます。そのリカバリ・ファイルには、前回の自動保存イベントまでの変更内容が含まれています。変更をリカバリした後は、「保存」または「変更の破棄」オプションを選択する必要があります。「保存」オプションでは、保存されていない以前の変更内容が元のレポート定義ファイルに書き込まれます。「変更の破棄」オプションでは、リカバリされた変更内容が保存されません。レポートを閉じると、リカバリ・ファイルが削除されます。
リカバリ・ファイルを自動保存するときにエラーが発生した場合、自動保存を無効にするか、エラーのまま続行するかを選択するように求められます。
注意: 自動保存を有効にした場合、リカバリ・ファイルには、レポート定義ファイルの前回の保存以降に加えた変更がすべて含まれているものとみなされます。そのため、リカバリ・ファイルを保存する前には、リカバリ・ファイルに最新の変更内容が含まれていることを確認する必要があります。元のレポート定義ファイルがリカバリ・ファイルよりも新しいバージョンである場合、リカバリ・ファイルから読み取られた変更内容で元のレポート定義が上書きされないように、レポート定義を元に戻すことができます。 |
OracleAS Reports Servicesデモを正しく動作させるには、OracleAS Reports ServicesをインストールしたコンピュータでApache JServを構成しないでください。
UNIXでOracle JDeveloperのJSPベースのWebレポートを実行するには、次の手順のいずれかを実行します。
インプロセスReports Serverの場合は、ORACLE_HOME
/jdev/bin/jdev
を編集してlib32
のパスを追加します。次の例に示すように、lib32
のパスをLD_LIBRARY_PATH
=ORACLE_HOME
/lib
に追加します。
LD_LIBRARY_PATH=ORACLE_HOME/lib:ORACLE_HOME/lib32
保存してOracle JDeveloperを起動します。
スタンドアロンReports Serverを使用して、Oracle JDeveloperでJSPベースのWebレポートを実行します。
OracleAS Portalでレポートをバッチ登録し、続いてそのレポートの登録を手動で編集すると、「名前を付けて保存」ダイアログ・ボックスが予期しないタイミングで表示される場合があります。
この問題を回避するには、OracleAS Portalでレポートの登録を編集する際に「表示名」プロパティを指定します。
OracleAS Portalでレポートを登録する方法の詳細は、『Oracle Application Server Reports ServicesレポートWeb公開ガイド』を参照してください。
DelimitedData出力では、同レベルのグループがサポートされていないため、メインの問合せに複数の問合せをリンクできません。
次に例を示します。
ケース1: Q1
とQ2
の間にリンク、Q2
とQ3
との間にリンクがあり、Q4
がスタンドアロンの問合せであるとします。
Q1<-->Q2<-->Q3 Q4
この場合、DelimitedData出力は適切に生成されます。
ケース2: Q1
とQ2
の間にリンク、Q2
とQ3
との間にリンクがあり、さらにQ4
とQ1
の間にリンクがあるとします。
Q1<-->Q2<-->Q3 Q1<-->Q4
この場合、DelimitedData出力は適切に生成されません。かわりにXML出力を使用できます。
グループ上またはマトリックス・スタイルを指定したJSPベースのWebレポート出力で、サマリー列の値が左揃えされない場合、次の対処方法で適切に位置揃えできます。
Reports BuilderでJSPレポートを開きます。
「Webソース」ビューを選択します。
「Webソース」ビューで、サマリー列が定義されているセクションを探し、次の行を削除して余分な空白を削除します。
<th class="
summary_column_name
"> </th>
OracleAS Web CacheがSSL対応として構成され、Oracle HTTP ServerがSSL対応として構成されていない場合、Oracle ReportsのHTML出力に含まれるイメージは、Oracle Enterprise Manager 10gから表示できません。これは、HTML出力に指定されたイメージのURLがSSL対応のOracleAS Web Cacheポートを指しているのに対して、Oracle Enterprise Manager 10gから発行されたOracle Reportsの過去のジョブ出力に対するリクエストがSSLではないためです。
この問題を回避するには、targets.xml
ファイルで、Reports ServerタイプのURLのサーブレット・プロパティを編集して、Oracle HTTP ServerポートのかわりにOracleAS Web Cacheポートを指すようにします。targets.xml
ファイルは、ORACLE_HOME
/sysman/emd
ディレクトリにあります。
たとえば、OracleAS Web CacheがSSL対応で、リスニング・ポート番号が443
の場合は、targets.xml
ファイル内のReports ServerターゲットのURLのサーブレット・プロパティを、次の例に示すように編集します。
<Target TYPE="oracle_repserv" …..> ...... <Property NAME="Servlet" VALUE="https://xyz.mycompany.com:443/reports/rwservlet"/> ...... </Target>
Acrobat Reader 7.0で、デフォルトの拡張フォント・サブセット機能を使用する大容量のマルチバイト・レポートおよびUnicode PDFレポートを表示すると、一部の文字が誤った位置に表示されます。
この問題を回避するには、次のいずれかの操作を実行します。
環境変数REPORTS_ENHANCED_SUBSET
をNO
に設定し、Oracle Reports 10gリリース2(10.1.2)より前のリリースで使用されていたタイプ3のフォント・サブセットの実装に戻します。
Acrobat Reader 6.0以前を使用します。
次のいずれかの状況下では、Reports Builderの「ペーパー・デザイン」ビューでテキストが不正な色で表示される場合があります。
テキスト・オブジェクトが複数行のテキストで構成されており、2行目以降へ折り返されている。
テキスト・オブジェクトの「HTMLタグを含む」プロパティが「はい」に設定されている。
複数行のテキストの部分によって適用されている色が異なる。
注意: この問題は、「ペーパー・デザイン」ビューでのみ発生します。これ以外のフォーマットではすべて、レポートは正しい色で出力されます。 |
レポート内でSQL構文を使用すると、次の条件下でPL/SQLコンパイルに失敗することがあります。
ROW_NUMBER()
など、Oracle Database 9.0.1より後のバージョンで導入されたSQL構文が使用されている。
SQL構文がクライアント側のPL/SQLプロシージャで使用されている。
この問題を回避するには、次のいずれかの操作を実行します。
Oracle Databaseリリース10.1.0.4以降を使用します。
SQL構文をサーバー側のストアド・プロシージャに移動します。
プロシージャではなく、SQL問合せでSQL構文を直接使用します。
Oracle Reports 10gリリース2(10.1.2)Patch2より前のリリースで開発されたレポートでは、レポートをXML形式で保存する場合、レポートでPL/SQLパッケージを定義する際に、パッケージ仕様(場合によっては本文)がXMLレポートに保存されなくなる問題が発生することがあります。この問題を解決するには、次の手順のいずれかを実行します。
RDFが存在する場合、Oracle Reports 10gリリース2(10.1.2)Patch2以降を使用して、XML出力ファイルを再生成します。
RDFが存在しない場合は、次の例のように、XMLを手動で編集してfunction
要素にtype="packageSpec"
またはtype="packageBody"
(あるいはその両方)を追加します。
<programUnits> <function name="a" type="packageSpec"> <textSource> <![CDATA[ PACKAGE a IS function lire return date ; END a; ]]> </textSource> </function> <function name="a" type="packageBody"> <textSource> <![CDATA[ PACKAGE BODY a IS function lire return date is c2 date; begin c2 :=sysdate; return c2; end; END; ]]> </textSource> </function> <function name="cf_1formula" returnType="date"> <textSource> <![CDATA[ function CF_1Formula return Date is aa date; begin --aa :=a.lire; end; ]]> </textSource> </function> </programUnits>
この項では、Oracle Reportsのベンダー固有の問題とその対処方法について説明します。この項の内容は次のとおりです。
次の例のように、HTMLCSSで、フィールド・オブジェクトのスタイルをカスタマイズし、スタイルの一部として背景色と下線の両方を指定した場合、出力時に下線が正しく表示されない場合があります。
.ReportLevel {text-decoration:underline;color:blue; background-color:yellow}
これは、ブラウザの制限によるものです。下線と背景色の両方が指定されているフィールドで下線を絶対位置で指定した場合、ブラウザでは下線は表示されません。
150以上の列が含まれるJSPベースのWebレポートを実行すると、次の例のようにoracle.jsp.provider.JspCompileException
エラーが発生する場合があります。
500 Internal Server Error OracleJSP: oracle.jsp.provider.JspCompileException: Errors ... 6764 code too large for try statement catch( Throwable e) {18 code too large public void _jspService(HttpServletRequest request, HttpServletResponse response) throws java.io.IOException, ServletException}
これは、Java言語に、多数のメソッドを含むJavaファイルのコンパイルを許可しないという制限があることが原因です。
ATI Rage XL PCIカードなど特定のグラフィック・カードが搭載されているコンピュータで、rwserver.exe
を使用してReports Serverを起動すると、UIが表示されず、Reports Serverがハングする場合があります。これは、Javaで使用されているUIのメカニズムの問題が原因です。
この問題を回避するには、コマンドライン・キーワードJVMOPTIONS
を次の例のように設定してReports Serverを起動します。
rwserver SERVER=test JVMOPTIONS="-Dsun.java2d.noddraw=true"
注意: Reports Serverは、OPMNから起動することをお薦めします。 |
この項では、Oracle Reportsのグローバリゼーション・サポートに関する問題とその対処方法について説明します。この項の内容は次のとおりです。
第5.3.2項「NLS_LANGがJA16EUCの場合、PostScriptフォント・マッピングでMS明朝フォントが動作しない」
第5.3.3項「Oracleのオブジェクト・タイプを含むマルチバイト・レポートでReports Builderがハングする」
第5.3.5項「Application Server ControlのReports Serverのジョブ・ステータス・メッセージに無効な文字が含まれる」
トルコ語環境で、イメージを含むレポートを拡張イメージを使用して実行する場合(NLS_LANG
をTURKISH_TURKEY.TR8MSWIN125
またはTURKISH_TURKEY.WE8ISO8859P9
に設定する場合)、環境変数REPORTS_OUTPUTIMAGEFORMAT=[PNG|GIF]
を設定します。
または、コマンドライン・キーワードOUTPUTIMAGEFORMAT=[PNG|GIF]
を使用してレポート・リクエストの値を制御できます。
WindowsのReports Builderで作成したレポートを、NLS_LANG
がJA16EUC
に設定されているSolarisまたはLinuxのReports Serverに配布する場合、PDFフォント・マッピングは機能しません。この問題は、次のフォントのいずれかがPostScriptのフォント・マッピング・エントリに使用されている場合に発生します。
"<MS Mincho in JP>"..... "<MS PMincho in JP>".....
この問題に対処するには、次のいずれかの作業を行います。
NLS_LANG
をJA16SJIS
に設定します。
レポートの作成時に、PostScriptのフォント・マッピングでMS Mincho
のかわりにMS Gothic
を使用します。
Oracleのオブジェクト・タイプが埋め込まれたマルチバイト・レポートを実行すると、Reports Builderが応答しなくなることがあります。
これは既知の問題です。
Solarisプラットフォームでは、Reports Builderのレポート・ウィザードで、UI文字列「Query Builder...」および「Import SQL Query..」が日本語および韓国語環境で切り捨てられます。この問題を解決するには、次のようにORACLE_HOME
/guicommon/tk/admin/JA/Tk2Motif.rgb
のTk2Motif*fontList
設定を編集する必要があります。
日本語の場合:
Tk2Motif*fontList: -misc-fixed-medium-r-normal--14-130-75-75-*-*-*-*:
を次のように変更します。
Tk2Motif*fontList: -dt-gothic-medium-r-normal--14-*-*-*-m-*-jisx0208.1983-0:
韓国語の場合:
Tk2Motif*fontList: -*-*-medium-r-normal--16-*-*-*-*-*-*-*:
を次のように変更します。
Tk2Motif*fontList: -*-*-medium-r-normal--14-*-*-*-*-*-*-*:
中間層のキャラクタ・セットNLS_CHARACTERSET
(NLS_LANG
の3番目のフィールド)がサーブレット・ロケールのReports Servletレスポンスのエンコーディングに対応していない場合、Application Server Controlの「ジョブ・ステータス」ページのOracle Reportsステータス・メッセージに無効な文字が表示されることがあります。
注意: 中間層のデフォルト・エンコーディングは、サーブレットのエンコーディングとは異なることがあります。たとえば、LANG をja またはja_JP.eucJP に設定した場合、中間層システムのデフォルト・エンコーディングはEUC になります。しかし、このロケールではReports ServletのメッセージがShift_JIS でエンコーディングされます。これは、ja_JP のデフォルト・エンコーディングが、サーブレットではShift_JIS であるためです。 |
Oracle Enterprise Manager 10gでは、中間層のNLS_CHARACTERSET
のメッセージがUTF8
に変換されるため、「ジョブ・ステータス」ページのステータス・メッセージに無効な文字が表示されます。たとえば、LANG
をja
に、NLS_LANG
をJAPANESE_JAPAN.JA16EUC
に設定して中間層を実行する場合、Reports ServletのメッセージはShift_JIS
でエンコーディングされます。しかし、Oracle Enterprise Manager 10gでは、元のメッセージがJA16EUC
であるとみなされ、それがUTF8
に変換されるため、ステータス・メッセージに無効なメッセージが表示されます。
新規に受信したジョブ・リクエストに重複がないか検出しているとき、そのジョブ・リクエストにキーワードTOLERANCE
が含まれていると、Reports ServerはキーワードENVID
の値を無視します。その結果、ENVID
以外のすべてのキーワードで値が同一のジョブを以前に受信している場合、そのジョブは重複とマークされます。
次にこの問題の例を示します。
レポート・リクエスト | レポート | ENVID | TOLERANCE | 出力 |
---|---|---|---|---|
1 | Japanese.rdf |
JA |
10 |
期待された出力 |
2 | Arabic.rdf |
UTF |
10 |
期待された出力 |
3 | Arabic.rdf |
AR |
10 |
リクエスト2と同じ(不正) |
4 | Japanese.rdf |
JA |
10 |
リクエスト1と同じ(正しい) |
この例では、リクエスト4はENVID
キーワードを含むすべてのキーワードにリクエスト1と同じ値を使用しており、リクエスト1の重複として正しく認識されます。しかし、リクエスト3はリクエスト2の重複として誤って認識されます。これは、両方のリクエストが、ENVID
キーワードを除くすべてのキーワードに同じ値を使用しているためです。その結果、ENVID
に変更があったことが、リクエスト3では受け入れられません。
この問題を回避するには、コマンドラインでTOLERANCE
を指定しないか、または重複ジョブの検出時に異なるものとして処理されるようにジョブ・リクエストにダミーのユーザー・パラメータを指定します。
この項では、Oracle Reportsドキュメントの記載内容の誤りと補足事項について説明します。この項の内容は次のとおりです。
この項では、Oracle Reportsドキュメントに対する補足事項を説明します。この項の内容は次のとおりです。
Oracle Application Server Forms and Reports Servicesのインストレーション・ガイドの第3章「要件」にある表3-1「システム要件」では、Forms and Reports Servicesのインストールの前提条件としてSolaris 8またはSolaris 9プラットフォームが必要になっています。
しかし、Forms and Reports Servicesは、Solaris 10プラットフォームでの動作も保証されています。