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

外部サーバの定義のカスタマイズ

外部サーバの定義とは、構成設定の名前付きコレクションです。これらの設定を使用して、外部サーバ・プロセスを開始するコマンドが構築されます。例えば、定義には TCP/IP アドレス、ポート番号、およびクラスまたは実行可能ファイルへのパスなどの情報が含まれます。

ほとんどの目的には、事前定義された外部サーバ設定により必要なすべての機能が提供されますが (“外部サーバ接続の管理” を参照)、必要に応じて既定の設定を簡単に変更できます。または、カスタム設定を含むまったく新しい外部サーバの定義を作成することもできます。

このセクションでは、外部サーバの構成設定の名前付きコレクションを管理する方法と、新しい外部サーバの定義を作成する方法を説明します。これには、管理ポータルを介してインタラクティブに実行する方法と、ObjectScript $system.external インタフェースを使用してプログラムによって実行する方法の 2 つがあります。

管理ポータルでの定義のカスタマイズ

外部サーバの定義は、InterSystems IRIS データベースに格納された構成設定の名前付きコレクションです。この情報を使用して、外部サーバ・プロセスを開始するコマンド行が構築されます。外部サーバの定義にはそれぞれ一意の名前があり、一度に 1 つの外部サーバによってのみ使用できる接続を定義します。定義には、管理ポータルの [External Servers] ページで名前をクリックしてアクセスできます。

[External Servers] ページ ([システム管理]→[構成]→[接続性])
List of currently defined external servers
Note:

このセクションの説明に従ってサーバ定義を作成および変更するには、%Admin_ExternalLanguageServerEdit:USE 特権Opens in a new tab (既定では、%Manager ロールが保持) が必要です。

以下のセクションでは、既存の定義にアクセスし、新しい定義を作成するために使用される管理ポータルのページについて説明します。

新しい外部サーバ・フォーム

サーバ定義を作成および変更するには、%Admin_ExternalLanguageServerEdit:USE 特権Opens in a new tab が必要です。既定のサーバの設定を変更する代わりに、新しいサーバ定義を作成する方が便利な場合があります。システムの既定値とは異なる言語環境、バージョン、およびシステム構成を指定できます。ほとんどの構成設定はオプションで、その他の値を指定しなければ、既定値が使用されます。

各外部サーバ定義には、サーバ名、タイプ (現時点では Java、.Net、および Python)、およびポートを含める必要があります。追加のプロパティはタイプによって異なり、言語プラットフォームのパス、ユーザ・コードのパス、およびその他言語固有のオプションを定義できます。ログ、接続パラメータ、および監視の構成可能な項目もあります。

[External Servers] ページ (システム管理 > 構成 > 接続性 > External Servers) には、[Create External Server] ボタンがあります。

Create External Server button (to right of page title)

ボタンをクリックすると、以下に示すフォームが表示されます。このフォームを使用して、このドキュメントで取り上げるすべての外部サーバ (外部 Java サーバ、外部 .NET サーバ、および外部 Python サーバ) と、ここでは取り上げないその他の特殊なタイプのサーバの構成を定義できます。

Dropdown list of server languages, Java selected

この画像は、選択したタイプが Java である場合の、サーバ・タイプのリストを示しています。必須の [サーバ名]、[サーバタイプ]、および [ポート] のオプションに加えて、フォームには 3 つの Java 固有のフィールドが表示されています。任意の選択されたタイプについて、同様のタイプ固有のフィールドが表示されます。

以下のフィールドは、すべての言語で同一です。

  • サーバ名必須

    このサーバ定義に割り当てる一意の名前です。この名前は、格納される定義のデータベース識別子として使用され、定義の保存後は変更できません。

  • サーバタイプ必須

    選択した言語によってのみ使用されるフィールドを表示するには、[Java][.NET]、または [Python] を選択します。

  • ポート必須。

    外部サーバと InterSystems IRIS 間の通信に使用する一意の TCP ポート番号です。2 つの外部サーバ接続で同じポートを同時に使用することはできません。

