Oracle Application Server Reports Services レポートWeb公開ガイド 10gリリース2(10.1.2) B25067-01 |
|
この付録では、OracleAS Reports Servicesを使用してレポートを配布する際に発生する可能性のある一般的な問題とその解決方法について説明します。また、問題の診断手順についても説明します。この付録には、次の項があります。
この項では、一般的な問題と解決策について説明します。この項は次のトピックで構成されています。
Reports Serverでレポート・リクエストを実行すると、レポート・リクエストが様々な理由でハングすることがあります。このハングが適切なタイミングで検出されない場合は、安定性が損なわれる場合があります。ここでは、このようなシナリオに焦点をあて、問題を解説し、このようなパターンの特定方法と対処方法を示します。さらに、オラクル社カスタマ・サポート・センターに問題を報告する際に必要な情報の収集方法についても説明します。
まず第一に、Reports Serverでどのように重複ジョブが識別されるかを理解することが重要です。ジョブがReports Serverに送信されると、ジョブ・キューに同様のジョブが存在していないかどうかがチェックされます。送信されたジョブが現在実行中のジョブと同一の場合、Reports Serverは送信されたジョブを重複ジョブ、現在実行中のジョブをマスター・ジョブと判断します。Reports Serverは重複ジョブを実行することなく、かわりにマスター・ジョブの終了を待機してから、同じ出力を重複ジョブに渡します。アイドル・エンジンが利用可能であっても、重複ジョブはエンジンに送信されません。これは正常な動作であり、リクエストがハングしたわけではありません。
この項で説明する解決策以外の詳細は、第20.2項「Reports Serverの構成のチューニング」を参照してください。
マスター・ジョブが終了前にハングします。
マスター・ジョブが何らかの理由でハングすると、マスター・ジョブの終了を待機している重複ジョブもハングします。1つのマスター・ジョブに対して複数の重複ジョブが待機している場合は、問題に対処しないかぎり、そのマスター・ジョブがハングすると、サーバーが不安定になる場合があります。
server_name
.conf
ファイルのengine
要素にあるengineResponseTimeOut
属性を確認してください(第3.2.1.4項「engine」を参照)。サーバーが不安定にならないよう、この属性を慎重に設定します。これにより、Reports Serverはこのようなハング状況を自動的に検出し、回復できるようになります。また、showjobs
コマンドを使用してハングしたジョブを終了し、Reports Serverに他のリクエストを処理させることもできます。showjobs
コマンドの詳細は、第2.5項「Reports ServletおよびReports Serverが実行されていることの確認」および第A.3.98項「SHOWJOBS」を参照してください。
たとえば、一連のレポートを実行する必要があるとします。最も大きいレポートは、実行に最大5分かかります。このような場合は、engineResponseTimeOut
を5分に設定することができます。
注意 エンジンでジョブが実行されると、サーバーは最新のステータスに更新されます。たとえば、ページ1、2というようにフォーマットが行われます。5分経過してもReports Serverがエンジンから更新情報を受信しない場合は、エンジンがハングしていると見なされ、Reports Serverはエンジンを停止します。
実行に1分から1時間かかる複雑なレポートがある場合は、レポートの実行中に、コマンドラインで スケジュールされているジョブやバッチ・ジョブのほかに対話型のジョブがある場合は、前者と後者で1台ずつ個別のサーバーを起動することをお薦めします。パフォーマンスと安定性の理由から、対話型のジョブとバッチ・ジョブまたはスケジュールされたジョブの両方に同じサーバーを使用しないでください。 |
engineResponseTimeOut
属性またはコマンドラインのENGINERESPONSETIMEOUT
キーワードを慎重に設定したにもかかわらず、サーバーが不安定になったりクラッシュしたりする場合は、次の手順を実行して、オラクル社カスタマ・サポート・センターに報告してください。
server_name
.conf
ファイルでlog
要素のoption
属性をfailedJobs
に設定することでログのみを有効にします(第3.2.1.11項「log」を参照)。ログを有効にすると、失敗したジョブ・レポートをreports.log
ファイルで確認できます。失敗したレポートまたはエンジンのハングを引き起こしたレポートを特定します。
server_name
.conf
ファイルのengine
要素を編集し、diagnosis
プロパティを追加してエンジンの診断ログを有効にします(第3.2.1.4項「engine」の「プロパティ」を参照)。その後、手順1で特定したレポートを実行し、ハングを再現します。
レポート・リクエストの実行中に、次のような現象でReports Serverがレスポンスを停止したかクラッシュします。
問題から回復するために、Reports Serverを再起動します。それでも問題が解決しない場合は、次の情報を添えて、オラクル社カスタマ・サポート・センターに報告してください。
server_name
.conf
ファイル
kill -3
server_pid
コマンドを使用します。このコマンドは、スレッド情報をコンソール出力に書き込みます。スレッド情報とエラー・ストリームの出力先をコンソールからファイルに変更するには、ORACLE_HOME
/bin
ディレクトリのrwserver.sh
ファイルを修正します。次に例を示します。
exec $ORACLE_HOME/bin/rwserver "$@" > threaddump.txt 2>&1
インプロセス・サーバーを使用している場合は、OC4J_BI_Forms
プロセスIDにkill -3
コマンドを使用します。スレッド・ダンプは、ORACLE_HOME
/opmn/logs
ディレクトリのOC4Jログ(OC4J~OC4J_BI_Forms~default_island~1
)ファイルに出力されます。
kill -3
コマンドは機能しません。かわりに、コマンド・プロンプトで表D-1に示すコマンドを入力し、Reports Serverを起動します。問題が再現されたら、コマンド・プロンプトのウィンドウに移動し、[Ctrl]を押しながら[Break]キーを押してスレッド・ダンプを出力します。
表D-1 Windowsでスレッド・ダンプを出力するためのコマンド
インプロセス・サーバーでレポートを実行しようとすると、インプロセス・サーバーが起動に失敗し、ブラウザに次のメッセージが表示されます。
REP-52266: The in-process Reports Server failed to start.
スタンドアロン・サーバーを起動すると、すぐに停止します。
トレースを有効にして(第20.1.2項「レポート・トレース」を参照)、インプロセス・サーバーを起動してください。デフォルトでは、Reports Serverのrwserver.trc
ファイルに実際の問題の原因が記録されます。
ORACLE_HOME
/reports/logs/
server_name
ディレクトリのrwEng-
enginenumber.
trc
ファイルを確認してください。このファイルには、次の行が含まれている必要があります。
Debug 50103 (EngineImpl:EngineImpl): CInitEngine returns 0 Info 55003 (RWEngine:init): Register this engine to Oracle Reports Server server_ name
rwEng-
enginenumber.
trc
ファイルにこれらの行が存在しない場合は、エンジンが起動に失敗したことを示します。
このファイルのCinitEngine
戻り値が負の値の場合は、Reports Engineの初期化時にエラーが発生したことを示します。
CinitEngine
戻り値がゼロ以外の場合は、PATH
環境変数(Windowsを使用している場合)またはLD_LIBRARY_PATH
環境変数(Solarisを使用している場合)を確認してください。インプロセス・サーバーでは、PATH
およびLD_LIBRARY_PATH
の値は、ORACLE_HOME
/j2ee/OC4J_BI_Forms/config
ディレクトリのoc4j.properties
ファイルから取得されます。
レポート・リクエストを実行するとReports Engineがクラッシュまたはハングします。
ケース1: Reports Serverで毎日大量のレポートを実行し、レポートの印刷やWebへの公開も行っている場合。この場合では、ブラウザがレスポンスを待機し、最終的にタイムアウトになる場合があります。ジョブ・キューを確認するためのWebコマンドも、機能しないことがあります。
トレースを有効にして(第20.1.2項「レポート・トレース」を参照)この問題が発生したら、前述の解決策2で説明したkill -3
server_pid
コマンドをSolarisで実行して、スレッド・ダンプを出力します。次に示すコード行は、kill -3
server_pid
コマンドの実行結果です。これらの行は、Reports Serverが、ネットワーク・ドライブにレポートを書き込もうとしたときにハングしたことを示しています。
"RequestProcessor[7]" daemon prio=5 tid=0x1835f210 nid=0x181c waiting on condition [224cf000..224cfd88] at java.io.FileOutputStream.write (Native Code) at oracle.reports.utility.copyFile (Utility.java:424) at oracle.reports.server.DesFile.sendFile(DesFile.java:74) at oracle.reports.server.Destination.send(Destination.java:484) at oracle.reports.server.JobObject.distribute(JobObject.java:1582) at oracle.reports.server.JobManager.updateJobStatus(JobManager.java:2231) at oracle.reports.server.EngineCommImpl.updateEngineJobStatus( EngineCommImpl.java:134) at oracle.reports.server._EngineCommImplBase._invoke( _EngineCommImplBase.java:94) at com.sun.corba.se.internal.corba.ServerDelegate.dispatch (ServerDelegate.java:353) at com.sun.corba.se.internal.iiop.ORB.process(ORB.java:280) at com.sun.corba.se.internal.iiop.RequestProcessor.process (RequestProcessor.java:81) at com.sun.corba.se.internal.orbutil.ThreadPool$PooledThread.run (ThreadPool.java:106)
このシナリオのトレース・ファイルは次のとおりです。
[2005/5/31 6:26:47:321] Info 50132 (JobObject:reset): jobid = 15 Get command line: server=vin report=c:¥backup¥reps¥emp.rdf destype=file desformat=html desname=c:¥test.html userid=scott@ora9i authid=vnhegde [2005/5/31 6:26:48:92] Debug 50103 (JobManager:firstToRun): job 15 is first to run [2005/5/31 6:26:48:212] Debug 50103 (ConnectionImpl:runJob): Job queue for jobid = 15 is 0 [2005/5/31 6:26:48:212] Debug 50103 (ConnectionImpl:runJob): jobid = 15 is in current queue [2005/5/31 6:26:48:212] Debug 50103 (ConnectionImpl:runJob): Calling findDuplicatedJob for jobid = 15 [2005/5/31 6:26:48:212] Debug 50103 (JobManager:findDuplicatedJob): Found no duplicated job for job 15 [2005/5/31 6:26:48:212] Debug 50103 (ConnectionImpl:runJob): No Duplicate jobs for jobid = 15 [2005/5/31 6:26:48:212] Debug 50103 (ConnectionImpl:runJob): Job 15 is Enqueued [2005/5/31 6:26:48:212] Debug 50103 (JobManager:firstToRun): job 15 is first to run [2005/5/31 6:26:48:212] Debug 50103 (JobManager.runJobLocal): Trying to get engine for Job 15 [2005/5/31 6:26:48:212] Debug 50103 (EngineManager:getIdleEngine): Target max engines = 1 [2005/5/31 6:26:48:222] Debug 50103 (EngineManager:getIdleEngine): rwEng-0 is used = true [2005/5/31 6:26:48:222] Debug 50103 (EngineManager:getIdleEngine): rwEng-0 state is 1 [2005/5/31 6:26:48:222] State 56004 (EngineInfo:setState): Engine rwEng-0 state is: Reserved [2005/5/31 6:26:48:222] Debug 50103 (JobManager.runJobLocal): Job 15 got Engine rwEng-0 [2005/5/31 6:26:48:222] Debug 50103 (JobManager:runJobInEngine): Job 15 calling setCommand on engine rwEng-0 [2005/5/31 6:26:48:222] Debug 50103 (EngineManager:updateEngineState): Engine rwEng-0 status is 3 [2005/5/31 6:26:48:222] State 56004 (EngineInfo:setState): Engine rwEng-0 state is: Running [2005/5/31 6:26:48:222] Debug 50103 (EngineManager:updateEngineState): Engine rwEng-0 status is 5 [2005/5/31 6:26:48:222] State 56004 (EngineInfo:setState): Engine rwEng-0 state is: Idle [2005/5/31 6:26:48:232] Debug 50103 (JobManager:runJobInEngine): Send job 15 to engine rwEng-0 [2005/5/31 6:26:48:232] Debug 50103 (EngineManager:updateEngineState): Engine rwEng-0 status is 3 [2005/5/31 6:26:48:232] State 56004 (EngineInfo:setState): Engine rwEng-0 state is: Running [2005/5/31 6:26:48:482] State 56016 (JobManager:updateJobStatus): Job 15 status is: Running the report Initializing report [2005/5/31 6:26:48:482] Debug 50103 (JobManager:updateJobStatus): Finished updating job: 15 [2005/5/31 6:26:50:856] State 56016 (JobManager:updateJobStatus): Job 15 status is: Running the report Formatting page 1 [2005/5/31 6:26:50:856] Debug 50103 (JobManager:updateJobStatus): Finished updating job: 15 [2005/5/31 6:26:52:468] Debug 50103 (RWCacheItem:addFile): add file 'test33347112.htm' for job 15 [2005/5/31 6:26:52:468] Debug 50103 (RWCache:updateCurrentCapacity): Current cache capacity is 197239
このトレース・ファイルでは、次のイベントに注目してください。
15
のジョブが6:26:47:321
に送信されています。
6:26:48:212
にチェックされています。
rwEng-0
が6:26:48:222
に取得されています。
6:26:48:222
で実行を開始しています。
6:26:50:856
でフォーマットされています。
この後、このジョブに対する更新はありません。Finished successfully
行も存在しません。これは、ジョブに問題があることを示しています。
次の例は、正常に終了したジョブのトレース・ファイルです。
[2005/5/31 6:25:57:198] Info 50132 (JobObject:reset): jobid = 14 Get command line: server=vin report=c:¥backup¥reps¥emp.rdf destype=file desformat=html desname=c:¥test.html userid=scott@ora9i authid=vphegde [2005/5/31 6:25:58:80] Debug 50103 (ConnectionImpl:runJob): Job queue for jobid = 14 is 0 [2005/5/31 6:25:58:90] Debug 50103 (ConnectionImpl:runJob): jobid = 14 is in current queue [2005/5/31 6:25:58:90] Debug 50103 (ConnectionImpl:runJob): Calling findDuplicatedJob for jobid = 14 [2005/5/31 6:25:58:90] Debug 50103 (JobManager:findDuplicatedJob): Found no duplicated job for job 14 [2005/5/31 6:25:58:90] Debug 50103 (ConnectionImpl:runJob): No Duplicate jobs for jobid = 14 [2005/5/31 6:25:58:90] Debug 50103 (ConnectionImpl:runJob): Job 14 is Enqueued [2005/5/31 6:25:58:90] Debug 50103 (JobManager:firstToRun): job 14 is first to run [2005/5/31 6:25:58:90] Debug 50103 (JobManager.runJobLocal): Trying to get engine for Job 14 [2005/5/31 6:25:58:90] Debug 50103 (EngineManager:getIdleEngine): Target max engines = 1 [2005/5/31 6:25:58:90] Debug 50103 (EngineManager:getIdleEngine): rwEng-0 is used = true [2005/5/31 6:25:58:90] Debug 50103 (EngineManager:getIdleEngine): rwEng-0 state is 1 [2005/5/31 6:25:58:90] State 56004 (EngineInfo:setState): Engine rwEng-0 state is: Reserved [2005/5/31 6:25:58:90] Debug 50103 (JobManager.runJobLocal): Job 14 got Engine rwEng-0 [2005/5/31 6:25:58:90] Debug 50103 (JobManager:runJobInEngine): Job 14 calling setCommand on engine rwEng-0 [2005/5/31 6:25:58:100] Debug 50103 (EngineManager:updateEngineState): Engine rwEng-0 status is 3 [2005/5/31 6:25:58:100] State 56004 (EngineInfo:setState): Engine rwEng-0 state is: Running [2005/5/31 6:25:58:100] Debug 50103 (EngineManager:updateEngineState): Engine rwEng-0 status is 5 [2005/5/31 6:25:58:100] State 56004 (EngineInfo:setState): Engine rwEng-0 state is: Idle [2005/5/31 6:25:58:100] Debug 50103 (JobManager:runJobInEngine): Send job 14 to engine rwEng-0 [2005/5/31 6:25:58:110] Debug 50103 (EngineManager:updateEngineState): Engine rwEng-0 status is 3 [2005/5/31 6:25:58:110] State 56004 (EngineInfo:setState): Engine rwEng-0 state is: Running [2005/5/31 6:25:58:350] State 56016 (JobManager:updateJobStatus): Job 14 status is: Running the report Initializing report [2005/5/31 6:25:58:350] Debug 50103 (JobManager:updateJobStatus): Finished updating job: 14 [2005/5/31 6:26:0:663] State 56016 (JobManager:updateJobStatus): Job 14 status is: Running the report Formatting page 1 [2005/5/31 6:26:0:663] Debug 50103 (JobManager:updateJobStatus): Finished updating job: 14 [2005/5/31 6:26:2:256] Debug 50103 (RWCacheItem:addFile): add file 'test54106877.htm' for job 14 [2005/5/31 6:26:2:256] Debug 50103 (RWCache:updateCurrentCapacity): Current cache capacity is 182329 [2005/5/31 6:26:2:286] State 56016 (JobManager:updateJobStatus): Job 14 status is: Finished successfully [2005/5/31 6:26:3:7] Debug 50103 (JobManager:notifyWaitingJobs): Master job 14 notify its duplicated jobs. [2005/5/31 6:26:3:7] Debug 50103 (JobManager:updateJobStatus): Finished updating job: 14 [2005/5/31 6:26:3:7] Debug 50103 (EngineManager:updateEngineState): Engine rwEng-0 status is 1 [2005/5/31 6:26:3:7] State 56004 (EngineInfo:setState): Engine rwEng-0 state is: Ready [2005/5/31 6:26:3:57] Info 56013 (ConnectionManager:release): Connection 1 is released
このトレース・ファイルでは、ページ1のフォーマットの後に続く次のイベントに注目してください。
これらの行は、最初の例には存在しませんでした。すべてのジョブのReports Serverトレース・ファイルには、これらの行が存在している必要があります。イベントの欠落や強制終了は、ジョブが正常に終了していないことを示しており、ハングの原因と考えられます。
ケース2: 次のエラーが表示される場合。
REP-56048: Engine rwEng-0 crashed, job Id: 17
このシナリオでは、Reports Serverとエンジンのトレース・ファイルを確認します。通常のクラッシュでは、Reports Serverトレース・ファイルは次のようになります。
[2005/6/1 3:38:35:156] Exception 50125 (org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 208 completed: Maybe at com.sun.corba.se.internal.iiop.IIOPConnection.purge_calls
(IIOPConnection.java:438) at com.sun.corba.se.internal.iiop.ReaderThread.run(ReaderThread.java:70) ): Internal error org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 208 completed: Maybe [2005/6/1 3:38:35:156] Info 56029 (EngineManager:shutdownEngine): Shutting down engine rwEng-0 [2005/6/1 3:38:36:137] Exception 50125 (org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 201 completed: No at com.sun.corba.se.internal.iiop.ConnectionTable.getConnection
(ConnectionTable.java:148) at com.sun.corba.se.internal.iiop.ConnectionTable.getConnection
(ConnectionTable.java:65) at com.sun.corba.se.internal.iiop.GIOPImpl.getConnection(GIOPImpl.java:67) at com.sun.corba.se.internal.corba.ClientDelegate.createRequest
(ClientDelegate.java:652) at com.sun.corba.se.internal.corba.ClientDelegate.createRequest
(ClientDelegate.java:594) at com.sun.corba.se.internal.corba.ClientDelegate.request
(ClientDelegate.java:886) at org.omg.CORBA.portable.ObjectImpl._request(ObjectImpl.java:431) at oracle.reports.engine._EngineClassStub.shutdown(_EngineClassStub.java:173) at oracle.reports.server.EngineManager.shutdownEngine(EngineManager.java:1354) at oracle.reports.server.JobManager.runJobInEngine(JobManager.java:974) at oracle.reports.server.JobManager.runJobLocal(JobManager.java:1779) at oracle.reports.server.JobManager.dispatch(JobManager.java:1045) at oracle.reports.server.ConnectionImpl.runJob(ConnectionImpl.java:1274) at oracle.reports.server._ConnectionImplBase._invoke
(_ConnectionImplBase.java:401) at com.sun.corba.se.internal.corba.ServerDelegate.dispatch
(ServerDelegate.java:353) at com.sun.corba.se.internal.iiop.ORB.process
(ORB.java:280) at com.sun.corba.se.internal.iiop.RequestProcessor.process
(RequestProcessor.java:81) at com.sun.corba.se.internal.orbutil.ThreadPool$PooledThread.run
(ThreadPool.java:106) ): Internal error org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 201 completed: No [2005/6/1 3:38:36:147] State 56004 (EngineInfo:setState): Engine rwEng-0 state is: Shutdown [2005/6/1 3:38:36:147] Info 56047 (EngineManager:remove): Reports Server shut down engine rwEng-0 [2005/6/1 3:38:36:147] State 56016 (JobManager:updateJobStatus): Job 17 status is: Terminated with error: REP-56048: Engine rwEng-0 crashed, job Id: 17 [2005/6/1 3:38:36:157] Debug 50103 (JobManager:notifyWaitingJobs): Master job 17 notify its duplicated jobs. [2005/6/1 3:38:36:157] Debug 50103 (JobManager:updateJobStatus): Finished updating job: 17 [2005/6/1 3:38:36:157] Exception 56048 (): Engine rwEng-0 crashed, job Id: 17 oracle.reports.RWException: IDL:oracle/reports/RWException:1.0 at oracle.reports.server.JobManager.runJobInEngine(JobManager.java:1009) at oracle.reports.server.JobManager.runJobLocal(JobManager.java:1779) at oracle.reports.server.JobManager.dispatch(JobManager.java:1045) at oracle.reports.server.ConnectionImpl.runJob(ConnectionImpl.java:1274) at oracle.reports.server._ConnectionImplBase._invoke
(_ConnectionImplBase.java:401) at com.sun.corba.se.internal.corba.ServerDelegate.dispatch
(ServerDelegate.java:353) at com.sun.corba.se.internal.iiop.ORB.process
(ORB.java:280) at com.sun.corba.se.internal.iiop.RequestProcessor.process
(RequestProcessor.java:81) at com.sun.corba.se.internal.orbutil.ThreadPool$PooledThread.run
(ThreadPool.java:106)
エンジンのトレース・ファイルでは、クラッシュのトレースを示す最後の数行が次のようになります。
[2005/6/1 3:38:34:575] (rwfdt:rwfdtprint) Distributing the report [2005/6/1 3:38:34:585] (rwfdt:rwfdtpredo) running [2005/6/1 3:38:34:585] (rwfdt:rwfdtpredo) no preformat of pages requested, quit [2005/6/1 3:38:34:585] (rwfdt:rwfdtni_NextInstance) running [2005/6/1 3:38:34:595] (rwfdt:rwfdtni_NextInstance) quit [2005/6/1 3:38:34:595] (rwfdt:rwfdtgcf_GenCachefile) running [2005/6/1 3:38:34:615] (rwfdt:rwfdtgcf_GenCachefile) Cache file is D:¥orawin¥reports¥cache¥03564661.htm [2005/6/1 3:38:34:615] (rwfdt:rwfdtgcf_GenCachefile) quit [2005/6/1 3:38:34:615] (rwfdt:rwfdtprint) caching output from backend drivers [2005/6/1 3:38:34:755] (C Engine)
処置: エンジンのクラッシュを引き起こしているレポートを特定します。これには、ジョブIDを特定します。前述の例の場合、エンジンはjobid 17
の実行中にクラッシュしています。サーバーのトレース・ファイルで、jobid = 17 Get command line
文字列を検索します。この行には、レポート名も含む完全なコマンド行が含まれています。トレースとエンジンの診断を有効にします。問題のあるレポートを何度か実行し、クラッシュを再現します。クラッシュが再現されたら、トレース・ファイルと診断の出力をオラクル社カスタマ・サポート・センターに送り、分析を依頼します。
REP-50125は、Reports Serverが関係する様々な状況で生成される一般的なエラー・メッセージです。
REP-50125: Caught exception: {0}
原因: Oracle Reportsで内部例外が発生しました。
処置: オラクル社カスタマ・サポート・センターにサポートを依頼してください。
REP-50125のヘルプ・トピックの原因および処置に関する項には、問題を効率的に特定し診断するための十分な情報が記載されていません。
Oracle Reports 10gリリース2(10.1.2)では、次の新しいエラー・メッセージを特定のシナリオに適用し、焦点を絞ったトラブルシューティング・サポート情報がヘルプ・トピックの原因および処置に関する項で用意されています。
REP-56126: Failed to parse server config file {0}
原因: サーバー構成ファイルの解析が失敗しました。XML構文に誤りがあります。
処置: サーバー構成ファイルを修正して、サーバーを起動してください。
REP-56127: Failed to decrypt <{0}> element
原因: 要素に対する復号化コールが失敗しました。
処置: encrypted属性が要素に正しく設定されていることを確認してください。
REP-56128: Failed to initialize {0} destination. Nested Exception: {1}
原因: 宛先の初期化が失敗しました。
処置: 宛先の構成を確認し、修正してください。
Reports Serverの起動時にREP-50125が表示されます。
Oracle MetaLink(http://metalink.oracle.com)で、Reports Serverの起動時の問題に関するトラブルシューティングのノート289748.1を参照してください。
レポート・リクエストを実行するとREP-50125が表示されます。
Oracle MetaLink(http://metalink.oracle.com)で、Reports Serverに発行されたレポート・リクエストの失敗に関するトラブルシューティングのノート290827.1を参照してください。
SLES-8/UnitedLinux 1.0でReports Serverを起動すると、セグメンテーション違反とともにREP-50125が表示されます。
Oracle Reports 10gリリース2(10.1.2)では、SLES8とSLES9がサポートされています。しかし、Oracle Reports 10gリリース2(10.1.2)ではUnitedLinux 1.0はサポートされていないため、このプラットフォームを使用してレポート・リクエストを実行することはできません。
Linuxでopenmotifを使用してレポート・リクエストを実行すると、REP-50125が表示されます。
Linux上のOracle Reports 6i、9iおよび10gでは、openmotif 2.1.30のみがサポートされます。
Reports Servlet(rwservlet
)から送信された長期レポート・リクエストは、ASコンポーネントによっては、失敗したりエンジンのクラッシュやハングを引き起こす場合があります。
rwservlet
を使用して長期にわたって実行しているレポートが終了しません。
次のことを確認してください。
複数のプラットフォームにレポートを配布すると、フォントの問題が生じる場合があります。
複数のプラットフォームにレポートを配布した場合に、プラットフォーム間のフォントの表示およびマッピングが一致しません。
Oracle Reports 10gリリース2(10.1.2)では、この問題について、新しいマニュアルの次の各章で取り上げています。
REP-56048
は、UNIXでrwservlet
、rwclient
、Oracle Formsなどを使用してレポートを実行したときに発行される、一般的なエラー・メッセージです。Reports Serverは、レポートを実行するReport Engineにジョブを渡します。そのReport Engineがクラッシュすると、このエラーが発生します。
REP-56048: Engine {0} crashed
原因: Reports Serverで、指定したエンジンのクラッシュが検出されました。
処置: Reports Serverで別のエンジンを再起動します。エンジンがクラッシュするテスト・ケースとともに、問題をオラクル社カスタマ・サポート・センターに報告してください。
後述の解決策および第D.1.1項「レポート・リクエストのハング」の解決策4を参照し、問題に対処します。それでもREP-56048が発生する場合は、次の手順を実行して、問題をオラクル社カスタマ・サポート・センターに報告してください。
server_name
.conf
ファイルでlog
要素のoption
属性をfailedJobs
に設定することでログのみを有効にします(第3.2.1.11項「log」を参照)。ログを有効にすると、失敗したジョブ・レポートをreports.log
ファイルで確認できます。失敗したレポートまたはエンジンのクラッシュを引き起こしたレポートを特定します。
server_name
.conf
ファイルのengine
要素を編集し、diagnosis
プロパティを追加してエンジンの診断ログを有効にします(第3.2.1.4項「engine」の「プロパティ」を参照)。その後、手順1で特定したレポートを実行し、クラッシュを再現します。
UNIXプラットフォームでレポートを実行したときに、NLS_LANG
にWE8ISO8859P1
またはIW8ISO8859P8
以外のキャラクタ・セットが定義されている場合、REP-56048
が表示されます。
Oracleのキャラクタ・セット名およびXLFDのCHARSET_REGISTRY
とCHARSET_ENCODING
とのマッピングに使用されるTk2Motif.rgb
内のエントリを修正します(最後の2つのフィールド。iso8859-1
など)。詳細は、次を参照してください。
また、Report Engineでレポートを実行する前に、Reports Runtime(rwrun
)を使用してこのレポートを実行し、環境設定を確認することもできます。
UNIXプラットフォームでレポートを実行したときに、DISPLAY
環境変数が設定されていない場合、REP-56048
が表示されます。
Oracle Reports 10gリリース1(9.0.4)では、REPORTS_DEFAULT_DISPLAY
環境変数により、DISPLAY
環境変数への依存性が解消されます。デフォルトではREPORTS_DEFAULT_DISPLAY=YES
です。REPORTS_DEFAULT_DISPLAY
がNO
に設定されていないことを確認してください。
詳細は、第B.1.38項「REPORTS_DEFAULT_DISPLAY」を参照してください。
巨大なレポートを実行しているときにトレースを有効にすると、REP-56048
が表示されます。
トレースを有効にした場合、膨大な出力のレポートを実行したときに、Reports Engineがクラッシュすることがあります。これは、トレース・ファイルのサイズの問題と、トレースの作成に使用できるディスク領域、メモリーまたはプロセッサ処理能力が不十分であることが原因と考えられます。このエラーに対処するには、診断情報を使用してレポートの問題をトラブルシューティングする必要がある場合に、エンジンの診断ログのみを有効にします。これには、server_name
.conf
ファイルのengine
要素を編集して、diagnosis
プロパティを追加します(第3.2.1.4項「engine」の「プロパティ」を参照)。server_name
.conf
構成ファイルのtrace
要素にあるtraceModule
属性を使用して、生成されるトレース・ファイルを制限することもできます。
traceModule
属性と他のトレース・オプションの詳細は、第3.2.1.13項「trace」を参照してください。トレースの詳細は、第20.1.2項「レポート・トレース」を参照してください。
UNIXでDISTRIBUTE=YES
に設定するとREP-56048
が表示されます。
配布ファイルに指定されている宛先の1つがプリンタの場合、PRINTER
環境変数が有効なプリンタに設定されていないと、UNIXで配布エラーが発生します。次の環境変数を設定してください。
PRINTER=printer_name; export PRINTER TK_PRINTER=printer_name; export TK_PRINTER TK_PRINT_STATUS="echo %n is valid"; export TK_PRINT_STATUS TK_PRINT=echo; export TK_PRINT
$ORACLE_HOME/guicommon/tk/admin/uiprint.txt
に、次の行を追加します。
printer_name:PostScript:1:test:default.ppd:
レポートの配布の詳細は、第15章「拡張配布の作成」を参照してください。
UNIXでレポートを印刷するとREP-56048
が表示されます。
Oracle Reportsは、UNIXでの印刷にシェル・スクリプトrwlpr.sh
を使用します。このファイルは直接変更することはできません。オラクル社カスタマ・サポート・センターにサポートを依頼してください。
UNIXでの印刷の詳細は、第5章「UNIXでのOracle Reportsによる印刷」を参照してください。
UNIXでグラフィックが含まれるレポートを実行するとREP-56048
が表示されます。
このエラーは、Oracle Reportsが、オペレーティング・システムのデフォルト以外のMotifバージョンにリンクされている場合に発生することがあります。リンク先となる正しいMotifのバージョンの詳細は、Oracle Application Serverのリリース・ノートのOracle Reportsの章を参照してください。
マトリックス・レポートのデリミタ付きレポート出力を生成するとREP-56048
が表示されます。
レポート出力を、デリミタ付きではなく、DelimitedData(DESFORMAT=DELIMITEDDATA
)またはスプレッドシート(DESFORMAT=SPREADSHEET
)出力に生成してください。DelimitedDataを使用すると、大量のレポートをサポートできますが、Microsoft Excelの出力には、レポート・データ・モデルで定義されているデータのみが表示され、レイアウト情報は表示されません。レポート・レイアウトに定義されているフォーマットを維持したレポート出力を生成するには、Oracle Reports 10gリリース2(10.1.2)の新しい出力フォーマットであるDESFORMAT=SPREADSHEET
を使用します。
デリミタ付き出力およびスプレッドシート出力の詳細は、Oracle Reportsのオンライン・ヘルプのデリミタ付き出力とスプレッドシート出力に関する項、および『Oracle Reportsレポート作成ガイド』の「拡張概念」の章を参照してください。第A.3.25項「DESFORMAT」も参照してください。
前述の解決策で問題を解決できなかった場合に、Reports Engineからレポートを実行すると、REP-56048
が表示されます。
このエラーは、環境設定に関連しているか、レポート自体の問題によって発生する場合があります。Reports ServerでReports Servlet(rwservlet
)のshowjobs
ページを調べると、エラーを引き起こしているジョブを特定できます。UNIXマシンを使用している場合は、実行環境にコア・ダンプが作成されます。関連するバグを簡単に検索できるよう、このコア・ダンプからスタック・トレースを抽出します。実行可能ファイルは、rwrun
ではなく、java
になることに注意してください。
以前のリリースでは、コア・ファイルからスタック・トレースを抽出するのに、ランタイム実行可能ファイルでデバッガを実行していました。この方法は、rwrun
実行可能ファイルのみで問題を再現できる場合は、現在でも有効です。しかし、Reports Serverを使用した場合でのみクラッシュが発生する場合は、エンジンがJavaラッパーを使用してコールされるため、Java実行可能ファイルでデバッガを実行する必要があります。これにより、すべてのOracle Reportsライブラリが自動的にロードされます。
次に例を示します。
dbx java core
この例は、dbx
の場合を示しています。スタック・トレースを抽出したら、Oracle MetaLink(http://metalink.oracle.com)で、スタックにある最後の数コールを使用して、関連する問題を検索できます。
特定のジョブが問題の原因と思われる場合は、次の手順として、コマンドラインの実行可能ファイルrwclient
およびrwrun
を使用して、そのレポートを実行します。rwclient
を使用して実行すると、Webコンポーネントが環境から削除されます。rwrun
を使用して実行すると、Reports Serverをバイパスしてエンジンのみで実行することと同じことになります。
OPMNの実装に関連する各種の問題により、インプロセス・サーバーは、過負荷状態の低速コンピュータで実行した場合に、タイムアウトになったり停止したりします。
インプロセス・サーバーが低速コンピュータでの起動に失敗すると、それがOC4J_BI_FORMS
OC4Jインスタンスの起動シーケンスのトリガーとなります。
現時点では、pingserver?start=auto
URLが渡されると、インプロセス・サーバーの状態がCORBAコールを通じて取得されます。このCORBAコールは、1秒でタイムアウトになります。したがって、サーバーを実行しているコンピュータが低速の場合、CORBAコールは失敗する可能性があります。このような障害が発生すると、インプロセス・サーバーは稼動しているにもかかわらず、稼動していないものと見なされるため、起動シーケンスが開始します。
インプロセス・サーバーを再起動すると、ネットワークに同じ名前の別のサーバーが存在するかどうかがチェックされます。同じ名前の別のサーバーが存在する場合、インプロセス・サーバーは停止します。その結果、CORBAコールが失敗し、OC4Jが再起動されます。
Oracle Reports 10gリリース2(10.1.2)では、この問題に対応するために、次の変更が行われています。
rwservlet
)はそのスタンドアロン・サーバーとの接続を確立します。
start=auto
を使用してインプロセス・サーバーを起動します。後からインプロセス・サーバーが手動で停止された場合、Reports Servletはインプロセス・サーバーを起動できません。
インプロセス・サーバーが終了する前にpingがタイムアウトになります。
OPMNは、インプロセス・サーバー(OC4J_BI_FORMS
内)からのコールバックを待機する必要がありますが、第3.9項「レポート配布の最適化」で説明しているように、pingのタイムアウトは、そのコールバックがタイムアウトと見なされるまでの待ち時間を特定するための目安となります。
pingのタイムアウトを構成するには、opmn.xml
の次の要素にpingエントリを追加して、マシンの負荷にあった十分なタイムアウト値を指定します。
<ias-component id="OC4J"> ... <process-type id="OC4J_BI_Forms" module-id="OC4J"> ... <restart timeout="720" retry="2" /> ... <ping timeout="110" interval="30" /> ...
また、opmn.xml
の次の要素を削除またはコメント・アウトして、URL pingをオフにすることもできます。
<category id="urlping-parameters"> <data id="/reports/rwservlet/pingserver?start=auto" value="200" /> </category>
その後でOC4J_BI_Forms
を再起動します。
Reports ServerでのOPMNの使用方法の詳細は、第2.1.2項「Oracle Process Manager and Notification ServerからのReports Serverの起動、停止および再起動」および第3.8項「Oracle ReportsとOracle Workflowの通信の構成」を参照してください。
双方向サポートは、利用対象者の要件に応じて、左から右または右から左の方向にレポート出力を表示できるようにします。右から左に表示する言語にはフォントの問題があるため、レポート出力の生成が完全ではありません。
右揃えのテキストが正しく表示されず、固定幅フォントを必要とする制限が生じます。
Oracle Reports 10gリリース2(10.1.2)では、右から左に表示する言語(ヘブライ語、アラビア語など)にフォント・サブセットを適用して、テキストが正しく右揃えされるようにPDF出力を改善することで、この問題に対応しています。しかし、UNIXプラットフォームでは、右揃えのテキストが正しく表示されない場合があります。
右から左に表示するテキストの問題に対処するには、次の各項を参照してください。
ARABIC
(アラビア数字)、HINDI
(ヒンディー数字)またはCONTEXT
(コンテキストに応じてアラビア数字またはヒンディー数字)です。
Web上でOracle FormsからOracle Reportsをコールする際の最も安全な方法は、Oracle Application Server Reports ServicesをRUN_REPORT_OBJECT
とともに使用することです。RUN_REPORT_OBJECT
を使用してOracle FormsからOracle Reportsをコールする方法の詳細は、OTNにあるホワイト・ペーパー『Oracle Application Server 10g Integrating Oracle Reports in Oracle Forms Services applications』(http://otn.oracle.com/products/forms/pdf/10g/frm10gsrw10g.pdf)を参照してください。
『Oracle Application Server Forms Services利用ガイド』も参照してください。
RUN_REPORT_OBJECT
で次のエラーが生成されます。
FRM-41214: Unable to run report
.
Webでレポートを配布し、ブラウザ・ウィンドウに出力を表示する場合は、DESTYPE
を、SCREEN
またはPREVIEW
ではなく、CACHE
に設定します。ブラウザにレポート出力を表示するには、RUN_REPORT_OBJECT
ではなく、WEB.SHOW_DOCUMENT
を使用します。
RUN_REPORT_OBJECT
で次のエラーが生成されます。
FRM-41213: Unable to connect to the report server
server_name
.
次を確認してください。
RUN_REPORT_OBJECT
コードで参照されているReports Serverが起動していることを確認します。
RUN_REPORT_OBJECT
に渡されるパラメータの値にスペースが使用されていないこと、およびパラメータが一重引用符で囲まれていることを確認します。
RUN_REPORT_OBJECT
で次のエラーが生成されます。
REP-503 You did not specify the name of a report
.
Oracle Formsオブジェクト・ナビゲータのレポート・オブジェクトのプロパティ・パレットに、レポート名が指定されていることを確認します。
フォームからレポートを実行して、フォームからレポートにパラメータを渡すことができません。
次を確認してください。
それでも問題が解決しない場合は、レポートのトレースを有効にして(第20.1.2項「レポート・トレース」を参照)、問題の原因を絞り込みます。
レポート・パラメータ・フォーム(PARAMFORM=YES
)をRUN_REPORT_OBJECT
とともに使用するとエラーになり、Internal Server Error
が発生します。
OTNにあるホワイト・ペーパー『Oracle Forms Services - Using Run_Report_Object() to call Reports with a parameter form』(http://otn.oracle.com/products/forms/pdf/10g/frmrepparamform.pdf)を参照してください。
Microsoft Excelに表示するためにデリミタ付きのレポート出力を生成することは、一般的な要件であり、様々な方法で実現できます。しかし、どの方法を選択したらよいかわからない場合があります。
要件に最も適したデリミタ付き出力のソリューションがわかりません。
レポートの定義および出力ディスプレイの要件に応じて、Microsoft Excel用のデリミタ付きレポート出力を生成する適切な方法を選択します。
出力ソリューション: デリミタ付きのレポート出力を生成します。
出力ソリューション: スプレッドシート形式のレポート出力を生成します(Oracle Reports 10gリリース2(10.1.2)の新機能)。
出力ソリューション: JSPレポートであるため、直接.xls
ファイル(DESTYPE=FILE
)に生成することはできませんが、ブラウザに.xlsファイルとして表示される出力を保存することはできます。<rw:include>
を使用してこのソリューションを実行するには、『Oracle Reportsレポート作成ガイド』にある、第29章「スプレッドシート出力のレポートの作成」を参照してください。
ソリューション: JSPレポートであるため、直接.xlsファイル(DESTYPE=FILE
)に生成することはできませんが、ブラウザに.xlsファイルとして表示される出力を保存することはできます。ExcelテンプレートとJSPタグを使用してこのソリューションを実行する方法の詳細は、OTNのOracle Reports 10gのページで「Getting Started with Oracle Reports」をクリックし、「Generating Excel Output with Oracle Reports」というタイトルのデモを参照してください。
スプレッドシート出力およびデリミタ付き出力の詳細は、Oracle Reportsのオンライン・ヘルプおよび『Oracle Reportsレポート作成ガイド』を参照してください。
ユーザー・イグジットは、Oracle Reportsの以前のリリースで開発されたレポートに存在する場合があります。
UNIXでユーザー・イグジットが含まれるレポートを実行すると失敗します。
UNIXでは、Reports Builder(rwbuilder
)とReports Runtime(rwrun
)によってユーザー・イグジット・ライブラリが動的にロードされ、ユーザー・イグジットが含まれるレポートが正常に実行されます。Reports Server(rwserver
)を使用してレポートを実行する場合は、rwengine.sh
に次の環境変数を追加して、ユーザー・イグジット・ライブラリをロードする必要があります。
LD_PRELOAD==librw.so:user_exit_library; export LD_PRELOAD
インプロセス・サーバーでは、現在Windowsに直接ログオンしているユーザーのデフォルトのプリンタが認識されません。これは、インプロセス・サーバーを実行しているサービスがLocal Systemとしてログオンされているためです。
デフォルトのプリンタに出力すると、REP_3002
エラー・メッセージが出力されます。たとえば、次のようなコマンドを入力したとします。
http://myrepsrvr.us.oracle.com:7777/reports/rwservlet?report=myrep.rdf&destype=printer& desformat=html
この場合、次のエラー・メッセージが表示されます。
Error:"REP-3002: Error initializing printer. Please make sure a printer is installed."
Oracle6i Graphics(OGD)グラフィックが含まれるレポートを配布すると、Reports Serverがレスポンスを停止します。
インプロセス・サーバーからPDFファイルを出力すると、フォントの位置に問題が発生します。
これらの問題をすべて対処する手順は、次のとおりです。
regedit.exe
など)を使用してWindowsのレジストリを開きます。編集する前に、レジストリのバックアップを作成します。
HKEY_CURRENT_USER¥Software¥Microsoft¥Windows¥CurrentVersion¥Windows
Device
の文字列値をコピーします。次に例を示します。
¥¥MOWGLI¥sierra,winspool,Ne02:
HKEY_USERS¥.DEFAULT¥Software¥Microsoft¥Windows¥CurrentVersion¥Windows
HKEY_CURRENT_USER
からコピーしたDevice
の値を貼り付けます(このキーのDevice
の文字列値は空になります)。インプロセス・サーバーの実行の長所と短所は、第1章「OracleAS Reports Servicesのアーキテクチャについて」を参照してください。その他の詳細は、第3.4.10項「インプロセス・サーバーの指定」および第3.4.11項「インプロセス・サーバーの識別」を参照してください。
レポートの実行時間を改善する方法および全体的なパフォーマンスを効率化する方法の詳細は、第20章「Oracle Reportsのチューニング」を参照してください。
Oracle Reportsのトレース・オプションを使用して、Oracle Reportsのパフォーマンス関連の問題などをトレースおよび診断する方法の詳細は、第20.1.2項「レポート・トレース」を参照してください。
UNIXマシンでフォントを使用する際の一般的な問題および解決策の詳細は、第7章「クロス・プラットフォームの移植問題の解決」を参照してください。
UNIXでレポートを印刷する際の一般的な問題および解決策の詳細は、第5章「UNIXでのOracle Reportsによる印刷」の第5.7項「よくある質問」を参照してください。
JDBC PDSを使用する際の一般的な問題および解決策の詳細は、第9章「JDBC PDSの構成と使用」の第9.4項「トラブルシューティング情報」を参照してください。
レポートをポートレットまたはアイテム・リンクとしてOracleAS Portalに公開する際の一般的な問題およびソリューションの詳細は、第12章「OracleAS Portalでのレポートの配布」の第12.4項「トラブルシューティング情報」を参照してください。
Oracle Reportsの一般的なグローバリゼーションの問題および解決策の詳細は、第18章「グローバリゼーションと双方向のサポートの実装」の第18.7項「グローバリゼーションに関する問題のトラブルシューティング」を参照してください。
Oracle MetaLink(http://metalink.oracle.com)には、さらに詳しい解決策が掲載されています。問題の解決策が見つからない場合は、オラクル社カスタマ・サポート・センターでサービス・リクエストを受け付けています。
オラクル社カスタマ・サポート・センターに問題のトラブルシューティングを依頼する場合は、次の手順を実行してください。
|
Copyright © 2003, 2005 Oracle. All Rights Reserved. |
|