検索

クリアフィルター
記事
Megumi Kakechi · 2023年11月16日

InterSystems IRIS, IRIS for Health, InterSystems Studio バージョン 2023.3 リリースのご案内

インターシステムズは InterSystems IRIS data platform、InterSystems IRIS for Health、InterSystems IRIS Studio のバージョン 2023.3 をリリースしました。 リリースハイライト 2023.3 は Continuous Delivery(CD)リリースです。2023.3 には多くのアップデートや拡張機能が追加されています。 クラウドとオペレーションの強化 ジャーナルアーカイブ: このリリースから、システム管理者は完了したジャーナルファイルのアーカイブ先を設定できるようになりました。設定すると、ジャーナルファイルの切り替え後、完了したジャーナルファイルは自動的に圧縮 (Journal Compression機能を使用) された後、設定したアーカイブ先に移動されます。アーカイブされたジャーナルファイルは、ローカルのジャーナルディレクトリから自動的に削除されるため、ジャーナルファイルの書き込みに使用される高性能ストレージ層の全体的な占有量を削減し、InterSystems IRIS の導入におけるトータルの所有コストを削減することができます。 アナリティクスとAIの強化 IntegratedMLでの時系列予測のサポート:InterSystems IRIS 2023.2で実験的機能として導入されたIntegratedMLでの時系列モデルのサポートが、実運用で完全にサポートされるようになりました。 開発者向け機能の強化 ビジネスルールエディタの強化:ビジネスルールエディタは継続的に改良されており、今回のリリースから任意のテキストの検索がサポートされ、ルールセット全体で一致するものがハイライトされるようになりました。ルールが複数の変換を呼び出す場合、その順序を設定できるようになりました。さらに、お客様からのフィードバックに基づき、ユーザーエクスペリエンスを改善しました。例えば、すべての編集モーダルの幅を広げ、テキストが切れにくくしました。 速度、スケールとセキュリティの強化 グローバルサイズ見積もりの高速化:このリリースでは、グローバルの合計サイズを高速に見積もれる新しいアルゴリズムが導入されました。このアルゴリズムは、包括的なブロックスキャンではなく、確率的サンプリングを使用します。この新しいアルゴリズムでは、数百GBのグローバルサイズに対して、正確な見積もり値(誤差は実際のサイズの5%以内)を数秒で提供できます。これは、既存の ^%GSIZE、%GlobalEdit、および %GlobalQuery インタフェースの新しいオプションとして使用できます。 ObjectScript ランタイムの高速化:ObjectScript ルーチンでパブリック変数を使用する場合、InterSystems IRIS カーネルは、変数をルーチンに固有のメモリ内シンボルテーブルに登録する必要がありました。InterSystems IRIS 2023.3 以降、このシンボルテーブルは、パブリック変数が最初に参照されたときのみ追加されるようになりました。これは、ルーチンで実際に使用される変数のみがシンボルテーブルに追加されることを意味し、シンボルテーブルの構築コストを大幅に削減することができます。これは内部メモリ管理に対する完全に透過的な変更で、パブリック変数を多用するObjectScriptコードでは顕著なパフォーマンスの向上が期待できます。 相互運用性とFHIRの強化 ベースFHIR R5のサポート:このリリースはFHIR R5(Fast Healthcare Interoperability Resources Release 5)の基本実装をサポートします。FHIR R5 によって、医療データの相互運用性と標準化において大きな飛躍が可能となります。本サポートは、ユーザの皆様に最新技術の進展を提供するという弊社のコミットメントを表しています。FHIR R5は、最新の医療データ標準をサポートするための当社の継続的な取り組みにおいて、重要なマイルストーンとなります。 R5には何が含まれるのでしょうか? 55の新しいリソースが追加されましたが、そのほとんどは多くのユースケースにすぐに関連するものではありません。 いくつかのリソースは成熟度レベル 5 に昇格しました。これは、下位互換性が保証されるバージョンの中では実質的に最新のレベルとなります。FHIRは非常に安定したものに近づいています。 新しいプロパティの変更とデータタイプは、ビルダーが問題を解決するのに役立ちます。 FHIRプロファイル検証:FHIRプロファイル検証は、Fast Healthcare Interoperability Resources(FHIR)プロファイルへの準拠を保証することで、医療データの精度と信頼性を強化するように設計されています。この機能により、医療従事者、開発者、および組織は、FHIRエコシステム内でのデータ交換を合理化し、相互運用性を向上させ、データ品質を維持できるようになります。 ドキュメント ハイライトされた機能の詳細は以下のリンクにあるドキュメント(英語)をご覧ください。 InterSystems IRIS 2023.3 ドキュメント、リリースノート、非推奨、廃止された機能 InterSystems IRIS for Health 2023.3 ドキュメント、リリースノート、 非推奨、廃止された機能 アップグレードチェックリスト も併せてご確認ください。 ソフトウェアの入手方法 CDリリースには、サポートされているすべてのプラットフォーム用のクラシックインストールパッケージと、Dockerコンテナ形式のコンテナイメージがあります。サポートされるプラットフォームのリストについては ドキュメント(英語) を参照してください。 インストーラパッケージ 各製品のインストーラパッケージは WRC Directの 製品ダウンロードページ から入手できます。評価サービスのサイトは こちら になります。このバージョンの InterSystems IRIS Studio が利用可能です。WRC Direct コンポーネントページ から入手できます。 コンテナイメージ InterSystems IRIS、IRIS for Health および関連コンポーネントのエンタープライズエディション、コミュニティエディションのコンテナイメージはInterSystems コンテナレジストリ(ICR) のウェブインターフェース から入手できます。 このリリースのビルド番号は 2023.3.0.254.0 です。
記事
Mihoko Iijima · 2020年6月28日

【はじめての InterSystems IRIS】セルフラーニングビデオ 索引

この連載記事では、InterSystems IRIS をはじめて操作される方を対象に、IRIS のインストールから、開発環境作成、各種言語からのアクセス方法についてご紹介していきます。 以下3つのビデオは、基本操作をご紹介するビデオです。既にご存知の内容が多い場合は、各種アクセス方法をご紹介するビデオからぜひご参照ください。 基本操作編ビデオシリーズ その1:InterSystems IRIS Community Edition をインストールしてみよう! Windows、Linux、クラウドのマーケットプレイス、インターシステムズのプライベートクラウド での InterSytems IRIS Community Edition インストール方法を解説しています。 その2:InterSystems IRIS で開発をはじめよう! IRIS で開発を始めるために必要な準備(管理ポータルの使い方、ネームスペースの作成、IDEからIRISへ接続する方法)をご説明しています。 IDE は VS Code /スタジオの両方の操作方法をご紹介しています。 その3:IRIS でクラス定義を作ろう(オブジェクト操作の練習) IRIS でのクラス定義の作成方法、ObjectScript でインスタンスの生成と永続化(保存)の方法について解説しています。 このビデオでも、VS Code /スタジオ 両方の操作方法をご紹介しています。 以下、各種アクセス方法を利用して IRIS へ接続する方法を解説するビデオです。近日公開予定のビデオもあり、これからどんどん増やしていく予定です! アクセス編ビデオシリーズ Python の NativeAPI に挑戦 Python から InterSystems IRIS へ接続する方法の1つである「Native API」(※) の利用方法ご説明します。 (※) Python からのアクセスは、Native API の他に、PyODBC を利用した接続方法もあります。PyODBC の利用についてはもう1つのビデオでご紹介しています。 Python から PyODBC を使って IRIS に接続してみよう Python から InterSystems IRIS へ接続する方法の1つである「PyODBC」(※) の利用方法をご説明します。 (※) Python からのアクセスは、PyODBCの他に、Native API を利用した接続方法もあります。Native APIを利用してIRISのグローバル変数にアクセスする方法については、もう1つのビデオでご紹介しています。 IRIS で REST サーバを作ってみよう! IRIS で作成する REST サーバを仕組みの解説、2種類(手動/APIファースト)のディスパッチクラス作成方法の解説、 また IRIS での JSON 操作方法についての解説ビデオをご用意しています。 (近日公開予定)Java から IRIS に接続してみよう (近日公開予定).NET から IRIS に接続してみよう Embedded Python シリーズ InterSystems IRIS のデータベースに組み込まれたPython(=Embedded Python)の機能概要から使い方を解説するセルフラーニングビデオとサンプルコードをご用意しています。 詳細は 【はじめてのInterSystems IRIS】Embedded Python セルフラーニングビデオシリーズ公開! の記事をご参照ください。 お好みの場所、お好みのIDE、お好みの内容から IRIS を始めてみてください!
お知らせ
Yoichi Miyashita · 2021年4月26日

InterSystems 製品 2021.1 プレビューリリースのご案内