以下のセクションでは、Java.NET、および Python のタイプ固有のフィールドについて説明します。

Java 用の外部サーバ構成の定義

すべての言語に共通のフィールドの詳細は、“新しい外部サーバ・フォーム” を参照してください。[クラスパス][JVM 引数]、および [Javaホームディレクトリ] フィールドは、Java に固有です。

外部 Java サーバ定義の作成
New External Server page (showing Java fields described below)
  • サーバ名 (必須) — この外部サーバ構成の一意の名前です。

  • サーバタイプ (必須) — [Java] を選択すると、Java 外部サーバでのみ使用されるフィールドが表示されます ([JDBC] を選択しないでください。これは以前の InterSystems インタフェースによってのみ使用される特殊な構成です)。

  • ポート (必須) — この外部サーバ構成によって使用される一意の TCP ポート番号です。

  • クラスパス

    このフィールドはクラス・パスに追加されます。これには、プロキシを生成するために必要なターゲット・クラスを含むすべての jar ファイルに対するパスが含まれている必要があります。InterSystems 外部サーバの .jar ファイルを含める必要はありません。スペースまたは複数のファイルを含むファイル・パスを指定する場合は、クラスパスを引用符で囲って、プラットフォームに適切なセパレータを付ける必要があります。

  • JVM 引数

    外部サーバを開始するコマンドで JVM に渡されるオプションの引数。例えば、必要に応じてシステム・プロパティ (Dsystemvar=value) や最大ヒープ・サイズ (Xmx256m) などの設定を指定できます。

  • Javaホームディレクトリ

    外部サーバで必要となる Java バージョンのパス。指定しない場合、これは既定で管理サーバの [Javaホームディレクトリ] の設定になります。

  • 詳細設定 — 詳細は “詳細設定の定義” を参照してください。

[保存] をクリックして、データベースにサーバ定義を保存します。[サーバ名] は、この定義で一意の識別子で、定義の保存後は変更できません。

既存のサーバ定義は、メインの [External Servers] ページでその定義の [編集] リンクをクリックすることで編集できます。[編集] ページはここで示すページと同じですが、[サーバ名] フィールドを変更できない点のみが異なります。

.NET 用の外部サーバ構成の定義

すべての言語に共通のフィールドの詳細は、“新しい外部サーバ・フォーム” を参照してください。[ファイル・パス][.NET バージョン] フィールドは、.NET に固有です。

外部 .NET サーバ定義の作成
New External Server page (showing .NET fields described below)
  • サーバ名 (必須) — この外部サーバ構成の一意の名前です。

  • サーバタイプ (必須) — [.NET] を選択すると、.NET 外部サーバでのみ使用されるフィールドが表示されます。

  • ポート (必須) — この外部サーバ構成によって使用される一意の TCP ポート番号です。

  • ファイル・パス

    .NET に必要なサーバの実行可能ファイルを含むディレクトリのフル・パスを指定します (“.NET 外部サーバのセットアップ” を参照)。これは、外部サーバを開始するコマンドによって使用されます。このフィールドが指定されていない場合、起動コマンドは選択した .NET バージョンの既定の実行可能ファイルを使用します。

    .NET を使用する場合、システムによっては <install-dir>\dev\dotnet (すべての .NET 外部サーバ・アセンブリの最上位ディレクトリ) を指定する必要がある場合があります。

  • .NET バージョン

    外部サーバの実行可能ファイルで必要とされる .NET バージョンを指定します。.NET オプションは、すべてのオペレーティング・システムで利用可能です。Windows では、.NET Framework のバージョンもサポートされています。

  • 詳細設定 — 詳細は、“詳細設定の定義” および “.NET の詳細設定” を参照してください。

[保存] をクリックして、データベースにサーバ定義を保存します。[サーバ名] は、この定義で一意の識別子で、定義の保存後は変更できません。

