eDocArrangement2を使った自動処理入門

運用について
About the operation

ここでは運用に関する技術情報等を紹介します。

eDocArrangement2はフォルダ監視を行い、ファイルに対して自動処理を行うこと多いです。

そのため、eDocArrangement2を実行するPC環境に依存することになり、PC環境が不安定になるとeDocArrangement2で行っている処理も正常に処理できなくなります。

eDocArrangement2を使って処理を行っているので、eDocArrangement2に問題があるのではないか?と考えがちですが、実際のご報告などからPC環境に問題があることが多いです。

安定運用を行うには、正しい知識と定期的なメンテナンスが重要になります。

メンテナンス
Maintenance

ハードディスクのメンテナンス

eDocArrangement2は、ファイルを扱うソフトウェアです。受信したFAX文書や、スキャン文書など、ファイルをオープンして情報を読み取ったり、フォルダからフォルダに移動したりします。

そのため、ハードディスクが健康な状態を、できる限り保つ必要があります。

  1. チェックディスク
  2. デフラグ

これらのメンテナンスは、Windowsの標準の機能です。定期的に行うとよいと思います。

また、イベントログにハードディスクのエラーなどがないか、確認することも必要です。

ハードディスクのS.M.A.R.T. 情報を確認できるソフトで、健康状態を判断するのも効果的です。エラーなどの数値が増加している場合は、ディスクの交換を検討してください。

参考までに、以下のソフトが有名です。ディスクの健康状態がパーセントと色分けで表示され、とても分かりやすいです。業務で使用するハードディスクなら、健康状態が100%でなくなったら、ハードディスクの交換を検討することをお奨めいたします。

CrystalDiskInfo (窓の杜 紹介記事)

https://forest.watch.impress.co.jp/library/software/crdiskinfo/

企業で利用する場合は、リンク先の一番上で紹介されている通常版の「CrystalDiskInfo」がお奨めです。

但し、このタイプのアプリは物理的なハードディスクに対して処理を行うので、クラウド上のPCや仮想ハードディスクに対しては機能しないです。

クラウド上のPCや仮想ハードディスクでも、チェックディスクのように論理的にディスクのデータをチェックするツールは有効ですので、チェックディスクを行うことをお奨めいたします。

定期的な再起動のすすめ

eDocArrangement2に限らず、常駐タイプのアプリケーションは長時間稼働するため、定期的な再起動を行う事でトラブル発生の予防が期待できます。毎日、夜間に再起動するなどのスケジュールを検討してください。

サーバーの再起動が難しい場合、eDocArrangement2をサービスで実行し、サービスの再起動を行う方法もあります。

scコマンドを使って、サービスの再起動を行うバッチファイルを作成し、タスクスケジューラで夜間に実行します。

ログファイルの整理

eDocArrangement2では、設定毎にログを出力できます。ログの出力設定がされていない場合は、必ず出力するようにして下さい。ログは日単位でファイルに出力する設定を推奨します。

エラーログは想定していないエラーが発生していないか、定期的に確認する必要があります。設定の不備が原因のエラーもありますので、設定内容を確認して判断する必要があります。

正常ログは日々増えていきます。年単位などで、古いログファイルをアーカイブするなどして、ファイルの整理を行ってください。

ウイルスチェック・セキュリティ対策ソフト等のリアルタイム監視

ウイルスチェック・セキュリティ対策ソフト等のリアルタイム監視が行われている場合、ファイルアクセス時に競合が発生する場合があります。

eDocArrangement2が監視を行うフォルダ等をリアルタイム監視の対象から除外するなどの対策を検討してください。

設定の処理が正常に行われているかの確認

設定で処理の内容が変わりますが、多くの場合、ファイルを処理した後で、所定のフォルダにファイルを移動します。ファイルの移動先に、取得した情報でフォルダを作成している場合は、そのフォルダが正常に作成されているか確認してください。

設定の不備で情報が正しく取得出来なかった場合など、フォルダ名に仕様通りの名前が付与されないケースが考えられます。

特に、最終的に格納される保管フォルダなどは、ユーザー様もあまり確認しない場合があると思います。

トラブル発生時の対処について
What to do when a problem occurs

状況の確認

eDocArrangement2は、ファイルを扱っています。また、複合機から出力される文書や、他のソフトとの連携でフォルダ間でファイルをやりとりします。

問題が発生した場合、どのフォルダの、どのファイルが問題となったのかを切り分ける必要があります。

まずは、ログの確認を行います。

ログの見方

エラーログが出力されている場合、エラーログの内容を確認します。先頭に日時が記録されていますので、それと同じ日時のログを正常ログから探します。(正常ログにもエラーログと同じ内容が出力されています。)

特定の日時の行を探すには、メモ帳などの文字検索の機能を使うとよいです。

正常ログから該当のエラーを見つけたら、その前を順番に見ていって、どの設定でどのファイルを対象にしたのか、などを確認します。

その後、そのファイルがどこに移動されたか等を確認して、実際のファイルを見つけ出し、そのファイルにどのような問題があるのかを確認します。

