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