ZSYNC (従来のコマンド)
Synopsis
ZSYNC:pc
引数
pc | オプション — 後置条件式 |
概要
このページでは、従来の ZSYNC コマンドについて説明します。ZSYNC コマンドは、廃止された分散キャッシュ・プロトコル (DCP) をサポートする目的でのみ使用されるため、Caché 2010.2 の時点では従来のコマンドと見なされます。ZSYNC は、新たにプログラムを作成するときには使用しないでください。ここでは、従来のアプリケーションとの互換性について説明します。
ZSYNC は、現在のジョブの、すべてのネットワーク・トランザクションの同期を行い、終了を強制します。また、将来ネットワーク環境で実行される可能性のある非ネットワーク・アプリケーションで、ZSYNC を使用することもできます。完全トランザクションの最後に配置します。
ZSYNC は、グローバルへの複数の更新が (SET または KILL 操作) が LOCK 操作によって同期化された場合、そのグローバルの READ が正しい順序でこれらの更新を返すことを確認します。これは、ネットワーク上のロック解除処理を同期化することで行われます。ロック解除が既存のロックで発生すると、ロック解除が開始される前に (任意のシステムで) 開始されたグローバルへの更新は、ロック解除が完了する前に完了します。
ZSYNC は、分散キャッシュ・プロトコル (DCP) と共に使用されます。ZSYNC は、エンタープライズ・キャッシュ・プロトコル (ECP) データ・サーバ用に構成されたシステムでは、処理を実行しません。ECP は同期コミット・トランザクションを使用して同様の同期化機能を実行します。ECP は通常 Caché サーバ・システム・ネットワークおよびクラスタと共に使用されるため、ZSYNC の使用は制限される可能性があります。ECP の詳細は、"Caché 分散データ管理ガイド" を参照してください。
引数
pc
オプションの後置条件式。Caché は、後置条件式が True (0 以外の数値) の場合にこのコマンドを実行します。Caché は、後置条件式が False (0) の場合はコマンドを実行しません。詳細は、"Caché ObjectScript の使用法" の "コマンド後置条件式" を参照してください。
メモ
非同期エラーの返りを保証する ZSYNC
要求される演算によっては、ネットワーク・エラーは別の時点で報告されます。LOCK、$GET、$ORDER、$QUERY などの同期演算のエラーは、エラーを実行したコマンドの通常のエラー・トラップを介して即時に報告されます。
SET や KILL などの同期演算に対するエラーは、即時、または遅延後に報告されます。
遅延エラーは、バッファ非同期演算の結果として返されます。ジョブが SET や KILL のどちらかから呼び出されるとき、サーバのオペレーションは完了しますが、プロセスはクライアントで継続します。この場合、少し後にプログラム内で特別割り込みトラップが発生することもあります。返されたエラー・コードは、サーバではじめに発生したエラーと同じです。
ZSYNC コマンドを使用して、クライアントとサーバのアクティビティを同期する場合、非同期エラーの返りを強制します。つまり、すべてのグローバル・エラーは ZSYNC コマンドが完了する前に、ジョブに戻ります。
%SYSTEM.ProcessOpens in a new tab クラスの AsynchError()Opens in a new tab メソッドを使用して、非同期エラーがプロセスに割り込めるようにするかどうかを、プロセスごとに制御できます。システム全体の既定の動作は、Config.MiscellaneousOpens in a new tab クラスの AsynchErrorOpens in a new tab プロパティで設定できます。
トランザクションの完了を保証する ZSYNC
ZSYNC コマンドは、アプリケーションにネットワーク・サーバでのアクティビティを同時に行います。このコマンドを実行すると、このジョブのすべてのネットワーク・トランザクションが強制的に終了されます。このコマンドは、すべてのサーバのすべてのグローバル・ノードのファイリングを完了する、更新トランザクションの最後に使用しないでください。このコマンドは、遅延エラーを強制的に返すからです。つまり、すべてのグローバル・エラーは、ZSYNC コマンドが完了する前にジョブに渡されるのです。
関連項目
-
"Caché ObjectScript の使用法" の "トランザクション処理での ObjectScript の使用法"