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

InterSystems 外部サーバの要件

すべての InterSystems 外部サーバは、インストール時に事前定義された既定の構成に自動的に設定されます。言語プラットフォームが既定の場所にインストールされている場合、追加の構成は必要ないはずです。事前定義された設定で外部サーバが起動に失敗する場合、ほとんどの場合サポート対象の言語プラットフォームへの正しいパスを設定することで問題を解決できます (詳細は、このセクションの最後の “外部サーバの定義のトラブルシューティング” を参照してください)。

このセクションでは、Java、.NET、および Python のすべての外部サーバの既定の場所とサポートされるバージョンについての情報を提供します。

InterSystems IRIS の要件

InterSystems 外部サーバと通信するには、InterSystems IRIS のインスタンスがバージョン 2020.4 以降である必要があります。Java、.NET、および Python の外部サーバは、これらの言語プラットフォームの既定の設定が使用できる場合に自動的に機能するよう設計されています。(以下のセクションの説明のとおり) サーバ構成に対する小さな変更が必要になる場合もあります。

Tip:
<install-dir> の特定

インストール・ディレクトリへのパスは、以下の ObjectScript コマンドを入力することでターミナルに表示できます。

 write $SYSTEM.Util.InstallDirectory()

Java 外部サーバのセットアップ

Java 外部サーバの実行可能ファイルのバージョンは、Java のサポートされる各バージョンに対して提供されます。通常は、インストール時に、既定の Java サーバ構成 (%Java Server) に対して適切なバージョンが自動的に指定されます。

各サーバのバージョンは、install-dir\dev\java\bin の異なるサブディレクトリに配置されています。この install-dir に InterSystems IRIS の希望のインスタンスが含まれます。

以下のバージョンの Java 外部サーバは、標準インストールに含まれています。

  • Java 8: install-dir\dev\java\lib\JDK18\intersystems-gateway-3.2.0.jar

  • Java 11: install-dir\dev\java\lib\JDK11\intersystems-gateway-3.2.0.jar

JAVA_HOME 設定で指定された以外の JVM を使用する場合、必要な言語プラットフォームへのパスを設定するための追加の構成が必要になります (“Java 用の外部サーバ構成の定義” を参照してください)。

Note:

これらのコンポーネントを使用するためには、適切なバージョンの Java をシステムにインストールする必要があります。InterSystems IRIS のインストール手順では、いかなるバージョンの Java もインストールやアップグレードは行われません。

.NET 外部サーバのセットアップ

.NET 外部サーバのアセンブリのバージョンは、.NET のサポートされる各バージョンに対して提供されます。通常は、インストール時に、既定の .NET 外部サーバ構成 (%DotNet Server) に対して適切な外部サーバのバージョンが自動的に指定されます。

すべてのアセンブリが Windows でサポートされ、.NET Core 2.1 も Linux および MacOS でサポートされます。各バージョンは、install-dir\dev\dotnet\bin の異なるサブディレクトリに配置されています。この install-dir に InterSystems IRIS の希望のインスタンスが含まれます。以下のアセンブリを使用できます。

.NET バージョン 2.0 :

  • install-dir\dev\dotnet\bin\v2.0.50727\InterSystems.Data.Gateway.exe

  • install-dir\dev\dotnet\bin\v2.0.50727\InterSystems.Data.Gateway64.exe

.NET バージョン 4.0 :

  • install-dir\dev\dotnet\bin\v4.0.30319\InterSystems.Data.Gateway.exe

  • install-dir\dev\dotnet\bin\v4.0.30319\InterSystems.Data.Gateway64.exe

.NET バージョン 4.5 :

  • install-dir\dev\dotnet\bin\v4.5\InterSystems.Data.Gateway.exe

  • install-dir\dev\dotnet\bin\v4.5\InterSystems.Data.Gateway64.exe

.NET Core 2.1 :

  • install-dir\dev\dotnet\bin\Core21\IRISGatewayCore21.dll

    Core 2.1 のインストール手順は、"InterSystems ソフトウェアでの .NET の使用法" の ".NET Core 2 のインストールと構成" を参照してください。

一部のアプリケーションでは、.NET Framework アセンブリを使用して管理されていないコード・ライブラリがロードされることがあります。サポートされる各バージョンに対して 32 ビットと 64 ビットの両方のアセンブリが提供されています。これにより、32 ビット・ライブラリをロードできる 64 ビット Windows 向けゲートウェイ・アプリケーションを作成することが可能になります。

システムの既定以外のバージョンを使用する場合、必要な言語プラットフォームへのパスを設定するための追加の構成が必要になります (“.Net 用の外部サーバ構成の定義” を参照してください)。

Note:

これらのアセンブリを使用するためには、サポートされるバージョンの .NET Framework をシステムにインストールする必要があります。InterSystems IRIS のインストール手順では、いかなるバージョンの .NET Framework もインストールやアップグレードは行われません。

Python 外部サーバのセットアップ

Python 外部サーバでは、Python 3.6.6 以降が必要です。Python のサポートされるバージョンがシステムで使用可能な場合、インストール時に、既定の Python 外部サーバ構成 (Python Server) に対して、通常は Python 実行可能ファイルへの正しいパスが自動的に指定されます。

Python 3 のサポートされるバージョンがシステムの既定ではない場合、必要なインスタンスへのパスを設定するために追加の構成が必要になります (“Python 用の外部サーバ構成の定義” を参照してください)。

