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として構成されたデータベースは、特定のタイプの双方向スキームで構成されている場合、サブスクライバ・レプリケーション・エージェントによって自動的にリカバリされます(「障害が発生したマスター・データベースの自動キャッチアップ」を参照)。そうでない場合は、「非永続的データベースのリカバリ」の手順に従って、障害が発生した非永続的データベースをリカバリする必要があります。