検索

Article
· Nov 13, 2020 2m read

Interoperability管理データを削除(パージ)する方法

これは InterSystems FAQ サイトの記事です。
 

管理ポータルから行う手動のパージ(Purge)と、タスクを利用する方法があります。

データを手動でパージするには、[Interoperability] > [管理] > [管理データの削除] ページを使用します。
(このページではバックグラウンド・ジョブとしてパージを実行しますので、ページがタイムアウトしても問題ありません。)

タスクでパージする場合は、[システムオペレーション] > [タスクマネージャ] > [新しいタスク] の画面でInteroperabilityプロダクションのネームスペースを指定し、タスクタイプに「Ens.Util.Tasks.Purge」を指定します。

タスクの場合は、「TypesToPurge」の項目で以下のパージ対象タイプを選択できます(図参照)。

  • イベント・ログ (Events)
  • メッセージ (Messages)
  • ビジネス・プロセス・ログ (Business Processes)
  • ビジネス・ルール・ログ (Rule Logs)
  • I/O アーカイブ・ログ (I/O Logs)
  • モニター・カウンター (Host Monitor Data)
  • 管理対象アラート (Managed Alerts)  


 


詳細は、以下のドキュメントをご参照ください。

プロダクション・データのパージ【IRIS】


※注意

2022.1以降のバージョンでは、プロダクションの管理データを削除するためには、新しい特権 "%Ens_PurgeSchedule:USE" リソースが必要となりました。
このリソースは "%EnsRole_Administrator" ロールで付与されます。また、カスタムロールに追加することも可能です。  
詳細は、こちらのドキュメント をご覧ください。

 

enlightened【ご参考】
Ensembleでの孤立メッセージ

Discussion (0)0
Log in or sign up to continue
Discussion (1)0
Log in or sign up to continue
Article
· Oct 25, 2020 2m read

InterSystems IRIS が正常に動作していることを Windows から確認する際の監視対象プロセス名

これは、InterSystems FAQサイトの記事です

Windowsでは、以下イメージ名のプロセスを監視対象としてください。

[irisdb.exe]
重要なシステムプロセスが含まれています。
※ 監視対象にすべき重要なシステムプロセスを確認する方法は、添付をご参照ください。

[IRISservice.exe]
IRISインスタンスをサービス経由で扱う為のプロセスになります。
このプロセスが終了すると、IRISインスタンス自体には直接影響はありませんが、IRIS の停止(サービスの停止)ができなくなります。

[ctelnetd.exe]
%Service_Telnet サービスが有効になっている場合に起動し、Telnet 経由で IRIS へアクセスする為のデーモンプロセスになります。
このプロセスが終了すると、IRIS インスタンスへの Telnet アクセスができなくなります。

[iristrmd.exe]
%Service_Console サービスが有効(既定で有効)になっている場合に起動し、サーバのローカル端末(サーバの IRIS ランチャーからターミナル)より IRIS へアクセスする為のデーモンプロセスです。
このプロセスが終了すると、IRIS インスタンスへのローカル端末アクセスができなくなります。

[iristray.exe]
システムトレイに表示される IRIS ランチャー 用プロセスです。
このプロセスの有無は、IRIS インスタンスには影響はありませんので特に監視対象の必要はありません。

[licmanager.exe] 
マルチサーバタイプのライセンスを使用している際に起動されるライセンスサーバプロセスです。

[httpd.exe]
管理ポータル用のApacheのプロセスです。

IRIS 内部のプロセス一覧を取得するには、管理ポータルの以下メニューや
  [菅理ポータル] > [システムオペレーション] > [プロセス]


プロセス一覧は、ターミナルを起動して、コマンドラインで確認することもできます。

do ALL^%SS


詳細は以下のドキュメントをご覧ください。
IRISプロセスについて

Discussion (0)0
Log in or sign up to continue
Article
· Oct 25, 2020 2m read

%Net.HttpRequest クラスを使用して https のアクセスでエラーが発生したときに確認したいこと

これはInterSystems FAQ サイトの記事です。

%Net.HttpRequest クラスの SSLConfiguration プロパティに SSL/TLS 構成の「クライアント」構成名が指定されているかご確認ください。

%Net.HttpRequest クラスを使用して、https の url にアクセスするためには、以下のドキュメントに記載されている SSL/TLS 構成 の「クライアント」構成を作成して指定した名前を SSLConfiguration プロパティに指定する必要があります。

SSL/TLS構成のクライアント構成方法

管理ポータルの [システム管理] > [セキュリティ] > [SSL/TLS構成] メニューを開き、「構成名」に任意名を設定し、「保存」ボタンをクリックします(そのほかの構成パラメータは、デフォルト値で作成します)。

 