インストール・ファイルは intersystems_irispython-3.2.0-py3-none-any.whl で、<install-dir>\dev\python\ にあります (ここで、<install-dir> は InterSystems IRIS インスタンスのルート・ディレクトリです)。このディレクトリには、その他の .whl ファイルも含まれる場合があります。これらは外部サーバに関係がないため、無視してもかまいません。(最新バージョンのインストレーション・ファイルは、"InterSystems IRIS Driver PackagesOpens in a new tab" ページからもダウンロードできます。)

以下のコマンドを使用して Python 外部サーバのパッケージをインストールします。

python -m pip install --upgrade <path>\intersystems_irispython-3.2.0-py3-none-any.whl

--user オプションを使用しないでください。

Note:

このパッケージを使用するためには、サポートされるバージョンの Python 3 をシステムにインストールする必要があります。InterSystems IRIS のインストール手順では、いかなるバージョンの Python もインストールやアップグレードは行われません。

外部サーバの定義のトラブルシューティング

サポートされるすべての言語で、言語プラットフォームが適切にインストールされ、InterSystems IRIS で使用できる状態である必要があります。外部サーバが起動しない場合、Activity Log のエラー・メッセージに原因が示されていることがよくあります。最も一般的な構成の問題は、言語プラットフォームへの無効なパスです。

[External Servers] ページ (システム管理 > 構成 > 接続性 > External Servers) には、既定の各外部サーバ構成のリストが含まれます。

InterSystems 外部サーバ ([システム管理]→[構成]→[接続性])
List of currently defined external servers

このドキュメントで説明する既定の外部サーバは、%DotNet Server%Java Server、および %Python Server です。[Activity Log] リンクをクリックすることで、外部サーバの以前の開始と停止に関するすべてのメッセージを表示できます。

[開始] をクリックして、外部サーバをテストできます。これにより、起動コマンドが表示され、外部サーバが起動に失敗した場合はエラー・メッセージがリストされます。例えば、以下のメッセージは Java 実行可能ファイルへのパスが間違っていることを示しています。

起動時のエラー・メッセージの例
Startup error message for %Java_Server

この例を生成するために、Java Home の %Java Server の設定は、意図的に \nethome\java\bad\path に変更されています。

Note:

Java 言語の既定の構成は、%Java Server で定義されます。これを %JDBC Server と混同しないでください。これは、特定の古い InterSystems インタフェースによってのみ使用される特殊な構成です。

各言語にはオプションの構成設定があり、それを使用して言語のパスを指定できます (詳細は、“管理ポータルでの定義のカスタマイズ” の Java.NET、および Python のそれぞれの言語固有の管理ポータルのページを参照してください)。

オブジェクト・ゲートウェイ・コードのアップグレード

外部サーバでは、以前のダイナミック・オブジェクト・ゲートウェイ・テクノロジの強化および簡素化された形態を使用しています。オブジェクト・ゲートウェイの機能はすべて利用できるため、コードのアップグレードは、特定のクラスとメソッド参照を置き換えるだけで済みます。以下のコードは、いくつかの一般的なアクティビティを実行するための旧式の方法と新しい方法を示しています。

サーバの起動とゲートウェイ・オブジェクトの取得

アクティブなサーバ接続により Gateway オブジェクトを取得するプロセスには、以下のように 2 つの異なる ObjectScript クラスのメソッドに対する複数の呼び出しが含まれます。

  set status = ##class(%Net.Remote.Service).OpenGateway("JavaGate",.GatewayInfo)
  set name = GatewayInfo.Name
  set port = GatewayInfo.Port
  set server = GatewayInfo.Server
  if ('##class(%Net.Remote.Service).IsGatewayRunning(server,port,,.status)) {
    set status = ##class(%Net.Remote.Service).StartGateway(name)
  }
set gateway = ##class(%Net.Remote.Gateway).%New()
set status = gateway.%Connect(server, port, "USER")

外部サーバでは、これはやや単純になります。

set gateway = $system.external.getJavaGateway()

1 つの呼び出しで、すべてが適切に設定された Gateway オブジェクトを作成し、外部サーバへの接続を自動的に開始します。外部サーバに手動でアクセスすることもできますが (“外部サーバの起動および停止” を参照)、ほとんどのアプリケーションでこれは不要です。

クラス・パスの指定とプロキシ・オブジェクトの作成

オブジェクト・ゲートウェイ・コードでは、プロキシを作成する前に、いくつかの異なる ObjectScript クラスへの参照と、非常に多くのサーバ固有の情報を必要としていました。

set path = ##class(%ListOfDataTypes).%New()
do path.Insert("C:\Dev\SomeClasses.jar")
do ##class(%Net.Remote.Service).OpenGateway("JavaGate",.GatewayInfo)
set gateway = ##class(%Net.Remote.Gateway).%New()
do gateway.%Connect(GatewayInfo.Server, GatewayInfo.Port, "USER",,path)
set proxy = ##class(%Net.Remote.Object).%New(gateway,"SomeClasses.ClassOne")

ここでも再び、外部サーバのコードは大幅に簡素化されています。

set gateway = getJavaGateway()
do gateway.addToPath("C:\Dev\SomeClasses.jar")
set proxy = gateway.new("SomeClasses.ClassOne")

新しい addToPath() メソッドも、複数のクラス・パスを追加するためのより単純な方法を提供します。

クラス・メソッドの呼び出し

以前の %ClassMethod() の代わりに、外部サーバでは新しい Gateway invoke() メソッドを使用します。

// Object Gateway
set num = ##class(%Net.Remote.Object).%ClassMethod(gateway,"Demo.ReverseGateway","factorial",num-1)

// external server
set num = gateway.invoke("Demo.ReverseGateway","factorial",num-1)
FeedbackOpens in a new tab