既存のサーバ定義は、メインの [External Servers] ページでその定義の [編集] リンクをクリックすることで編集できます。[編集] ページはここで示すページと同じですが、[サーバ名] フィールドを変更できない点のみが異なります。

Python 用の外部サーバ構成の定義

すべての言語に共通のフィールドの詳細は、“新しい外部サーバ・フォーム” を参照してください。[Python Executable Path][Python Options] フィールドは、Python に固有です。

外部 Python サーバ定義の作成
New External Server page (showing Python fields described below)
  • サーバ名 (必須) — この外部サーバ構成の一意の名前です。

  • サーバタイプ (必須) — [Python] を選択すると、Python 外部サーバでのみ使用されるフィールドが表示されます。

  • ポート (必須) — この外部サーバ構成によって使用される一意の TCP ポート番号です。

  • Python Executable Path

    外部サーバを実行するために使用される Python 実行可能ファイルの完全修飾ファイル名。場所を指定せずに使用できる既定の Python インタプリタがある場合、この設定はオプションです。

  • Python Options

    外部サーバを開始する Python コマンドを構築する際に含める追加のコマンド行設定を定義するオプションのプロパティです。

  • 詳細設定 — 詳細は、“詳細設定の定義” および “Python の詳細設定” を参照してください。

[保存] をクリックして、データベースにサーバ定義を保存します。[サーバ名] は、この定義で一意の識別子で、定義の保存後は変更できません。

既存のサーバ定義は、メインの [External Servers] ページでその定義の [編集] リンクをクリックすることで編集できます。[編集] ページはここで示すページと同じですが、[サーバ名] フィールドを変更できない点のみが異なります。

詳細設定の定義

詳細設定の既定値は、ほとんどの場合、変更する必要はありません。

すべての外部サーバの詳細オプション

次のオプションは、Java、.NET、および Python で使用できます。

すべての外部サーバで使用される詳細設定
New External Server page advanced settings for all languages (showing fields described below)
  • 必要なリソース

    既定では、すべてのサーバにゲートウェイ・リソースOpens in a new tabが必要です。これにより、サーバはパスフレーズでセキュリティ保護された接続で使用できるようになります。Java、.NET、Python サーバには、USE 特権を持つ %Gateway_Object リソースが必要です。システム管理者はカスタマイズされたリソースを作成し、それを特定のゲートウェイを使用するために必要なリソースにすることができます。このフィールドを空の文字列に設定して、ゲートウェイをパブリックにすることもできます。ただし、すべてのゲートウェイを適切なリソースで保護することを強くお勧めします。詳細は、"承認ガイド" を参照してください。

  • ログファイル

    ホスト・マシン上のログ・ファイルの完全パス名です。サーバへの接続が開かれたことや閉じられたことなどのイベントや、ターゲット・クラスをプロキシ・クラスにマッピングするときに生じたエラー状態についての外部サーバ・メッセージが記録されます。パフォーマンスを考慮して、このオプションのプロパティは、デバッグ時にのみ使用してください。

  • 許可IPアドレス

    外部サーバが実行されるホスト・マシンの IP アドレスまたは名前です。既定は "127.0.0.1" (ローカル・マシン) です。マシンに対してローカルなすべての IP アドレス (127.0.0.1、VPN アドレスなど) でリッスンするには、"0.0.0.0" を指定します。

  • Use Shared Memory

    使用可能な場合、共有メモリを使用するかどうかを示します (既定値は true)。

  • 初期化タイムアウト

    外部サーバの初期化が失敗したと見なされるまで待機する秒数です。

  • 接続タイムアウト

    外部サーバへの接続試行が失敗したと見なされるまで待機する秒数です。

.NET の詳細設定

すべての外部サーバの詳細オプション” で説明した設定に加えて、.NET の詳細設定には、外部サーバを 32 ビットとして実行するオプションが含まれます。

