MID ファイルクリーナー:古いエクスポートセットファイル、エラーのある ECC キューペイロード、およびログの削除Summary<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: #000000; } span { font-size: 12pt; font-family: Lato; color: #000000; } h2 { font-size: 24pt; font-family: Lato; color: black; } h3 { font-size: 18pt; font-family: Lato; color: black; } h4 { font-size: 14pt; font-family: Lato; color: black; } a { font-size: 12pt; font-family: Lato; color: #00718F; } a:hover { font-size: 12pt; color: #024F69; } a:target { font-size: 12pt; color: #032D42; } a:visited { font-size: 12pt; color: #00718f; } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } 目次 はじめに機能ログ記録トラブルシューティング 潜在的なエラーファイルの最終アクセス時刻の一覧表示 MID ファイルクリーナーの無効化 導入文 Tokyo リリース以降、新しいモニタースレッドが MID サーバーで実行され、古いファイルをクリーンアップし、インストールフォルダー内のファイルのサイズと量を管理しやすくして、MID サーバーのパフォーマンスの問題を防止します。 この広範な変更は、MID サーバーの機能停止サポートケースの原因となったこの特定の問題の修正に関連して行われました。PRB1507153/KB0965745 エクスポートセットに MID サーバーに保存された添付ファイルのデータクリーンアップがないため、最終的に MID サーバーのパフォーマンスの問題が発生する 機能 次のフォルダー内のファイルや空のサブフォルダーは、この MID ファイルクリーナーによって削除される場合があります。最終アクセスから 30 日以上経過したファイルは削除されます。 起動時に実行され、その後は 24 時間ごとに実行されます。MID サーバーサービスを再起動することで、ファイルクリーナーを強制的に実行できます。 クリーニングされたフォルダー/ファイル(チューリッヒ時点) \agent\import\agent\export - サブフォルダーを含みます。エクスポートセット機能で使用されます。\agent\work\monitors\ECCSender\output_error - San Diego 以降で、何らかの理由で挿入できない ECC 入力ペイロードに使用されます ( PRB1521761/KB0995569 を参照)。\agent\work\monitors\ECCSender\output_oversize - Eureka/Fuji 以降で、mid.eccq.max_payload_size で設定された制限 (デフォルトは 20000000 バイト) を超えているためにインスタンスに送信されないペイロードのコピーを保存するために使用されます (PRB598334 を参照)。\agent\logs 具体的には JFR ダンプ (Utah リリース以降) - ログローテーションの設定については KB1637658 MID サーバーのログファイルハンドラーとログファイルの圧縮 を参照してください。 注:インポートフォルダとエクスポートフォルダは、プローブが最初にそれらを使用する必要があるときに作成されます。その後、これらのホームフォルダは残ります。ファイルとサブフォルダーのみが削除されます。 ログ記録 MID サーバーエージェントログには、このモニターが MID サーバーで起動およびシャットダウンしていることが示されます。 2022-10-21T13:08:58.330+0200 INFO (MIDServer) [Main:265] Initializing MID Server2022-10-21T13:10:36.527+0200 INFO (StartupSequencer) [Monitors:307] Enabling monitor: FileCleanerMonitor...2022-10-24T09:29:35.193+0200 INFO (MIDServer) [MIDServerState:160] MID Server stopping2022-10-24T09:29:38.591+0200 INFO (MIDServer) [Instance:928] interrupting thread FileCleanerMonitor.21600 いつ実行されるかを正確に確認するには、パラメーター mid.log.level=debug を指定してデバッグを有効にする必要があります 2022-11-17T02:49:13.201-0800 DEBUG (FileCleanerMonitor.21600) [AFileCleaner:103] Scanning directory to delete files: C:\...\agent\import2022-11-17T02:49:13.201-0800 DEBUG (FileCleanerMonitor.21600) [AFileCleaner:103] Scanning directory to delete files: C:\...\agent\export2022-11-17T02:49:13.201-0800 DEBUG (FileCleanerMonitor.21600) [AFileCleaner:103] Scanning directory to delete files: C:\...\agent\work\monitors\ECCSender\output_error2022-11-17T02:49:13.201-0800 DEBUG (FileCleanerMonitor.21600) [AFileCleaner:103] Scanning directory to delete files: C:\...\agent\work\monitors\ECCSender\output_oversize2022-11-17T02:49:13.201-0800 DEBUG (FileCleanerMonitor.21600) [AFileCleaner:103] Scanning directory to delete files: C:\...\agent\logs 個々のファイル/フォルダーの削除は記録されません。 トラブルシューティング 潜在的なエラー 「削除対象のファイルの収集中にエラーが発生しました」「次のファイル属性のチェック中にエラーが発生しました」 + パス 2022-05-11 15:28:11 (428) FileCleanerMonitor.21600 SEVERE *** ERROR *** Error occurred while checking the file attributes in: C:\...\agent\exportjava.nio.file.NoSuchFileException: C:\...\agent\export2022-05-11 15:28:11 (428) FileCleanerMonitor.21600 SEVERE *** ERROR *** Error occurred while checking the file attributes in: C:\...\agent\work\monitors\ECCSender\output_oversizejava.nio.file.NoSuchFileException: C:\...\agent\work\monitors\ECCSender\output_oversize2022-05-11 15:28:11 (428) FileCleanerMonitor.21600 SEVERE *** ERROR *** Error occurred while checking the file attributes in: C:\...\agent\work\monitors\ECCSender\output_errorjava.nio.file.NoSuchFileException: C:\...\agent\work\monitors\ECCSender\output_error2022-05-11 15:28:11 (428) FileCleanerMonitor.21600 SEVERE *** ERROR *** Error occurred while checking the file attributes in: C:\...\agent\importjava.nio.file.NoSuchFileException: C:\...\agent\import 「ファイルの削除中にエラーが発生しました」 + filePath2022-10-20T07:55:03.088-0600 ERROR (FileCleanerMonitor.21600) [AFileCleaner:122] Error occurred while trying to delete file: C:\...\agent\export\XXXjava.nio.file.AccessDeniedException: C:\...\agent\export\XXXat java.base/sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:89)at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:103)at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:108)at java.base/sun.nio.fs.WindowsFileSystemProvider.implDelete(WindowsFileSystemProvider.java:274)at java.base/sun.nio.fs.AbstractFileSystemProvider.delete(AbstractFileSystemProvider.java:105)at java.base/java.nio.file.Files.delete(Files.java:1142)at com.service_now.monitor.AFileCleaner.removePath(AFileCleaner.java:120)at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)at com.service_now.monitor.AFileCleaner.deleteFiles(AFileCleaner.java:108)at com.service_now.monitor.FileCleanerMonitor.run(FileCleanerMonitor.java:48)at com.service_now.monitor.AMonitor.runit(AMonitor.java:154)at com.service_now.monitor.AMonitor.access$200(AMonitor.java:43)at com.service_now.monitor.AMonitor$MonitorTask.execute(AMonitor.java:147)at com.service_now.monitor.base.AMonitorTask.run(AMonitorTask.java:29)at java.base/java.util.TimerThread.mainLoop(Timer.java:556)at java.base/java.util.TimerThread.run(Timer.java:506) ファイルの最終アクセス時刻の一覧表示 この Powershell スクリプトを使用して、エクスポートフォルダー内のファイルのうち 30 日以上経過したファイルの最終アクセスタイムスタンプを一覧表示できます。これを使用して、ファイルクリーナーが必要なすべてを削除したことを確認できます。 $Folder = 'C:\MID_SERVERS\empdpiper_1\agent\export\*.*'$lastAccessDate = (Get-Date).AddDays(30) Get-ChildItem $Folder -Recurse | Where-Object { $_.LastAccessTime -lt $lastAccessDate} | Select-Object -Property Name, LastAccessTime MID ファイルクリーナーの無効化 エクスポートセットは、MID サーバーの agent\export フォルダーにファイルを書き込みます。この場合、顧客側のカスタム実装でこれらのファイルを取得して別の場所に移動するため、これらのファイルは MID サーバーアプリケーションのインストールディレクトリに短時間残すだけで済みます。 MID サーバー設定パラメーター mid.file_cleaner.disabled=true を追加することで、すべてのフォルダーに対して MID ファイルクリーナーを完全に無効にすることができます。パラメーターが存在しない場合 (初期設定の状態)、既定値は false で、ファイル クリーナーが実行されます。 MID サーバーフォームで、[設定パラメーター] 関連リストの [新規] をクリックし、mid.file_cleaner.disabled を選択して、値「true」を入力します。 これは、config.xmlファイルに手動で追加することもできます。 Tokyo にアップグレードする前にパラメーターを追加すると、Tokyo にアップグレードするときにファイルが削除されなくなります。 MID サーバーサービスを再起動し、対応する設定でロードされた config.xml ファイルを確認します。それはそれが本当に無効になっていることを確認するでしょう。 注:個々のフォルダを無効にすることはできません。オフにすると、これらのフォルダがすべて消去されなくなります。 警告:MID サーバーのパフォーマンスの問題は、これらのフォルダーが大きくなりすぎてファイルが多すぎることが原因です。これを無効にすると、ディスク容量の問題が発生しないか定期的に確認したり、すべてのファイルの権限がチェックされるまで MID サーバーの起動を遅らせたりする必要があります。