コンテキスト・ハンドルは、システムへのユーザーによる単一の有効なログインを示します。EsbLogin()の呼出しが正常終了すると、コンテキスト・ハンドルが戻されます。それを、引数としてコンテキスト・ハンドルを必要とする他のAPI呼出しに渡すことができます。
コンテキスト・ハンドルは、Visual BasicプログラムにおいてESB_HCTX_Tタイプとして定義されます。
一般に、ユーザーがそのサーバーにログ・インしている間(つまり、EsbLogout()の呼出しが正常終了するまで)、コンテキスト・ハンドルは有効です。ただし、サーバー・シャットダウンなどのような場合、コンテキスト・ハンドルが無効になる場合があります。そのため、プログラムは、セッションの間にユーザーが再びログ・インできる方法を(たとえばメニュー・オプションまたは機能キーを通して)提供する必要があります。
注: | コンテキスト・ハンドルは、APIのインスタンスに固有であり、適切なインスタンスのリソースおよび設定を暗黙的に参照します。 |
APIプログラムの単一のインスタンスは、1つ以上のEssbaseサーバー上で同じユーザー名または異なるユーザー名を使用して、EsbLogin()を複数回呼び出すことができます。EsbLogin()への各呼出しは、独自のコンテキスト・ハンドルを戻します。また、プログラムは、戻された各コンテキスト・ハンドルを追跡する必要があります。使用している1つのクライアント・アプリケーション当たり255個までのコンテキスト・ハンドルを同時に持つことができます。ただし、プログラムが単一のサーバー上でその処理をすべて実行する場合、一般に、コンテキスト・ハンドルを1つのみ使用し、必要に応じて異なるアプリケーションやデータベースの間で切り替える方が簡単です。このとき、EsbSetActive()関数またはEsbAutoLogin()関数のいずれかを使用します。
ローカルのオブジェクトおよびファイル(クライアント上のオブジェクト)に対する操作は、ローカルのコンテキスト・ハンドルを使用できます。ローカル・コンテキスト・ハンドルの使用およびローカル・コンテキストを参照してください。
一般に、複数のプログラム、プロセスまたはスレッドの間でコンテキスト・ハンドルを共有することは、その使用が排他的であることが保証される場合を除いて、望ましくありません。同じインスタンス・ハンドルを使用し、各プロセスに別々にログ・インする方がよい方法です。Essbaseでは、同じサーバー上で同じユーザー名を使用する複数のログインは、そのサーバー上のポートを1つのみ使用します。