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

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

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

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

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

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

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

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