インターシステムズは、以下のプレビューバージョンをリリースしました。 InterSystems IRIS 2021.1 preview InterSystems IRIS for Health 2021.1 preview HealthShare Health Connect 2021.1 preview 来月に予定されている一般提供開始に先立ち、このプレビューリリースにて新製品の感想を皆様からお聞かせいただきたいと思います。InterSystems IRIS Data Platform 2021.1 は、エクステンデッド・メンテナンス(EM)リリースです。前回のEMリリースである2020.1以降、継続的なデリバリー(CD)リリースで多くの重要な新機能や拡張機能が追加されています。CDリリースの概要については、2020.2、2020.3、2020.4のリリースノートを参照してください。 このプレビューリリースのビルド番号は、2021.1.0.205.0 です。 【新機能のご紹介】本リリースの機能強化により、開発者は選択した言語で高速かつ堅牢なアプリケーションをより自由に構築できるようになり、ユーザーは新しい高速な分析機能により大量の情報をより効果的に利用できるようになります。 InterSystems IRIS 2021.1では、InterSystems IRIS を拡張するアドオン製品であるInterSystems IRIS Adaptive Analytics を導入することで、ビジネス・インテリジェンス(BI)ツールの選択に関わらず、分析を行うエンド・ユーザに使いやすさ、柔軟性、拡張性、効率性を提供することができます。Adaptive Analytics は、アナリティクスに適したビジネス・モデルを定義し、バックグラウンドで暫定的なデータ構造を自律的に構築・維持することで、このモデルに基づいて実行されるアナリティクス・クエリー・ワークロードを透過的に加速することができます。 InterSystems IRIS Adaptive Analytics(英語) その他、今回のリリースで新たに追加された注目の機能は以下の通りです。 外部言語ゲートウェイが統合され、管理性が向上しました。また、RとPython が追加され、選択した言語で堅牢でスケーラブルなサーバサイドコードを構築できるようになりました。 InterSystems Kubernetes Operator(IKO)は、ご使用環境に宣言的な構成管理と自動化を提供し、新たに InterSystems System Alerting &Monitoring(SAM)の導入もサポートします。 InterSystems API Manager v1.5:ユーザ・エクスペリエンスの向上と Kafka のサポートを含みます。 SQL開発者が純粋なSQL環境で直接機械学習モデルを構築して展開できます。 IntegratedMLの提供が開始されました。 InterSystems IRIS for Health 2021.1 には、InterSystems IRIS のすべての機能強化が含まれています。さらに、このリリースでは、FHIRデータに対してFHIRPath形式を使用して解析・評価をするためのAPIを通じて、FHIR®規格に対するプラットフォームの広範なサポートをさらに拡張しています。これに加えて、FHIRプロファイル、FHIR R4トランスフォーム、FHIRクライアントAPIのサポートなど、2020.1以降にリリースされた重要なFHIR関連機能も含まれます。 【開発環境】InterSystems IRIS Studio 2021.1 は、Microsoft Windows で動作するスタンドアロンの統合開発環境です。InterSystems IRIS と IRIS for Health、HealthShare Health Connect 2021.1 以前で動作します。 あわせて InterSystems IRIS は、VSCode-ObjectScript プラグインを利用してVisual Studio Code でのアプリケーション開発もサポートします。Visual Studio Code は Microsoft Windows, Linux, MacOS で動作します。 【キットのご案内】EMのリリースには、サポートされているすべてのプラットフォーム用のインストールパッケージと、OCI(Open Container Initiative):別名Dockerコンテナ形式 のコンテナイメージが付属しています。 (1) インストールパッケージとプレビューキー以下のWRCプレビューダウンロードサイトから入手いただけます。 (2) コンテナイメージ - エンタープライズエディションInterSystems コンテナレジストリ(ICR)から、次のコマンドで入手いただけます。 docker pull containers.intersystems.com/intersystems/iris:2021.1.0.205.0 docker pull containers.intersystems.com/intersystems/irishealth:2021.1.0.205.0 ICR のイメージ一覧はドキュメント(英語)をご覧ください。 (3) コンテナイメージ - コミュニティエディションDocker Store(※) から、次のコマンドで 入手いただけます。 docker pull store/intersystems/iris-community:2021.1.0.205.0 docker pull store/intersystems/iris-community-arm64:2021.1.0.205.0 docker pull store/intersystems/irishealth-community:2021.1.0.205.0 docker pull store/intersystems/irishealth-community-arm64:2021.1.0.205.0 ※Docker Storehttps://hub.docker.com/_/intersystems-iris-data-platform 上記(2)(3)のコンテナイメージは全て、WRCプレビューダウンロードサイトからTAR 形式で入手いただけます。 (4) Studio, ODBC ドライバ, Web GatewayInterSystems IRIS Studio, ODBC ドライバ および Web Gateway などの各種単体コンポーネントは、WRCプレビューダウンロードサイトから入手いただけます。 【製品ドキュメント】ドキュメント(英語)は以下の通りです。 (1) サポートプラットフォーム (2) InterSystems IRIS 2021.1・ドキュメント・リリースノート (3) InterSystems IRIS for Health 2021.1・ドキュメント・リリースノート (4) HealthShare Health Connect 2021.1 ・ドキュメント・リリースノート (5) InterSystems IRIS 2020.2 リリースノート (6) InterSystems IRIS 2020.3 リリースノート (7) InterSystems IRIS 2020.4 リリースノート
記事
Megumi Kakechi · 2021年5月13日

InterSystems IRIS Data Platform がWeb開発に適している理由

これは InterSystems FAQ サイトの記事です。 Webアプリケーションの開発・運用には、高性能・高スケーラビリティ・開発生産性の良さが求められます。 IRIS Data Platformには、高性能で軽量なデータベースエンジンとそのエンジンの性能を最大限活用するアプリケーションサーバ機能、および、Webアプリケーションを迅速に開発するためのREST/JSON対応、API管理機能が用意されています。 さらに、マルチコア・マルチCPUシステムに最適化したアーキテクチャや、複数サーバでのスケールアウト手法による高スケーラビリティを提供するECP、シャーディングと呼ばれる技術を提供します。
記事
Mihoko Iijima · 2021年4月30日

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

これは InterSystems FAQ サイトの記事です。 監視対象プロセスについては以下の表をご参照ください。 ※利用環境によって、出現しないプロセスもあります。 ps コマンドによるプロセス名 管理ポータルプロセスの一覧のルーチン名 プロセス数 [IRISインストールディレクトリ]/bin/irisdb -cc -s. -B -C[IRISインストールディレクトリ]/iris.cpf*[IRISインスタンス名] CONTROL 1 [IRISインストールディレクトリ]/bin/irisdb WD WRTDMN 1 [IRISインストールディレクトリ]/bin/irisdb GC CARCOL 1 [IRISインストールディレクトリ]/bin/irisdb JD JRNDMN 1 [IRISインストールディレクトリ]/bin/irisdb AUX 1 1 [IRISインストールディレクトリ]/bin/irisdb AUX 2 1 [IRISインストールディレクトリ]/bin/irisdb AUX 3 1 [IRISインストールディレクトリ]/bin/irisdb AUX 4 1 [IRISインストールディレクトリ]/bin/irisdb AUX 5 1 [IRISインストールディレクトリ]/bin/irisdb AUX 6 1 [IRISインストールディレクトリ]/bin/irisdb AUX 7 1 [IRISインストールディレクトリ]/bin/irisdb DBXD EXPDMN 1 irisdb -s[IRISインストールディレクトリ]/mgr -cj -p13 START^MONITOR MONITOR 1 irisdb -s[IRISインストールディレクトリ]/mgr -cj -p13 START^CLNDMN CLNDMN 1 irisdb -s[IRISインストールディレクトリ]/mgr -cj -p13 ^RECEIVE RECEIVE 1 irisdb -s[IRISインストールディレクトリ]/mgr -cj -p13 Run^ECPWork ECPWork ECPClientからの1接続あたり1~8 irisdb -s[IRISインストールディレクトリ]/mgr -cj -p13 ServerMaster^%SYS.SERVER %SYS.SERVER 1 irisdb -s[IRISインストールディレクトリ]/mgr -cj -p13 START^LMFMON LMFMON 1 [IRISインストールディレクトリ]/bin/licmanager 4002 1(マルチサーバライセンスのみ) irisdb -s[IRISインストールディレクトリ]/mgr -cj -p[IRISジョブ番号] RunManager^%SYS.Task %SYS.TaskSuper 1 irisdb -s[IRISインストールディレクトリ]/mgr -cj -p[IRISジョブ番号] Start^%SYS.Monitor.Control %SYS.Monitor.Control 1 irisdb -s[IRISインストールディレクトリ]/mgr -cj -p[IRISジョブ番号] Begin^%CSP.Daemon.1 %CSP.Daemon 1 irisdb -s[IRISインストールディレクトリ]/mgr -cj -p[IRISジョブ番号] SuperServer^%SYS.SERVER ECPSvrR ECPClientからの接続数分 詳細は以下のドキュメントをご覧ください。IRISプロセスについて **関連する記事** InterSystems IRIS が正常に動作していることを Windows から確認する際の監視対象プロセス名
記事
Toshihiko Minamoto · 2020年11月12日

Prometheus で InterSystems Caché を監視する