実行例は以下の通りです(https://www3.nhk.or.jp/news/ にアクセスしています)。

set httprequest=##class(%Net.HttpRequest).%New()
set httprequest.Https=1
set httprequest.Server="www.nhk.or.jp"
set httprequest.SSLConfiguration="test1"  //設定したSSL/TSL構成名を指定
set st=httprequest.Get("/news/")
write $ZCVT(httprequest.HttpResponse.Data.Read(1000),"I","UTF8")  // 取得できたレスポンスの一部を表示
<!DOCTYPE HTML>
<!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7 eq-ie6"> <![endif]-->
<!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8 eq-ie7"> <![endif]-->
<!--[if IE 8]>         <html class="no-js lt-ie9 eq-ie8"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# website: http://ogp.me/ns/website#">
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="X-UA-Compatible" content="requiresActiveX=true" />

<title>NHKニュースサイト 日本全国・世界の速報、最新情報|NHK NEWS WEB</title>
<meta name="robots" content="noodp,noarchive">
<meta name="keywords" content="NHK,ニュース,NHK NEWS WEB" />
<meta name="description" content="NHKのニュースサイト「NHK NEWS WEB」。国内外の取材網を生かし、さまざまな分野のニュース をいち早く、正確にお伝えします。ニュース

Discussion (0)1
Log in or sign up to continue
Article
· Oct 22, 2020 11m read

VSCode を使ってみよう!

皆さんこんにちは!Virtual Summit ご覧いただけていますでしょうか。

Virtual Summit で VSCode ObjectScript 用エクステンションバージョン1.0 のリリースが👏正式発表👏されましたので、さっそく利用方法を投稿してみました。

来週の技術セッションではさらに詳しい説明があると思いますので、ご登録がまだの方は、ぜひご登録ください!
(ご登録いただくとオンデマンド配信でいつでもセッションのビデオを視聴できます。機械翻訳ではありますがビデオには日本語字幕が付いています。)

この記事では、以下の操作方法をご紹介します。

  1. ObjectScript用エクステンションのインストール方法
  2. サーバへ接続する 👉《2025/8/7:更新》GUI を使って接続情報を作成できる図解を追加しています
  3. クラス定義を作ってみる
  4. ルーチンを作ってみる
  5. デバッグを実行してみる 👉《2024/1/17:更新》最新のObjectScriptエクステンションに合わせて内容を更新しました。
  6. Webサーバ使用時:デバッグの注意点 👉《2024/1/17追加》プライベートWebサーバではない通常のWebサーバを使用する場合の注意点を追加しました。

操作前の準備

VSCodeのインストール を行います。

インストール後、VSCode で作成するクラス定義(*.cls)やルーチン(*.mac や *.inc)用ファイルを配置するためのワークスペース(作業環境)用フォルダを作成します。作成が終わったら VSCode を開き、[File > Open Folder...] から作成したフォルダを選択します。

VSCodeのワークスペースを開いた図

 

《2024/1/18追記》InterSystems製品のバージョン2023.1以下を利用されている環境でプライベートWebサーバ(※)ではなくWebサーバ(IISやApache)を利用してVSCodeから接続する場合、Webサーバにパスを追加する必要があります。

詳細は👉「Webサーバ(IISやApache)を利用してVSCodeからInterSystemsサーバに接続するときの注意点(バージョン2023.1以下)」をご参照ください。

(※)InterSystems製品インストール時、簡易的にインストールされたApacheで52773番ポートでアクセスするWebサーバ

 

 

1、ObjectScript用エクステンションのインストール

 エクステンションのアイコン  をクリックし「InterSystems」で検索し   をインストールします。

インストールが完了すると  のアイコンが左端に表示されます。

 

2、サーバへ接続する 

《2025/8/7 現在の VSCode の GUI に合わせて接続情報設定方法追加しました》

アイコンをクリック > SERVERS 行にある + をクリックします(Add Server と表示されます)。

最初に、設定を反映する対象を選択します。

Global:ユーザ設定で VSCode 全体に反映される設定です。

Workspace:VSCode で開いているワークスペース内のみに影響を受ける設定です。ワークスペースに .vscodeディレクトリを作成し settings.json に設定を保存します。

例では、Workspace を選択した設定で説明します。

 

この後の図解の流れは以下の通りです。

1) 接続名の設定:test

2) 説明の記述(オプションのため空欄)

3) 接続したい InterSystems 製品にアクセスするための Web サーバホスト名(または IP アドレス)※ REST でアクセスしています。

4) 接続ポート番号の指定