New External Server page advanced settings for all languages (showing fields described below)

  • 32-bit として実行 — 64 ビット・プラットフォーム上の外部サーバにのみ適用されます。このプロパティにチェックが付けられている場合、外部サーバは 32 ビットとして実行されます。既定は 64 ビットの実行となります。

Python の詳細設定

すべての外部サーバの詳細オプション” で説明した設定に加えて、Python の詳細設定には、TSL/SSL 構成のオプションが含まれます (“TLS 構成の作成または編集” を参照)。

New External Server page advanced settings for all languages (showing fields described below)

  • SSL サーバ構成 — サーバ TLS/SSL に使用する SSL/TLS 構成Opens in a new tabの名前。

  • SSL クライアント構成 — クライアント TLS/SSL に使用する SSL/TLS 構成の名前。

  • SSLホスト名を確認 — このプロパティにチェックが付けられている場合、TLS/SSL クライアントはホスト名検証を実行します。

$system.external インタフェースによる定義のカスタマイズ

管理ポータルには、外部サーバの構成を定義および変更するための便利なインタラクティブ・ツールが用意されていますが (前のセクションで説明したとおり)、同じことを $system.external インタフェースを使用して ObjectScript で実行することもできます。

Note:

このセクションの説明に従ってサーバ定義を作成および変更するには、%Admin_ExternalLanguageServerEdit:USE 特権Opens in a new tab (既定では、%Manager ロールが保持) が必要です。

管理ポータルに入力する情報とまったく同じ情報を指定して、数行の ObjectScript コードで外部サーバの定義を作成および使用できます。既存のすべての外部サーバ定義についての詳細情報にもアクセスできます。

Note:
%DynamicObject と %DynamicArray

このセクションで説明する多くのメソッドは、%DynamicObjectOpens in a new tab および %DynamicArrayOpens in a new tab のインスタンスを受け入れるか、返します。これらのクラスにより、ObjectScript で JSON 文字列とデータ構造を処理できるようになります。詳細および例は、"JSON の使用" を参照してください。

getServer() を使用した構成設定の取得

$system.external インタフェースの getServer() メソッドは、指定された外部サーバ定義のすべての構成設定を含む %DynamicObjectOpens in a new tab を返します。メソッド・シグニチャは以下のとおりです。

   getServer(serverName As %RawString) as %Library.DynamicObject

例えば、以下のコードは既定の Java 構成である、%Java Server の設定を返します。

set srv = $system.external.getServer("%Java Server")
write srv
   2@%Library.DynamicObject

各フィールドはダイナミック・オブジェクトのプロパティであるため、以下のように標準のプロパティの表記を使用して、希望のフィールドを表示できます。

write "Name:"_srv.Name_", Type:"_srv.Type_", Port:"_srv.Port,!
   Name:%Java Server, Type:Java, Port:4015

%DynamicObjectOpens in a new tab メソッド、%GetIterator() および %GetNext() を使用してダイナミック・オブジェクトのプロパティを反復処理できます (詳細は、"JSON の使用" の “%GetNext() を使用したダイナミック・エンティティの反復処理” を参照してください)。

または、ダイナミック・オブジェクト・メソッド %ToJSON() を使用して、一度に設定のリスト全体を表示することもできます。以下の例は、getServer() を使用して 3 つの既定の外部サーバ構成 (%Java Server%Python Server、または %DotNet Server) のすべての設定を取得し、%ToJSON() を使用してその情報を表示します。

既存の Java 外部サーバ定義の表示

この例では、既定の Java サーバ構成のすべてのフィールドを含む %DynamicObjectOpens in a new tab を返して表示します (わかりやすくするために改行を追加しています)。

