PSQL Programmer's Guide (v11)

クライアント/サーバー環境における間接的な Chunk オペレーション (トランザクショナル インターフェイス)

Get Direct/Chunk オペレーション(23)を行おうとすると、アプリケーションはステータス コード 62 を受け取ることがあります。アプリケーションでは間接ランダム ディスクリプター オプション(サブファンクション 0x80000001)を指定しているのに、トレースを有効にすると、実際には MicroKernel が直接ランダム ディスクリプター オプション(サブファンクション 0x80000000)を受信していることがわかります。

間接チャンク オプションでは、アプリケーションはデータの取得後、そのデータが Btrieve 呼び出しの実際のデータ バッファー パラメーターに返されるのではなく、データを格納したいアプリケーションのメモリ ブロックに返されるよう、データ アドレスへのポインターを指定することができます。しかし、MicroKernel がアプリケーションのメモリへの直接アクセスを行わない環境でアプリケーションが動作しているので、Btrieve クライアント リクエスターは間接チャンク要求を直接チャンク要求に変換してから、その要求を MicroKernel に送ります。

すべてのアプリケーションは、アプリケーションと MicroKernel の間の通信に必ずプロセス間通信(IPC)を使用します。IPC が要求されるため、MicroKernel はアプリケーションのメモリにアクセスしないので、クライアント リクエスターは単一の連続メモリ ブロックを割り当て、そのメモリ ブロックを指すようにすべてのデータ ポインターを調整します。MicroKernel から戻ると、リクエスターは間接オプションに対応する形式にデータ バッファーを変換し、返されたデータ チャンクをアプリケーションのメモリ ブロック内の指定された間接アドレスへ移動します。


トレース ファイル (トランザクショナル インターフェイス)

エンジンのシャットダウンと接続のリセット (トランザクショナル インターフェイス)