|
Continuous オペレーション(B_CONTINOUS)では、アクティブなトランザクショナル インターフェイス ファイルを閉じることなく、システム バックアップを実行できます。ファイルのバックアップ中に行った変更は、デルタ ファイルと呼ばれる一時ファイルに記憶されます。デルタ ファイルに書き込まれた変更を除き、Continuous オペレーション モードに置かれたすべてのファイルの内容がシステム バックアップの対象になります。バックアップされたファイルが Continuous オペレーション モードから抜けると、トランザクショナル インターフェイスにより、デルタ ファイルの変更がこれらのファイルに自動的にロール インされます。
メモ
このオペレーションは、ローカル エンジンで動作しているアプリケーションにのみ使用できます。クライアント アプリケーションはリモート マシンにあるファイルに対してこのオペレーションを使用することはできません。
このオペレーションを使うと、ファイルがアクティブな状態のまま、それを安全にコピーできます。クライアント/サーバー セットアップでは、あるファイルで Continuous オペレーションを開始するクライアントは、そのファイルで Continuous オペレーションを終了するクライアントでもなければなりません。
メモ
キー番号パラメーターの値が 0(Continuous オペレーション モードを開始)または 2(Continuous オペレーション モードを終了)の場合にのみ、データ バッファー パラメーターおよびデータ バッファー長パラメーターの値が必要です。以下に、これらのキー番号の値について説明します。キー番号パラメーターが 1 の場合、データ バッファー長は 0 である必要があります。
Continuous オペレーション モードを開始するには、以下の手順を実行してください。
一連のファイルをバックアップするように定義する場合は、以下の点に留意してください。
Continuous オペレーションを呼び出すサーバー ベースのアプリケーションを作成する場合は、必ず BTRVID を呼び出し、有効なクライアント ID を使用することで、同一クライアントのもとで Continuous オペレーションの開始と終了を行えるようにします。
Btrieve API では、BTRVID 関数を使ってバックアップ セットごとに異なるクライアント ID を指定し、複数のバックアップ セットを定義できます。ただし、同じファイルを 2 つのセットに入れることはできません。
トランザクショナル インターフェイスによってデルタ ファイルからデータ ファイルに変更内容がロール インされているときでも、ユーザーは通常の場合と同じように、トランザクショナル インターフェイス ファイルの更新、挿入および読み取りを引き続き実行できます。トランザクショナル インターフェイスは挿入作業で必要となれば、変更内容のロール イン中でもデルタ ファイルに新しいページを追加します。このため、変更内容が失われることはありません。
メモ
アプリケーションで BTRV 関数を使用する場合は、ファイルが Continuous オペレーション モードに入っているときにそのアプリケーションをアンロードしないでください。アンロードすると、対象となるファイルを Continuous オペレーション モードから削除できなくなることがあります。これは、対象となるファイルのオーナーとしてトランザクショナル インターフェイスが当初割り当てたデフォルトのクライアント ID が、別のアプリケーションに再割り当てされてしまう可能性があるからです。トランザクショナル インターフェイスでは対象となるファイルの正しいオーナーがわからなくなるため、それらのファイルを Continuous オペレーション モードから削除できなくなってしまいます。
Continuous オペレーション モードに入るとき、またはトランザクショナル インターフェイスによってデルタ ファイルからデータ ファイルに変更内容がロール インされている最中にシステムがクラッシュした場合は、システムの再起動後初めてそのファイルを開くときに、トランザクショナル インターフェイスによってすべての変更内容がファイルにロール インされます。
Continuous オペレーションが正常に終了した場合、トランザクショナル インターフェイスからステータス コード 0 が返されますが、データ バッファーおよびデータ バッファー長パラメーターには何の値も返されません。
このオペレーションが正常に実行されなかった場合、トランザクショナル インターフェイスから次のステータス コードのいずれかが返されます。
11
|
指定されたファイル名は不正です。
|
12
|
トランザクショナル インターフェイスは指定されたファイルを見つけられません。
|
41
|
実行しようとした操作はトランザクショナル インターフェイスでは許可されていません。
|
51
|
オーナー ネームが不正です。
|
88
|
アプリケーションでモードの不一致エラーが発生しました。
|
91
|
アプリケーションでサーバー エラーが発生しました。
|
上記のコードに加え、アプリケーションには、ステータス コード 18 のような標準の I/O エラーが返されることがあります。
トランザクショナル インターフェイスから 0 以外のステータス コードが返される場合、Continuous オペレーションは、エラーを発生させた入力文字列の一部をデータ バッファーに返します。入力文字列が使用されていない場合、データ バッファーにはエラーの原因となったファイル名が返されます。データ バッファー長には、データ バッファー内の出力文字列の長さが反映されます。この場合は、エラーの原因となったファイル名の長さが入ります。
Continuous オペレーションを実行しても、ファイルにカレンシーは確立しません。
|