Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

Caché Direct 入門

Caché Direct はクライアント/サーバ接続メカニズムで、TCP 接続を経由して、Windows COM/OLE または C++ クライアント・プログラムからサーバ操作を通じて直接制御を提供します。この接続は、非常に高速な、オーバヘッドの低いメカニズムを経由して実行されます。Caché Direct には、Caché セキュリティ、Citrix/Windows Terminal サービス、IPv6 などに対する透過的なサポートが組み込まれています。

Note:

Caché 2015.1 では、クライアントは 32 ビットおよび 64 ビット・システム用のそれぞれのバージョンで使用できます。

名前からもわかるように、Caché Direct は、クライアントから Caché サーバに対して、できる限り最も直接的なアクセスを提供します。つまり、ObjectScript コマンドはクライアントからサーバに送信され、そこで実行されて、結果がクライアントに返されます。Caché Direct は、アプリケーションの 2 つの部分の間に 1 つまたは複数の TCP チャネルをセットアップし、これらの間でメッセージを管理します。Caché オブジェクトと埋め込み SQL のすべての機能は、Caché Direct を通じて使用することもできます。クライアントはサーバのすべての機能にアクセス可能で、これを制約できるのは Caché セキュリティ設定のみです。

複数のサーバ・ジョブ/チャネルを作成し、1 つのクライアント・プロセスから同時に管理し、クライアント・マルチスレッドと 1 つのクライアントから複数のサーバへの接続を同時に実現することができます。

Caché Direct には、サーバからクライアントへのコールバック、クライアントとサーバの両方での制御フローおよび通信トラフィックのログ、メッセージ変換 (圧縮など) のための各種フック、エラー処理、シャットダウン・タスクなどの機能も用意されています。

Note:

Caché Direct の目的は、Web ベースのアプリケーションの構築に使用することではなく、Direct クライアント/サーバ・アプリケーションでの使用を想定しています。

概念

Caché Direct には、Visual Basic プロジェクトや、C++ クライアント対応の C++ インタフェースで最も頻繁に使用される ActiveX control (VisM.OCX、または VisM64.OCX) が用意されています。VisM コントロールには、Caché への接続や送信するコマンドを指定するためのプロパティやメソッドがあります。

内部的には、VisM コントロールは Caché とは直接通信しません。その代わりに、起動されたコントロールは CDConnect と呼ばれるオブジェクトにアタッチされます。その後、Caché に接続し、サーバでスレーブ・サーバ・プロセスを起動し、通信チャネルの管理を行います。CDConnect は複数の VisM インスタンスにアタッチ可能で、すべての VisM インスタンスから分離されたとしても存在することができ、別のサーバ・プロセスにリダイレクトできます。この柔軟性は、Caché Direct が次のようにさまざまなアーキテクチャをサポートできることを意味しています。

  • 各クライアント VisM が専用のサーバを持っている設定。

  • すべてのクライアント VisM が 1 つのサーバを共有している設定。

  • クライアント VisM の集まりが、サーバの集まりを共有し、これらの間を移動して、現在空きのあるものを使用できる設定。

  • 選択されたサーバがアクセスできる特定のデータベースに基づいて、選択されたクライアント VisM がこれらのサーバを共有する設定。

Caché Direct クライアントは、Caché クライアントをサポートしているすべての Windows プラットフォームでサポートされています。

Caché Direct サーバは、Caché サーバをサポートしているすべてのプラットフォームでサポートされています。

これらのサーバの存在するマシンやデータベースは同じものでも、異なるものでもかまいません。都合に合わせて自由に配置できます。

用語

Caché Direct コミュニケーション・モデルで使用される用語は以下のとおりです。

  • 呼び出し元 は Caché を呼び出すクライアント・コードです。これらは通常 VisM インスタンスで、このドキュメントでは VisM と呼ばれています。これらは C++ コードでもあることもあります。

  • CDConnect は VisM クライアントとサーバの間の中間オブジェクトです。CDConnect は必要に応じて作成され、クライアント・マシンで実行されます。

  • VisM と CDConnect の間の連結は、接続と呼ばれます。

  • CDConnect と Caché サーバ・プロセスの間の TCP 連結はチャネルと呼ばれます。

