ProScan製品において「スキャンエンジンを常駐させる」もしくは「スキャンエンジンを手動で起動する」必要があるのはどんな場合でしょうか。

ProScan各製品に搭載された各種スキャナコマンド(procanfs)はスキャンの実施の必要がある度に呼び出されて実行されるコマンドとして設計されていますが、内部的にはスキャンエンジン(savapi/clamd)をサービスとして利用する事も可能になっています。

これは、スキャナコマンドの側でエンジンが「既にサービスとして実行されているかどうか」を判定し、既に実行中であればそのサービスを利用、未実行であればスキャナコマンド自身でエンジンを起動し、スキャン完了時に自身が起動したエンジンを停止させる、という処理を行う事で実現しています。

このため、エンジンが非常駐の状態で複数のスキャナコマンドが同時実行されるような状況(同時に複数のproscanfsを実行して並行処理を行う、先に起動したproscanfsが処理を終わらせる前に新たなprosanfsで処理を開始する)がありますと、並列で実行されている各々のスキャナコマンドがエンジンチェックを行い、処理完了時にも(自身が立ち上げたエンジンを利用している場合は)エンジン停止処理を行います。
エンジンを起動したスキャナコマンドが処理を完了したタイミングで、そのスキャナコマンドは自身が起動したエンジンを停止させますので、そのエンジンを利用していた他のスキャナコマンドが存在していた場合はそれらのコマンドは「scan engine abend」等のエンジン接続エラーにより停止致します。

これを回避する為にスキャンエンジンの手動起動/停止、もしくは常駐を行う必要があります。

製品付属のエンジンの起動/終了コマンド(/opt/proscan/bin/proscan [start/stop])を利用して「スキャン処理の実行前にエンジンを起動し、全ての処理が終わった後でエンジンを停止」させるようにして下さい。

例:ProScan(ClamAV版/Linux)にて、"/data1"と"/data2"の2つのエリアを同時にスキャンする際、処理開始前にエンジンを手動で起動し、完了後に停止させるシェルスクリプト)

#!/bin/sh
#あらかじめclamdエンジンを手動起動する
/opt/proscan/bin/proscan start

#スキャナによる処理を並列で実施-さらに多くのスキャンコマンドを並列実行する場合は、&で繋いでバックグラウンド処理にしたのち、waitで終了を待つ
/opt/proscan/bin/proscanfs /data1 &
/opt/proscan/bin/proscanfs /data2 &

wait

#全ての処理が完了した後、clamdエンジンを手動停止させる
/opt/proscan/bin/proscan stop

Tags: ProScan for Filescanner(savapiエンジン製品), ProScan for IBM Power Systems (AIX), ProScan for IBM Power Systems (Linux), ProScan IA Linux EP

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA