「Web出版サイト」ベータ公開

Q&A集[?]

当サイトでのご質問の受付は終了しました

すべてのコンテンツを読み込み専用としたため、回答欄からも投稿できません

Apache OpenOffice/LibreOfficeのご質問はそれぞれのフォーラムへご投稿ください

質問コーナー

サイト内検索

分類メニュー

関連サイト


本日:1
昨日:0
総数:5123
現在:5


OpenOfficeの使用メモリサイズについて

ページOpenOffice.org FAQの登録ページ
投稿者初心者
分類
edit/refer
優先順位
edit/refer
状態
edit/refer
カテゴリー
edit/refer
投稿日2008-06-11 18:59:33 (水)
OSWindows XP
依存するページ
バージョン
edit/refer

メッセージ

回答ページでは行末に「~」を付加する必要はありません

お世話になります。

Webアプリケーション(java)で、OpenOffice.org 2.0.4とJOOReports 2.0を利用し、
PDFを出力しております。

PDFを大量に連続出力した時に、OpenOfficeが落ちて
(soffice.binプロセスがなくなる)しまいます。

Oooの使用メモリサイズが足りないためなのでしょうか?

また、Oooの使用メモリサイズを広げることはできるのでしょうか?

お手数ですが、宜しくお願いします。


メモリーリーク

はにゃ? (2008-06-12 02:29:37 (木))

メモリーリークが原因といわれているようです (私は遭遇したことがないので)。

memory management
http://www.oooforum.org/forum/viewtopic.phtml?t=40203

関連 issue
memory leak while converting
http://www.openoffice.org/issues/show_bug.cgi?id=41675

解決方法としては時々終了させるといった方法を取るようです。
http://seasarproject.g.hatena.ne.jp/makotan/?of=10

JOOReports は名称が変わったんでしょうかね。JODReports
http://jodreports.sourceforge.net/

単に、バグで、クラッシュしているのかも。

Tora (2008-06-12 11:06:52 (木))

現在お使いの OpenOffice.org 2.0.4 を削除し、OpenOffice.org 2.4 もしくは 2.4.1 をインストールしてみるといかがでしようか。

http://ja.openoffice.org/download/2.4.0/
http://openoffice-ja.org/wiki/?shortcut=0a13e2

新しい接続方法を試してみてはいかがでしょうか。

Tora (2008-06-13 13:53:32 (金))

上述のバグについては、まだ修正されていないみたいですね。どうも失礼いたしました。
以下、他の案件にてコンサルティングいたしました内容を切り貼りして書き直してみました。ご参考になればと思います。


もし参考にされているドキュメントが「Developer's Guide」[1] であれば、そちらは情報が少し古いようですので、そちらに加えて、SDK [2] 内のサンプルコードが参考になるかと思います。

従来は、OpenOffice.org のプロセスを先に起動しておく必要がありました。Developer's Guide にもそのように記述されています。
その方式では、以下のような面倒くささがあわけです。
・soffice.bin が常に存在して動作していることを監視するための別の監視ツールなどが必要。
・その監視ツールなどが正常に動作していることをさらに監視するための機構などが必要。
・soffice.bin を連続して動作させているわけですから、メモリリークなどの不具合があった場合、多量の処理を連続して行わせた場合にメモリ不足に陥る可能性がある。
などなど。

最近のバージョンでは、Javaのスタブ部分で OpenOffice.org のプロセスの有無を確認し、必要であれば OpenOffice.org を自動的に起動する。というような改善が行なわれており、あらかじめ OpenOffice.org を起動しておく必要がなくなっております。この方法では、すべての接続が閉じられた後、数秒経過すると、自動的に soffice.bin が終了するようになっています。

変換しようとする時に soffice.exe を起動することになるので、あらかじめ起動しっぱなしにしておく方法よりも、若干(1,2秒程度)余計に時間が掛かってしまうという欠点がありますが、何よりも、メモリリークなどを気にする必要がなくなる。監視する機構などが不要になる。などの利点の方が大きいのではないかと思います。

Developer's Guide にはその改善内容がまだ反映されていないようですが、SDK内のサンプルコードには、すでにその改善内容が取り入れられています。以下のサンプルコード [3] などが参考になるかと思います。
そこで使われているヘルパークラスは、[4] 内にあります。

前述の名前つきパイプの名前をこちらのヘルパークラスが自動生成し、そのパイプの名称を使うようにというコマンドラインオプションを付与して OpenOffice.org を起動するような仕組みになっています。

なお、複数の完全に異なる soffice.bin を起動したい場合は、HOME 環境変数に異なる文字列を設定することなどにより実現できます。また、ご自身で juh.jar のソースコードを修正してしまうという方法もあります。

[1] http://api.openoffice.org/DevelopersGuide/DevelopersGuide.html
[2] http://ftp.kddilabs.jp/office/openoffice/stable/2.4.0/OOo-SDK_2.4.0_WindowsIntel_install.exe
[3] C:\Program Files\OpenOffice.org_2.4_SDK\examples\DevelopersGuide\FirstSteps\FirstLoadComponent.java
[4] C:\Program Files\OpenOffice.org 2.4\program\classes\juh.jar

JODConverter を JOOReports 2.0 と共に使われているのでしょうか。

Tora (2008-06-13 14:15:15 (金))

http://www.artofsolving.com/opensource/jodconverter からダウンロードしてみた
jodconverter-2.2.1.zip の中に含まれているソースコード
jodconverter-2.2.1-sources.jar を展開して、
どのように Java から OpenOffice.org に接続しているのか確認してみました。

やはり、従来からの接続方式を使われているようです。

とりあえず完了にします

M.Kamataki (2010-06-12 10:12:09 (土))

当ページは参考になる情報が多く含まれます。左のカテゴリーメニューからたどれるよう状態を「完了」に変更します。

お名前:
題名: