これは InterSystems FAQ サイトの記事です。
通常SQLCODE -114(一致する行が既に別のユーザにロックされています)のエラーはロックが競合した場合に発生します。
こちらはレコードロック競合があったり、ロック閾値を超える更新を行いテーブルロックに昇格した際に、そのテーブルレコードに対して別のプロセスよりSelectを行い共有ロックを取ろうとして失敗した(ロック待ちがタイムアウトとなった)場合に発生します。
Selectで共有ロックを取る場合というのは、IRIS の ISOLATION LEVEL がREAD COMMITTED(デフォルトはREAD UNCOMMITTED)で、Selectを行った場合です。
例:Sample.Personテーブルにテーブルロックがかかった状態で以下を実行する場合
USER>:sql
SQL Command Line Shell
----------------------------------------------------
The command prefix is currently set to: <<nothing>>.
Enter <command>, 'q' to quit, '?' for help.これは InterSystems FAQ サイトの記事です。
JDBC および ODBC 経由でInterSystemsIRISから外部データベースにアクセスしたい場合、SQLゲートウェイを使用しリンクテーブルを作成して接続できます。
2023.1以降のバージョンでは、リンクテーブルに加えて、外部テーブル/FOREIGN TABLE を使用することが可能となりました(2024.1時点で実験的機能)。
外部テーブルというのは、物理的に別の場所に保存されているデータを IRIS SQL に投影する非常に便利な機能です。
外部テーブルを使用する場合は、Java(2023.1の場合は1.8~)を事前にインストールし、JAVA_HOME環境変数を設定するだけで、簡単に接続することが可能です。
※JAVA_HOME環境変数設定例:
外部テーブルの使用方法については、以下の記事で紹介しております。
レシピデータセットを外部テーブルで読み込み、組み込みPythonでLLMを使って分析する (Langchain + OpenAI)
こちらの記事では、外部テーブルで作成できる2種類のテーブル(「CSVファイル直接接続」と「外部DBへのJDBCゲートウェイ経由での接続」)の簡単なサンプル作成例と、外部テーブルの特徴を紹介しています。
1-1.
埋め込みPythonは、同じプロセス空間で、IRIS言語とPython言語を組み合わせて使える面白い環境を提供しますが、組み合わせて使う場合、オブジェクトタイプとそのアクセス方法の違いをはっきり意識して使わないと混乱するように思います。その使い分けの勉強の為、両言語のオブジェクト参照から、その構造を解析ダンプするツールを作ってみました。とくに、実行中のPython情報が、ZWRITE Oref コマンドでの表示しかないようなので、有用かも知れません。ツールは、まだ、間違い、改良等があると思います(教えて下さい)が、ポストします。
ツール本体: Py.Dump.cls
Class Py.Dump Extends %RegisteredObject
{
/// Py.Dump.cls
/// ObjectScript 及び Python のオブジェクトデータ解析ツール(ダンパー)
/// 入力:ObjectScript 及び 埋め込みPython のデータオブジェクト参照 Oref
/// 出力: 端末と指定グローバル/ローカル変数(デフォルトは ^||o)に Oref のデータ構造を解析し出力する
/// 変数には、データタイプの木構造がセットされる
/// 呼び出し:
/// >d ##Class(Py.Dump).InterSystems API Manager (IAM) のバージョン 2.8.4.10 と 3.4.3.10 が公開されました。 これらは、長期的にサポートされている IAM の 2 つのバージョンの最新版です。これらのリリースには重要な修正が含まれており、すべてのお客様にアップグレードをお勧めします。
IAM 3.0または3.2をお使いのお客様は、これらのバージョンのサポートがまもなく終了するため、3.4.3.10にアップグレードすることをお勧めします。
IAM は、InterSystems IRIS サーバとアプリケーション間の API ゲートウェイであり、HTTP ベースのトラフィックを効果的に監視、制御、管理するためのツールを大規模に提供します。IAM は、InterSystems IRIS ライセンスの無償アドオンとして利用できます。
IAMは、WRCソフトウェア配布サイトのComponentsエリアからダウンロードできます。
ダウンロード、インストール、IAMの使用方法につきましては、インストール・ガイドをご参照ください。InterSystems IRIS での使用に関する詳細な情報についてはドキュメントをご参照ください。パートナーであるKong社では、IAMの使用に関する詳細なドキュメントとしてKong Gateway (Enterprise) 3.
これは InterSystems FAQ サイトの記事です。
管理ポータル > [システム管理] > [セキュリティ] 以下の設定は、%SYSネームスペースにあるSecurityパッケージ以下クラスが提供するメソッドを利用することでプログラムから作成することができます。
以下シナリオに合わせたセキュリティ設定例をご紹介します。
シナリオ:RESTアプリケーション用設定を作成する
事前準備
シナリオの中で使用するソースを2種類インポートします。
アプリケーション用RESTディスパッチクラスをインポートします。
Class Test.REST Extends %CSP.REST
{
Parameter CHARSET = "utf-8";
Parameter CONTENTTYPE = "application/json";
Parameter CONVERTINPUTSTREAM = 1;
XData UrlMap [ XMLNamespace = "http://www.intersystems.これは InterSystems FAQ サイトの記事です。
SQLゲートウェイの接続設定は管理ポータルで作成できますが、プログラムでも作成が可能です。
管理ポータル:
[システム管理] > [構成] > [接続性] > [SQLゲートウェイ接続]
こちらのトピックでは、ODBC/JDBCそれぞれの設定をプログラムで行う方法をご紹介します。
--- SQL Gateway for ODBC ----
set gc = ##class(%SQLConnection).%New()
set gc.Name = "test"
set gc.DSN = "IRIS User"
set gc.Usr = "_system"
set gc.pwd = "SYS"
set gc.bUnicodeStream = 1
set gc.useCOALESCE = 1
write gc.%Save()
--- SQL Gateway for JDBC ----
set gc = ##class(%SQLConnection).%New()
set gc.isJDBC = 1
set gc.Name = "testj"
set gc.Usr = "_system"
set gc.pwd = "SYS"
set gc.driver = "com.Pandas は単に人気のあるソフトウェアライブラリだけではありません。 これは、Python データ分析環境の基礎でもあります。 その単純さとパワーで知られており、データの準備と分析の複雑さをより扱いやすい形態に変換する上で不可欠な多様なデータ構造と関数が備わっています。 これは、主要なデータ管理および分析ソリューションである InterSystems IRIS プラットフォームのフレームワーク内で、主要評価指標(KPI)やレポート作成用の ObjectScript などの特殊な環境に特に関連しています。
データの処理と分析の分野において、Pandas はいくつかの理由により際立っています。 この記事では、それらの側面を詳細に探ります。
- データ分析における Pandas の主なメリット:
ここでは、Pandas を使用する様々なメリットについて深く掘り下げます。 直感的な構文、大規模なデータセットの効率的な処理、および異なるデータ形式のシームレスな操作などが含まれます。 Pandas を既存のデータ分析ワークフローに統合する容易さも、生産性と効率を強化する大きな要因です。
- Pandas による一般的なデータ分析タスクのソリューション:
Pandas には、単純なデータ集計から複雑な変換まで、日常的なデータ分析タスクを処理できる十分な汎用性が備わっています。
2024年10月15日をもって、MacOS での Caché および Ensemble のサポートが非推奨となります。
Caché および Ensemble 2018.1.9 のサポートは続きますが、MacOS 向けのメンテナンスバージョンは今後リリースされません。つまり、MacOS 向け製品としては、Caché および Ensemble 2018.1.9 が最後のバージョンとなる予定です。
あらためてのお知らせですが、その他のプラットフォームにおいても、Caché および Ensemble のメンテナンスバージョンは 2027年3月31日をもってリリース終了となる予定です。詳細は昨年発表の記事をご参照ください。
これは InterSystems FAQ サイトの記事です。
管理ポータル > [システム管理] > [セキュリティ] 以下の設定は、%SYSネームスペースにあるSecurityパッケージ以下クラスが提供するメソッドを利用することでプログラムから作成することができます。
ユーザ設定については、Security.UsersクラスのCreate()メソッドを使えば作成できますが、ユーザを作成するだけでは適切な権限が付与されずに目的のデータにアクセスできない状況もあります。
例)testAユーザ作成
%SYS>set st=##class(Security.Users).Create("testA",,"testA","これはテストユーザです","USER")
%SYS>write st
1上記メソッドで作成した結果は以下の通りです。(ロール付与無し、テーブルに対する権限の割り当てもなしの状態)

以降の解説では、以下のシナリオをもとにした設定を行っていきます。
シナリオ:アプリケーション開発者用ロールとユーザを作成する
1) アプリケーション開発者のtestAは、USERネームスペースにログインするアプリケーション開発者です(=%DevelopmentリソースのUse許可を与えます)。
InterSystems Reports 24.1 がリリースされ、WRC の Components エリアから入手いただけるようになりました。本製品は InterSystems Reports Designer と InterSystems Reports Server と表記されており、Mac OSX、Windows、Linux 版を入手いただけます。
この新バージョンには、弊社パートナーの insightsoftware 社によるすばらしい拡張機能が含まれています。InterSystems Reports 24.1 は Logi Report 24.1 SP2 をベースにしており、以下の機能が含まれます。
これは InterSystems FAQ サイトの記事です。
こちらの記事では、「IRISでシャドウイングの代わりにミラーリングを構成する方法」を紹介しました。
今回は、「プログラムでシャドウイングの代わりにミラーリングを構成する方法(Windows版)」を紹介します。
【今回のサンプル・ミラー構成について】
| 正サーバ(ミラー・プライマリ) | 副サーバ(ミラー・非同期) | |
| ミラー名 | MIRRORSET | MIRRORSET |
| ミラーメンバ名 | MACHINEA | MACHINEC |
| IPアドレス | 35.77.84.159 | 54.248.39.237 |
では、ミラーの構成手順をご紹介します。手順は以下になります。
<ミラーリングのプライマリ設定> // MACHINEA(正サーバ)
1. ISCAgentの自動起動設定および起動 ※Windowsコマンドプロンプトで実行
C:\Users\Administrator>sc config ISCAgent start=auto
C:\Users\Administrator>sc start ISCAgent2.
これは InterSystems FAQ サイトの記事です。
メッセージログ(messages.log)/コンソールログ(cconsole.log) に以下のようなメッセージが表示される場合があります。
このメッセージ出力は、ライトデーモンのデータベースファイルへの書き込み処理の遅延を示しています。
その原因としては、ディスクI/O負荷が高く、そのI/O要求量に対してディスク処理性能が不足していることが考えられます。
ディスクI/O負荷の原因としては以下が考えられます。
- アプリケーションによるデータへの更新や参照処理が集中した
- アンチウイルスソフトのスキャンやデータベースバックアップソフト等によるディスクへのI/O負荷
もしアンチウイルスソフトがインストールされている場合は、「アンチウイルスソフト(セキュリティソフト)のスキャンから除外してほしいリスト」に記述している情報を参考に、InterSystems製品の対象ファイルをスキャンの対象外に設定変更してください。
開発者の皆さん、こんにちは!
💡 第3回 InterSystems アイデアコンテスト が終了しました。今回、🔥 30 もの新しいアイデアが投稿されました!
いずれも InterSystems IRIS および関連製品やサービスの改善に焦点が当てられていて、アイデアが実装された場合、開発者にとってより具体的なメリットとなることでしょう。
この記事では、アイデアコンテストの勝者の皆さんをご紹介します。
開発者の皆さん、こんにちは!
次のInterSystems プログラミングコンテストの内容についてご案内します📣
期間: 2024年7月15日~2024年8月4日
賞金総額:$14,000
.jpg)
これは InterSystems FAQ サイトの記事です。
監査ログはシステムDB内テーブル(%SYS.Audit)に記録されていますので、そのテーブルに対するクエリを実行して抽出したり、%SYS.Auditテーブルに用意されていストアドプロシージャを利用して情報を取得しファイル出力するようにプログラムを用意することもできます。
以下にご紹介する内容は「監査ログをプログラムで出力(ユーザやイベント指定など)する方法」に関連した内容で、監査ログのファイル出力を管理ポータルの機能を利用した例とプログラムを利用した例でご紹介します。
1. 管理ポータルの印刷機能を使う
管理ポータル > [システムエクスプローラ] > [SQL]を開き、%SYSネームスペースに接続します。
システムのチェックを入れ、スキーマに%SYSを指定した後、プロシージャの階層を展開するとプロシージャリストが参照できます。
%SYS.Audit_ で始まるプロシージャが監査ログに対して実行できるプロシージャです。
SQL文例)InterSystems製品内ユーザのSuperUserに対する監査ログをストアドプロシージャ:%SYS,Audit_ListByUser を利用して出力しています。
call %SYS.Audit_ListByUser(,,,,,'SuperUser')引数については、クラスリファレンス:%SYS.
これは InterSystems FAQ サイトの記事です。
PythonスクリプトファイルやPythonで記述されたIRIS内メソッドを呼び出す際、エラーが発生した場合の対応方法をご紹介します。
説明使用するコードや資料PDFは公開しています👉 test1.py、FS.Utilsクラス、コードのコピー元、ビデオで解説している資料PDF
Embedded Python 自習用ビデオをご用意しています(項目別にYouTubeプレイリストをご用意しています)。
各プレイリストについて詳しくはこちらをご参照ください👉【はじめてのInterSystems IRIS】Embedded Python セルフラーニングビデオシリーズ公開!
これは InterSystems FAQ サイトの記事です。
InterSystems製品のサーバサイドでファイル入出力を行うと、文字列はシステムで設定されたファイル入出力用文字コードに自動変換され、文字単位でREADします。
ファイルから入力する文字をバイト単位で操作するためには、自動変換を行わない無変換の状態でファイル入力を行い指定バイトずつ読みながら読んだ分だけUnicodeに手動で変換していく必要があります。
変換には$ZCONVERT()関数を使用します。($ZCONVERT()には省略形があり$ZCVT()でも同様の操作が行えます。)
なお、READした指定バイトを変換する際、文字の全バイトが含まれない場合もあるため、途中までの読み取りになった文字列を第4引数に指定する変数に設定できるようになっています。
次回読み取り時に途中だった文字を自動的に先頭に追加し、$ZCONVERT()の処理を実行します。
《メモ》ファイル入出力の文字コードについては、以下管理ポータルの画面で確認できます。
管理ポータル > 構成 > 国際言語設定 > 構成したデフォルト値
入力/出力テーブルの表の「ファイル」
以下の文章がファイルにUTF8で保存されているとします。
無変換でファイル入力を行うには、%Stream.
これは InterSystems FAQ サイトの記事です。
IRIS2024.1以降のバージョンをインストールしようとした際に、以下のようなエラーになることがあります。
これは、2024.1以降のバージョンより最小CPUの条件として、AVX および BMI 拡張命令が含まれることが条件となっているのですが、ご使用の環境に含まれない(仮想環境やFTサーバ等の特殊なシステムでは無効化されている場合も)ときに出力されるエラーです。
最小CPUサポートバージョンについては、以下のドキュメントをご覧ください。
Minimum Supported CPU
現在使用中のCPUの拡張命令セットの情報の確認方法については、以下のDC記事をご覧ください。
CPU のマイクロアーキテクチャファミリと命令セットの判定方法
Linuxの場合は、lscpuコマンド、または lshw -class processor コマンドで確認できます。
これは InterSystems FAQ サイトの記事です。
現時点(2024年3月)では、コミュニティに掲載されているPythonライブラリ「iris-dollar-list」を利用することでIRISの$LIST()形式のデータをPythonのリストとして利用することができます。
※標準ツールではありませんがご利用いただけます。詳細はコミュニティの記事「もう1つの $ListBuild() の実装:Pythonライブラリ「iris-dollar-list」」をご参照ください。
WindowsにインストールしたIRISで使用する場合は、以下の方法で「iris-dollar-list」をインストールしてください。
※Windows以外にインストールしたIRISでは、pipコマンドを利用した通常の方法でインストールできます。
コマンドプロンプトを開き、以下実行します。(IRISをデフォルトインストールしたときのディレクトリで掲載しています)
> cd C:\InterSystems\IRIS\bin
> irispip install --target C:\InterSystems\IRIS\mgr\python iris-dollar-list実行例は以下の通りです。
近頃、LLM や AI などに関する話題で非常ににぎわっています。 ベクトルデータベースもそれなりに関わっており、IRIS 以外では、世界中で多様なサポートがすでに実現されています。
なぜベクトルなのでしょうか?
- 類似検索: ベクトルでは、データベース内で最も類似する項目やドキュメントを検索するなど、効率的な類似検索が可能です。 従来のリレーショナルデータベースは完全一致検索向けに設計されているため、画像やテキストの類似検索といったタスクには向いていません。
- 柔軟性: ベクトル表現には汎用性があり、テキスト(Word2Vec、BERT などの埋め込み経由)や画像(ディープラーニングモデル経由)などの様々なデータタイプから導き出すことができます。
- クロスモーダル検索: ベクトルでは、様々なデータモダリティでの検索が可能です。 たとえば、画像のベクトル表現を基に、マルチモーダルデータベースで類似する画像や関連するテキストを検索できます。
理由は他にも多数あります。
そこで、この Python コンテストでは、このサポートを実装してみることにしました。 残念ながら時間内に完成させることはできませんでしたが、その理由を以下で説明します。

ご好評をいただいておりますインターシステムズ開発者向けオンラインセミナー、連続3回のシリーズでお届けする新機能のご紹介、
7月は以下のテーマで開催いたします。
テーマ「Embedded Pythonの新機能」
日時:7月30日(火)13:30~14:00 (参加費無料・事前登録制)
[概要]
InterSystems IRIS および IRIS for Health 2024.1では、Embedded Pythonの利用範囲をますます拡大する新機能が追加されました。
・Python WSGI標準に準拠するWebアプリケーションの作成
・Python BPLエディタ
・フレキシブル組み込み Python ランタイム
本セッションでは、これら新機能をデモを交えてご紹介します。IRISをPythonで開発する際の新たなオプションとしていただければ幸いです。
[こんな方にお勧め]
・IRISに関わる技術者の方
・Pythonに興味のある方
・Python技術者の方
ご多用中とは存じますが、皆様のご参加をお待ち申し上げております!
はじめに
先日、@Patrick Jamieson が開催した素晴らしいハンズオンに参加してきました。そこでは、SMART On FHIR が定義したプロトコルに従って Angular アプリケーションを IRIS FHIR サーバーとともに構成したセッションでした。非常に深い興味を得たため、独自に Andular アプリケーションを開発し、そこから学んだことを活用してコミュニティに共有することにしました。
SMART On FHIR
SMART On FHIR について Google ではどのように説明しているのか見てみましょう。
SMART On FHIR は電子健康記録(EHR)システムの情報にアプリケーションがアクセスできるようにするためのデータ規格です。 アプリケーション開発者は、その規格を採用した EHR システムに接続する単一のアプリケーションを作成できます。
SMART On FHIR では、以下の主な概念を処理します。
- OAuth2 または OpenID による代理認証と承認。
- 定義されたコンテキストにおける FHIR リソースの操作。
- HTTPS 通信。
プロジェクトのアーキテクチャ
この演習では、Docker と Auth0 サービスの両方で以下の要素を構成しました。
.png)
- フロントエンドとして機能する Angular で開発されたアプリケーション。
SSL/TLS を使用するように InterSystems IRIS スーパーサーバを構成した際に、「管理ポータルに接続できなくなった」というお問い合わせを時々いただきます。
こちらの記事では、その際の対処法をご案内します。
スーパーサーバを SSL/TLS 化するために、以下のドキュメントにある方法を設定されると思います。
TLS を使用するための InterSystems IRIS スーパーサーバの構成
その際に、SSL/TLSサポートレベル を 「必須」にしてしまうと、管理ポータルに接続できなくなる場合があります。
※管理ポータル:
IRIS2024.1 ~ [システム管理] > [セキュリティ] > [スーパーサーバ]
~IRIS2023.1 [システム管理] > [セキュリティ] > [システム・セキュリティ] > [システムワイドセキュリティパラメータ]
「必須」に設定する場合、すべてのクライアントからの接続を SSL/TLS 化する必要があります。
これは、WebゲートウェイからIRISへの接続にもあてはまるため、「Webゲートウェイ <==> IRIS」間を SSL/TLS 設定していない場合は、管理ポータル(REST/CSPを含む)に接続ができなくなってしまいます。
これは、InterSystems FAQサイトの記事です。
IRIS/IRIS for Health2024.1以降のバージョンのSQLで、JSON_TABLE関数がサポートされています。
【ドキュメント】JSON_TABLE(SQL)
これを使用することにより、JSON形式データを表形式で取得することが出来ます。
【例】郵便番号情報を外部から取得し、表形式にマッピングする。
(取得データ(JSON))
{
"message": null,
"results": [
{
"address1": "東京都",
"address2": "新宿区",
"address3": "西新宿",
"kana1": "トウキョウト",
"kana2": "シンジュクク",
"kana3": "ニシシンジュク",
"prefcode": "13",
"zipcode": "1600023"
}
],
"status": 200
}(SQL例)
※下記の実行には、SSL構成が必要になります。事前に構成を作成して、その構成名を使用してください。
SELECT
address1,address2,address3,kana1,kana2,kana3,zipcode
FROM JSON_TABLE(%Net.このたび InterSystems IRIS 2024.1 の日本語ドキュメントが完成しました。以下のURLでご参照いただけます。
InterSystems IRIS® データ・プラットフォーム 2022.3 からライセンス消費メカニズムにRESTとSOAPを追加しました。この変更により、コア・ベースライセンス以外でRESTまたはSOAPを使用している場合、アップグレード後にライセンス消費量が多くなる可能性があります。この勧告がお使いのシステムに該当するかどうかは、以下にあるFAQ(英語)のリンクをご参照ください。.
ライセンス使用について、こちらの表にまとめています。
|
製品
|
REST と SOAP のリクエストがライセンスを消費するかどうか
|
|
InterSystems Caché® |
する
|
|
InterSystems Ensemble® |
しない
|
|
InterSystems IRIS, InterSystems IRIS® for Health, Health Connect 2022.3 より前 |
しない
|
|
InterSystems IRIS, InterSystems IRIS for Health, Health Connect 2022.3 以降 |
する
|
開発者の皆さん、こんにちは。
(2024/5/30:6月の日時、ウェビナー内容を更新しました)
InterSystems IRIS、InterSystems IRIS for Healthの新バージョン2024.1がリリースされました。
様々な機能の追加や実験的機能としての追加が行われましたが、その中から以下3種類の内容についてウェビナーを開催します!📣
✅4月23日(火)13時半~14時:IRIS 2024.1の管理用Webサーバ(PWS)廃止に備えて
YouTube公開しました👉https://youtu.be/bVwWZt1oNws?list=PLzSN_5VbNaxCeC_ibw2l-xneMCwCVf-Or
✅5月30日(木)13時半~14時:ベクトル検索機能のご紹介
YouTube公開しました👉https://youtu.be/v0G7K2et_Yk?list=PLzSN_5VbNaxB39_H2QMMEG_EsNEFc0ASz
✅6月25日(火)13時半~14時:FHIR新機能のご紹介~2024.1~
オンデマンド配信はこちら👉https://event.on24.com/wcc/r/4597704/ADA161B6446E6BA01623C875CF596FD0
(資料PDFもオンデマンド配信画面よりダウンロードいただけます)
連続3回のシリーズでお届けする新機能についてのウェビナー
テーマ「FHIR新機能のご紹介~2024.1」
日時:6月25日(火)13:30~14:00 (参加費無料・事前登録制)
ご登録はこちらから
【セッション概要】
IRIS2024 .1では、いくつかのFHIR関連の新機能の追加および機能強化が行われました。本ウェビナーではFHIRオブジェクトモデルの機能概要を中心に、2023.1以降のバージョン追加および強化されたIRIS for HealthのFHIR機能についてお話しいたします。
【こんな方にお勧め】
・現在、FHIR関連開発をされている方。
・アプリケーションのFHIR対応を検討されている方。
皆様のご参加をお待ち申し上げております!
開発者の皆さん、こんにちは。
次のコンテストの開催が決定しました!💡 第3回 InterSystems アイデアコンテスト 💡
InterSystems アイデアコンテストは開発者コミュニティのメンバー(InterSystems社員も含)であればどなたでもご応募いただけます!
このコンテストでは、インターシステムズの製品やサービスを強化するための革新的なアイデアを募集しています。あなたのアイデアが他の利用者にもたらす具体的なメリットや、インターシステムズの技術で開発者の体験をどのように向上させるかについて実際の使用事例に基づいた提案をお待ちしています。
📅 期間:2024年6月10日~2024年7月7日
🏆 優秀なアイデアには賞品が贈られます!
🎁 参加賞あります!: コンテストに採用された方全員に参加賞をご用意しています!👕
>> 6月10日よりアイデア募集します! <<
(3).jpg)