write $system.external.getServer("%Java Server").%ToJSON()
   {"Name":"%Java Server",
   "FullName":"user3:IRIS_DS2:%Java Server","Type":"Java",
   "Port":4015,"LogFile":"","AllowedIPAddresses":"127.0.0.1",
   "ConnectionTimeout":5,"HeartbeatFailureAction":"R","HeartbeatFailureRetry":300,
   "HeartbeatFailureTimeout":30,"HeartbeatInterval":10,"InitializationTimeout":5,
   "UsePassphrase":0,"UseSharedMemory":1,"passphraseList":"",
   "SSLConfigurationServer":"","SSLConfigurationClient":"",
   "JVMArgs":"","JavaHome":"","ClassPath":""}

この例の最後の行は、Java 外部サーバによってのみ使用されるフィールドを表示します (各フィールドの詳細は “Java 用の外部サーバ構成の定義” を参照してください)。

既存の .NET 外部サーバ定義の表示

この例では、既定の .NET サーバ構成のすべてのフィールドを含む %DynamicObjectOpens in a new tab を返して表示します (わかりやすくするために改行を追加しています)。

write $system.external.getServer("%DotNet Server").%ToJSON()
   {"Name":"%DotNet Server",
   "FullName":"user3:IRIS_DS2:%DotNet Server","Type":".NET",
   "Port":4115,"LogFile":"","AllowedIPAddresses":"127.0.0.1",
   "ConnectionTimeout":5,"HeartbeatFailureAction":"R","HeartbeatFailureRetry":300,
   "HeartbeatFailureTimeout":30,"HeartbeatInterval":10,"InitializationTimeout":5,
   "UsePassphrase":0,"UseSharedMemory":1,"passphraseList":"",
   "SSLConfigurationServer":"","SSLConfigurationClient":"",
   "DotNetVersion":"C2.1","Exec32":0,"FilePath":""}

この例の最後の行は、.NET 外部サーバによってのみ使用されるフィールドを表示します (各フィールドの詳細は “.NET 用の外部サーバ構成の定義” を参照してください)。

既存の Python 外部サーバ定義の表示

この例では、既定の Python サーバ構成のすべてのフィールドを含む %DynamicObjectOpens in a new tab を返して表示します (わかりやすくするために改行を追加しています)。

write $system.external.getServer("%Python Server").%ToJSON()
   {"Name":"%Python Server",
   "FullName":"user3:IRIS_DS2:%Python Server","Type":"Python",
   "Port":4215,"LogFile":"","AllowedIPAddresses":"127.0.0.1",
   "ConnectionTimeout":5,"HeartbeatFailureAction":"R","HeartbeatFailureRetry":300,
   "HeartbeatFailureTimeout":30,"HeartbeatInterval":10,"InitializationTimeout":5,
   "UsePassphrase":0,"UseSharedMemory":1,"passphraseList":"",
   "SSLConfigurationServer":"","SSLConfigurationClient":"",
   "PythonOptions":"","PythonPath":""}

この例の最後の行は、Python 外部サーバによってのみ使用されるフィールドを表示します (各フィールドの詳細は “Python 用の外部サーバ構成の定義” を参照してください)。

既存の定義についてのその他の情報の取得

$system.external インタフェースの serverExists()getServers()、および getServerLanguageVersion() メソッドは、データベースに格納された外部サーバ定義についての情報を返します。これらはローカル・データベース・クエリであるため、これらのメソッドのいずれも外部サーバ接続を必要としません。

serverExists()

serverExists() メソッドは、外部サーバの定義が存在する場合に true (1) を返し、そうでない場合に false (0) を返します。メソッド・シグニチャは以下のとおりです。

   serverExists(serverName As %RawString) as %Boolean

以下に例を示します。

write $system.external.serverExists("foo")
   0
write $system.external.serverExists("%Java Server")
   1
getServers()

getServers() メソッドは、すべての外部サーバ定義の名前を含む %DynamicArrayOpens in a new tab を返します。メソッド・シグニチャは以下のとおりです。

   getServers() as %Library.DynamicArray

以下に例を示します。

