レポート生成のタイムアウトをレポートサーバーに設定する方法
対象製品
Elixir Report 8.7J
詳細
レポート生成やデータの表示など、レポートサーバー上で実行中のタスクにはタイムアウトを設定することができます。
この設定により、タイムアウトした実行中のタスクは一定の間隔でキャンセルされます。
次の手順で設定を行います。
1. 設定ファイルをテキストエディタで開きます。
<インストールディレクトリ>/server/config/ERS2.xml
2. Task Managerの項目を探します。次のような内容です。
<!-- Task Manager (experimental) -->
<ers:mbean name="ERS2:name=ReportMonitorThread">
<ers:property name="Timeout">0</ers:property>
<ers:property name="MonitorInterval">60</ers:property>
<ers:property name="FlushInterval">600</ers:property>
</ers:mbean>
※上記は8.4Jの設定です。
3. Timeoutの値を秒で指定します。この値は、レポート生成などのタスクがタイムアウトするまでの時間です。
例(60秒に指定):
<ers:property name="Timeout">60</ers:property>
4. MonitorIntervalの値を秒で指定します。この値は、タスクがタイムアウトしたかどうかをチェックする間隔です。
例(60秒に指定):
<ers:property name="MonitorInterval">60</ers:property>
5. FlushIntervalの値を秒で指定します。この値は、タスクリストからタスクが実際にキャンセル(削除)される間隔です。
例(60秒に指定):
<ers:property name="FlushInterval">60</ers:property>
6. ERS2.xmlを上書き保存して、レポートサーバーを再起動します。
Timeout値によりタイムアウトしたタスクがすぐに削除されるように設定したい場合は、FlushInterval値を低くして、削除の間隔が短くなるようにしてください。
タイムアウトしたタスクは、ログファイルで次のように出力されます。
activity.log:
XXXX-XX-XX XX:XX:XX,XXX,INFO , , Task Timeout: Report X /demo/demo.rml (after 90) seconds
XXXX-XX-XX XX:XX:XX,XXX,INFO ,xxxxx , Task completed: Report X /demo/demo.rml
XXXX-XX-XX XX:XX:XX,XXX,INFO ,xxxxx , render Report X "/demo/demo.rml" elapsedTime: 91548 pageCount: 1 byteCount: XXXX mimeType: application/pdf statusCode: 6
task.log:
XXXX-XX-XX XX:XX:XX,XXX,xxx@qtp-xxx-0,INFO ,id:X,type:Report,owner:xxxx,host:xxx.xxx.xx.xx:xxxx,lifecycle:TimeOut,description:/demo/demo.rml,elapseTime:91550,start:XXXX-XX-XX XX:XX:XX XXX,end:XXXX-XX-XX XX:XX:XX XXX,message:
この設定により、タイムアウトした実行中のタスクは一定の間隔でキャンセルされます。
次の手順で設定を行います。
1. 設定ファイルをテキストエディタで開きます。
<インストールディレクトリ>/server/config/ERS2.xml
2. Task Managerの項目を探します。次のような内容です。
<!-- Task Manager (experimental) -->
<ers:mbean name="ERS2:name=ReportMonitorThread">
<ers:property name="Timeout">0</ers:property>
<ers:property name="MonitorInterval">60</ers:property>
<ers:property name="FlushInterval">600</ers:property>
</ers:mbean>
※上記は8.4Jの設定です。
3. Timeoutの値を秒で指定します。この値は、レポート生成などのタスクがタイムアウトするまでの時間です。
例(60秒に指定):
<ers:property name="Timeout">60</ers:property>
4. MonitorIntervalの値を秒で指定します。この値は、タスクがタイムアウトしたかどうかをチェックする間隔です。
例(60秒に指定):
<ers:property name="MonitorInterval">60</ers:property>
5. FlushIntervalの値を秒で指定します。この値は、タスクリストからタスクが実際にキャンセル(削除)される間隔です。
例(60秒に指定):
<ers:property name="FlushInterval">60</ers:property>
6. ERS2.xmlを上書き保存して、レポートサーバーを再起動します。
Timeout値によりタイムアウトしたタスクがすぐに削除されるように設定したい場合は、FlushInterval値を低くして、削除の間隔が短くなるようにしてください。
タイムアウトしたタスクは、ログファイルで次のように出力されます。
activity.log:
XXXX-XX-XX XX:XX:XX,XXX,INFO , , Task Timeout: Report X /demo/demo.rml (after 90) seconds
XXXX-XX-XX XX:XX:XX,XXX,INFO ,xxxxx , Task completed: Report X /demo/demo.rml
XXXX-XX-XX XX:XX:XX,XXX,INFO ,xxxxx , render Report X "/demo/demo.rml" elapsedTime: 91548 pageCount: 1 byteCount: XXXX mimeType: application/pdf statusCode: 6
task.log:
XXXX-XX-XX XX:XX:XX,XXX,xxx@qtp-xxx-0,INFO ,id:X,type:Report,owner:xxxx,host:xxx.xxx.xx.xx:xxxx,lifecycle:TimeOut,description:/demo/demo.rml,elapseTime:91550,start:XXXX-XX-XX XX:XX:XX XXX,end:XXXX-XX-XX XX:XX:XX XXX,message: