single_preset_output.zip ファイルをシステムにダウンロードします。Zip ファイルを展開します。
問題
複数のプリセットでコマンドラインユーティリティを使用して出力を生成する際、「rh-render-process-gone」や Java OOM エラーなどのエラーが発生し、プロセスがハングする場合があります。これにより、robohelp が応答しなくなったり、スタックしたりして、プリセット出力生成が失敗することがあります。この動作は予期されるものであり、この記事で説明するトラブルシューティング手順に従うことで解決できます。
なぜこの問題が発生するのですか?
コマンドラインプリセット出力生成の失敗は、主に以下の理由で発生します:
- システムリソース(CPU やメモリなど)の不足により、「rh-render-process-gone」エラーがトリガーされ、プロセスが応答しなくなる場合があります。
- RoboHelp は Electron フレームワーク上に構築されており、この問題は Electron バージョン 14 以降で導入された変更が原因で発生します。内部で Chromium を使用する Electron は、メインプロセスに対してハードメモリ制限を適用します。Windows では 8GB、macOS では 16GBです。大規模なプロジェクトの場合、これによりプロセスがメモリ不足(OOM)になり、ユーザーが大規模なプロジェクトを抱えている場合や、複数のプリセット出力を並行して生成しようとしている場合に問題が発生する可能性があります。
Chromium はパフォーマンスとセキュリティを強化するためにこれらの制限を実装しており、この設定を無効にしたり変更したりするための利用可能な回避策はありません。以前のバージョンの Electron では RAM の消費に制限がなかったため、コマンドライン経由で複数の出力を生成する場合にはこの問題は発生しませんでした。
問題をトラブルシューティングする方法はありますか?
-
-
solution フォルダーに移動し、preset_output.bat という名前のファイルを見つけます。メモ帳などのテキストエディターを使用して開きます。
-
以下の変数を下記のように設定します:
- 目的のプロジェクトの .rhpj ファイルが保存されている場所に応じたプロジェクトファイルパス。例えば、プロジェクトファイルパスを次のように設定します:PROJECT_FILE="C:\sanitization-effort\Sanitized.rhpj"。
- 変数 OUTPUT_PRESET の値を目的のプリセット出力に設定します。例:「Frameless」。
- LOG_FILE パスを目的のファイルシステムパスに設定します。
- OUTPUT_DIR をシステム上の目的の出力ディレクトリパスに設定します。
-
すべての詳細を正常に編集した後、ファイルを保存します。
-
管理者としてコマンドプロンプトを開き、preset_output.bat ファイルが存在する場所に移動します。例えば、ファイルが C:/Downloads/solution/preset_output.bat の場所にある場合は、ターミナルで次のコマンドを実行します。
cd "C:/Downloads/solution"
-
コマンドを実行します:
.\main "preset_output.bat"
すぐにプリセット出力が、OUTPUT_DIR パスに生成されます。
-
既存の RoboHelp プロセスがバックグラウンドで実行されている場合、エラーメッセージ「別のプロセスが実行中です」が表示されます(下の画像を参照)。この場合は、実行中の RoboHelp プロセスを終了してから、再試行してください。解決すると、指定した出力フォルダーに出力が正常に生成されます。
注意:カスタムスクリプトを使用して複数のプリセット出力を生成する際にエラーが発生する場合は、multiple_preset_output.zip フォルダー内で提供されているサンプル回避策を参照してください。そのフォルダー内の rh_workaround.bat と pdf_ap_1.bat の内容を要件に合わせて変更してください。