InterSystems公式 Megumi Kakechi · 2024年8月16日 2m read 警告: 未使用領域削除後のマルチボリュームデータベースの破損 インターシステムズは、非常にまれな状況下で、マルチボリュームデータベースでデータベース破損または <DISKHARD> エラーが発生する可能性がある不具合を修正しました。危険性があるのは、未使用領域削除(Truncate)を行ったマルチボリュームデータベースのみです。 この問題は、以下の製品およびそれらベースとしたその他のインターシステムズ製品に存在します: InterSystems IRIS 2024.1, 2024.1.1, 2024.2 InterSystems IRIS for Health 2024.1, 2024.1.1, 2024.2 HealthShare Health Connect 2024.1, 2024.1.1, 2024.2 #アラート #セキュリティ #InterSystems IRIS #InterSystems IRIS for Health #InterSystems公式 0 0 0 48
記事 Hiroshi Sato · 2025年3月4日 4m read 計算プロパティの使用方法2 これは InterSystems FAQ サイトの記事です。 計算プロパティを定義する際に利用可能なキーワードが複数あります。 詳細は、以下をご参照ください。 計算プロパティの定義 実際のこれらのキーワードの関連性は、少々複雑ですので具体的なコードを作成して動作を確認してみます。 以下のようなクラス定義を作成します。(プロパティとインデックス定義のみ表示します) 完全なクラス定義は以下より、ダウンロードできます。 サンプルクラス定義 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 46
記事 Toshihiko Minamoto · 2025年2月27日 7m read Iris における Flask アプリケーションの実行 説明 これは、ネイティブウェブアプリケーションとして IRIS にデプロイできる Flask アプリケーションのテンプレートです。 インストール リポジトリをクローンする 仮想環境を作成する 要件をインストールする docker-compose ファイルを実行する git clone cd iris-flask-template python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt docker-compose up 使用法 ベース URL は http://localhost:53795/flask/ です。 #CSP #Docker #Git #JSON #Python #SQL #セキュリティ #フレームワーク #相互運用性 #InterSystems IRIS Open Exchange app 0 0 0 46
記事 Tomoko Furuzono · 2025年1月7日 1m read データ容量の見積もりについて これは、InterSystems FAQサイトの記事です。 質問:データ容量を見積もる計算式はありますか? 回答:正確に見積もるための計算式は残念ながらありません。 InterSystems IRIS Data Platformの場合、データ部に関してはデータを全て可変長で格納しますので、各フィールドの平均がどのくらいであるかという目安の数字で平均レコード長を求め、キー部分も同様の計算を行い、必要な容量の推測値を求める必要があります。 インデックス部に関してはキー圧縮されますので、データと同じような上記の計算を行った推測値よりは少なくなることが期待できます。 ただしその圧縮率はデータの特性に大きく影響されますので、どの程度少なくなるかは一概には言えません。 実データのサンプル(例えば、1万件のデータ)をロードし、その時点でのサイズを確認して想定される件数分のデータ容量を推測するというのが現実的な方法となります。 #システム管理 #データベース #ヒントとコツ #プラットフォーム #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 46
InterSystems公式 Masahito Miura · 2024年10月24日 2m read InterSystems IRIS、IRIS for Health、HealthShare HealthConnect のメンテナンスリリース 2023.1.5 と 2024.1.2 のご案内 InterSystems IRIS、IRIS for Health、HealthShare HealthConnect のメンテナンスリリース 2023.1.5 と 2024.1.2 がリリースされました InterSystems IRIS、InterSystems IRIS for Health、HealthShare Health Connect の2つのメンテナンスリリースがリリースされました。✅ 2023.1.5 リリース 2023.1.5 は、以前のリリース 2023.1.x のバグフィックスを提供します。 詳細な変更リストとアップグレード・チェックリストは、以下のページにあります : #リリース #InterSystems IRIS #InterSystems IRIS for Health #InterSystems公式 0 0 0 46
記事 Tomoko Furuzono · 2025年3月25日 1m read ORDER BY で並べ替える際の照合順を調整する これは、InterSystems FAQサイトの記事です。 SQLでクエリ実行時、ORDER BYで並べ替えをする場合、各RDBMSによって、照合順が異なることがあります。 たとえば、NULLと空文字の混じった文字列のカラムを並べ替える場合、 IRIS SQLでは、既定の照合順は下記のようになりますが、 NULL, 空文字, 0, 00, 01, 1, 10, 100, 11, A, a, B, b Oracleでは、下記のような照合順になります。 空文字, 0, 00, 01, 1, 10, 100, 11, A, B, a, b, NULL 複数のDB由来のデータを取り扱う際には、このような照合順の違いを合わせたい場合があります。 #SQL #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 45
記事 Toshihiko Minamoto · 2024年11月26日 5m read d[IA]gnosis_ IRIS for Health を使用した RAG アプリケーションの開発 ベクトルデータ型と Vector Search 機能が IRIS に導入されたことにより、アプリケーションの開発に多数の可能性が開かれました。こういったアプリケーションの例として、バレンシア保健省が AI モデルを使用した ICD-10 コーディング支援ツールを要求した公募で出品されたアプリケーションが最近私の目に留まりました。 要求されたツールのようなアプリケーションをどのように実装できるでしょうか? 必要なものを確認しましょう。 ICD-10 コードのリスト。自由テキスト内で診断を検索するための RAG アプリケーションのコンテキストとして使用します。 ICD-10 コード内で相当するものを検索するためにテキストをベクトル化するトレーニング済みモデル。 ICD-10 コードとテキストの取り込みとベクトル化を行うために必要な Python ライブラリ。 可能性のある診断を見つけるためのテキストを受け入れる使いやすいフロントエンド。 フロントエンドから受信するリクエストのオーケストレーション。 これらのニーズに対応するために、IRIS は何を提供できるでしょうか? #Angular #Artificial Intelligence (AI) #Embedded Python #Vector Search #InterSystems IRIS for Health Open Exchange app 0 0 0 45
記事 Megumi Kakechi · 2024年12月17日 4m read 既存のセキュリティ設定をプログラムで変更する方法 こちらの記事では、既存のユーザ設定をプログラムで変更する方法をご紹介します。 ユーザロールを追加/削除したい、有効期限設定を変更したい、等の場合にお役立てください。 なお、ユーザ設定をプログラムで新規作成する方法は こちら の記事で紹介しております。 1.ある特定ユーザの設定を参照+変更する方法 2.既存の全てのユーザの設定を参照する方法 3.おまけ(Webアプリケーション情報の参照+変更) 1.ある特定ユーザの設定を参照+変更する方法 #セキュリティ #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 43
記事 Tomoko Furuzono · 2025年4月3日 1m read ロードバランサやプロキシサーバ経由でアクセスしている接続元クライアントIPを取得する方法 これは、InterSystems FAQ サイトの記事です。 HTTPプロキシサーバまたは負荷分散装置(ロードバランサ)を経由してウェブサーバに接続するクライアントの送信元IPアドレスを特定する際は、HTTPヘッダ:X-Forwarded-For (XFF) を取得しますが、IRISでは以下で取得できます。 set ip = %request.GetCgiEnv("HTTP_X_FORWARDED_FOR") #システム管理 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 42
記事 Hiroshi Sato · 2025年2月12日 1m read インターオペラビリティの処理の中でログ出力を実装する方法 これは InterSystems FAQ サイトの記事です。 インターオペラビリティ機能を使用してビジネスホストのビジネスロジックを実装する際に、デバッグ等の目的でログ出力を行うための専用マクロが用意されているので、ご紹介します。 以下のマクロが用意されています。 #相互運用性 #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 40
記事 Toshihiko Minamoto · 2025年5月16日 4m read OwnObjectScriptExtension で ObjectScript 開発を強化 OwnObjectScriptExtension #DevOps #オープンソース #ヒントとコツ #InterSystems IRIS #Open Exchange Open Exchange app 0 0 0 38
記事 Tomoko Furuzono · 2025年4月7日 1m read 全角/半角混在文字列から指定された幅の文字列を取得する方法 これはInterSystems FAQサイトの記事です。 指定した文字列式のうち指定したフィールド幅(半角での文字数)に収まる文字数を取得する関数:$ZPOSITIONと、部分文字列を返す関数:$EXTRACTを組み合わせることによって、全角/半角混在文字列から、指定された幅の文字列を取得することが出来ます。※$Extractは文字単位で処理を行いますので、全角/半角を区別した取り扱いはできません。 構文: #ObjectScript #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 38
記事 Hiroshi Sato · 2025年1月17日 2m read Mac IRISでEmbedded Python利用に関する相性問題 Mac版IRISでは、現状Pythonのバージョンが固定(3.11)なのですが、これに付随する他製品との相性問題に遭遇しましたので報告します。 今までEmbedded Pythonは調子よく動作していたのですが、ある時から急に動作しなくなりました。 原因を調べてみると、Python3.13がインストールされ、それがデフォルトとして上書きされたため、irispythonコマンドを発行すると、それが内部で3.13を呼ぶ様になってしまったためでした。 ちなみにiris session でログインし、そこからEmbedded Pythonを実行する場合は、問題ありません。 あくまでもirispythonコマンドで直接.pyファイルを実行する場合に発生する問題です。 そしてとりあえずの対処法は、python3をpython3.11で置き換える方法です。 以下のような感じです。(どのMacでもbrewコマンドでインストールした場合、ディレクトリ構造は同じだと思いますが、違う可能性もゼロではありません) cp /opt/homebrew/bin/python3.11 /opt/homebrew/bin/python3 #Embedded Python #Python #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 38
記事 Toshihiko Minamoto · 2024年10月24日 8m read GitLab を使用した InterSystems ソリューションの継続的デリバリー - パート XII: 動的な非活動タイムアウト CI/CD シリーズの新しい章へようこそ。ここでは、InterSystems テクノロジーと GitLab を使用したソフトウェア開発の様々な可能なアプローチを取り上げています。 今回も相互運用性について説明を続けますが、特に相互運用性デプロイの監視に焦点を当てます。 まだアラートをすべての相互運用性プロダクションにセットアップしていない場合は、それをセットアップしてエラーとプロダクションの状態についての一般的なアラートを取得できるようにしてください。 非活動タイムアウトは、すべての相互運用性ビジネスホストに共通する設定です。 ビジネスホストは、「Inactivity Timeout(非活動タイムアウト)」フィールドに指定された秒数以内にメッセージを受信しない場合に非アクティブステータスになります。 プロダクションの監視サービスはプロダクション内のビジネスサービスとビジネスオペレーションのステータスを定期的に確認し、非活動タイムアウト期間内にアクティビティがない場合にその項目を「非アクティブ」にマークします。 デフォルト値は 0(ゼロ)です。 この設定が 0 である場合、ビジネスホストはアイドル状態がどれほど続いても Inactive にマークされることはありません。 これはアラートを生成し、構成されたアラートと合わせてプロダクションの問題に関するリアルタイム通知を可能にするため、非常に便利な設定です。 ビジネスホストがアイドル状態である場合、プロダクション、統合、またはネットワーク接続に調べる価値のある問題がある可能性があります。 ただし、ビジネスホストには一定時間の非活動タイムアウトを 1 つしか設定できないため、夜間、週末、休日などのトラフィックの少ない既知の期間中に不要なアラートを生成する可能性があります。 この記事では、動的な非活動タイムアウトを実装するためのいくつかのアプローチを説明します。 機能する例(現在ある顧客サイトの本番環境で実行しているもの)を紹介していはいますが、この記事は独自の動的な非活動タイムアウトの実装を構築するためのガイドラインを紹介することを目的としているため、ここに提案するソリューションを唯一の代替手法と見なさないようにしてください。 #監視 #相互運用性 #継続的インテグレーション #継続的デリバリー #InterSystems IRIS Open Exchange app 0 0 0 38
記事 Hiroshi Sato · 2025年4月1日 1m read IRISから外部のWebAPIを呼び出したとき、レスポンス内の全角文字が化ける これは InterSystems FAQ サイトの記事です。 Content-Typeにcharset 情報が含まれていない場合、IRIS/Cachéは文字コードを判断できず文字コード変換が行われません。 そこで、以下のように、「自動的な文字変換を行わず、UTF-8に変換する処理を記述」することで、その指定がある無しに関わらず、対応することができます。 #JSON #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 37
記事 Tomoko Furuzono · 2025年3月19日 3m read CSP(REST)でのトラブルシューティングに使用できるツール これはInterSystems FAQサイトの記事です。 ISCLOG を有効にすることにより、CSP(REST)アクセスに関連するログ情報を収集できます。これを使用して CSP(REST)でのトラブル時の調査を行うことが可能です。 ◎このツールをトラブルシューティングに使用する場合は、基本的に、エラーを(意図的に)再現できる状況で使用します。 他のウェブアクセス等がない状態で、単体実行してエラーを発生させ、このログを取得して調査します。手順は以下のとおりです。 ① ログをクリアします。 #CSP #REST API #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 1 37
InterSystems公式 Megumi Kakechi · 2025年1月29日 1m read InterSystems 製品 2024.1.3 リリースのご案内 インターシステムズは、InterSystems IRIS、InterSystems IRIS for Health、HealthShare Health Connect のメンテナンスバージョン 2024.1.3 をリリースしました。 ✅ 2024.1.3 2024.1.3 は、最近発行された以下の警告の修正を含む、以前のリリース2024.1.x のバグフィックスを提供します。警告:特定の $List 操作でデータベースとジャーナルファイルに不正なデータが作成される 詳細な情報は、以下のページをご参照ください(すべて英語版です): #リリース #InterSystems IRIS #InterSystems IRIS for Health #InterSystems公式 0 0 0 37
記事 Tomoko Furuzono · 2025年1月17日 1m read データベースファイルコピー時のトラブル これはInterSystems FAQサイトの記事です。 質問: データベースファイルが存在するフォルダ全体をコピーしたとき、コピーしたデータベースファイルをマウントできません。なぜですか? 回答: コピーした データベースファイル(iris.dat / cache.dat)のあるフォルダに、拡張子lck(iris.lck / cache.lck)のファイルが存在していないでしょうか?InterSystems製品を停止せずに(もしくは、ディスマウントせずに)データベースファイルをコピーした場合、コピー前の情報を保持したままの lckファイルが残ってしまい、コピー後にマウントできない状況になります。また、InterSystems製品を停止せずにコピーしたデータベースファイルは正しい状態ではないので、問題が生じる可能性があります。コピー元のInterSystems製品を停止(もしくはディスマウント)した後、再度データベースファイルををコピーし直してください。 #システム管理 #バックアップ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 37
記事 Tomoko Furuzono · 2025年3月21日 1m read ジャーナルのON/OFFを、コマンドで操作する方法 これはInterSystems FAQサイトの記事です。 大量の更新を行うプログラムで、処理途中に何らかの問題が発生してもデータを初期化して再度実行することができる状況では、プロセスレベルでジャーナリングを無効/有効に変更することが可能です。 ※但し、トランザクションのロールバックにはジャーナルが必要ですので、ロールバックを正しく動作させたい場合にはこの方法は使用しないでください。 以下のコマンドを使用します。更新処理の開始と終了(またエラー処理での終了)の際に以下のコマンドを追加します。 #ジャーナリング #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 36
記事 Toshihiko Minamoto · 2025年5月20日 7m read IRIS で Django と Vue.js を使ったウェブアプリケーションの作成_ Django フレームワークを覗いてみよう Django フレームワークは長年学習したいと思ってきましたが、いつも他の差し迫ったプロジェクトが優先されてきました。 多くの開発者と同様に、機械学習においては Python を使用していますが、初めてウェブプログラミングについて学習したころは、PHP がまだまだ優勢でした。そのため、機械学習の作品を公開する目的でウェブアプリケーションを作成するための新しい複雑なフレームワークを選択する機会が訪れても、私は依然として PHP に目を向けていました。 ウェブサイトの構築には Laravel と呼ばれるフレームワークを使用してきましたが、この PHP フレームワークから最新の MVC(モデルビューコントローラー)というウェブプログラミングのパターンに出会いました。 さらに複雑なことに、私は最新の JavaScript フレームワークを使用してフロントエンドを構築するのを好んでいます。 React を使用するのがより一般的のようですが、私は Vue.js に一番慣れているため、このプロジェクトではそれを使用することにしました。 なぜ複雑なフレームワークを使用するのでしょうか? Django、Laravel、React、または Vue などのフレームワークを学習する際の最大の難関は何でしょうか? #API #CSS #GitHub #JavaScript #JSON #Python #フレームワーク #フロントエンド #InterSystems IRIS Open Exchange app 0 0 0 35
記事 Tomoko Furuzono · 2025年4月17日 1m read メソッドの実装に使用する言語を明示するーLanguage(メソッド・キーワード)の指定について これは、InterSystems FAQサイトの記事です。 メソッドの実装に使用する言語を明示する場合は、下記のようにメソッドキーワードで「Language=~~~」と指定します。 Method name(formal_spec) As returnclass [ Language = language ] { //implementation } 指定できるLanguageの値は下記のとおりです。 #CSP #ObjectScript #Python #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 35
記事 Mihoko Iijima · 2025年3月28日 4m read バージョン2025.1インストール時に指定する初期セキュリティオプションのデフォルトが「ロックダウン」に変わりました 開発者の皆さん、こんにちは。 先日、EM リリース新バージョン 2025.1 がリリースされました。 コンテナ版以外ですが、新規インストール時に指定する初期セキュリティオプションのデフォルトが「ロックダウン(Locked Down)」に変更となりましたので、今までとの違いについて以下ご説明します。 #システム管理 #セキュリティ #ヒントとコツ #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 34
記事 Megumi Kakechi · 2025年4月22日 5m read ADO.NET Managed Provider を使用してクラスクエリを実行し、結果セットを取得するサンプル 先日、お客様よりタイトルのご質問をいただき、サンプルコードを作成しました。せっかくですので、こちらでも共有したいと思います。 今回は、データベースの空き容量情報を取得する、%SYS.DatabaseQueryクラスのFreeSpaceクエリを使用したサンプルとします。 C#.Net と VB.Net で作成してみました。 ★C#.Net #.NET #SQL #ヒントとコツ #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 33
記事 Hiroshi Sato · 2025年2月25日 2m read クライアントからPOSTされた ファイルを受け取るRESTサービスを作成する方法 これは InterSystems FAQ サイトの記事です。 以下の様なCurl コマンドで送信したファイルを受け取るRESTサービスを作成する方法を紹介します。 curl -X POST "http://localhost/api/upload?a=123&b=999" -F file=@"C:/temp/a.csv" クライアントからPOSTされたファイルを受け取ってサーバーに保存するRESTサービスは以下の様に作成します。 #REST API #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 33
記事 Tomoko Furuzono · 2025年4月10日 2m read Webゲートウェイの設定値をプログラムで変更する これは、InterSystems FAQ サイトの記事です。 ※Caché/Ensembleの「CSPゲートウェイ」は、IRISでは「Webゲートウェイ」と名称が変更されています。 これに伴い、サービス名も、「%Service_CSP」 ⇒ 「%Service_WebGateway」となっています。 以下は、IRISベースの名称で記載しておりますので、適宜読み替えてご参照ください。 #CSP #Web Gateway #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 32
記事 Megumi Kakechi · 2025年5月29日 6m read InterSystems製品のロックの基本 これは InterSystems FAQ サイトの記事です。 InterSystems製品では、複数のプロセスが同時に同じデータにアクセスする場合、排他制御を行うためにロックを使用できます。ロックは、データの更新を正しく行い整合性を保つための仕組みで、あるデータに対する更新処理を制御するために使用します。ロックを操作するには、LOCK(L)というコマンドが使用できます。 こちらの記事では、InterSystems製品で使用できるロックの種類、LOCKコマンドの使い方をご紹介します。 ★ロックの種類 #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 31
記事 Megumi Kakechi · 2025年3月25日 6m read %Net.POP3 を使用して添付ファイル付きのメールを受信する方法 --- Gmailを使用したサンプルのご紹介 以前公開している こちら の記事では、「OAuth 2.0 を利用して IRIS から Gmail を送信する」方法をご紹介しています。 本記事では、 %Net.POP3 クラスを使用してメールを受信するサンプルをご紹介します。 #ObjectScript #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 2 0 0 31
記事 Hiroshi Sato · 2025年1月17日 1m read 【Caché, Ensemble】サーバーを移行する際にコピーが必要な設定情報 これは InterSystems FAQ サイトの記事です。 何らかの理由でサーバー移行が必要になった際に、移行前の環境から移行後の環境に設定情報をコピーすることで設定作業を軽減できます。 以下の設定情報を移行できます。 cache.cpf SQLゲートウェイ設定 CSPゲートウェイ設定 *注1 CAHCESYSデータベースに保存しているユーザー作成ルーチンなど *注2 セキュリティ設定 タスク設定 注1 パスワードを設定している場合には、パスワードのみ手動で再設定が必要です。注2 ^%ZSTART, ^ZMIRRORルーチンなど 優先接続サーバー設定に関しても、物理的には移行可能ですが、Windowsのレジストリー情報をコピーする必要があります。レジストリー情報をコピーして他システムに移行する方法は通常推奨される方法ではありません。 #Caché #Ensemble 0 0 0 31
記事 Mihoko Iijima · 2025年1月13日 1m read ALARMエラーが発生する理由 これは InterSystems FAQ サイトの記事です。 <ALARM>エラーは、クライアントアプリでタイムアウトが発生し、その結果InterSytemsサーバのプロセスがあわせて終了している状況をあらわしています。 クライアントアプリで、タイムアウト設定を無効にすることで回避できる可能性があります。 例えば、クライアントアプリから初回実行するSQL文がある場合、初回実行時のみInterSystems製品内部にクエリキャッシュ(=コンパイル済クエリ)を生成するため(※1)通常実行よりも時間がかかります(2回目以降の実行ではコンパイルは行われません)。 例えば、コンパイルに非常に時間がかかるSQL文の初回実行をクライアントアプリから命令し、タイムアウト以内に応答が戻らない場合 <ALARM> エラーが発生します。 #システム管理 #ヒントとコツ #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 31
記事 Hiroshi Sato · 2025年3月3日 1m read 計算プロパティの使用方法1 これは InterSystems FAQ サイトの記事です。 IRISには、データ項目の値を実体として持たずに、何らかの演算処理の結果として提供する機能があります。 これを計算プロパティまたは計算フィールドといいます。 計算プロパティを定義するためには、最低限以下の手順を実行します。 プロパティ定義にSqlComputedキーワードを含めます。 プロパティ定義にSqlComputedCodeを含めて、値を算出するための処理ロジックとして含めます。 または、SqlComputedCodeを含めずに、代わりに<プロパティ名>Computationという名前のクラスメソッドを記述します。 以下は、Age(年齢)プロパティを計算プロパティとして定義した例になります。 #ObjectScript #SQL #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 30