対象バージョン
2020.1.0以降のInterSystems IRISおよびInterSystems IRIS for Healthのすべてのメジャー・リリースおよびメンテナンス・バージョン

対象プラットフォーム
全て

発生する問題
分散型キャッシュ・クラスタ(ECP 構成) でアプリケーションのロック保証に違反し、アプリケーションの整合性に問題が生じる可能性があります。

問題の詳細
この問題は、データサーバの再起動またはフェイルオーバー後に、アプリケーションサーバがECPリカバリを正常に実行した場合にのみ発生します。
以下のようなケースです。

0 0
0 62
記事
· 2022年2月9日 2m read
IRIS-NativeAPI-Nodejs-compact (jp)

これは、前回の「DockerマイクロサーバーとしてのIRIS Native APIを使用するWebSocketクライアントJS」のフォローアップです。

すべてのピースが1つのDockerイメージにまとめられたため、インストールがはるかに簡単になりました。
作業が楽になります。 ただしもちろん、マイクロサービスの原則はわかりにくくなくなっています。
オールインワンのバンドルパッケージであるため、 コンパクトになっています。

0 0
0 214

これは、IRIS でリレーショナルデータをクエリするアナリストとアプリケーションに、さらに優れた適応性とパフォーマンスによるエクスペリエンスを提供する IRIS SQL のイノベーションをトピックとした短い連載の 3 つ目の記事です。 2021.2 では連載の最後の記事になるかもしれませんが、この分野ではさらにいくつかの機能強化が行われています。 この記事では、このリリースで収集し始めたヒストグラムという追加のテーブル統計について、もう少し詳しく説明します。

0 0
0 61

開発者の皆さん、こんにちは!

InterSystems Python コンテスト 2022 のテクノロジーボーナスについてご案内します。

以下のテクノロジを使いコンテストにご応募いただくと、ボーナス点を獲得できます!

  • Embedded Python - 4
  • Python Native API - 3
  • Python Pex - 3
  • ObjectScript を使用しない - 5
  • アンケート への回答- 2
  • Docker コンテナの使用 - 2
  • ZPM パッケージによるデプロイ - 2
  • オンラインデモ公開 - 2
  • コミュニティに記事を投稿する - 2
  • コミュニティに2つ目の記事を投稿する - 1
  • YouTubeでビデオを公開する - 3

詳細は以下の通りです。

0 0
0 82

開発者のみなさん、こんにちは。

今回は、スーパーやコンビニでもらうレシートを写真で撮り、OCR を使ってレシートの画像から文字列を切り出して IRIS に登録する流れを試してみました。

サンプルでは、Google の Vision API を利用してレシートの JPG 画像から購入物品をテキストで抽出しています。

1 0
1 1.1K

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

データベースの空き容量は、システムモニタを使用して監視することができます。

システムモニタは、システム開始時に自動開始され、予め設定された閾値に対してアラートが通知されます。

0 0
0 155

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

1つのインスタンスで作成可能なネームスペース数の上限は、2047個になります。
ただし多数のネームスペースを使用するには、それに合わせてメモリの設定が必要になります。使用するメモリの設定については下記の関連トピックご参照ください。
管理ポータルのメモリ関連設定項目について

0 0
0 184

開発者の皆さん、こんにちは!

PythonでExcelからPDFへ変換を行うには、pywinを使うとできるらしいので、IRISにあるデータをDataframeに設定した後Excelに出力し、ExcelからPDFに変換する流れを、Embedded Pythonで試してみました。

メモ:pywinはWindows環境下で動くモジュールのようです。

Excelに出力するデータですが、例では、SELECTの結果をDataframeに格納する方法を利用しています。グローバル変数の情報をDataframeに格納する方法については、以下の記事で詳しくご紹介しています。ぜひご参照ください。
Embedded Python で IRIS グローバル($LB) を Pandas Dataframe に変換する方法

0 0
0 909

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

ミラーリングが同期の対象とするのはデータベースファイルのみです。

アプリケーションに必要なその他のファイル(CSPファイル、画像ファイル、ドキュメントファイルなど)をミラーセットを構成する二台のサーバー間で同期させるには、

  1. NASなどを導入して共有ディスク上にそれらのファイルを配置する方法
  2. または同期ソフトを導入して二台のサーバー間のファイルを同期させる方法

などの方法が考えられます。

また、2の方法ではWindows上ではRoboCopy、Linuxの場合にはrsyncという同期ソフトを使った実例があります。

0 0
0 114

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

コンソールログに任意のメッセージを書き込む方法として%SYS.System クラスの WriteToConsoleLog メソッドを使用することができます。

以下に例を示します。

%SYS>write ##class(%SYS.System).WriteToConsoleLog("xxxxx log message",0,0)
1


WriteToConsoleLogメソッドに指定できるパラメータの詳細は、以下のドキュメントをご参照下さい。

0 0
0 89

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

Question:

InterSystems IRIS は 2フェーズコミットをサポートしていますか?

Answer:

サポートしていません。

2フェーズコミットはデータベースシステムがサポートしているだけでは十分ではなく、アプリケーションサーバ等の各実装が定めている2フェーズコミットのプロトコルを駆使して、アプリケーションを構築する必要があります。

また関連するシステムの全てのコンポーネントが対応している必要がある、ロングトランザクションには向いていないなど、現実に実装する局面では様々な制約事項があります。

2フェーズコミットは、技術面、設計および実装面、コスト面、性能面などハードルが非常に高いため、実際には限られた領域での利用に留まっています。

0 0
0 76

開発者の皆さん、こんにちは!

開発者コミュニティのYouTubeプレイリストに新しいセルフラーニングビデオを公開しましたのでお知らせします📣!

◆ IRISでPythonを使ってみよう!

https://www.youtube.com/embed/HFq-IIlejMg?list=PLzSN_5VbNaxBLXlC9oCgwPtxBilT8tJ96
[これは埋め込みリンクですが、あなたはサイト上の埋め込みコンテンツへのアクセスに必要な Cookie を拒否しているため、それを直接表示することはできません。埋め込みコンテンツを表示するには、Cookie 設定ですべての Cookie を受け入れる必要があります。]

※YouTubeに移動していただくとプレイリストの中から好きなビデオを選択してご覧いただけます。

1 0
0 185

開発者の皆さん、こんにちは!

この記事では、IRIS Security Package 用 REST API をセットアップする方法を学習します。 簡単な HTTP リクエストによって、ユーザー、役割、アプリケーションの追加などを作成し、ObjectScript でクライアントアプリケーションを生成できるようになります。

必要条件

必要なのは:

  1. IRISインスタンス(インストールキットまたはDocker)
  2. ObjectScript package manager (ZPM)
  3. ObjectScriptクライアントを生成するための2つ目のIRISインスタンス(オプション)

OpenExchangeで既存のアプリケーションとライブラリのセットを使用する予定です。 package manager (ZPM)を使用すると、それらのインストールが非常に簡単になります。 インスタンスに ZPM がない場合は、IRIS ターミナルにこのラインをコピーすることで簡単にインストールすることができます。

0 0
0 203

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

クエリパフォーマンスを最適化するための方法の一つとして、クエリ単位またはシステム全体でクエリの並列処理を使用することができます(標準機能)。

こちらは、特定のクエリに対しマルチプロセッサシステムでクエリの実行をプロセッサ間で分割して行うものです。
並列処理の効果が得られる可能性がある場合のみ、クエリオプティマイザは並列処理を実行します。
並列処理の対象はSELECT文のみとなります。

なお、並列プロセスの数は、CPUの数に応じて自動で調整するため、数の指定は行えません。
現在のシステムのプロセッサ数は以下のコマンドで確認することができます。

1 0
0 182

インターシステムズは、InterSystems IRIS® および Caché が、Windows 上でラージ・ページが割り当てられていることを示しているにもかかわらず、その利点を利用しないことがある問題を修正しました。この問題は、システム・パフォーマンスに悪影響を及ぼす可能性があります。

0 0
0 121

IRIS 2023.1でのメソッドコードの生成と呼び出し方法の変更について、お知らせしたいと思います。

IRIS のクラスは、2 つの主要なランタイムコンポーネントで構成されています。

  1. クラスディスクリプタ - クラスを構成するメソッド、プロパティ、クラスパラメータ、およびこれらのそれぞれに関連する属性(パブリック/プライベート設定など)が最適化されたリストです。
  2. ObjectScriptコード - メソッドが呼び出されたときに実行される ObjectScript コードを含むルーチンのセットです。

クラス/オブジェクトのメソッドを呼び出すと、ディスパッチコードがクラス記述子からメソッドを探し、呼び出しが許可されているかどうかを確認し、正しいクラスコンテキストを設定し(その過程で $this を更新)、最後に関連するクラスルーチンにある ObjectScript コードを呼び出します。

2 0
0 150

本記事は、あくまで執筆者の見解であり、インターシステムズの公式なドキュメントではありません。

IRISのoAuth2機能関連の情報発信は既に多数ありますが、本稿では
- 手順(ほぼ)ゼロでひとまず動作させてみる
- 設定の見通しを良くするために、役割ごとにサーバを分ける
- 目に見えない動作を確認する
- クライアント実装(PythonやAngular,CSPアプリケーション等)と合わせて理解する
- シングルサインオン/シングルログアウトを実現する

ということを主眼においています。

コミュニティ版で動作しますので、「とりあえず動かす」の手順に従って、どなたでもお試しいただけます。

現状、使用IRISバージョンはIRIS 2023.1のプレビュー版になっていますが、ソースコードは適宜変更します。

手順に沿ってコンテナを起動すると下記の環境が用意されます。この環境を使用して動作を確認します。

ユーザエージェント(ブラウザ)やPython/curlからのアクセスは、全てApache (https://webgw.localdomain/) 経由になります。青枠の中のirisclient等の文字はコンテナ名(ホスト名)です。

例えば、irisclientホストの/csp/user/MyApp.Login.clsにアクセスする場合、URLとして

 https://webgw.localdomain/irisclient/csp/user/MyApp.Login.cls

と指定します。

つまり、各エンドポイントは同一のorigin (https://webgw.localdomain) を持ちます。そのため、クロスサイト固有の課題は存在しません(カバーされません)が、仮に各サーバが別のドメインに存在しても基本的には動作するはずです。

oAuth2/OIDC(OpenID Connect)の利用シーンは多種多様です。

本例は、認証・認可サーバ,クライアントアプリケーション,リソースサーバの全てがIRISで実行されるクローズドな環境(社内や組織内での使用)を想定して、認可コードフロー(Authorization Code Flow)を実現します。分かりやすい解説が、ネットにたくさんありますので、コードフロー自身の説明は本稿では行いません。

認証・認可サーバの候補はIRIS, WindowsAD, Azure AD, AWS Cognito, Google Workspace, keycloak, OpenAMなどがあり得ます。個別に動作検証が必要です。

クライアントアプリケーション(RP)は、昨今はSPAが第一候補となると思いますが、利用環境によっては、SPA固有のセキュリティ課題に直面します。

IRISには、Confidential Clientである、従来型のWebアプリケーション(フォームをSubmitして、画面を都度再描画するタイプのWebアプリケーション)用のoAuth2関連のAPI群が用意されています。

そこで、Webアプリケーション(CSP)を選択することも考えられますが、クライアント編では、よりセキュアとされるSPA+BFF(Backend For Frontend)の構成を実現するにあたり、Webアプリケーション用APIをそのまま活用する方法をご紹介する予定です。

以下、サーバ編の動作確認には、CSPアプリケーションを使用しています。これは、新規開発にCSP(サーバページ)を使用しましょう、という事ではなく、BFF実現のために必要となる機能を理解するためです。BFFについては、クライアント編で触れます。BFFについては、こちらの説明がわかりやすかったです。

リソースサーバの役割はデータプラットフォームであるIRISは最適な選択肢です。医療系用のサーバ機能ですがFHIRリポジトリはその良い例です。本例では、至極簡単な情報を返すAPIを使用しています。

少しの努力でFHIRリポジトリを組み込むことも可能です。

サーバ編とクライアント編に分けて記載します。今回はサーバ編です。

とはいえ、クライアントとサーバが協調動作する仕組みですので、境界は少しあいまいです

0 0
1 349

請求、支払いや領収、アイテムの配送や在庫を処理するアプリケーションでは、バーコードや QR コードの使用が必要となるのが一般的です。 単純なバーコードよりも多くの情報を格納できる QR コードは、さらに幅広いシナリオで使用されています。 したがって、バーコードと QR コードを生成する機能、またはそれらに格納されたデータを画像または PDF から読み取る機能が重要となります。 この記事では、Python と無料のライブラリを使用してこれを行う方法を説明します。

Pyzbar ライブラリ

pyzbar ライブラリは、zbar ライブラリを使って、Python 2 と 3 から 1 次元バーコードと QR コードを読み取ります。 以下の特徴が備わっています。

2 0
0 979

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

こちらでは、InterSystems Container Registry(ICR) より入手可能なDockerコンテナイメージを使用する方法をご案内します。

WRCDirectのダウンロードサイト より入手可能なイメージを使用する場合も同じようにできます。
 その際、Name:Web でフィルタリングしていただくと、Web Gateway の Docker イメージが見つけやすくなります。
※インターシステムズが提供する webgateway コンテナイメージには、Web ゲートウェイと Apache Web サーバの両方が含まれています。

1 0
0 142

2023.2 の開発者プレビュープログラムの一環として、2番目の開発者プレビューを公開いたします。今回リリースされたのは、InterSystems IRIS と InterSystems IRIS for Health です。

本リリースの注目点

2023.2では、多くの機能修正と改善に加えて、時間認識モデリング強化された外部テーブル読み込み専用の FEDERATED テーブルといった新機能が含まれる予定です。これら新機能の一部は、今回の開発者プレビュー版にはまだ含まれていません。ご注意ください。

0 0
0 86

最近人気上昇中のプログラミング言語Python、ご存じのとおりIRISでは2通りの使い方が出来ます。

組み込みPython(Embedded Python)

PythonコードはIRISプロセス内でObjectScriptコードと並列に実行

具体的には

  1. IRISクラス内のメソッド
  2. SQL関数とストアドプロシージャ
  3. ターミナルからPythonシェルを起動
  4. irispythonコマンド実行

が該当します。

ネイティブAPI(Native API)

IRISの外からグローバルへのアクセス、クラスメソッドを呼び出し

上の4種類以外は全てネイティブAPIを使用します。

Pythonコードが実行される場所でIRISへのアクセス手段が決まりますが、ライブラリ名が双方とも”iris”のため注意が必要です。

* 従来からのirisnativeはDeprecated(非推奨)となりました

1 0
0 143

2023.2 の開発者プレビュープログラムの一環として、6番目の開発者プレビューを公開いたします。今回リリースされたのは、InterSystems IRIS と InterSystems IRIS for Health です。

本リリースの注目点

2023.2では、多くの機能修正と改善に加えて、時間認識モデリング強化された外部テーブル (まだ実験的な機能です) といった新機能が含まれる予定です。これら新機能の一部は、今回の開発者プレビュー版にはまだ含まれていません。ご注意ください。

0 0
0 73

インターシステムズは、接続性に関する 2 つの問題を修正しました。これらの不具合とその修正はそれぞれ独立しています。

この警告は、2つの問題の修正を含む ポイントリリース があるため、両方に対処する内容になります。

どちらの問題も、以下の製品のバージョン2019.1.42020.1.4のみに影響します:

1 0
0 52

はじめに

InterSystems は、最新の CPU 命令セット拡張機能を活用するために、IRIS を最適化したいと考えています。製品のパフォーマンスに対しては素晴らしいことですが、CPU が新しい IRIS ビルドにサポートされるかを知るにはどうすればよいでしょうか。ここでは、CPU のマイクロアーキテクチャファミリと CPU の特定の命令セット拡張機能を知る方法について説明します。

0 0
0 54

この記事は、「プライベートWebサーバ(PWS)を使用しないバージョンの新規インストール/アップグレード:概要」の続きの記事で、ApacheをWebサーバとする場合の設定概要をご紹介します。(先に「概要」の記事をお読みいただくことをお勧めします。)

同一サーバ上にApacheとInterSystems製品をインストールする場合、事前にApacheをインストールしておくとApacheに必要なWebゲートウェイのインストールとIRISへの接続設定をインストーラーが自動で行います。

以降の説明では、以下のインストール方法について解説します。

※ 図解では、InterSystems IRISを使用していますが、InterSystems製品で操作は共通です。

1 0
0 104

2024.1 の開発者プレビュープログラムの一環として、4番目の開発者プレビューを公開いたします。リリースされる製品は InterSystems IRIS®, InterSystems IRIS® for HealthTM, HealthShare® Health Connect になります。

0 0
0 27

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

インスタンスの開始が失敗し、コンソールログに"There exists a MISMATCH.WIJ file"が記録されている場合、何らかのシステム障害の影響でデータベースの整合性に関して問題が生じていることを示しています。

このような状況が発生した際にインスタンスの開始ができるようにするためには、以下の手順を実施します。

(1) a. インスタンスをNOSTUモードで起動
(2) b. データベースの整合性チェック

◆(2)の整合性チェックでエラーを検出しなかった場合、
 (3) d. MISMATCH.WIJ ファイルのリネーム
 (4) e. インスタンスの再起動
を実施します。

0 0
0 16