2017-06-01 2 views
2

私はmirth connect 3.0.3を使用していますが、サイズがほぼ85MBで、デバイス情報が含まれている.xmlファイルを持っています。私はこの.xmlファイルを読んで、そのデータをデータベース(SQLサーバ)に挿入する必要があります。mirthのJavaヒープサイズエラー

私が直面している問題は、Javaヒープサイズエラー: が表示されているデータを読み込もうとしたときです。サーバーメモリを1024MBに、クライアントメモリを1024MBに増やしました。 でも同じエラーが表示されています。メモリを増やすと、私は接続を開始することができません。

ご意見がありがとうございます。おかげさまで

+0

VisualVMのようなプロファイラを使用して、ヒープに含まれるものを確認し、コードの不具合であるかMirth'sであるかを確認します。 – slim

答えて

1

XMLファイルは、複数のチャンネルのメッセージに分割する意味がある複数のセクション/データで構成されていますか?その場合は、バッチアダプタの使用を検討してください。 XMLデータ型には、要素/タグ名、ノードの深さ/レベル、またはXPathクエリに基づいて分割するオプションがあります。これらのオプションは、現在のところ、メッセージ全体がメモリに読み込まれる必要がありますが、XMLドキュメント全体を単一のメッセージとして読み取るよりもメモリ効率が向上します。

JavaScriptバッチスクリプトを使用することもできます。この場合、Java BufferedReaderが与えられ、スクリプトを使用してファイルを読み込んで一度にメッセージを返すことができます。この場合、ではなく、がファイル全体をメモリに読み込む必要があります。

トランスフォーマーで操作する必要のない大きなブロブのデータがメッセージにありますか? Like、埋め込み画像など?その場合は、Attachment Handlerの使用を検討してください。こうすることで、メッセージのライフサイクル全体(Raw/Transformed/Encodedなど)に複数回コピーして保存するのではなく、そのデータを抽出して一度保管することができます。

関連する問題