Libreofficeに接続できなくなる

CentOS6.6(32bit)上に、libreoffice6.0.7をインストールしております。
この環境下において、libreofficeをサービス化した上で、Webサーバ(Apache+Tomcat)より、
jodconverter-2.2.2.jarを使用して、xlsファイルからpdfファイルへの変換処理を行うようにしているのですが、
先日、急にPDFへの変換処理ができなくなってしまいました。
正確に申し上げますと、libreofficeへconnectはしているのですが、disconnectが行えていない状態です。
(Tomcatのログにdisconnectのログが出力されなくなっておりました)
現象自体は、libreofficeのサービス再起動により回復しております。

jodconverterを使用して、同様のことを行われている方のなかで、
同じような事象が起こったケースはございませんでしょうか。

24時間365日再起動なしでlibreofficeのサービスを起動していることが、原因かもしれませんが、
その他、考えうる原因および解決方法等、ご存じの方がいらっしゃいましたら、
ご教示いただけますと幸いです。

Webサーバ情報
Apache:httpd-2.2.15-39.el6.centos.i686.rpm
Tomcat:apache-tomcat-7.0.50.tar.gz

libreofficeをheadlessモードでサービス化
ーーーサービス化スクリプトここからーーー
. /etc/rc.d/init.d/functions

libreoffice="/opt/libreoffice6.0/program/soffice.bin"
libreoffice_args=’–accept=“socket,host=127.0.0.1,port=8100;urp” --headless --nologo --norestore --nodefault --invisible’
prog=$(basename $libreoffice)

sysconfig="/etc/sysconfig/$prog"
lockfile="/var/lock/subsys/libreoffice-headless"
pidfile="/var/run/${prog}.pid"

start() {
echo -n $"Starting $prog: "
daemon “$libreoffice $libreoffice_args &”
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
pidof soffice.bin > $pidfile
return $retval
}

stop() {
echo -n $"Stopping $prog: "
killproc -p $pidfile $prog
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}

restart() {
stop
start
}

rh_status() {
status $prog
}

rh_status_q() {
rh_status >/dev/null 2>&1
}

case “$1” in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart)
rh_status_q || exit 0
$1
;;
status)
rh_status || exit 0
;;
*)
echo $“Usage: $0 {start|stop|status|restart}”
exit 2
esac
ーーーサービス化スクリプトここまでーーー

参考までに、下記にjavaの変換処理部分のロジックを記載致します。
ーーーロジックここからーーー
//LiberOfficeへの接続設定(localhostの8100番)
OpenOfficeConnection con = new SocketOpenOfficeConnection(8100);

try {
// LiberOfficeに接続
con.connect();

DocumentConverter converter = new OpenOfficeDocumentConverter(con);
//ExcelからPDF変換
converter.convert(in , new DefaultDocumentFormatRegistry().getFormatByFileExtension("xls"),
                  out, new DefaultDocumentFormatRegistry().getFormatByFileExtension("pdf"));

} catch (Exception e) {
throw new LgException(e);
} finally {
//LibreOfficeから切断
con.disconnect();
}
ーーーロジックここまでーーー

以上、よろしくお願い致します。

1 Like