再処理が可能であれば、同じ現象が発生するか、監視フォルダに入れて処理を行うなどしてください。(処理前にバックアップ(コピー)は必ずとってください。)

現象が再現した場合、設定を確認してください。マクロなど処理方法に問題がないか調べてください。

情報の採取

調査のために参考となる情報は、以下の通りです。

  1. 設定ファイル (eDocArrangement2.db , eDocArrangement2Schedule.db)
  2. 正常ログ、エラーログファイル
  3. eDocArrangement2、DocuWorksのバージョン
  4. 稼働年数
  5. Windowsのイベントログ(Application、System)
  6. エラーが発生する対象ファイル (現象の再現性の確認)
  7. ウイルスチェック・セキュリティ対策ソフト等のリアルタイム監視の有無
  8. 処理が実行されないなどの場合は、タスクマネージャのeDocArrangement2の実行状態のキャプチャ画面。(タスクマネージャでプロセスタブを詳細表示にして、eDocArrangement2 Service、又は、eDocArrangement2のメモリ使用量などの状態が確認できる画面)

    最新のWindowsではタスクマネージャーのタイトルバーに検索機能があります。「eDoc」のキーワードを入力すると、プロセスが存在すれば、以下のように表示されます。

    また、CPU使用率に変化がないか確認してください。

再現性の確認とPCの状態調査

問題がソフトウエアのプログラム、又は設定にある場合、同じファイルを処理させると、同じエラーが発生します。

現象が再現する場合は、設定ファイル、ログ、対象ファイル等を弊社に送って頂くことができれば、問題を修正できる可能性が高まります。

現象が再現しない場合は、その環境特有の問題の可能性が高まり、原因を特性することが難しくなります。

稼働実績がある程度ある場合は、正常に動作していた状態と、エラーが発生するようになった状態で、何が違うのかを想像することも重要です。

  1. 直前に、何か環境の変化はないか?
  2. ハードウエアの健康状態に問題はないか?
  3. 他のソフトや、ユーザーの操作による影響はないか?

これらの想定により、調査を行います。

ウイルスチェック・セキュリティ対策ソフト等のリアルタイム監視が行われている場合、ファイルアクセス時に競合が発生する場合があります。

また、リモートデスクトップでログインを行っていたため、eDocArrangementが2重で起動していたケースもあります。

正常に動作していた環境が、ある時期から不安定になった場合、ハードディスクの故障による問題の可能性が高いです。CrystalDiskInfoなどのハードディスクのS.M.A.R.T情報を表示するツールで健康状態を確認したり、チェックディスク等を行ってエラーを修正したりします。健康状態に問題がある場合は、早期にディスクの交換を検討してください。

また、Windowsのイベントログに、ハードウェアのエラーログが出力されていないか調べて見て下さい。

監視フォルダのファイルをユーザー様が開いている場合は、オープンエラーや、移動時のエラーが発生します。

よくあるトラブル

ケース1

ファイルの受け渡しによる問題

監視フォルダのファイルを読み取る場合に、エラーが発生する可能性があります。

eDocArrangement2の監視フォルダに、ファイルを格納するソフトウエアがどのような方法でファイルを作っているかを考えます。

ファイルを作成する場合は、通常、以下の様な手順で処理が行われます。

  1. ファイルを書き込みオープンする。(0バイトのファイルが作成されます。)
  2. オープンしたファイルにデータを追記する。
  3. ファイルをクローズする。

eDocArrangement2から見た場合、1のファイルオープンで0バイトのファイルが作成された時に、ファイルとしての認識が可能となります。

eDocArrangementは、ファイルを認識すると処理を開始しますので、ファイルがクローズされ完成されているかどうか関係なく、そのファイルをオープンしようとします。

そこで、ファイルがクローズされていないと、未完成のファイルを読み込んだり、アクセスエラーが発生したりします。

eDocArrangement2では、ファイルのオープン処理や、コピー、移動、削除などにリトライ処理を実装しています。エラーが発生した場合は、3秒間の間、リトライを行います。

リトライの結果、成功した場合は、正常動作となりますが、リトライしてもエラーが繰り返し発生した場合は、エラー処理を行いエラーログを出力します。

フォルダにファイルを作成する側のプログラムや、ネットワークの問題等で低速でファイルが作成される場合、リトライのタイムアウトとなり、正常に処理が行われません。

その場合は、フォルダを一つ増やし、監視フォルダから増やしたフォルダに文書移動を行う設定を追加します。

文書移動では、ファイルが完全に作成されていないと、移動ができずエラーとなります。しかし、エラーとなるだけで、次の監視処理でファイルが作成されていれば、成功します。

移動後のフォルダをeDocArrangement2で監視して、各種読み取り処理などを行うようにすれば、オープン時のエラーを回避することができます。

また、eDocArrangement2の監視設定で「処理前にオープンチェックを行う」の機能を有効にすることで、問題を回避できる可能性があります。これらの機能については、 ヘルプ を読んで頂き、機能を理解した上でご利用ください。

ケース2

ファイルアクセスエラー

