他のバージョンの文書 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

51.2. アーカイブモジュールコールバック

アーカイブコールバックは、モジュールの実際のアーカイブ動作を定義します。 サーバは、個々のWALファイルを処理するために必要に応じてこれらを呼び出します。

51.2.1. チェックコールバック

check_configured_cbコールバックは、モジュールが完全に設定されていて、WALファイルを受け入れる準備ができているかどうかを判断するために呼び出されます(たとえば、構成パラメータが適切な値に設定されているかどうかを判断します)。 check_configured_cbが定義されていない場合、サーバは常にモジュールが設定されていると想定します。

typedef bool (*ArchiveCheckConfiguredCB) (void);

trueが返された場合、サーバはarchive_file_cbコールバックを呼び出してファイルのアーカイブを続行します。 falseが返された場合、アーカイブは続行されず、アーカイバはサーバログに次のメッセージを出力します:

WARNING:  archive_mode enabled, yet archiving is not configured

後者の場合、サーバは定期的にこの関数を呼び出し、trueが返された場合のみアーカイブが続行されます。

51.2.2. アーカイブコールバック

archive_file_cbコールバックは、単一のWALファイルをアーカイブするために呼び出されます。

typedef bool (*ArchiveFileCB) (const char *file, const char *path);

trueが返された場合、サーバはファイルが正常にアーカイブされたかのように処理を進めます。 これには元のWALファイルのリサイクルまたは削除が含まれる場合があります。 falseが返された場合、サーバは元のWALファイルを保持し、後でアーカイブを再試行します。 fileにはアーカイブするWALファイルのファイル名だけが含まれ、pathにはWALファイルのフルパス(ファイル名を含む)が含まれます。

51.2.3. シャットダウンコールバック

shutdown_cbコールバックは、アーカイバプロセスが終了したとき(たとえばエラー後など)、またはarchive_libraryの値が変更されたときに呼び出されます。 shutdown_cbが定義されていない場合、このような状況では特別な処理は行われません。

typedef void (*ArchiveShutdownCB) (void);