Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

インターシステムズ・データベースへの接続

ここでは、IRISConnection オブジェクトを使用して、.NET クライアント・アプリケーションとインターシステムズ・サーバ間の接続を作成する方法を説明します。

.NET との接続の確立

以下に示すコードでは、USER というネームスペースへの接続を確立します。接続オブジェクトをインスタンス化する場合に設定できるパラメータの完全なリストについては、“接続パラメータのオプション” を参照してください。

以下の簡単なメソッドを呼び出して接続を開始できます。

接続をインスタンス化するコードの追加
  public IRISConnection Conn;
  private void CreateConnection(){
    try {
      Conn = new IRISConnection();
      Conn.ConnectionString =
        "Server=localhost; Port=51773; Namespace=USER;"
        + "Password=SYS; User ID=_SYSTEM;";
      Conn.Open();
    }
    catch (Exception eConn){
      MessageBox.Show("CreateConnection error: " + eConn.Message);
    }
  }

このオブジェクトを作成しておくと、そのオブジェクトを必要とするすべてのクラス間で共有できます。接続オブジェクトは、必要に応じて開いたり閉じたりできます。この操作は、Conn.Open() および Conn.Close() を使用して明示的に実行できます。ADO.NET の Dataset を使用している場合は、DataAdapter のインスタンスにより、必要に応じて自動的に接続が開閉します。

共有メモリ接続

リモートの InterSystems IRIS インスタンスへの標準の ADO .NET 接続では TCP/IP が使用されます。パフォーマンスを最大限に高めるために、InterSystems IRIS は、InterSystems IRIS インスタンスと同じマシン上で実行される .NET アプリケーション向けに共有メモリ接続も提供します。この接続は、高いコストのかかる可能性があるカーネル・ネットワーク・スタックの呼び出しを回避して、.NET 操作のために最大限の低遅延と高スループットを実現します。

接続でサーバ・アドレス localhost または 127.0.0.1 が指定されている場合、既定で共有メモリが使用されます。実際のマシン・アドレスが指定されている場合は、TCP/IP が使用されます。共有メモリ・デバイスに障害が発生した場合、または共有メモリ・デバイスが利用できない場合、接続は自動的に TCP/IP にフォールバックします。

共有メモリを無効にするには、接続文字列で SharedMemory プロパティを false に設定します。例えば、サーバ・アドレスが localhost に指定されている場合でも、以下の接続文字列は共有メモリを使用しません。

  "Server=localhost;Port=51774;Namespace=user;Password = SYS;User ID = _system;SharedMemory=false"

共有メモリは TLS 接続には使用されません。共有メモリ接続が試行されたかどうか、およびその接続が成功したかどうかの情報は、ログに記録されます。

Note:
共有メモリ接続はコンテナの境界を越えて機能しない

現在のところ、2 つの異なるコンテナ間の共有メモリ接続はサポートされていません。クライアントが localhost または 127.0.0.1 を使用してコンテナの境界を越えて接続を試行した場合、接続モードは既定で共有メモリになり、接続は失敗します。このことは、Docker の --network host オプションが指定されているかどうかに関係なく適用されます。サーバ・アドレスの実際のホスト名を指定するか、接続文字列で共有メモリを無効にすることで (上記の例のように)、コンテナ間の TCP/IP 接続を保証できます。

サーバとクライアントが同じコンテナにある場合は、問題なく共有メモリ接続を使用できます。

接続プーリング

接続プーリングは既定で有効になっています。以下の接続文字列パラメータを使用すると、接続プーリングのさまざまな機能を制御できます。

  • Pooling — 既定は true です。接続プーリングを使用しない接続を作成するには、Poolingfalse に設定します。

  • Min Pool Size および Max Pool Size — 既定値は 0 および 100 です。これらのパラメータを設定して、この特定接続文字列で接続プールの最大サイズと最小 (初期) サイズを指定します。

  • Connection Reset および Connection LifetimeConnection Resettrue に設定すると、プールされた接続のリセット・メカニズムが有効になります。Connection Lifetime は、アイドル状態のプールされた接続をリセットするまで待機する秒数を指定します。既定値は 0 です。

例えば以下の接続文字列は、接続プールの初期サイズを 2、接続の最大数を 5 に設定し、最大接続アイドル時間を 3 秒にして接続のリセットを有効にします。

      Conn.ConnectionString =
        "Server = localhost;"
        + " Port = 51774;"
        + " Namespace = USER;"
        + " Password = SYS;"
        + " User ID = _SYSTEM;"
        + " Min Pool Size = 2;"
        + " Max Pool Size = 5;"
        + " Connection Reset = true;"
        + " Connection Lifetime = 3;";

コネクション・プールのさまざまなメソッドとプロパティの詳細は、“.NET Managed Provider のクイック・リファレンス” を参照してください。

.NET クライアントのサーバ構成

インターシステムズ・サーバ・プロセスで .NET クライアントを使用するために必要な構成はほとんどありません。このセクションでは、接続に必要なサーバ設定とトラブルシューティングのヒントについて説明します。

インターシステムズ・サーバに接続するすべての .NET クライアントには、以下の情報が必要です。

  • サーバ IP アドレス、ポート番号、およびネームスペースを指定する URL。

  • 大文字と小文字が区別されるユーザ名とパスワード。

問題が発生した場合は、以下の点を確認してください。

  • サーバ・プロセスがインストールされていて実行中であることを確認します。

  • サーバ・プロセスを実行しているマシンの IP アドレスを確認します。

  • 待ち受け状態になっているサーバの TCP/IP ポート番号を確認します。

  • 接続を確立する際に、有効なユーザ名とパスワードを使用していることを確認します(ユーザ名とパスワードは、管理ポータル (System Administration > Security > Users) を使用して管理できます)。

  • 接続 URL に有効なネームスペースが記述されていることを確認します。ネームスペースは、プログラムで使用するクラスとデータを含む必要があります。

FeedbackOpens in a new tab