正常に動作していた環境が、突然不安定になり、ファイルアクセスに関するエラーが発生するようになることがあります。

ハードディスクはモーターで駆動し、磁気の状態で情報を管理していますので、様々な故障が発生する可能性があります。

モーターや磁気を読み取るヘッドなどが故障した場合には、Windowsが起動しないなど、人が判断する上で非常に分かりやすい現象が発生します。

しかし、ディスクの一部の磁気状態が不安定になったり、一部が破損したりした場合には、一見、正常に動作しますが、特定のフォルダやファイルにアクセスする場合にのみ問題が発生し、人が判断する上で非常に分かりにくい現象が発生します。

「ファイル名または番号が不正です。」

「~(ファイル名)が見つかりません。」

ディスクに問題があると、存在するはずのファイルにアクセス出来ず、上記のようなエラーが発生する場合があります。

対処方法は、Windowsのチェックディスクを行うことや、市販のハードディスクメンテナンスソフト等でディスクの検査・修復・フォーマット等を行うことが考えられます。また、ハードディスクそのものに問題がある場合は、ディスクの交換など、ハードウェアの修理が必要になります。

監視フォルダや配信先のフォルダにセクタ異常などの問題がある場合は、フォルダを新たに作成し、フォルダの指定を変更することで改善する場合もあります。これは、新しい領域にファイルが保存されるようになるからと考えられます。

ファイルのアクセス権
File permission

eDocArrangement2では、ファイルを扱う処理が多く、監視フォルダや移動先にアクセス権を設定することもあるかと思います。

テスト環境では、アクセス権の設定をせずにテストを行い、ユーザー様の環境で実行するときに、アクセス権を設定したところ、正常に動作しないということもあると思います。

ファイルのアクセス権について、詳細に説明することはできませんが、知っておくとよい情報を紹介します。

ファイル移動とファイルコピーの違い

ファイル移動とファイルコピーはファイルを別のフォルダに移すという意味では同じですが、細かい部分で色々と違いがあります。

以下は同一ドライブ内の移動、又はコピーについてです。別ドライブへの移動は、コピーと同じ挙動となります。

  • ファイル移動は、ディスク内のファイルの物理的な位置は変化せず、ファイルの場所を示す情報のみを書き換えるだけ。
  • ファイルコピーはコピー先のフォルダに新しくファイルを作成して、コピー元の情報と同じになるようにファイルを複製して、元のファイルを削除する。

原則的に、上記のような動きとなります。そのため、ファイルのアクセス権はファイル移動の場合は、移動後も移動元のアクセス権のまま変化しません。

ファイルコピーはファイルが移動先に新しく作られるため、移動先フォルダのアクセス権を継承します。

これらの挙動は、ファイル移動、コピーを行うアプリケーションを実行しているユーザーの権限に関係なく、上記のルールが適用されるようです。

エクスプローラーの仕様について

Windowsのエクスプローラーは、Windowsのバージョンアップと共に、機能が進化しています。見た目は同じようですが、細かい仕様が変化しています。

例えば、ファイル名の並び変えについて。以前はファイル名を単純な文字比較で並び変えを行っていました。

「1.txt」と「002.txt」では、単純な文字比較ですと、最初の文字の「1」と「0」を比較するので、0の方が小さいと判断し、「002.txt」が先頭に表示されていました。

しかし、Windowsのあるバージョンからは、ファイル名が数値として判断できる場合は、数値としての並び変えを行い、「1.txt」が先頭になるように変化しました。

この並び変えの判断はエクスプローラーのプログラムが行っているだけで、全てのアプリケーションが同じ動きをするわけではありません。

eDocArrangement2のフォルダ監視時のファイルの並び変えは、単純な文字コードの並び変えなので、エクスプローラーと同じにはなりません。

ファイルのアクセス権についても、現在のエクスプローラーは同一ドライブのファイル移動時に、移動先フォルダのアクセス権を継承する機能があります。

eDocArrangement2のファイル移動は、Win32APIを使ったファイル移動なので、移動先のアクセス権を継承する機能はありません。

そのため、移動元(ファイルが生成されるフォルダ)に移動先に付与したいアクセス権を設定するか、アレンジメントのファイル移動を使わず、ファイルコピーを使用して、コピー後に削除するような処理にする方法が考えられます。

アクセス権を設定する場合

アクセス権を設定する必要がある場合は、ファイルシステムについて熟知した技術者がフォルダのアクセス権、アプリケーションを実行するユーザーの権限等を適切に設定する必要があります。

もし、技術的な知識が十分でない方が設定しなければならない場合は、まず最初に、アクセス権を設定しない環境で動かしてみてください。

eDocArrangement2を実行するユーザー(サービスで動かす場合は、サービスのコンパネのログオンタブで設定するユーザー)も、最初は管理者権限で実行してください。

その状態で処理が正常に動くことを確認してください。その後、ユーザーのアクセス権だけ変更して、テストを行い、その後、フォルダのアクセス権を変更してテストを行うという方法を試してみてください。

そうすることで、設定の内容に問題があるのか、動作環境に問題があるのか切り分けができると思います。