リトライデータの孤児化防止とリトライデータを退避させるときのベストな手順について

リトライ関係データを退避させるときには注意が必要で、holding フォルダと domains フォルダの対になっているデータを退避させる必要があります。これは、holding フォルダと domains フォルダが連携するしくみになっているためです。

もし、holding にあるデータのみを移動させた場合、対になっている domains 下にあるフォルダとファイルがリトライサイクルのタイミングで消される仕様です。詳細に言うと、holdingフォルダにあるデータのみを移動または削除した場合、domains フォルダ下の対になっているフォルダやファイルはリトライサイクルの次のタイミングで、いわゆる「孤児化したデータ」として破棄、削除される仕様になっています。これは、domains フォルダ下のRCPファイルがリトライ時のキーになっているためであり、リトライ関係フォルダに万が一にも、処理できないデータが残ってしまうのを避けるための仕組みが盛り込まれていると理解してください。

リトライデータのファイルの退避手順について、holding フォルダと domains フォルダにある対になっているデータを退避する必要がありますが、より安全に退避するには、domains フォルダ下に置かれているRCPファイルがリトライ時のキーになりますので、domains フォルダ下のRCPファイルを含むフォルダを先に移動した後、holding フォルダ内に置かれているMSGファイルの退避を行うことがより安全な手順といえます。従って domains フォルダ → holding フォルダの順で作業してください。

一方、退避させたリトライデータを holding フォルダおよび domains フォルダに戻す方法を採る場合、epstdd のサービス停止が必要かどうかという問題があります。リトライサイクルが実行されていないタイミングであれば問題ないのですが、実際にはサービス稼働中は、リトライのタイミング自体は外部から見て判別がつくわけではありません。そのため、holding/domains フォルダへファイルを戻す動作は、できれば epstdd を停止したタイミングで行うことがより安全です。これはもしサービスが稼働中だと、ファイルを戻す際にたまたまリトライタイミングに入っていれば、データの孤児化現象が起きることを防ぐことにもつながります。holding/domains フォルダへファイルを戻したら、その直後にサービス開始をしてください。

設定条件によっては、リトライ開始されるまでに一定時間待つことになります。epstdd の「配送詳細」設定で「リトライ間隔のまま」チェックボックスがオフの場合は、リトライ間隔は倍の倍に伸び、時間が経過するほどリトライサイクルが伸びて配送が試みられる仕組みです。そのため、リトライが実施されるまでかなり長い時間待たされるということがあります。一定の時間経過をさせておけばリトライ動作はきちんと行われます。

ちなみにリトライを手動で強制的に実行させたい場合は、下記のFAQ記事のように、epstdd のサービスを一時的に停止させた上で、incoming フォルダにMSGファイルとRCPファイルを置いてやることで可能になります。

(関連FAQ)
リトライを待たずに手動で強制的に実行させる方法
「リトライ間隔のまま」チェックボックスの意味について