5) プリフィックスの指定(インスタンス名の小文字を設定します。先頭には / を付けます。例:/iris)

6) 接続時のユーザ名を指定します(InterSystems 製品内のユーザ名を指定 例:SuperUser)

7) http か https を指定

 

ここまででサーバ接続情報の設定が完了しました。

実際に VSCode から接続するためには、ネームスペースの指定が必要です。

手順は以下の通りです。

[EXPLORER] の枠にある をクリックします。

クリック後、作成した接続名が表示されるので、選択します(図では test を選択)。

その後、接続時にユーザ名とパスワードによる認証を行うため「InterSystems Server の認証情報を使用してサイインすることを許可する」かどうかの確認が出ますので、「Allow」ボタンをクリックします。

パスワード入力欄が設定したユーザに対して表示されるので入力します。(例では SuperUser のパスワードを入力しています)

最後に、ネームスペースの選択一覧が出てますので、接続したいネームスペースを選択して完了です。

 

注意:SERVERS の枠の部分はサーバ側編集を行うときに利用するメニューです。この記事では説明を割愛しています。詳細は、「VSCode を使ってみよう (2021年4月20日版)」の「3. クラス定義やルーチンを編集する」をご参照ください。

 

ここまでの設定で作成された settings.jsonは、ワークスペースの .vscodeディレクトリ以下にあります。

接続確認手順については、こちら👉

 

以下、settings.jsonを手動で作成する場合の手順です。

《2024/2/1現在のバージョンに合わせて修正しています》

メニューから File > Preferences > Settings (macOS では Code > Preferences > Settings) を選択して、VS Code Settings Editor を開きます。

検索欄に、objectscript を記入し、検索欄すぐ下にある [Workspace] を選択します。

Extensions > InterSystems ObjectScript を選択し、画面右に表示される設定項目の中から「ObjectScript: Conn」にある「Edit in settings.json」をクリックします。

 

開いたワークスペースのフォルダ以下に [.vscode] フォルダが用意され、settings.json が作成されます(このファイルは、ワークスペースに対するサーバ接続情報を記述できる設定ファイルです)。

settings.json  を開くと、"intersystems.servers":{} と、”objectscript.conn”: {}  の記述があり、"intersystems.servers":{} に接続したいサーバ情報を名前を付けて記述し ”objectscript.conn”: {}  には "intersystems.servers":{} で名付けたサーバ名を使用して接続指定を行います。

接続先を簡単に切り替えることができるように、"intersystems.servers":{} には、複数の接続先サーバ情報を記述できます。

以下、2つの接続先情報(test1、test2)を指定した設定例です。

画面例では、test1の接続情報を使用して接続します。

接続したい IRIS のホスト名(host)、Webサーバポート番号(port)、httpかhttpsか(schema)、接続時に使用するユーザ名(username)、接続サーバ情報(server)、ネームスペース(ns)、"active" : true を設定し保存します(Ctrl + s で保存できます)。

コミュニティエディションを除くプライベートWebサーバを使用しない2023.2以降のバージョンでは、"pathPrefix" : "/インスタンス名" の指定も必要となります。詳しくはこちらの記事をご参照ください。👉[プライベートWebサーバを使用しないバージョンの新規インストール/アップグレード:概要]

{
    "intersystems.servers": {
        "test1":{
            "webServer": {
                "host": "127.0.0.1",
                "port": 52773,
                "scheme":"http"
            },
            "username": "SuperUser"
        },
        "test2":{
            "webServer": {
                "host": "127.0.0.1",
                "pathPrefix": "/iris",
                "port": 80,
                "scheme": "http"
            },
            "username": "SuperUser"
        }
    },
    "objectscript.conn": {
        "active": true,
        "server": "test1",
        "ns": "USER"
    }
}

 

なお、以下のように、”objectscript.conn”: {}  の設定だけでも接続できますが、接続ユーザ名に対するパスワードをsettings.jsonに記述しておく方法となります。

{
    "intersystems.servers": {},
    "objectscript.conn": {
        "active": true,
        "host": "localhost",
        "port": 52773,
        "ns": "USER",
        "username": "_SYSTEM",
        "password": "SYS"
    }
}

 

接続できると、VSCode左下に以下のように接続情報が表示されます。

接続までの手順は以下の通りです。

初回、パスワードを設定しても接続できない場合は、 クリック後、画面左下に表示される[ObjectScript](下図)をクリックし、画面上部中央に表示されるメニューから「Toggle Coonection」をクリックし、接続できるかご確認ください。

 

接続が完了すると、下図のように各種メニューを表示できます。

メニューの [Refresh Connection] をクリックすると最新情報を取得できます。

 

 

