記事 Mihoko Iijima · 2023年10月10日 15m read 複雑なJSONの生成に便利な「JSONテンプレートエンジン」の使い方ご紹介 開発者の皆さん、こんにちは。 この記事では、複雑なJSON形式の文書を「JSONテンプレートエンジン」を利用して生成させる方法をご紹介します。 「JSONテンプレートエンジン」については、6月のウェビナーで使用例をご紹介しましたが、JSON生成対象として医療情報交換標準規格であるFHIRリソースのJSON(例:Patientリソース)を例に解説しています。 このエンジンは、JSON形式の文書であればどのような種類のデータでもご利用いただけますので、一般的なJSON形式の文書を利用して使い方をご紹介します。 #JSON #ObjectScript #オブジェクトデータモデル #ヒントとコツ #InterSystems IRIS #InterSystems IRIS for Health 1 5 0 1.1K
記事 Megumi Kakechi · 2025年2月17日 3m read 整合性チェックの目安の時間や動作状況の確認、途中で停止する方法について これは InterSystems FAQ サイトの記事です。 1. 整合性チェックの目安の時間 整合性チェックの目安の時間は、環境により異なってきます。ディスク速度やDBサイズに大きく依存してきます。 同じディスク上に置かれた比較的サイズの小さなDATでまず実施して、サイズと経過時刻からおおよその時刻を推測してください。 また、整合性チェックの方法によって要する時間が変わってきます。 詳細は参考記事で紹介しております「整合性チェックの各方法の違いについて」をご覧ください。 #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 6
記事 Megumi Kakechi · 2025年2月4日 4m read 整合性チェックの各方法の違いについて これは InterSystems FAQ サイトの記事です。 整合性チェックを行う場合、管理ポータルやタスクマネージャーから行う方法と、ターミナルから ^Integrity ユーティリティを使用して行う方法があります。 こちらのトピックでは、それぞれの違いをご説明します。 管理ポータル、整合性チェックタスク、および SYS.Database の IntegrityCheck メソッドから行う方法 こちらの方法は、選択した複数のデータベースや、1 つのデータベースに格納された選択可能な複数のグローバルを対象に整合性をチェックを行います。 管理ポータル:[システムオペレーション] > [データベース] 整合性チェック・ボタン※チェックを行いたいネームスペース、必要に応じてグローバルを選択し、実行・ボタンをクリック #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 27
記事 Megumi Kakechi · 2025年1月14日 2m read messages.log に出力される SuperServer failed to start slave server のエラーメッセージについて これは InterSystems FAQ サイトの記事です。 09/04/24-14:37:47:260 (2575554) 2 [Utility.Event] ISCLOG: SuperServer Super Server job slave failure ns=%SYS rtn=%SYS.SERVER 09/04/24-14:37:47:260 (2575554) 2 [Utility.Event] SuperServer failed to start slave server メッセージログ(cconsole.log/messages.log)の上記のようなログは、スーパーサーバ/SuperServer(既定:1972ポート)に対して外部からリクエストがあったが、リクエストに対応する子プロセスの起動に失敗した場合に記録されます。 スーパーサーバへの新規接続に対してスーパーサーバがJOBコマンド(タイムアウトあり)を実行したが、タイムアウト時間内にJOBコマンドが完了しなかったケースなどが考えられます。 #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 28
記事 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 20
記事 Mihoko Iijima · 2025年1月9日 2m read データベースミラーリングを構成している環境でシステム開始時の処理を追加する方法 これは InterSystems FAQ サイトの記事です。 InterSystems製品では、システム開始時に任意の処理を追加できます。 データベースミラーリングを構成していない環境では、%ZSTARTルーチンのSYSTEMラベルを作成することで任意の処理を実装できますが、データベースミラーリングを構成している環境では、このルーチンでは動作しない処理があります。 ご参考:^%ZSTART ルーチンと ^%ZSTOP ルーチンによる開始動作と停止動作のカスタマイズ 理由として、ミラーリング構成の場合、ミラーデータベースへのアクセスはミラーリングサービスが開始されプライマリメンバとなるまでReadOnlyとなります。 #システム管理 #ヒントとコツ #高可用性 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 33
記事 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 27
記事 Megumi Kakechi · 2025年1月7日 2m read タスク履歴にある「有効期限切れになりました」メッセージの意味と対処法について これは InterSystems FAQ サイトの記事です。こちらの記事では、タスク履歴の結果内容に、「タスクは 10 Apr 20xx 12:00:00AM 19 Aug 20xx 12:00:00AM から継続中 に有効期限切れになりました」のようなログがある場合、その意味と対処方法について説明します。 このログは、実行予定のタスクをチェックした際に、時間が対象タスクの有効期限を過ぎてしまったために、表示しているログになります。有効期限を指定していない場合(※)は、次回タスク予定時刻が有効期限になります。※有効期限の設定は、^TASKMGRユーティリティから行うことができます。 #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 29
記事 Mihoko Iijima · 2025年1月6日 2m read JSON文字からダイナミックオブジェクトを作成する際、エラー #5035: 一般例外 名前 'Premature end of data'エラーが出る これは InterSystems FAQ サイトの記事です。 POST要求で受信したBodyのJSON文字列を、REST ディスパッチクラス内メソッドでダイナミックオブジェクト(%DyamicObject)に変換する際、以下エラーが発生する場合があります。 #JSON #ObjectScript #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 40
記事 Megumi Kakechi · 2024年12月26日 1m read 別の場所に保存したジャーナルを見る方法 これは InterSystems FAQ サイトの記事です。 ジャーナルファイルの中身を参照したい場合、通常は管理ポータルで参照します。 管理ポータル:[システムオペレーション] > [ジャーナル] : (該当ジャーナルの名前)参照 リンクをクリック こちらのページで、外部に保存したジャーナルファイルも参照することができることをご存じでしょうか? 以下のように、ID= の後ろにジャーナルのファイルパスを指定することで、ジャーナルファイルの中身を管理ポータルで参照することが可能です。 http://localhost/iris/csp/sys/op/UtilSysJournal.csp?$ID1=C:\temp\20240826.002z #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 21
記事 Mihoko Iijima · 2024年12月26日 2m read IISにインストールしたCachéのCSPゲートウェイからIRISのWebゲートウェイにアップグレードする方法 これは InterSystems FAQ サイトの記事です。 方法は2種類あります。 1) 同一サーバにIISとCachéがインストールされている環境をそのままアップグレードする場合は、IRIS(※)インストールキットを起動し「CACHE(CONVERSION)」からCSPゲートウェイとCaché両方をアップグレードします。 2) IISがIRISとは異なるサーバにインストールされている場合は、IRIS用Webゲートウェイキットを利用します。 (※)InterSystems IRISまたはIRIS for Health それぞれの方法は以下の通りです。 1)同一サーバにIISとCachéがインストールされている環境の「CACHE(CONVERSION)」でのアップグレード方法 a) インストーラーを起動します。 b) CACHE(CONVERSION)を選択します。 #Web Gateway #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 26
記事 Mihoko Iijima · 2024年12月24日 3m read Interoperability(Ensemble)の大量にたまったイベントログやメッセージをAPIを利用して削除する方法 これは InterSystems FAQ サイトの記事です。 イベントログの削除には、Ens.Util.LogクラスのPurge()メソッドを使用します。実行時以下の引数を指定します。 第1引数:削除数(参照渡し) 第2引数:保持日数(デフォルト7) メッセージの削除には、2種類の方法があります。 1) 2022.1.2以降の導入されたマルチプロセスで削除する方法 #システム管理 #ヒントとコツ #相互運用性 #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 28
記事 Mihoko Iijima · 2024年12月18日 2m read HTTPアウトバウンドアダプタを使用して、クエリパラメータとボディを両方送付する方法 開発者の皆さん、こんにちは。 試していたWebAPIでは、POST要求時クエリパラメータとボディの両方を送る必要がありましたので、HTTPアウトバウンドアダプタが提供するメソッド:Post()/PostFormDataArray()/PostURL() 辺りをドキュメントで確認していたのですが、残念ながら両方を渡せるように作成された丁度良いメソッドがありませんでした。 ドキュメント:HTTPアウトバウンドアダプタが提供するメソッド では、どのように送ったかというと、SendFormDataArray()の第3引数を利用して両方の情報を送付してみました。 #ObjectScript #ヒントとコツ #相互運用性 #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 31
記事 Mihoko Iijima · 2023年3月13日 3m read 永続クラス定義のデータが格納されるグローバル変数名について これは InterSystems FAQ サイトの記事です。 永続クラス定義では、データを格納するグローバル変数名を初回クラスコンパイル時に決定しています。グローバル変数名は、コンパイル後に表示されるストレージ定義(Storage)で確認できます。 例) #オブジェクトデータモデル #データベース #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 4 0 341
記事 Hiroshi Sato · 2024年12月18日 1m read IRIS技術ガイド Caché技術ガイドのいくつかをIRIS版に書き換えた文書を作成しましたので公開します。 IRISファーストステップガイドIRISBasicTechnologyGuide - ObjectScript操作ガイド - オブジェクト操作ガイド - 多次元データエンジンの概念およびアーキテクチャーIRIS SQLガイド #チュートリアル #データモデル #ヒントとコツ #リレーショナルテーブル #管理ポータル #開発環境 #InterSystems IRIS #InterSystems IRIS for Health 3 0 2 46
記事 Megumi Kakechi · 2024年12月17日 4m read 既存のセキュリティ設定をプログラムで変更する方法 こちらの記事では、既存のユーザ設定をプログラムで変更する方法をご紹介します。 ユーザロールを追加/削除したい、有効期限設定を変更したい、等の場合にお役立てください。 なお、ユーザ設定をプログラムで新規作成する方法は こちら の記事で紹介しております。 1.ある特定ユーザの設定を参照+変更する方法 2.既存の全てのユーザの設定を参照する方法 3.おまけ(Webアプリケーション情報の参照+変更) 1.ある特定ユーザの設定を参照+変更する方法 #セキュリティ #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 32
記事 Hiroshi Sato · 2021年10月7日 3m read ジャーナルファイルの内容を管理ポータル以外で参照する方法 これは InterSystems FAQ サイトの記事です。ジャーナルファイルのサイズが大きすぎて、管理ポータルで検索やフィルタリング等できない場合、以下の2つの方法で参照することができます。 ① ^JRNDUMP ユーティリティを使用する方法② プログラムで参照する方法 ============================================================ ① ^JRNDUMP ユーティリティを使用する方法 例えば、グローバル参照 ^ABC を含むジャーナルファイルのすべてのレコードを選択する場合は、以下のようになります。 ※以下、すべてのコマンドは %SYS ネームスペースで実行してください。 #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 4 0 416
記事 Megumi Kakechi · 2024年9月3日 2m read HTTPレスポンスヘッダの取得方法 これは InterSystems FAQ サイトの記事です。HTTPレスポンスヘッダ情報を取得したい場合、以下のような方法があります。開発中などに、送られてきたヘッダの項目名、そのデータを確認したい場合に、是非ご活用ください。 #CSP #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 73
記事 Megumi Kakechi · 2024年8月15日 2m read IRISでエクスポートしたクラスやルーチンをCacheにインポートする方法 通常、Caché でエクスポートしたクラスやルーチンをIRISにインポートすることは可能ですが、IRISよりエクスポートしたクラスやルーチンを Caché にインポートすることはできません。 Caché にインポートしようとすると、以下のようなエラーになります。 #ObjectScript #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 2 0 105
記事 Megumi Kakechi · 2024年8月20日 3m read messages.logに「Updates may become suspended due to low available buffers」のエラーが出ています これは InterSystems FAQ サイトの記事です。messages.logに「Updates may become suspended due to low available buffers」のエラーが出ている場合、このインスタンスのバッファ利用可能サイズが低下していることが考えられます。 上記メッセージが頻繁に出力するようであれば以下の対処をご検討ください。 #システム管理 #ヒントとコツ #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 61
記事 Mihoko Iijima · 2024年2月29日 5m read インデックス再構築が終わるまで新しく定義したインデックスを使用させない方法 これは InterSystems FAQ サイトの記事です。 新しいインデックスを定義した後、インデックスの再構築が完了する前にクエリを実行するとデータが存在しているにもかかわらず「検索結果0件」や検索結果数が徐々に増えるような状況が発生します。 インデックスを永続クラス定義(またはテーブル定義)に追加しコンパイルすることで今まで使用していたクエリ実行経路が削除され、再度同じクエリを実行するタイミングで新しいインデックス定義を含めた実行経路が作成されるためです。(この時にインデックス再構築が完了していないとインデックスデータが存在しない、または不完全であるため0件や徐々に検索結果数が増えるような状況を起こします。) これを起こさなために、新しいインデックスの再構築が終了するまでクエリオプティマイザにインデックスを使用させないように指定する方法が用意されています。 ※ 2024/8/2: 2024.1以降から利用できる方法を追加しました。 #SQL #インデックス付け #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 1 0 228
記事 Megumi Kakechi · 2024年7月28日 2m read SQLでレコードをSelectするとSQLエラー -114 が発生します これは InterSystems FAQ サイトの記事です。通常SQLCODE -114(一致する行が既に別のユーザにロックされています)のエラーはロックが競合した場合に発生します。 こちらはレコードロック競合があったり、ロック閾値を超える更新を行いテーブルロックに昇格した際に、そのテーブルレコードに対して別のプロセスよりSelectを行い共有ロックを取ろうとして失敗した(ロック待ちがタイムアウトとなった)場合に発生します。 Selectで共有ロックを取る場合というのは、IRIS の ISOLATION LEVEL がREAD COMMITTED(デフォルトはREAD UNCOMMITTED)で、Selectを行った場合です。 #SQL #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 90
記事 Megumi Kakechi · 2024年7月23日 4m read リンクテーブルと外部テーブルについて これは InterSystems FAQ サイトの記事です。 JDBC および ODBC 経由でInterSystemsIRISから外部データベースにアクセスしたい場合、SQLゲートウェイを使用しリンクテーブルを作成して接続できます。 2023.1以降のバージョンでは、リンクテーブルに加えて、外部テーブル/FOREIGN TABLE を使用することが可能となりました(2024.1時点で実験的機能)。 #SQL #ヒントとコツ #InterSystems IRIS #InterSystems IRIS for Health 2 0 0 120
記事 Mihoko Iijima · 2024年7月16日 9m read 管理ポータルのウェブ・アプリケーションメニューの設定をプログラムで作成する方法 これは InterSystems FAQ サイトの記事です。 管理ポータル > [システム管理] > [セキュリティ] 以下の設定は、%SYSネームスペースにあるSecurityパッケージ以下クラスが提供するメソッドを利用することでプログラムから作成することができます。 以下シナリオに合わせたセキュリティ設定例をご紹介します。 シナリオ:RESTアプリケーション用設定を作成する 事前準備 シナリオの中で使用するソースを2種類インポートします。 アプリケーション用RESTディスパッチクラスをインポートします。 #ObjectScript #システム管理 #セキュリティ #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health #Health Connect 1 0 0 104
記事 Megumi Kakechi · 2024年7月16日 2m read プログラムでSQLゲートウェイ接続設定を作成する方法 これは InterSystems FAQ サイトの記事です。 SQLゲートウェイの接続設定は管理ポータルで作成できますが、プログラムでも作成が可能です。 管理ポータル:[システム管理] > [構成] > [接続性] > [SQLゲートウェイ接続] こちらのトピックでは、ODBC/JDBCそれぞれの設定をプログラムで行う方法をご紹介します。 #SQL #ヒントとコツ #InterSystems IRIS #InterSystems IRIS for Health 2 0 0 91
記事 Mihoko Iijima · 2024年7月11日 4m read 管理ポータルのユーザ設定をプログラムで作成する方法 これは InterSystems FAQ サイトの記事です。 管理ポータル > [システム管理] > [セキュリティ] 以下の設定は、%SYSネームスペースにあるSecurityパッケージ以下クラスが提供するメソッドを利用することでプログラムから作成することができます。 #ObjectScript #システム管理 #セキュリティ #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health #Health Connect 1 0 0 70
記事 Megumi Kakechi · 2024年7月10日 5m read IRISでシャドウイングの代わりにミラーリングを構成する方法-プログラム編 これは InterSystems FAQ サイトの記事です。 こちらの記事では、「IRISでシャドウイングの代わりにミラーリングを構成する方法」を紹介しました。 今回は、「プログラムでシャドウイングの代わりにミラーリングを構成する方法(Windows版)」を紹介します。【今回のサンプル・ミラー構成について】 #Mirroring #システム管理 #ヒントとコツ #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 92
記事 Mihoko Iijima · 2024年7月9日 2m read WriteDaemon Alertが出力される原因について これは InterSystems FAQ サイトの記事です。 メッセージログ(messages.log)/コンソールログ(cconsole.log) に以下のようなメッセージが表示される場合があります。 03/22/18-14:27:34:624 (1851) 2 [SYSTEM MONITOR] WriteDaemon Alert: Write Daemon still on pass 320186 このメッセージ出力は、ライトデーモンのデータベースファイルへの書き込み処理の遅延を示しています。その原因としては、ディスクI/O負荷が高く、そのI/O要求量に対してディスク処理性能が不足していることが考えられます。 ディスクI/O負荷の原因としては以下が考えられます。 #システム管理 #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health #Health Connect 1 0 0 61
記事 Mihoko Iijima · 2024年7月7日 4m read 監査ログをファイル出力する方法 これは InterSystems FAQ サイトの記事です。 監査ログはシステムDB内テーブル(%SYS.Audit)に記録されていますので、そのテーブルに対するクエリを実行して抽出したり、%SYS.Auditテーブルに用意されていストアドプロシージャを利用して情報を取得しファイル出力するようにプログラムを用意することもできます。 以下にご紹介する内容は「監査ログをプログラムで出力(ユーザやイベント指定など)する方法」に関連した内容で、監査ログのファイル出力を管理ポータルの機能を利用した例とプログラムを利用した例でご紹介します。 #ObjectScript #システム管理 #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health #Health Connect 1 0 0 81
記事 Mihoko Iijima · 2024年7月4日 9m read Embedded Python利用時にエラーが発生した場合の対応方法のご紹介 これは InterSystems FAQ サイトの記事です。 PythonスクリプトファイルやPythonで記述されたIRIS内メソッドを呼び出す際、エラーが発生した場合の対応方法をご紹介します。 説明使用するコードや資料PDFは公開しています👉 test1.py、FS.Utilsクラス、コードのコピー元、ビデオで解説している資料PDF Embedded Python 自習用ビデオをご用意しています(項目別にYouTubeプレイリストをご用意しています)。 各プレイリストについて詳しくはこちらをご参照ください👉【はじめてのInterSystems IRIS】Embedded Python セルフラーニングビデオシリーズ公開! #Embedded Python #ObjectScript #Python #エラーハンドリング #ヒントとコツ #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 208