set srv = $system.external.getServers()
write srv.%ToJSON()
   ["%DotNet Server","%IntegratedML Server","%JDBC Server","%Java Server",
   "%Python Server","%R Server","%XSLT Server","JavaGate","NetGate2","PyGate2"]

この例では、最後の 2 つの名前はユーザにより作成された定義です (慣例により、事前定義された既定の構成のみが "%" で始まる名前を持ちます)。

getServerLanguageVersion()

getServerLanguageVersion() メソッドは、指定した外部サーバ定義の外部言語バージョンの文字列を返します。メソッド・シグニチャは以下のとおりです。

   getServerLanguageVersion(serverName As %RawString) as %String

以下に例を示します。

write $system.external.getServerLanguageVersion("%Java Server")
   8

getServer() メソッドを呼び出して関連する情報を含むダイナミック・オブジェクトを取得することで、画面表示をより便利なものにできます (“getServer() を使用した構成設定の取得” を参照してください)。

set javaDef = $system.external.getServer("%Java Server")
set LanguageVersion = $system.external.getServerLanguageVersion(javaDef.Name)

write javaDef.Name_" language version is: "_javaDef.Type_" "_LanguageVersion
   %Java Server version is: Java 8

外部サーバ定義の作成と変更

$system.external インタフェースにより、createServer()modifyServer()、および deleteServer() メソッドを使用して外部サーバ定義を操作できます。これらのメソッドはデータベースに格納された定義を直接操作するため、これら 3 つのすべてにおいてデータベース・アクセスのために %Admin_Manage リソースが必要です。対応する外部サーバの実行中は、定義を変更できません。

createServer()

createServer() メソッドは、%DynamicObjectOpens in a new tab 内の設定のリストを受け入れ、新しいサーバ定義 (既定値を含む) を %DynamicObjectOpens in a new tab として返します。メソッド・シグニチャは以下のとおりです。

   createServer(serverDef As %DynamicObject) as %DynamicObject

入力リストで定義可能なフィールド・セットは、getServer() により返されるセットと同じです (既定の設定の完全なリストは、“getServer() を使用した構成設定の取得” を参照してください)。

入力定義では、すべての必須フィールド (NameType、および Port) の値と、カスタマイズするその他のフィールドの値を指定する必要があります。すべての入力値は、createServer() の呼び出し時に検証されます。以下のように、ダイナミック・オブジェクト・プロパティとして入力設定を指定できます。

set def = {}
set def.Name = "AnotherServer"
set def.Type = "Java"
set def.Port = 5309
set def.ClassPath = "C:/dev/pathname/"

または JSON 文字列として指定できます。

set def = {"Name":"MyNewServer","Type":"Java","Port":5309, "ClassPath": "C:/dev/pathname/"}

この例の名前が、% 文字で始まらないことに注意してください。慣例により、事前定義された既定の構成のみが、"%" で始まる名前を持ちます。

Name の値は一意である必要があります。そのため、この例では createServer() を呼び出す前に serverExists() を呼び出してテストします。