接続完了後、 をクリックすると、サーバ内のクラス/ルーチン/インクルードファイルなどの情報を確認できます。(サーバ側編集モードを有効にしない限り、サーバ側コードは read-only で開きます)

サーバ情報は読み取り専用の為、VSCode 上で編集したい場合は、ソースコードを右クリックし「Export」を選択します。

Export選択後、ワークスペース > src  以下にソースコードがコピーされます。

※システムコードは上書きしないようにご注意ください。

Export先ディレクトリは "objectscript.export": {} の設定で変更できます。デフォルトは src が設定されています。

以下のように "folder" の設定を使用して別ディレクトリに変更することができます。

    "objectscript.export": {
        "folder": "mydir",
        "addCategory": false,
        "map": {},
        "atelier": true,
        "generated": false,
        "filter": "",
        "exactFilter": "",
        "category": "*",
        "noStorage": false,
        "dontExportIfNoChanges": false,
        "maxConcurrentConnections": 0,
        "mapped": true
    }

 

3、クラス定義を作ってみる

早速、クラス定義を作成し、HelloWorld! の文字列を出力するメソッドを作ります。

 をクリックし、ワークスペースに戻ります。

開いたワークスペースに、パッケージ名と同名のフォルダを用意します。例では、Test としています。

定義例)

Class Test.Class1 Extends %RegisteredObject
{

ClassMethod Hello()
{
    write "Hello world! こんにちは!"
}

}

[Ctrl + スペース] を押すと以下のような入力候補が出ます。

コードの作成が完了したら、Ctrl + s で保存+コンパイルを行います。(Outputウィンドウを表示しておくとコンパイル結果が確認できます。)

ターミナルを起動し、クラスメソッドの実行を試します。

USER>do ##class(Test.Class1).Hello()
Hello world! こんにちは!
USER>

メモ:コンテナやLinux上のIRISに対しては、iris session インスタンス名 でIRISにログインできます。

例)

irisowner@0c6e3bc48ff6:~$ iris session IRIS
ノード: 0c6e3bc48ff6 インスタンス: IRIS

USER>

 

4、ルーチンを作ってみる

ルーチンの作成についての注意事項は、橋本さんに投稿いただいたこちらの記事がとても参考になります。ぜひご参照ください。

ワークスペース以下にルーチン用ファイルを作成します。拡張子は mac とします。

ルーチンでも [Ctrl + スペース] を押すと入力候補が表示されます。

ルーチン実行例は以下の通りです。

USER>do hello^First()
こんにちは、ルーチンです
USER>

 

5、デバッグの実行

《2024/1/17 時点の操作方法に合わせ図解など更新しています》

クラス定義の場合、以下のようにメソッド定義の直前に[Debug] と表示されます。[Debug] をクリックするとデバッグが開始するので、ブレークポイント(F9)を事前に設定しておきます。

[Debug]をクリックすると、VSCodeの画面上部にデバッグ用アイコン  が表示されます。

ステップ実行した時の状態は以下の通りです。(画面左側に実行中の変数などの一覧が表示されます)

 

ルーチンの場合もラベル名の上に表示される[Debug]をクリックすることで同様の手順でデバッグを開始できます。

 

6、Webサーバ使用時:デバッグの注意点

※ プライベートWebサーバ(=InterSystems製品インストール時、簡易的にインストールされたApacheで52773番ポートでアクセスするWebサーバ)使用時は以下の変更は不要です。

Webサーバ(IISやApache)を利用している環境でVSCodeからObjectScriptのデバッグを実行する際、Webソケットモジュールがデフォルトでは有効になっていないため以下のようなエラーが表示されます。

 
(WebサーバのWebソケットモジュールが有効になっていないため、デバッグセッションの開始が失敗した旨のエラーが表示されます)

 

以下、IISとApacheでのWebソケットモジュールの有効化方法をご紹介します。

IISの場合

Webサーバ(IIS)のサービスを選択した状態で、「アプリケーション開発」以下にある「WebSocketプロトコル」をチェックします。

また、「HTTP共通機能」以下にある「HTTPリダイレクト」もチェックします。

 

 

Windows10での追加の場合は下図の通りです。

 

 

Apacheの場合 

WebSocketモジュールを有効化するため、以下実行します。(設定変更後、Apacheを再起動してください。)

$ sudo a2enmod proxy_wstunnel
Considering dependency proxy for proxy_wstunnel:
Enabling module proxy.
Enabling module proxy_wstunnel.
To activate the new configuration, you need to run:
  systemctl restart apache2
$ sudo systemctl restart apache2
$
1 Comment
Discussion (1)1
Log in or sign up to continue