DATASTORE要素に対する送信永続性の設定
非同期またはRETURN RECEIPTのレプリケーションで構成されたマスター・データベースは、デフォルトでは永続的になります。そのため、トランザクションのコミットと同時にログ・レコードはファイル・システムにコミットされます。要素記述にTRANSMIT NONDURABLE
句を使用して、マスター・データベースを非永続的に設定することもできます。
デフォルトでは、マスター・データベースのログ・バッファ内のトランザクション・レコードは、サブスクライバに転送される前にファイル・システムにフラッシュされます。マスター・データベース全体をレプリケートする(ELEMENT
のタイプがDATASTORE
である)場合、マスターのログをディスクにフラッシュする処理をレプリケーション・サイクルから除くことによって、レプリケーション・パフォーマンスを向上できます。これを実現するには、要素記述にTRANSMIT NONDURABLE
句を含めます。TRANSMIT
を設定しても、サブスクライバに影響はありません。サブスクライバ・データベースのトランザクション・レコードは、常にファイル・システムにフラッシュされます。
RETURN TWOSAFEレプリケーションで構成されたマスター・データベースはデフォルトでは非永続的になり、永続的にすることはできません。RETURN TWOSAFEレプリケーションで構成されたデータベースにTRANSMIT DURABLE
を設定しても、RETURN TWOSAFEトランザクションに影響はありません。
たとえば、マスター・データベース(masterds
)の内容全体をサブスクライバ・データベース(subscriberds
)にレプリケートし、TRANSMIT
NONDURABLE
を使用することによってフラッシュ・ログからディスクへの操作を排除できます。要素記述(名前はa
)は次のようになります。
ELEMENT a DATASTORE MASTER masterds ON "system1" TRANSMIT NONDURABLE SUBSCRIBER subscriberds ON "system2"
通常、マスター・データベースで障害が発生した場合は、ttRepAdmin
-duplicate
処理を開始して(「障害が発生したデータベースのリカバリ」を参照)、障害が発生したマスターをサブスクライバ・データベースからリカバリする必要があります。これは、マスター・データベースがTRANSMIT DURABLE
で構成されている場合は常に適用されます。
TRANSMIT NONDURABLE
として構成されたデータベースは、特定のタイプの双方向スキームで構成されている場合、サブスクライバ・レプリケーション・エージェントによって自動的にリカバリされます(「障害が発生したマスター・データベースの自動キャッチアップ」を参照)。そうでない場合は、「非永続的データベースのリカバリ」の手順に従って、障害が発生した非永続的データベースをリカバリする必要があります。