set badName = $system.external.serverExists(def.Name)
if ('badName) set srv = $system.external.createServer(def)
write srv.%ToJSON()
   {"Name":"MyNewServer","FullName":"user3:IRIS_DS2:MyNewServer","Type":"Java",
   "Port":5309,"LogFile":"","AllowedIPAddresses":"127.0.0.1",
   "ConnectionTimeout":5,"HeartbeatFailureAction":"R","HeartbeatFailureRetry":300,
   "HeartbeatFailureTimeout":30,"HeartbeatInterval":10,"InitializationTimeout":5,
   "UsePassphrase":0,"UseSharedMemory":1,"passphraseList":"",
   "SSLConfigurationServer":"","SSLConfigurationClient":"",
   "JVMArgs":"","JavaHome":"","ClassPath":"C:/dev/pathname/"}

この例では 4 つの必須フィールドと ClassPath のみが指定されていますが、返されるダイナミック・オブジェクトにはすべてのフィールドが含まれ、必要に応じて既定値を割り当てています。

modifyServer()

modifyServer() メソッドは、%DynamicObjectOpens in a new tab に含まれる設定のリストを受け入れ、変更された定義を含む %DynamicObjectOpens in a new tab を返します。メソッド・シグニチャは以下のとおりです。

   modifyServer(serverDef As %DynamicObject) as %DynamicObject

入力ダイナミック・オブジェクトは、JSON 文字列として、または (この例のように) 一連のプロパティ定義として指定できます。

set mod = {}
set mod.Name = "%Java Server"
set mod.JavaHome = "/Library/Java/Contents/Home/"

[名前] および [タイプ] 以外のすべてのフィールドで新しい値を指定できます。このメソッドは既存の定義に対して機能するため、これらのプロパティは変更できません。

modifyServer() は、対応する外部サーバの実行中に呼び出しを試行すると、エラーをスローします。isServerRunning() を使用してサーバ上でチェックを実施し、stopServer() を使用して必要に応じてサーバを停止します (詳細は “$system.external インタフェースを使用した接続の制御” を参照してください)。

set isRunning = $system.external.isServerRunning(mod.Name)
if (isRunning) $system.external.stopServer(mod.Name)
set modifiedserver = $system.external.modifyServer(mod)

このメソッドは、変更された定義のすべてのフィールドを含むダイナミック・オブジェクトを返します。

write modifiedserver.%ToJSON()
   {"Name":"%Java Server","FullName":"user3:IRIS_DS2:%Java Server","Type":"Java",
   "Port":4015,"LogFile":"","AllowedIPAddresses":"127.0.0.1",
   "ConnectionTimeout":5,"HeartbeatFailureAction":"R","HeartbeatFailureRetry":300,
   "HeartbeatFailureTimeout":30,"HeartbeatInterval":10,"InitializationTimeout":5,
   "UsePassphrase":0,"UseSharedMemory":1,"passphraseList":"",
   "SSLConfigurationServer":"","SSLConfigurationClient":"",
   "JVMArgs":"","JavaHome":"/Library/Java/somename/Contents/Home/","ClassPath":""}
deleteServer()

deleteServer() メソッドは、既存の外部サーバ定義を削除し、削除された設定を含むダイナミック・オブジェクトを返します。メソッド・シグニチャは以下のとおりです。

   deleteServer(serverName As %String) as %DynamicObject

deleteServer() は、対応する外部サーバの実行中に呼び出しを試行すると、エラーをスローします。isServerRunning() を使用してサーバ上でチェックを実施し、stopServer() を使用して必要に応じてサーバを停止します (詳細は “$system.external インタフェースを使用した接続の制御” を参照してください)。

set oldServer = "MyOldServer"
set isRunning = $system.external.isServerRunning(oldServer)
if (isRunning) $system.external.stopServer(oldServer)

set deletedDef = $system.external.deleteServer(oldServer)
write $system.external.serverExists(oldServer)
   0

このメソッドは、削除された定義のすべてのフィールドを含むダイナミック・オブジェクトを返します。

write deletedDef.%ToJSON()
   {"Name":"MyOldServer","FullName":"user3:IRIS_DS2:MyOldServer","Type":"Java",
   "Port":5309,"LogFile":"","AllowedIPAddresses":"127.0.0.1",
   "ConnectionTimeout":5,"HeartbeatFailureAction":"R","HeartbeatFailureRetry":300,
   "HeartbeatFailureTimeout":30,"HeartbeatInterval":10,"InitializationTimeout":5,
   "UsePassphrase":0,"UseSharedMemory":1,"passphraseList":"",
   "SSLConfigurationServer":"","SSLConfigurationClient":"",
   "JVMArgs":"","JavaHome":"","ClassPath":""}
FeedbackOpens in a new tab