プライマリ・コンテンツに移動
Oracle® Call Interfaceプログラマーズ・ガイド
12c リリース1 (12.1)
B72465-07
目次へ移動
目次
索引へ移動
索引

前
次

非推奨の初期化関数

非推奨の初期化関数について説明します。

表E-2は、この項で説明している非推奨の初期化関数を示しています。

表E-2 非推奨の初期化関数

関数 用途

OCIEnvInit()

環境ハンドルを初期化します。

OCIInitialize()

OCIプロセス環境を初期化します。

OCIEnvInit()

この機能は、Oracle Database 11gリリース2 (11.2)より前のリリースでは非推奨です。

用途

OCI環境ハンドルを割り当て、初期化します。この関数は非推奨です。

構文

sword OCIEnvInit ( OCIEnv    **envhpp,
                   ub4         mode,
                   size_t      xtramemsz,
                   void      **usrmempp );

パラメータ

envhpp (OUT)

環境へのハンドルのポインタです。

mode (IN)

環境モードの初期化を指定します。次のモードが有効です。

  • OCI_DEFAULT

  • OCI_ENV_NO_UCB

OCI_DEFAULTモードの場合、OCIライブラリでハンドルが常にmutex化されます。

OCI_ENV_NO_UCBモードは、環境の初期化時に動的コールバック・ルーチンOCIEnvCallbackのコールを抑止するために使用します。デフォルトでは、このコールは抑止されません。

xtramemsz (IN)

環境の継続時間中に割り当てられるユーザー・メモリーの量を指定します。

usrmempp (OUT)

環境の継続時間中コールによってユーザー用に割り当てられた、xtramemszサイズのユーザー・メモリーのポインタを戻します。

コメント

注意:

OCIEnvCreate()は、OCIInitialize()コールおよびOCIEnvInit()コールのかわりに使用します。OCIInitialize()およびOCIEnvInit()コールは、下位互換性を保つためにサポートされています。

このコールは、OCI環境ハンドルの割当ておよび初期化を行います。初期化済のハンドルには何も行いません。OCI_ERRORまたはOCI_SUCCESS_WITH_INFOが戻った場合は、この環境ハンドルを使用してOracle固有のエラーおよび診断を取得できます。

これはローカルに処理され、サーバー・ラウンドトリップはありません。

環境ハンドルは、OCIHandleFree()を使用して解放できます。

関連項目:

xtramemszパラメータおよびユーザー・メモリー割当ての詳細は、「ユーザー・メモリーの割当て」を参照してください

OCIInitialize()

この機能は、Oracle Database 11gリリース2 (11.2)より前のリリースでは非推奨です。

用途

OCIプロセス環境を初期化します。この関数は非推奨です。

構文

sword OCIInitialize ( ub4            mode,
                      const void    *ctxp, 
                      const void    *(*malocfp) 
                                     ( void   *ctxp,
                                        size_t size ),
                      const void    *(*ralocfp)
                                     ( void  *ctxp,
                                       void  *memptr,
                                       size_t newsize ),
                      const void    (*mfreefp)
                                     ( void  *ctxp,
                                       void  *memptr ));

パラメータ

mode (IN)

モードの初期化を指定します。次のモードが有効です。

  • OCI_DEFAULT - デフォルト・モード。

  • OCI_THREADED - スレッド環境。このモードでは、ユーザーに公開されていない内部データ構造がマルチ・スレッドによって同時にアクセスされないように保護します。

  • OCI_OBJECT - オブジェクト機能を使用します。

  • OCI_EVENTS - パブリッシュ/サブスクライブ通知を利用します。

ctxp (IN)

メモリー・コールバック・ルーチン用のユーザー定義コンテキストです。

malocfp (IN)

ユーザー定義のメモリー割当て関数です。modeOCI_THREADEDの場合、このメモリー割当てルーチンは、スレッド・セーフにしてください。

ctxp (IN/OUT)

ユーザー定義のメモリー割当て関数のためのコンテキスト・ポインタです。

size (IN)

ユーザー定義のメモリー割当て関数によって割り当てられるメモリーのサイズです。

ralocfp (IN)

ユーザー定義のメモリー再割当て関数です。modeOCI_THREADEDの場合、このメモリー割当てルーチンは、スレッド・セーフにしてください。

ctxp (IN/OUT)

ユーザー定義のメモリー再割当て関数のためのコンテキスト・ポインタです。

memptr (IN/OUT)

メモリー・ブロックのポインタです。

newsize (IN)

新しく割り当てられるメモリーのサイズです。

mfreefp (IN)

ユーザー定義のメモリー解放関数です。modeOCI_THREADEDの場合、このメモリー解放ルーチンは、スレッド・セーフにしてください。

ctxp (IN/OUT)

ユーザー定義のメモリー解放関数のためのコンテキスト・ポインタです。

memptr (IN/OUT)

解放されるメモリーへのポインタです。

コメント

注意:

OCIEnvCreate()は、非推奨のOCIInitialize()コールのかわりに使用します。OCIInitialize()コールは、下位互換性を保つためにサポートされています。

このコールは、OCIプロセス環境を初期化します。OCIInitialize()は、他のOCIをコールする前にコールする必要があります。

この関数を使用すると、アプリケーションでコールバックを使用して固有のメモリー管理関数を定義できます。アプリケーションでこのようなメモリー管理関数(つまりメモリー割当て、メモリー再割当ておよびメモリー解放)がすでに定義されている場合は、この関数のコールバック・パラメータを使用して登録する必要があります。

これらのメモリー・コールバックはオプションです。アプリケーションで、この関数のメモリー・コールバックにNULL値を渡すと、デフォルトのプロセス・メモリー割当てメカニズムが使用されます。

関連項目:

次の文は、ユーザー定義メモリー関数がない場合に、スレッド・モードおよびオブジェクト・モードでOCIInitialize()をコールする方法の例です。

OCIInitialize((ub4) OCI_THREADED | OCI_OBJECT, (void  *)0,
     (void  * (*)()) 0, (void  * (*)()) 0,  (void (*)()) 0 );