[Prometheus](https://prometheus.io/) は[時系列データ](https://en.wikipedia.org/wiki/Time_series_database)の収集に適した監視システムです。 このシステムのインストールと初期構成は比較的簡単です。 このシステムにはデータ視覚化用の [PromDash](https://github.com/prometheus-junkyard/promdash) [](https://github.com/prometheus-junkyard/promdash)と呼ばれる画像サブシステムが組み込まれていますが、開発者は [Grafana](http://grafana.org/) と呼ばれる無料のサードパーティ製品を使用することを推奨しています。 Prometheus は多くの要素(ハードウェア、コンテナ、さまざまな DBMS の構成要素)を監視できますが、この記事では [Caché](http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls) インスタンス(正確に言えば Ensemble インスタンスですが、メトリックは Caché からのものになります)の監視に注目したいと思います。 ご興味があれば、このまま読み進めてください。 非常に単純なケースでは、Prometheus と Caché は単一のマシン(Fedora Workstation 24 x86_64)上に存在します。 Caché のバージョンは以下のとおりです。 %SYS>write $zvCache for UNIX (Red Hat Enterprise Linux for x86-64) 2016.1 (Build 656U) Fri Mar 11 2016 17:58:47 EST **インストールと構成** [公式サイト](https://prometheus.io/download/)から適切な Prometheus の配布パッケージをダウンロードし、/opt/prometheus フォルダーに保存してください。 ![](/sites/default/files/inline/images/prometheus_download.jpg) アーカイブを解凍し、必要に応じてテンプレート構成ファイルを変更してから Prometheus を起動します。 Prometheus はデフォルトでコンソールにログを表示するため、ここではアクティビティレコードをログファイルに保存することにします。 **Prometheus の起動** # pwd/opt/prometheus# lsprometheus-1.4.1.linux-amd64.tar.gz# tar -xzf prometheus-1.4.1.linux-amd64.tar.gz# lsprometheus-1.4.1.linux-amd64 prometheus-1.4.1.linux-amd64.tar.gz# cd prometheus-1.4.1.linux-amd64/# lsconsole_libraries consoles LICENSE NOTICE prometheus prometheus.yml promtool# cat prometheus.yml global:  scrape_interval: 15s # スクレイプ間隔を 15 秒に設定します。 デフォルトは 1 分ごとです。 scrape_configs:  - job_name: 'isc_cache'    metrics_path: '/metrics/cache'    static_configs:    - targets: ['localhost:57772']# ./prometheus > /var/log/prometheus.log 2>&1 &[1] 7117# head /var/log/prometheus.logtime=«2017-01-01T09:01:11+02:00» level=info msg=«Starting prometheus (version=1.4.1, branch=master, revision=2a89e8733f240d3cd57a6520b52c36ac4744ce12)» source=«main.go:77»time=«2017-01-01T09:01:11+02:00» level=info msg=«Build context (go=go1.7.3, user=root@e685d23d8809, date=20161128-09:59:22)» source=«main.go:78»time=«2017-01-01T09:01:11+02:00» level=info msg=«Loading configuration file prometheus.yml» source=«main.go:250»time=«2017-01-01T09:01:11+02:00» level=info msg=«Loading series map and head chunks...» source=«storage.go:354»time=«2017-01-01T09:01:11+02:00» level=info msg=«23 series loaded.» source=«storage.go:359»time=«2017-01-01T09:01:11+02:00» level=info msg="Listening on :9090" source=«web.go:248» prometheus.yml 構成ファイルは [YAML](https://en.wikipedia.org/wiki/YAML) 言語で記述されているため、タブ文字の使用は好ましくありません。したがって、スペースのみを使用する必要があります。 また、すでにお伝えしたとおり、メトリックは からダウンロードされ、リクエストは /metrics/cache に送信されます(アプリケーション名は任意)。したがって、メトリック収集用の宛先アドレスは になります。 「job = isc_cache」タグが各メトリックに追加されます。 大まかに言えば、タグは SQL の WHERE に相当するものです。 ここではタグを使用しませんが、複数のサーバーを使用する場合は役に立つでしょう。 例えばサーバー(またはインスタンス)の名前をタグに保存し、タグを使用してグラフ描画用のリクエストをパラメーター化することができます。 では、Prometheus が動作していることを確認しましょう(上記の出力では、9090 番ポートでリッスンしていることが分かります)。 ![](/sites/default/files/inline/images/prometheus_main.jpg) Web インターフェイスが開きます。これは、Prometheus が機能していることを意味します。 ただし、Caché のメトリックはまだ表示されていません([Status] → [Targets] をクリックして確認しましょう)。 ![](/sites/default/files/inline/images/prometheus_targets.jpg) **メトリックの準備** 目標は、Prometheus が で[適切なフォーマット](https://prometheus.io/docs/instrumenting/writing_exporters/)でメトリックにアクセスできるようにすることです。 ここではその単純さを考慮し、[Caché の REST 機能](http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GREST)を使用します。 Prometheus は数値メトリックのみを「理解」するため、ここでは文字列メトリックをエクスポートしません。 後者を取得するには、[SYS.Stats.Dashboard](http://docs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls?PAGE=CLASS&LIBRARY=%25SYS&CLASSNAME=SYS.Stats.Dashboard) クラスの API を使用します。 このようなメトリックは、Caché 自体がシステムツールバーを表示する目的で使用されています。 ![](/sites/default/files/inline/images/system_dashboard.jpg) 同じ内容をターミナルで表示した例: %SYS>set dashboard = ##class(SYS.Stats.Dashboard).Sample()   %SYS>zwrite dashboarddashboard= <OBJECT REFERENCE> [2@SYS.Stats.Dashboard]+----------------- general information ---------------|      oref value: 2|      class name: SYS.Stats.Dashboard| reference count: 2+----------------- attribute values ------------------|  ApplicationErrors = 0|        CSPSessions = 2|    CacheEfficiency = 2385.33|      DatabaseSpace = "Normal"|          DiskReads = 14942|         DiskWrites = 99278|       ECPAppServer = "OK"|      ECPAppSrvRate = 0|      ECPDataServer = "OK"|     ECPDataSrvRate = 0|            GloRefs = 272452605|      GloRefsPerSec = "70.00"|            GloSets = 42330792|     JournalEntries = 16399816|       JournalSpace = "Normal"|      JournalStatus = "Normal"|         LastBackup = "Mar 26 2017 09:58AM"|     LicenseCurrent = 3|  LicenseCurrentPct = 2. . . ここでは USER スペースがサンドボックスになります。 まず、REST アプリケーションの /metrics を作成しましょう。 非常に基本的な安全対策を行うため、ログインをパスワードで保護し、Web アプリケーションをリソースに関連付けます。このようなリソースを PromResource と呼びましょう。 リソースへの公開アクセスを無効にするため、次の内容を実行してください。 %SYS>write ##class(Security.Resources).Create("PromResource", "Resource for Metrics web page", "")1 Web アプリの設定: このリソースにアクセスできるユーザーも必要です。 このユーザーもデータベース(この場合は USER)から読み取り、そこへデータを保存できる必要があります。 また、別件ですがコードの後半部では %SYS スペースに切り替えるため、このユーザーには CACHESYS システムデータベースの読み取り権限が必要になります。 ここでは標準のスキームに従います。すなわち、これらの権限を持つ PromRole ロールを作成した後にこのロールに割り当てられた PromUser ユーザーを作成します。 パスワードには「Secret」を使いましょう。 %SYS>write ##class(Security.Roles).Create("PromRole","Role for PromResource","PromResource:U,%DB_USER:RW,%DB_CACHESYS:R"1%SYS>write ##class(Security.Users).Create("PromUser","PromRole","Secret")1 Prometheus の構成では、この PromUser ユーザーを認証に使用します。 完了後はサーバープロセスに SIGNUP シグナルを送信し、構成を再読み込みします。 より安全な構成 # cat /opt/prometheus/prometheus-1.4.1.linux-amd64/prometheus.ymlglobal:  scrape_interval: 15s # スクレイプ間隔を 15 秒に設定します。 デフォルトは 1 分ごとです。 scrape_configs:  - job_name: 'isc_cache'    metrics_path: '/metrics/cache'    static_configs:    - targets: ['localhost:57772']    basic_auth:      username: 'PromUser'      password: 'Secret'## kill -SIGHUP $(pgrep prometheus) # または kill -1 $(pgrep prometheus) 以上で Prometheus がメトリックを含む Web アプリケーションを使用するための認証をパスできるようになりました。 メトリックは、my.Metrics リクエスト処理クラスによって提供されます。以下にその実装を示します。 Class my.Metrics Extends %CSP.REST { Parameter ISCPREFIX = "isc_cache"; Parameter DASHPREFIX = {..#ISCPREFIX_"_dashboard"}; XData UrlMap [ XMLNamespace = "http://www.intersystems.com/urlmap" ] { <Routes> <Route Url="/cache" Method="GET" Call="getMetrics"/> </Routes> } /// 出力は Prometheus の出力フォーマットに従う必要があります。 ドキュメントは以下で確認できます。 /// https://prometheus.io/docs/instrumenting/exposition_formats/ /// /// このプロトコルは行指向です。 改行文字(\n)は行を区切ります。 /// 最後の行は改行文字で終了する必要があります。 空の行は無視されます。 ClassMethod getMetrics() As %Status { set nl = $c(10) do ..getDashboardSample(.dashboard) do ..getClassProperties(dashboard.%ClassName(1), .propList, .descrList) for i=1:1:$ll(propList) { set descr = $lg(descrList,i) set propertyName = $lg(propList,i) set propertyValue = $property(dashboard, propertyName) // Prometheusは時系列データベースをサポートします。 // そのため、空(バックアップメトリックなど)や非デジタルメトリックを // 取得した場合はそれらを単に省略します。 if ((propertyValue '= "") && ('$match(propertyValue, ".*[-A-Za-z ]+.*"))) { set metricsName = ..#DASHPREFIX_..camelCase2Underscore(propertyName) set metricsValue = propertyValue // 各メトリックの説明(ヘルプ)を記述します。 // フォーマットはPrometheusが要求するものです。 // 複数行の説明は1つの文字列に結合する必要があります。 write "# HELP "_metricsName_" "_$replace(descr,nl," ")_nl write metricsName_" "_metricsValue_nl } } write nl quit $$$OK } ClassMethod getDashboardSample(Output dashboard) { new $namespace set $namespace = "%SYS" set dashboard = ##class(SYS.Stats.Dashboard).Sample() } ClassMethod getClassProperties(className As %String, Output propList As %List, Output descrList As %List) { new $namespace set $namespace = "%SYS" set propList = "", descrList = "" set properties = ##class(%Dictionary.ClassDefinition).%OpenId(className).Properties for i=1:1:properties.Count() { set property = properties.GetAt(i) set propList = propList_$lb(property.Name) set descrList = descrList_$lb(property.Description) } } /// キャメルケースのメトリック名を小文字のアンダースコア名に変換します /// 例: 入力 = WriteDaemon、出力 = _write_daemon ClassMethod camelCase2Underscore(metrics As %String) As %String { set result = metrics set regexp = "([A-Z])" set matcher = ##class(%Regex.Matcher).%New(regexp, metrics) while (matcher.Locate()) { set result = matcher.ReplaceAll("_"_"$1") } // 小文字にします set result = $zcvt(result, "l") // _e_c_p (_c_s_p) を _ecp (_csp) にします set result = $replace(result, "_e_c_p", "_ecp") set result = $replace(result, "_c_s_p", "_csp") quit result } } コンソールを使用して、私たちの作業が無駄ではなかったことを確認しましょう(curl がプログレスバーの表示を邪魔しないように --silent キーを追加しました)。 # curl --user PromUser:Secret --silent -XGET 'http://localhost:57772/metrics/cache' | head -20# HELP isc_cache_dashboard_application_errors Number of application errors that have been logged.isc_cache_dashboard_application_errors 0# HELP isc_cache_dashboard_csp_sessions Most recent number of CSP sessions.isc_cache_dashboard_csp_sessions 2# HELP isc_cache_dashboard_cache_efficiency Most recently measured cache efficiency (Global references / (physical reads + writes))isc_cache_dashboard_cache_efficiency 2378.11# HELP isc_cache_dashboard_disk_reads Number of physical block read operations since system startup.isc_cache_dashboard_disk_reads 15101# HELP isc_cache_dashboard_disk_writes Number of physical block write operations since system startupisc_cache_dashboard_disk_writes 106233# HELP isc_cache_dashboard_ecp_app_srv_rate Most recently measured ECP application server traffic in bytes/second.isc_cache_dashboard_ecp_app_srv_rate 0# HELP isc_cache_dashboard_ecp_data_srv_rate Most recently measured ECP data server traffic in bytes/second.isc_cache_dashboard_ecp_data_srv_rate 0# HELP isc_cache_dashboard_glo_refs Number of Global references since system startup.isc_cache_dashboard_glo_refs 288545263# HELP isc_cache_dashboard_glo_refs_per_sec Most recently measured number of Global references per second.isc_cache_dashboard_glo_refs_per_sec 273.00# HELP isc_cache_dashboard_glo_sets Number of Global Sets and Kills since system startup.isc_cache_dashboard_glo_sets 44584646 これで、Prometheus のインターフェースで同じ内容を確認できるようになりました。 以下は上記メトリックのリストです。 これらのメトリックの Prometheus での表示内容については詳述しません。 必要なメトリックを選択して「Execute」ボタンをクリックしてください。 「Graph」タブを選択すると、グラフが表示されます(キャッシュの効率が表示されます)。 メトリックの視覚化 メトリックを視覚化するため、Grafana をインストールしましょう。 この記事では、tarball からインストールすることにしました。 ただし、パッケージからコンテナまで、他のインストール方法もあります。 次の手順を実行してみましょう(/opt/grafana フォルダーを作成し、そこに切り替えた後)。 とりあえず設定は変更せずにそのままにしておきましょう。 最後のステップでは、Grafana をバックグラウンドモードで起動します。 Prometheus の場合と同じように、Grafana のログをファイルに保存します。 # ./bin/grafana-server > /var/log/grafana.log 2>&1 & デフォルトでは、3000 番ポートで Grafana の Web インターフェースにアクセスできます。 ログイン/パスワードは、admin/admin です。 詳細な Prometheus と Grafana の連携手順については、こちらを参照してください。 簡単に言えば、Prometheus タイプの新しいデータソースを追加する必要があります。 また、次のように direct/proxy アクセスのオプションを選択してください。 完了後、必要なパネルを含むダッシュボードを追加する必要があります。 ダッシュボードのテストサンプルは、メトリック収集クラスのコードと共に公開されています。 ダッシュボードは Grafana に簡単にインポートできます([Dashboards] → [Import])。 インポート後、次のようになります。 ダッシュボードを保存します。 時間範囲と更新間隔は右上で選択できます。 監視種類の例 グローバルへの呼び出しの監視をテストしてみましょう。 USER>for i=1:1:1000000 {set ^prometheus(i) = i}USER>kill ^prometheus 以下のグラフでは、1秒あたりのグローバルへの参照数が増加してキャッシュ効率が低下していることが分かります(^Prometheus グローバルがまだキャッシュされていない)。 ライセンスの使用状況を確認しましょう。 そのためには、次のように PromTest.csp というプリミティブな CSP ページを USER ネームスペースに作成しましょう。 監視は正常に機能しています! そして、何度もアクセスしてください(/csp/user アプリケーションがパスワード保護されていないことを想定しています)。 # ab -n77 http://localhost:57772/csp/user/PromTest.csp ライセンスの使用状況について、次の図が表示されます。 まとめ ご覧のとおり、監視機能の実装はまったく難しくありません。 いくつかの初期手順を実行しただけでも、ライセンスの使用状況、グローバルキャッシュの効率、アプリケーションエラーなど、システムの動作に関する重要な情報を取得できます。 このチュートリアルでは SYS.Stats.Dashboard を使用しましたが、SYS / %SYSTEM / %SYS パッケージの他のクラスも注目に値します。 また、特定タイプのドキュメントの数など、独自アプリケーションのカスタムメトリックを提供する独自のクラスを作成することもできます。 いくつかの有用なメトリックは、最終的に Grafana 用の個別テンプレートにコンパイルされます。 今後の予定 本件についてより詳細な情報が必要な場合は、このテーマを詳しく説明するつもりです。 以下に私の予定を記しておきます。 ログデーモンのメトリックを含む Grafana テンプレートの準備について。 ^mgstat と同等の、少なくともそのメトリックに対応した何らかのグラフィカルツールを作成するのが望ましいと考えています。 Web アプリケーションのパスワード保護は優れていますが、証明書を使用できる可能性を確認するのが望ましいと考えています。 Prometheus、Grafana、および Prometheus を Docker コンテナとしてエクスポートするツールの使用について。 新しい Caché インスタンスを Prometheus の監視リストに自動追加するための検出サービスの使用について。 また、Grafana とそのテンプレートの利便性を(実際に)説明したいと考えています。 これは、選択した特定のサーバーのメトリックがすべて同じダッシュボードに表示される動的なパネルのようなものです。 Prometheus Alertmanager について。 データの保存期間に関連する Prometheus の構成設定、および多数のメトリックと短い統計収集間隔を持つシステムに考えられる最適化について。 途中で発生するさまざまで微妙な差異について。 リンク この記事を準備中にいくつかの有益なサイトにアクセスし、次のようなたくさんの動画を視聴しました。 Prometheus プロジェクトの Web サイト Grafana プロジェクトの Web サイト Brian Brazil という Prometheus 開発者のブログ DigitalOcean のチュートリアル Robust Perception の動画数点 Prometheus を対象とする多数のカンファレンス動画 最後までお読みいただき、ありがとうございました! 監視ツールのことで申し訳ございませんが、興味があり質問があるのでお教えいただけないでしょうか。 ・このツールは無料なのでしょうか? もしくは有料でしょうか? ・Cache'やEnsembleを監視できるということですが、CPU、メモリ、DISK、その他サービスの監視などもできるのでしょうか? (例えばEnsembleのメッセージログでDISKいっぱいになる前に知りたい) ・閾値を設定しそれを超えた場合は、管理者にメール送信することなども可能でしょうか? ・Cache'やEnsembleが動作しているサーバーとは別のサーバーから監視するのか、もしくは同じOSにインストールして監視するのでしょうか? ・Cache'やEnsembleの監視の動作実績はありますでしょうか? またIRISを監視対象にすることもできるのでしょうか? よろしくお願いします。 ありがとうございます。Prometheousはフリーソフトでシステムの監視を行うソフトウェアで、RESTインターフェースを使ってJson形式で監視データをやり取りしています。アーキテクチャは(https://prometheus.io/docs/introduction/overview/#architecture)を参照ください。 基本的に監視サーバから監視対象サーバのExporterにアクセスし、監視データを取得する仕組みになっており、閾値を超えるとAlert Managerに通知され、メールやSlackなど様々な通知が行えるようになっています。また、grafanaという視覚化(グラフ表示等)ツールを使って推移を確認することもできます。 監視データの取得については仕様に基づいて様々なハードウェア、OS、ミドルウェアの監視データを提供するExporterが公開されています。(https://prometheus.io/docs/instrumenting/exporters/)この記事ではCacheやEnsembleのRESTインターフェースでExporterを作成していますが、IRISは標準でPrometheousの監視データを提供する機能が備わっています。InterSystemsではPrometheousやGrafanaの機能を使用したInterSystems SAMを公開しており、簡単な設定でIRISを監視できるようにしています。以下の記事もご確認頂ければと思います。InterSystems System Alerting and Monitoring (SAM)を使ってみました!よろしくお願いします。 早速のご回答、ありがとうございました。 やりたいことは出来ると思いました。
記事
Megumi Kakechi · 2020年10月13日

Java から InterSystems IRIS のクラスメソッドを呼び出す方法

これはInterSystems FAQ サイトの記事です。InterSystems IRIS Native API for Java のメソッドに、IRIS クラスメソッドを呼び出す classMethod***() があります。ObjectScript メソッドおよび関数の呼び出し こちらを使用することで、InterSystems IRIS Native API for Java から InterSystems IRIS のクラスメソッドを呼び出すことが可能です。以下、使用方法について簡単なサンプルをご紹介します。 *SampleNativeAPI .java import java.sql.DriverManager;import com.intersystems.jdbc.IRISConnection;import com.intersystems.jdbc.IRIS;import com.intersystems.jdbc.IRISIterator; public class SampleNativeAPI { protected static int superserverPort = 51773; // YOUR PORT HERE protected static String namespace = "USER"; protected static String username = "_SYSTEM"; protected static String password = "SYS"; public static void main(String[] args) { try { // open connection to InterSystems IRIS instance using connection string String url = "jdbc:IRIS://localhost:"+superserverPort+"/"+namespace; IRISConnection conn = (IRISConnection) DriverManager.getConnection(url,username,password); // create IRIS Native object IRIS iris = IRIS.createIRIS(conn); System.out.println("[1. Setting and getting a global]"); // setting and getting a global // ObjectScript equivalent: set ^testglobal("1") = 8888 iris.set(8888,"^testglobal","1"); // ObjectScript equivalent: set globalValue = $get(^testglobal("1")) Integer globalValue = iris.getInteger("^testglobal","1"); System.out.println("The value of ^testglobal(1) is " + globalValue); System.out.println(); System.out.println("[2. Iterating over a global]"); // modify global to iterate over // ObjectScript equivalent: set ^testglobal("1") = 8888 // ObjectScript equivalent: set ^testglobal("2") = 9999 iris.set(8888,"^testglobal","1"); iris.set(9999,"^testglobal","2"); // iterate over all nodes forwards IRISIterator subscriptIter = iris.getIRISIterator("^testglobal"); System.out.println("walk forwards"); while (subscriptIter.hasNext()) { String subscript = subscriptIter.next(); System.out.println("subscript="+subscript+", value="+subscriptIter.getValue()); } System.out.println(); System.out.println("[3. Calling a class method]"); // calling a class method // ObjectScript equivalent: set returnValue = ##class(%Library.Utility).Date(5) String returnValue = iris.classMethodString("%Library.Utility","Date",5); System.out.println(returnValue); System.out.println(); // close connection and IRIS object iris.close(); conn.close(); } catch (Exception ex) { System.out.println(ex.getMessage()); } } } InterSystems IRIS Native API for Java の使用方法については、以下のドキュメントをご覧ください。InterSystems IRIS Native API for Java の使用法 また、Java側から InterSystems IRIS のストアドプロシージャをJDBC経由で呼び出す方法もあります。詳細は、【FAQ】 Javaから配列のような複数項目のデータを渡すにはどうすれば良いですか をご覧ください。
お知らせ
Makiko Kokubun · 2020年10月13日

InterSystems Virtual Summit 2020 のお知らせ

開発者のみなさん、こんにちは! インターシステムズは、10/20-11/5 にかけて、年次カンファレンス InterSystems Virtual Summit 2020 をオンラインで開催いたします。 ⚡️ 現在、事前登録受付中です! ⚡️ Virtual Summit では、IT技術に詳しい経営層、技術マネージャ、開発者、システムインテグレータの方など、全ての方にとって価値のある内容をお届けします。 今年はすべてのセッションに無料でご参加いただけます! 時間は日本のタイムゾーンに合わせて開催いたします。 今年のサミットのテーマは インタラクション & インフォメーション(相互作用と情報)です。サミットでは、以下のようなセッションが開催されます。 ✅ 基調講演適応力の高い組織の創造10/20 - 10/22 ✅ 60以上のフォーカスセッションベストプラクティス、新機能、ロードマップ 10/27 - 10/29 ✅ ASK THE EXPERTS専門家と個別にご相談いただけます。10/30, 11/2 ✅ EXPERIENCE LABS最新技術をハンズオンでご体験いただけます。11/2 - 11/5 詳細は、こちらをご覧ください。 intersystems.com/summit20 ぜひ、Virtual Summit 2020にご参加ください!
お知らせ
Toshihiko Minamoto · 2020年12月27日

グローバルマスターズリワード_ InterSystems のエキスパートから受ける 1 時間半のコンサルテーション

コミュニティの皆さん、こんにちは!   もうご存知かと思いますが、グローバルマスターズでは、InterSystems IRIS、IRIS for Health、Interoperability (Ensemble)、IRIS Analytics (DeepSee)、Caché、HealthShare など、InterSystems のどの製品に関しても **InterSystems のエキスパートによるコンサルテーションをご利用いただけます**。 そして、皆さまに嬉しいお知らせがあります。**このコンサルテーションが** 英語、ポルトガル語、ロシア語、ドイツ語、フランス語、イタリア語、スペイン語、日本語、中国語でご利用いただけるようになりました。  さらに、 時間も 1 時間半に拡大され、お好きなトピックについて細かくご相談いただけるようになりました。 ![](/sites/default/files/inline/images/consultation.jpg)   ご興味がございましたら、お気軽にグローバルマスターズで賞品をご利用ください!  まだグローバルマスターズのメンバーになられていない方は、是非 [こちら](http://globalmasters.intersystems.com/)からご参加ください (InterSystems のログインボタンをクリックし、InterSystems WRC の認証情報をご使用ください)。 グローバルマスターズの詳細については、[グローバルマスターズ・アドボケート・ハブ - ここからスタート!](https://jp.community.intersystems.com/node/484516)と題した記事をお読みください。 インターシステムズグローバルマスターズでお会いしましょう! 🙂    
ディスカッション
Akio Hashimoto · 2020年9月3日

InterSystems ObjectScript エクステンションでルーチンをインポートしようとするとname is invalidエラーになるときの解決方法

## 前提条件 * InterSystems ObjectScriptエクステンション 0.9.0 * Visual Studio Code でローカルにルーチンのファイルを作成している。 ## 問題点 ルーチンをGit等でバージョン管理する等の理由で、IRIS(/Cache)サーバー間でファイル連携している場合に、新規ルーチンをファイルから作成し、サーバーへ「Import and Compile」等を実行するとエラーが出てインポートに失敗する事がある。(xxxxxxxxxxはルーチン名) ``` ERROR #16006: Document 'xxxxxxxxxx' name is invalid ``` ## 解決方法 先にサーバーからインポートした事があればお気づきの方もいるかもしれないが、InterSystems ObjectScript エクステンションを使用してルーチンをインポートする場合、ルーチンの先頭行に以下のように1行必要となっている。これが無いと上記のようにエラーとなってしまう。 ``` ROUTINE xxxxxxxxxx ``` INTやINCファイルの場合は、Type属性が必要。Type属性を省略するとMACファイルとしてインポートされる。 ``` ROUTINE xxxxxxxxxx [Type=INC] ``` インポートされたサーバー側では上記の1行は追加されたままだが、消してもエクスポートすると自動で付加されるので、一度インポート出来てしまえば心配ない。但し、ローカル側でこの1行を消してしまうと再びエラーとなってしまうので注意して欲しい。 @Akio.Hashimoto 橋本さん、貴重な情報ありがとうございます。 クラス定義の場合は発生しませんが、ルーチンの場合に現象が起きるようです。 そうですね。クラス定義の場合はこの仕様が無いので、気付くのに時間がかかってしまいました。
記事
Toshihiko Minamoto · 2023年5月30日

InterSystems IRIS 開発リポジトリで Docker を使用する

コミュニティの皆さん、こんにちは! 最近では、誰もが [Github](http://github.com)、[GitLab](http://gitlab.com)、[bitbucket](http://bitbucket.org) などのリポジトリにプロジェクトのソースコードを保管していると思います。 InterSystems IRIS プロジェクトについても同様で、Open Exchange にチェックされています。 InterSystems Data Platform で特定のリポジトリの操作を開始または継続するたびに、何をしているでしょうか? ローカルの InterSystems IRIS マシン、プロジェクト用の環境のセットアップ、ソースコードのインポートが必要です。 つまり、すべての開発者は以下を実行しています。 1. リポジトリからコードをチェックアウトする。 2. ローカル IRIS インストールをインストール/実行する。 3. プロジェクト用の新しいネームスペース/データベースを作成する 4. コードをこの新しいネームスペースにインポートする。 5. すべての残りの環境をセットアップする。 6. プロジェクトのコーディングを開始/継続する。  リポジトリを Docker 化すると、この手順は次の 3 つのステップに短縮できます。 1. リポジトリからコードをチェックアウトする。 2. docker-compose build を実行する。  3. プロジェクトのコーディングを開始/継続する。  メリット: 実行に数分かかる上、頭が痛くなるようなステップ 3、4、5 を行わなくて済みます。 次の数ステップで、(ほぼ)すべての InterSystems リポジトリを Dcoker 化できます。 では、やってみましょう! **リポジトリを Docker 化する方法は?その意味は? ** 基本的に、マシンに Docker をインストールし、コードと環境をコンテナに構築し、そのコンテナを Docker で実行すれば、最初に開発者が導入した方法で動作するようにするという考えです。 「OS のバージョンは何?」や「この IRIS インストールには他に何かあった?」といった疑問はありません。 毎回、クリーンなページ(またはクリーンな IRIS コンテナ)を使用して環境(ネームスペース、データベース、ウェブアプリ、ユーザー/ロール)がセットアップされ、作成したばかりのクリーンなデータベースにコードがインポートされます。 この「Docker 化」手順によって、現在のリポジトリに大きな悪影響が及ぶでしょうか?  及びません。 リポジトリのルートに独自にセットアップできるいくつかのツールに従った 2~3 個の新しいファイルを追加する必要があります。 **前提条件** [docker](http://docker.com) をダウンロードしてインストールします。 IRIS docker イメージをダウンロードしてインストールします。 この例では、[WRC-preview](https://wrc.intersystems.com/wrc/coDistPreview.csp) からダウンロードできる完全な InterSystems IRIS プレビュー(iris:2019.1.0S.111.0)を使用します。[詳細をご覧ください。](https://community.intersystems.com/post/intersystems-iris-20191-preview) キーを必要とするインスタンスを操作する場合は、常に使用する場所に iris.key を配置します。  私の場合は、Mac の Home ディレクトリに置きました。 **リポジトリの Docker 化** リポジトリを Docker 化するには、リポジトリのルートフォルダに 3 つのファイルを追加する必要があります。 こちらは、ISC-DEV プロジェクトの [Docker 化されたレポジトリ](https://github.com/intersystems-community/isc-dev)の例です。これは、IRIS データベースからソースコードをインポート/エクスポートするのに役立ちます。  このリポジトリには、以下に説明する追加の Dockerfile、docker-compose.yml、および installer.cls が含まれています。 まず、[Dockerfile](https://github.com/intersystems-community/isc-dev/blob/master/Dockerfile) です。これは、docker-compose build コマンドで使用されます。   Dockerfile FROM intersystems/iris:2019.1.0S.111.0 # インストールされたものと同じイメージである必要があります  WORKDIR /opt/app COPY ./Installer.cls ./ COPY ./cls/ ./src/ RUN iris start $ISC_PACKAGE_INSTANCENAME quietly EmergencyId=sys,sys && \     /bin/echo -e "sys\nsys\n" \             # ユーザー管理者に %ALL を付与             " Do ##class(Security.Users).UnExpireUserPasswords(\"*\")\n" \             " Do ##class(Security.Users).AddRoles(\"admin\", \"%ALL\")\n" \             # インストーラのインポートと実行             " Do \$system.OBJ.Load(\"/opt/app/Installer.cls\",\"ck\")\n" \             " Set sc = ##class(App.Installer).setup(, 3)\n" \             " If 'sc do \$zu(4, \$JOB, 1)\n" \             # OS レベルの認証を導入(コンテナのログイン/パス プロンプトを削除するため)             " Do ##class(Security.System).Get(,.p)\n" \             " Set p(\"AutheEnabled\")=p(\"AutheEnabled\")+16\n" \             " Do ##class(Security.System).Modify(,.p)\n" \             " halt" \     | iris session $ISC_PACKAGE_INSTANCENAME && \     /bin/echo -e "sys\nsys\n" \     | iris stop $ISC_PACKAGE_INSTANCENAME quietly CMD [ "-l", "/usr/irissys/mgr/messages.log" ]       この Dockerfile は installer.cls とソースコードをリポジトリの [/](https://github.com/intersystems-community/isc-dev/tree/master/cls)[cls](https://github.com/intersystems-community/isc-dev/tree/master/cls) フォルダから /src フォルダ、そしてコンテナにコピーします。 また、いくつかの構成設定も実行します。これにより、管理者ユーザーに %All ロールと無期限のパスワード「SYS」が付与され、OS レベルの認証が導入され、%Installer が実行されます。  [%Installer](https://github.com/intersystems-community/isc-dev/blob/master/Installer.cls) とは何でしょうか? Class App.Installer { XData MyInstall [ XMLNamespace = INSTALLER ] {                                         } ClassMethod setup(ByRef pVars, pLogLevel As %Integer = 3, pInstaller As %Installer.Installer, pLogger As %Installer.AbstractLogger) As %Status [ CodeMode = objectgenerator, Internal ] {   Return ##class(%Installer.Manifest).%Generate(%compiledclass, %code, "MyInstall") } }   これは、ネームスペース/データベース ISCDEV を作成し、ソースフォルダである -/src からコードをインポートします。 次は、[docker-compose.yml](https://github.com/intersystems-community/isc-dev/blob/master/docker-compose.yml) ファイルです。これは、docker-compose up コマンドでコンテナを実行するときに使用されます。 version: '2.4' services: iris: build: . restart: always ports: - 52773:52773 volumes: - ~/iris.key:/usr/irissys/mgr/iris.key この構成によって、Docker に対し、ホストのどのポートで IRIS の動作が期待されるかを指示します。 最初(52773)はホスト、2 つ目はコンテナのコンテナ内部ポート(52773)です。 volumes セクションでは、docker-compose.yml は、IRIS が検索するコンテナ内でマシン上の iris キーへのアクセスを提供します。 - ~/iris.key:/usr/irissys/mgr/iris.key このリポジトリでコーディングを始めるには、以下を実行します。 1. 任意のローカルディレクトリに[リポジトリ](http://github.com/intersystems-community/isc-dev)を Clone/git pull します。  2. このディレクトリでターミナルを開き、以下を実行します。 user# docker-compose build これによりコンテナがビルドされます。 3. プロジェクトで IRIS コンテナを実行します。 user# docker-compose up -d お好きな IDE を開いて、localhost://52773 のサーバーに接続し、InterSystems IRIS Data Platform で作業を始めましょう!;) この 3 つのファイルを使用して、リポジトリを Docker 化できます。 Dockerfile のソースコードに適切な名前、Installer.cls に適切なネームスペースを付けて、docker-compose.yml に iris.key を配置するだけで、InterSystems IRIS を使った日常の開発で、Docker コンテナを活用することができます。  
記事
Seisuke Nakahashi · 2023年6月8日

InterSystems サポートプラットフォーム最新情報 Q2-2023

InterSystems IRIS data platform がサポートするプラットフォームやフレームワークを取り巻く変更点について、みなさまから良く質問をいただきます。この記事では、サポート対象プラットフォームで最近おこなわれた変更点や今後予定されている変更点に関する情報を共有させていただきます。ただ、将来の予測は難しい側面があり、ロードマップは約束されたものではないということを十分ご理解くださいませ。 IRIS 本番環境用オペレーティングシステムと CPU アーキテクチャ Red Hat Enterprise Linux 最近の変更点 RHEL 9.2 と RHEL 8.8 が 2023年5月にリリースされました。Red Hat はこれらのリリースを4年間サポートする予定としています。InterSystems は「マイナーOSバージョン認証」と呼ぶ新しいプロセスにより、RHEL 9.2 で IRIS の動作検証を行う予定です。このプロセスでは、マイナーOSのアップデートによって弊社製品の動作に明確な違いは見られないことを確認いたします。 RHEL 9.2 がリリースされたことで, Red Hat は RHEL 9.1 のサポートを終了しました。 これは RHEL 8.0以降、Red Hat が採用している "奇数/偶数" のサポートサイクルに沿っています。 RHEL 8.4 の延長サポートは 2023年5月31日で終了します。これにあわせて、IRIS もこのバージョンのサポートを終了しました。 今後予定されている変更点 RHEL 9.3 リリースが 2023年後半に予定されています。 このリリースは Red Hat のルールでは短期間サポートになると思われるので、本番運用に採用されることはお勧めしません。 過去の変更点 IRIS 2022.1.2 で RHEL 9.0 のサポートを追加しました。 9.0 は Linux Kernel 5.14、Open SSL 3.0、Python 3.9 にそれぞれ更新されたメジャーOSリリースになります。 IRIS 2022.2.0 から RHEL 7.x のサポートを終了しました。 RHEL 7.9 はそれより前の IRIS バージョンでは今もサポート対象です。 Red Hat のリリースライフサイクルについては こちら をご覧ください。 Ubuntu 最近の変更点 Ubuntu 22.04.02 LTS が 2023年2月22日にリリースされました。InterSystems は現在、「マイナーOSバージョン認証」と呼ばれる新しいプロセスを通じて、Ubuntu 22.04.02 上で IRIS の動作検証を行っております。現時点の結果は良好です。 今後予定されている変更点 Ubuntu の次期メジャーバージョンは 2024年4月に予定されています。 過去の変更点 IRIS 2022.1.1 で Ubuntu 22.04 のサポートを追加しました。 22.04 は Linux Kernel 5.15、Open SSL 3.0.2、Python 3.10.6 にそれぞれ更新されたメジャーOSリリースになります。 IRIS 2022.2.0 で Ubuntu 18.04 のサポートを終了しました。 Ubuntu 18.04 はそれより前の IRIS バージョンでは今もサポート対象です。 IRIS 2022.1.1 およびそれ以降のコンテナは Ubuntu 22.04 をベースとしています。 Ubuntu のリリース履歴については こちら をご覧ください。 SUSE Linux 最近の変更点 SUSE Linux Enterprise Server 15 SP5 は現在パブリックベータです。私たちは SUSE が 15 SP5 を Q2後半から Q3前半にリリースされると予測しています。リリースされた後に IRIS のサポートリストに追加予定です。SP5では、Linux Kernel 5.14.21、Open SSL 3.0.8、Python 3.11 となる予定です。 SUSE for Linux Enterprise Server 15 SP3 の一般サポートは 2022年12月31日で終了しましたが、延長サポートは 2025年12月まで継続される予定です。 過去の変更点 IRIS 2022.3.0 で SUSE Linux Enterprise Server 15 SP4 のサポートを追加しました。 15 SP4 は、Linux Kernel 5.14、OpenSSL 3.0、Python 3.9 にそれぞれ更新されたメジャーOSになります。 SUSE ライフサイクルについては こちら をご覧ください。 Oracle Linux 今後予定されている変更点 過去の経歴から、Oracle Linux 9 は RHEL 9.2 をベースとし、2023年後半にリリースされると予測されます。 過去の変更点 IRIS 2022.3.0 で Oracle Linux 9 のサポートを追加しました。 Oracle Linux 9 は、RHEL 9 をベースとしていますので、 Linux Kernel 5.14、OpenSSL 3.0、Python 3.9 にそれぞれ更新されたメジャーOSになります。 Oracle Linux のサポートポリシーについては こちら をご覧ください。 Microsoft Windows 今後予定されている変更点 Windows Server 2012 の延長サポートは 2023年10月で終了します。このプラットフォームをまだ利用されていれば、ぜひ移行の計画をよろしくお願いします。Windows Server 2012 は IRIS 2023.2 ではサポートされません。 過去の変更点 Windows のサポートに関しては、IRIS 2022.1 で Windows Server 2022 を追加して以降、変更はありません。 Microsoft のライフサイクルについては、 こちら をご覧ください。 AIX 今後予定されている変更点 InterSystems は OpenSSL 3.0 のサポートに関して、IBM と密接に連携しています。OpenSSL 3.0 は、IBM がさらに先の TL リリースに含める意向のため、IRIS 2023.2.0 には含まれません。IBM は AIX 7.2 および 7.3 向けに OpenSSL 3.0 のリリースを検討しています。Open SSL 3.0 のために、IRIS 2023.3 のリリースのタイミングを同時期にあわせることができそうです。 過去の変更点 AIX のサポートに関しては、IRIS 2022.1 で AIX 7.3 を追加し、AIX 7.1 を終了して以降、変更はありません。 AIX のライフサイクルについては、こちら をご覧ください。 コンテナ 今後予定されている変更点 IRIS コンテナのタグは "2023.2" のように「年+リリース」のタグのみになる予定です。以前はコンテナのタグにビルド番号が使われていました。これにより、みなさまのアプリケーションでは、リリース時の最新メンテナンスビルドを利用することが可能となります。 あわせて新しいタグ “latest-em” と “latest-cd” を追加しました。それぞれ、最新の EM および CD のバージョン情報が含まれます。これらのタグは、デモやサンプルコード、開発環境に便利にお使いいただけます。 また、プレビューコンテナに新しいタグ “-preview” を追加予定です。これにより、どれが最新 GAリリースかが分かりやすくなります。 これらの変更は 2023.2 リリースから適用されます。 詳細な情報は 6月にあらためてお知らせいたします。 過去の変更点 IRIS コンテナにおけるマルチ・アーキテクチャの公開を始めました。これにより、例えば 2022.3.0.606.0 のタグを持つコンテナをプルすると、お使いの CPU アーキテクチャ (Intel/AMD/ARM) にあわせた正しいコンテナがダウンロードされます。 IRIS 開発環境用オペレーティングシステムと CPU アーキテクチャ MacOS 最近の変更点 IRIS 2023.1 で MacOS 13 のサポートを追加しました。 今後予定されている変更点 MacOS 14 が間もなく発表され、今年後半のリリースが予定されています。 CentOS CentOS/CentOS Stream のサポート終了を検討しています。 これは以下の理由によるものです。 Red Hat はここ数年、開発者プログラムを運用しており、本番環境以外には無料ライセンスを開発者に提供しています。CentOS を利用中の開発者は、このプログラムを利用して RHEL に変更することが推奨されています。 CentOS Stream は現在 RHEL の "アップストリーム" となっているため、RHEL には含まれないバグや機能が存在します。これらは日々更新されるため、このプラットフォームでビルドを行う開発者の問題となります (私たちのテストメンバーを含みます)。 CentOS のサポートに関しては、IRIS 2022.1 で CentOS 8-Stream を追加し、CentOS 7.9 を終了して以降、変更はありません。 InterSystems コンポーネント InterSystems API Manager (IAM) IAM 3.2 はこの四半期にリリースされました。本バージョンから、コンテナイメージのベースが Alpine から Amazon Linux に変更されています。 Caché ならびに Ensemble 本番環境用オペレーティングシステムと CPU アーキテクチャ 過去の変更点 Cache 2018.1.7 で Windows 11 のサポートを追加しました。 InterSystems サポート・プラットフォームに関するドキュメント InterSystems サポート・プラットフォームに関するドキュメントにて、サポートリストの正式な情報を入手いただけます。 IRIS 2020.1 サポート対象プラットフォーム IRIS 2021.1 サポート対象プラットフォーム IRIS 2022.1 サポート対象プラットフォーム IRIS 2023.1 サポート対象プラットフォーム Caché & Ensemble 2018.1.7 サポート対象プラットフォーム 以上になります。もし追加で知りたい情報がございましたら、ぜひコメントなどを通じてお知らせください。
お知らせ
Seisuke Nakahashi · 2023年11月24日

InterSystems サポートプラットフォーム最新情報 Q4-2023

四半期ごとにお届けしてきたプラットフォーム最新情報ですが、今回が今年最後になりました。 みなさまのおかげで、素晴らしい初年度となりました。ありがとうございました。今回は、ミニマムサポート CPU リスト、AIX における OpenSSL 3.0 サポート、その他もろもろをお届けします。また 2024 年にお会いしましょう! InterSystems IRIS 本番環境用オペレーティングシステムと CPU アーキテクチャ ミニマムサポート CPU モデル InterSystems IRIS では今後、Intel/AMD ベースのシステムにおける ミニマムサポート CPU モデル が求められるようになる、と先日お知らせしました。これにより IRIS において、AVX など特定の CPU 命令拡張を利用することが可能となり、いくつかの処理では大幅なパフォーマンス向上が見込まれます。 この変更は IRIS 2024.1 から適用され、以後 ミニマム CPU は1年ごとに見直されます。詳細については、開発者コミュニティの「InterSystems IRIS ミニマムサポート CPU モデル」の記事をご参照ください。 Red Hat Enterprise Linux 最近の変更点 IRIS 2023.1 における RHEL 9.2、8.8 のマイナーOSバージョン認証が完了しました。「マイナーOSバージョン認証」は新しいプロセスで、マイナーOSのアップデートによって弊社製品の動作に明確な違いは見られないことを保証するものです。 RHEL 8.8、9.2 とも問題はありませんでした。 今後予定されている変更点 RHEL 9.3 が 2023年11月7日 にリリースされました。また RHEL 8.9 がまもなくリリース予定となっています。InterSystems ではこれらに対するマイナーOSバージョン認証を、近い将来実施する予定です。 Red Hat のリリースライフサイクルについては こちら をご覧ください。 Ubuntu 最近の変更点 Ubuntu 22.04.02 LTS と 20.04.6 LTS が 2023年2月と2023年3月にそれぞれリリースされました。InterSystems は、マイナーOSバージョン認証プロセスを通じて、Ubuntu 22.04.02 上での IRIS の動作検証を完了しました。 今後予定されている変更点 Ubuntu の次期メジャーバージョン 24.04 のリリースは 2024年4月に予定されています。 Ubuntu のリリース履歴については こちら をご覧ください。 SUSE Linux 最近の変更点 InterSystems は VxFS ファイルシステムのサポートを非推奨としました。VxFS を今もご利用中のお客様はいないと思いますが、もしご利用中であれば、XFS もしくは 別のサポートファイルシステムにアップグレードいただけますよう、よろしくお願いいたします。 今後予定されている変更点 SUSE for Linux Enterprise Server 15 SP5 が 2023年6月20日 にリリースされました。SP5 には Linux Kernel 5.14.21、OpenSSL 3.0.8、Python 3.11 が含まれています。InterSystems は現在、マイナーOSバージョン認証を検証中です。 過去にお知らせ済みの変更点 SUSE for Linux Enterprise Server 15 SP3 の一般サポートは 2022年12月31日で終了しましたが、延長サポートは 2025年12月まで継続される予定です。 SUSE ライフサイクルについては こちら をご覧ください。 Oracle Linux 今後予定されている変更点 Oracle Linux 9.2 が RHEL 9.2 リリースと同時にリリースされ、驚かされました。InterSystems は現在、マイナーOSバージョン認証を始めています。 Oracle Linux のサポートポリシーについては こちら をご覧ください。 Microsoft Windows 今後予定されている変更点 Windows Server 2012 の延長サポートが終了しました。IRIS 2023.1 がこのプラットフォームをサポートする最後のリリースとなります。 Microsoft のライフサイクルについては、 こちら をご覧ください。 AIX 今後予定されている変更点 IRIS 2023.3 で、AIX 7.2、7.3 での OpenSSL 3.0 のサポートが追加されました。OpenSSL 3.0 は、OpenSSL 1.0 からセキュリティ全般が大幅に進化しています。 IRIS 2023.1 における AIX 7.2 TL5-04、TL5-05 のマイナーOS認証が完了しました。 AIX のライフサイクルについては、こちら をご覧ください。 コンテナ 今後予定されている変更点 IRIS 2024.2 では、Ubuntu 22.04 から Ubuntu 24.04 にベースコンテナイメージの変更を予定しています。 ベースコンテナイメージおよびサードパーティの関連テクノロジーに関するパッチを含んだ IRIS コンテナの定期アップデートをまもなく開始します。新しいコンテナタグ(下記参照)をお使いいただくことで、これらの定期アップデートを特に気にすることなく入手いただけます。 過去にお知らせ済みの変更点 IRIS 2023.2 以降、IRIS コンテナのタグは "2023.2" のように「年+リリース」のタグのみになる予定です。以前はコンテナのタグにビルド番号が使われていました。これにより、みなさまのアプリケーションでは、リリース時の最新メンテナンスビルドを利用することが可能となります。 あわせて新しいタグ “latest-em” と “latest-cd” を追加しました。それぞれ、最新の EM および CD のバージョン情報が含まれます。これらのタグは、デモやサンプルコード、開発環境に便利にお使いいただけます。 また、プレビューコンテナに新しいタグ “-preview” を追加しました。これにより、どれが最新 GAリリースか、また今後リリースされるプレビュー版かが分かりやすくなります。 InterSystems IRIS 開発環境用オペレーティングシステムと CPU アーキテクチャ MacOS 最近の変更点 Apple は MacOS 14 をリリースしました。IRIS 2024.1 でサポートする予定です。 CentOS IRIS 2023.2 が、開発用プラットフォームとして CentOS をサポートする最後のリリースになります。 Red Hat はここ数年、開発者プログラムを運用しており、本番環境以外には無料ライセンスを開発者に提供しています。 InterSystems コンポーネント InterSystems System Alerting & Monitoring (SAM) が非推奨となりました。 Open Metrics と互換性のあるエンドポイントを含め、Monitor API はこの変更による影響はありません。 Caché ならびに Ensemble 本番環境用オペレーティングシステムと CPU アーキテクチャ 過去にお知らせ済みの変更点 Cache 2018.1.7 で Windows 11 のサポートを追加しました。 InterSystems サポート・プラットフォームに関するドキュメント InterSystems サポート・プラットフォームに関するドキュメントにて、サポートリストの正式な情報を入手いただけます。 IRIS 2023.1 サポート対象プラットフォーム IRIS 2022.1 サポート対象プラットフォーム IRIS 2021.1 サポート対象プラットフォーム Caché & Ensemble 2018.1.7 サポート対象プラットフォーム 以上になります。もし追加で知りたい情報がございましたら、ぜひコメントなどを通じてお知らせください。
お知らせ
Mihoko Iijima · 2023年11月27日

★投票開始!★ InterSystems Java プログラミングコンテスト 2023

開発者の皆さん、こんにちは! InterSystems Java プログラミングコンテスト 2023 の投票が開始されました! 🔥 ベストアプリケーションはこれだ! 🔥と思う作品にぜひ投票お願いします。(今回は13アプリケーションの応募がありました) 投票方法詳細は以下の通りです。 Experts nomination: インターシステムズの経験豊富な審査員がベストアプリを選び、Expert Nominationで賞品をノミネートします。 ⭐️ @Guillaume.Rongier7183, Sales Engineer⭐️ @Sylvain.Guilbaud, Sales Engineer⭐️ @akoblov, Senior Support Specialist⭐️ @Eduard.Lebedyuk, Senior Cloud Engineer⭐️ @Steve.Pisani, Senior Solution Architect⭐️ @Alex.Woodhead, Senior Systems Developer⭐️ @Andreas.Dieckow , Principal Product Manager⭐️ @Aya.Heshmat, Product Manager⭐️ @Benjamin.DeBoe, Product Manager⭐️ @Robert.Kuszewski, Product Manager⭐️ @Carmen.Logue , Product Manager⭐️ @Luca.Ravazzolo, Product Manager⭐️ @Raj.Singh5479, Product Manager⭐️ @Patrick.Jamieson3621, Product Manager⭐️ @Stefan.Wittmann, Product Manager⭐️ @tomd, Product Manager⭐️ @Daniel.Franco, Senior Manager - Interoperability Product Management⭐️ @Timothy.Leavitt, Development Manager⭐️ @Evgeny.Shvarov, Senior Manager of Developer and Startup Programs⭐️ @Dean.Andrews2971, Head of Developer Relations⭐️ @Jeffrey.Fried, Director of Product Management Community nomination: 開発者コミュニティのメンバーは、お好みのアプリケーションに対して1位~3位を指定しながら投票できます。 開発者コミュニティでのあなたの状態 順位 1位 2位 3位 開発者コミュニティに記事を掲載したり、OpenExchange(OEX)にアプリをアップロードしたことがある方 9点 6点 3点 開発者コミュニティに1つの記事を掲載した、または 1アプリケーションを OEX にアップロードしたことがある方 6点 4点 2点 開発者コミュニティへコメントや質問を投稿したことがある方 3点 2点 1点 エキスパートレベル 順位 1位 2位 3位 グローバルマスターズの VIP レベル または、InterSystems Product Managers 15点 10点 5点 グローバルマスターズの Ambassador レベル 12点 8点 4点 グローバルマスターズの Expert レベル または DC モデレーター 9点 6点 3点 グローバルマスターズの Specialist レベル 6点 4点 2点 グローバルマスターズの Advocate レベル または インターシステムズの従業員 3点 2点 1点 「ブラインド投票」とします 各応募作品への投票数は、誰にも分らないようになっています。1日1回、この記事のコメント欄に投票数を公開する予定です。 コンテストページの表示順は、コンテストに応募した時期が早ければ早いほど、上位に表示されます。 メモ:新しいコメントの通知を受けるために、この投稿を購読することをお忘れなく!(記事末尾の ベルのアイコンをクリックするだけ!) 投票に参加するには Open Exchange へのサインインします(開発者コミュニティのアカウントを使用してください)。 投票ボタンは、開発者コミュニティ内で、質問/回答/記事の掲載/投稿に対するコメント など 記載いただいた方に対して有効になります。 ボタンが押せない場合は、コミュニティへのコメントやオリジナルの記事など、書き込みお願いします!詳細は、こちらの記事をご参照ください。 気が変わった場合は? - 選択をキャンセルして別のアプリケーションに投票できます。 ぜひ🔥これだ🔥と思う作品に投票をお願いします! メモ:コンテストへ応募された作品は、投票週間中にバグを修正したり、アプリケーションを改良したりすることができますので、アプリケーションのリリースを見逃さずに購読してください
お知らせ
Mihoko Iijima · 2023年12月5日

★受賞者発表!★ InterSystems Java プログラミングコンテスト 2023

開発者の皆さん、こんにちは! InterSystems Java プログラミングコンテスト 2023 の勝者が決定しました! 今回もコンテストにご参加・ご注目いただきありがとうございました!今回は 13 のアプリケーション の応募がありました🔥 Experts Nomination 🥇 1位 - $5,000 は、presto-iris を開発された @Dmitry.Maslennikov さんに贈られました。 🥈 2位 - $3,000 は、iris-dmn を開発された @Alexey.Nechaev さんに贈られました。 🥉 3位 - $1,500 は、iris-parquet を開発された @Yuri.Gomes さんに贈られました。 🏅 4位 - $750 は、quiz-app を開発された @Andrii.Mishchenko さんに贈られました。 🏅 5位 - $500 は、StarChat を開発された @Anna.Diak さんに贈られました。 🌟 $100 は、JIRISReport を開発された @Yuri.Gomes さんに贈られました。 🌟 $100 は、InterLang を開発された @Zacchaeus.Chok さんに贈られました。 🌟 $100 は、fhir-pex を開発された @Flavio.Neubauer3032 さんに贈られました。 🌟 $100 は、excel-java-iris を開発された @Oliver.Wilms さんに贈られました。 🌟 $100 は、native-api-command-line-java を開発された @Robert.Cemper1003 さんに贈られました。 どのアプリケーションも興味深く、とても素晴らしい作品でした。そのため、審査員が13作品の中から3作品だけを選ぶのは非常に困難だったため(そして今年最後のコンテストでもありますので)コンテストに応募されたすべてのアプリケーションを表彰することにしました!😉 🌟 $100 は、java-global-editor を開発された @Robert.Cemper1003 さんに贈られました。 🌟 $100 は、Image AI Creator を開発された @Yuri.Gomes さんに贈られました。 🌟 $100 は、iris-extlanguage-openpdf を開発された @Nicki.Vallentgoed さんに贈られました。 Community Nominatio 🥇 1位 - $1,000 は、presto-iris を開発された @Dmitry.Maslennikov さんに贈られました。 🥈 2位 - $750 は、StarChat を開発された @Anna.Diak さんに贈られました。 🥉 3位 - $500 は、quiz-app を開発された @Andrii.Mishchenko さんに贈られました。 🏅 4位 - $300 は、fhir-pex を開発された @Flavio.Neubauer3032 さんに贈られました。 🏅 5位 - $200 は、iris-dmn を開発された @Alexey.Nechaev さんに贈られました。 参加者の皆さん、そして受賞者の皆さん、本当におめでとうございます! 次回もお楽しみに!!