この項では、メモリー・サービス関数について説明します。
表20-3 メモリー・サービス関数
| 関数 | 用途 |
|---|---|
|
|
ユーザー期間を開始します。 |
|
|
ユーザー期間を終了します。 |
|
|
指定の継続時間から指定サイズのメモリーを割り当てます。 |
|
|
メモリー・チャンクをサイズ変更します。 |
|
|
メモリー・チャンクを解放します。 |
用途
ユーザー期間を開始します。
構文
sword OCIDurationBegin ( OCIEnv *env,
OCIError *err,
const OCISvcCtx *svc,
OCIDuration parent,
OCIDuration *duration );
パラメータ
OCI環境ハンドルです。これは、カートリッジ・サービスに対してNULLとして渡されます。
OCIエラー・ハンドルです。エラーがある場合は、errに記録され、OCI_ERRORが戻されます。OCIErrorGet()のコールによって診断情報を取得できます。
OCIサービス・コンテキスト・ハンドルです。
親の継続時間の時間番号です。次のいずれかになります。
新しく作成されたユーザー期間固有の識別子です。
コメント
この関数によってユーザー期間が開始されます。ユーザーは複数のアクティブなユーザー期間を同時に利用できます。ユーザー期間をネストする必要はありません。durationパラメータは、このコールによって作成された期間を識別するための一意の番号を戻すために使用します。
環境パラメータとサービス・コンテキスト・パラメータの両方をNULLにすることはできません。
関連関数
用途
ユーザー期間を終了します。
構文
sword OCIDurationEnd ( OCIEnv *env,
OCIError *err,
const OCISvcCtx *svc,
OCIDuration duration );
パラメータ
OCI環境ハンドルです。
OCIエラー・ハンドルです。エラーがある場合は、errに記録され、OCI_ERRORが戻されます。OCIErrorGet()のコールによって診断情報を取得できます。
OCIサービス・コンテキストです(カートリッジ・サービスの場合はNULLとして渡しますが、それ以外の場合は非NULLとして渡します)。
OCIDurationBegin()によって以前作成されたユーザー期間です。
コメント
この関数によってユーザー期間が終了します。
環境パラメータとサービス・コンテキスト・パラメータの両方をNULLにすることはできません。
関連関数
用途
このコールは、指定の継続時間から指定サイズのメモリーを割り当てます。
構文
sword OCIMemoryAlloc( void *hndl,
OCIError *err,
void **mem,
OCIDuration dur,
ub4 size,
ub4 flags );
パラメータ
durがOCI_DURATION_PROCESSである場合、OCI環境ハンドル(OCIEnv *)です。そうでない場合はユーザー・セッション・ハンドル(OCISession *)です。
エラー・ハンドルです。
割り当てられたメモリーです。
以前に作成されたユーザー期間または次のいずれかです。
OCI_DURATION_CALLOUT
OCI_DURATION_STATEMENT
OCI_DURATION_SESSION
OCI_DURATION_PROCESS
割り当てられるメモリーのサイズです。
OCI_MEMORY_CLEAREDビットを設定して、消去されたメモリーを取得します。
コメント
エージェントのコールアウトの継続時間(外部プロシージャ継続時間)にメモリーを割り当てるには、OCIExtProcAllocCallMemory()またはdurをOCI_DURATION_CALLOUTとして指定するOCIMemoryAlloc()を使用します。
戻り値
エラー・コードを戻します。
用途
このコールはメモリー・チャンクを新規サイズに変更します。
構文
sword OCIMemoryResize( void *hndl,
OCIError *err,
void **mem,
ub4 newsize,
ub4 flags );
パラメータ
OCI環境ハンドルまたはユーザー・セッション・ハンドルです。
エラー・ハンドルです。
OCIMemoryAlloc()を使用して以前割り当てたメモリーへのポインタです。
要求されたメモリーのサイズです。
OCI_MEMORY_CLEAREDビットを設定して、消去されたメモリーを取得します。
コメント
メモリーを割り当ててからこの関数をコールしてサイズ変更する必要があります。
戻り値
エラー・コードを戻します。
用途
このコールはメモリー・チャンクを解放します。
構文
sword OCIMemoryFree ( void *hndl,
OCIError *err,
void *mem );
パラメータ
OCI環境ハンドルまたはユーザー・セッション・ハンドルです。
エラー・ハンドルです。
OCIMemoryAlloc()を使用して以前割り当てたメモリーへのポインタです。
戻り値
エラー・コードを戻します。