次の図は、Caché Direct アプリケーションのさまざまな状態を表しています。上の領域 (二重線の上) にある項目はすべて、クライアント側の単一プロセス内で実行されています。二重線の下にある項目は、1 つまたは複数の Caché サーバ・マシンで実行されます。

generated description: communications model

コミュニケーション・モデル

Caché Direct コミュニケーション・モデルは以下の規則に従います。

  • 1 つの VisM が所有できる接続の数は、どのような場合でも、一度に 1 つのみです。つまり、VisM は 1 つの CDConnect にアタッチされているか、切断されているかのどちらかです。

  • 1 つの CDConnect が所有できるチャネルの数は、どのような場合でも、一度に 1 つのみです。つまり、CDConnect は 1 つの Caché サーバ・プロセスにアタッチされているか、切断されているかのどちらかです。

  • 1 つの CDConnect が所有できる接続の数に制限はありません。つまり、どのような CDConnect でも、0、1、またはそれ以上の VisM にアタッチできます。これは、複数の VisM が同じサーバ・コンテキストを共有できることを表します。これらの VisM は、各メッセージにより再初期化される変数を除き、同じサーバ・ローカル変数にアクセスします。次の章の "ミラーリングされた VisM プロパティ" を参照してください。

  • CDConnect を Cache サーバ・プロセスにアタッチする必要はありません。これは、CDConnect が VisM やサーバ・プロセスから独立しているからです。CDConnect は破棄されるまで存続します。アクセスできなくなった場合 (接続およびタグがない場合)、または DeleteConnection() メソッドを使って明示的に破棄した場合、CDConnect は自動的に破棄されます。

    Note:

    ISCDLink バージョン 220 以前では、CDConnect にアクセスできなくなっても、これが自動的に破棄されることはありませんでした。

  • CDConnect は異なる Caché サーバにリダイレクトできます。これはもちろん、この CDConnect にアタッチされている VisM はすべて、新しく選択されたサーバにも効果的にアタッチできるという意味です。

  • Caché サーバ・ジョブはそれぞれ 1 つのスレッドです。したがって、各チャネルでの通信は同期がとられている必要があります。つまり、1 つのクライアント・メッセージを処理し、これに応答するまで、次のメッセージを読み取ることはできません。これは、複数の VisM が 1 つの CDConnect を共有している場合、これらの VisM は同時に通信を試行できないように制約されていることを意味します。通信しようとした場合、“nonsynchronous communication” エラーが発生します。

  • Caché サーバ・ジョブには、必ず、チャネルが 1 つ必要です。CDConnect からのチャネルを閉じると、対応する Caché サーバ・ジョブも終了します。

わかりやすいように、たとえ話を使って説明します。CDConnect は 1 本の電話回線につながっているスピーカーフォンのような動作をします。部屋にいて、電話を聞いている人が VisM で、全員、同じ会話を聞きます。電話の相手は 1 人で、これが Caché サーバです。この電話を他のサーバに転送すると、すべての VisM がこの新しい相手に接続されます。

使用可能なツールと方法

クライアント側では、Caché Direct は階層化された C++ クラスの集まりで、VisM コントロールにラップされ、必要なプロパティやメソッドをすべて公開します。Caché クライアント・ソフトウェアをインストールすると、このコントロールがインストールされ、登録されるので、Visual Basic などの ActiveX ホストで使用できるようになります。この結果、Caché Direct をいろいろなレベルで使用できます。

  • Caché Direct ActiveX コントロールを Visual Basic プロジェクトに組み込むことができます。これにより、アプリケーションは (場合によってはユーザとの対話を通じて) プロパティの値を設定し、Caché サーバにコードを送信するメソッドを実行して、結果を表示することが可能です。このドキュメントでは、このテクニックが最も多く使用されることを前提にしています。

  • C++ プロジェクトで Caché Direct C++ クラスを使用できます。その後、Caché サーバと対話するには、必要に応じて、これらのクラスのインスタンスを作成し、プロパティを設定し、メソッドを実行します。

サーバ側では、Caché Direct は Caché サーバ環境の透過的な部分です。最新バージョンの Caché 自体をインストールせずに、Caché Direct サーバをアップグレードする必要がある場合には、使用している Caché 環境に最新の Caché Direct のサーバ・コードを簡単にロードする方法があります。詳細は、このマニュアル末尾の "Caché Direct サーバのアップグレード" を参照してください。

FeedbackOpens in a new tab