記事 Hiroshi Sato · 23 hr 前 1m read ODBC経由で取得したデータが途切れる場合の対処法 これは InterSystems FAQ サイトの記事です。 8192文字を超える文字列をODBC経由で取得した場合に特定のODBCクライアントとの組み合わせにおいて文字列が途切れて取得されるケースが報告されています。 このような状況が発生した場合、該当するODBCデータソースの設定画面でUnicode SQLタイプをチェックすることで問題が解消されることがわかっています。 #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 5
記事 Hiroshi Sato · 2025年3月10日 1m read select count(*)の応答に時間がかかる、あるいはタイムアウトが発生する場合の対処法について これは InterSystems FAQ サイトの記事です。 大量のレコードが含まれるテーブルに対して、select count(*) from テーブル名の応答が遅い、または応答がタイムアウトする場合には、ビットマップ・エクステント・インデックスを追加することで問題を解消することができます。 ビットマップ・エクステント・インデックスを追加する方法は、以下をご参照ください。 ビットマップ・エクステント・インデックスの追加方法 クラス定義に以下のような定義を行うことで、ビットマップ・エクステント・インデックスを追加することもできます。 #ヒントとコツ #リレーショナルテーブル #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 7
記事 Hiroshi Sato · 2025年3月4日 2m read ObjectScriptを使用し、ローカルファイルを他のサーバーにアップロード(POST)する方法 これは InterSystems FAQ サイトの記事です。 ObjectScriptの%Netパッケージのライブラリクラスを利用して、ファイルを他のサーバーにアップロードすることができます。 以下のCurl コマンドと同じことを ObjectScript で実現する方法を紹介します。 curl -X POST "http://localhost/api/upload?a=123&b=999" -F file=@"C:/temp/a.csv" クライアントのObjectScriptコードを以下の様に作成します。 #API #CSV #ObjectScript #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 12
記事 Hiroshi Sato · 2025年3月4日 4m read 計算プロパティの使用方法2 これは InterSystems FAQ サイトの記事です。 計算プロパティを定義する際に利用可能なキーワードが複数あります。 詳細は、以下をご参照ください。 計算プロパティの定義 実際のこれらのキーワードの関連性は、少々複雑ですので具体的なコードを作成して動作を確認してみます。 以下のようなクラス定義を作成します。(プロパティとインデックス定義のみ表示します) 完全なクラス定義は以下より、ダウンロードできます。 サンプルクラス定義 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 10
記事 Megumi Kakechi · 2025年2月26日 2m read 埋め込みSQL &SQL( select xxx into :var from ... ) としたとき、出力ホスト変数varに意図しない値が格納される場合があります これは InterSystems FAQ サイトの記事です。埋め込みSQLの出力ホスト変数は、SQLCODE=0(埋め込みSQL正常終了)の場合のみ、正しい値が設定されていることが保証されます。 InterSystems製品のバージョンによっては、SQLCODEが0以外の場合(該当データがない100やエラー等)で値が設定される場合もありますが、その値は無効です。 特に、IRIS2021.1以降のバージョンでは、SQLCODE=100 の場合、INTO 節で指定された出力ホスト変数は NULL("") にクリアされますので注意が必要です。 #SQL #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 15
記事 Megumi Kakechi · 2025年2月17日 3m read 整合性チェックの目安の時間や動作状況の確認、途中で停止する方法について これは InterSystems FAQ サイトの記事です。 1. 整合性チェックの目安の時間 整合性チェックの目安の時間は、環境により異なってきます。ディスク速度やDBサイズに大きく依存してきます。 同じディスク上に置かれた比較的サイズの小さなDATでまず実施して、サイズと経過時刻からおおよその時刻を推測してください。 また、整合性チェックの方法によって要する時間が変わってきます。 詳細は参考記事で紹介しております「整合性チェックの各方法の違いについて」をご覧ください。 #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 24
記事 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 44
記事 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 22
記事 Hiroshi Sato · 2025年1月17日 1m read SQLクエリでStreamのデータを扱う方法 これは InterSystems FAQ サイトの記事です。 SQLでのストリームフィールドの取得についてはこちらのドキュメントに記載されております。 ストリーム・フィールド・データのクエリ 例: キャラクターストリームデータの50文字取得する #ObjectScript #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 33
記事 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 18
記事 Hiroshi Sato · 2025年1月17日 1m read 実行中のプログラムをコンパイルして保存することによるその実行中のプロセスへの影響 これは InterSystems FAQ サイトの記事です。 Question: 使用中のプログラムをコンパイルして保存すると、現在そのプログラムを実行中のプロセスに影響しますか? Answer: 実行中のルーチンはその旧バージョンをメモリー上に保持しているため、コンパイルして新しいルーチンが保存されても影響なく実行を継続できます。 クラスのメソッドについても同様です。 再度そのルーチンが呼び出された時点でコンパイルされた新しいルーチンが使用されるようになります。 #ObjectScript #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 17
記事 Mihoko Iijima · 2020年8月5日 8m read 【はじめてのInterSystems IRIS】セルフラーニングビデオ:アクセス編:IRIS での JSON の操作 IRIS サーバ側で JSON の操作を行う方法を解説します(3つのビデオに分かれています)。 ビデオ① :ダイナミックエンティティの操作練習 ビデオ② :ダイナミックエンティティで利用できるメソッドの練習 ビデオ③ :SQL関数と %JSON.Adapter の使い方 なお、このビデオには、以下の関連ビデオがあります。ぜひご参照ください。 #JSON #ObjectScript #REST API #ビデオ #初心者 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 1 0 1.2K
記事 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 37
記事 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 38
記事 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 30
記事 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 34
記事 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 44
記事 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 25
記事 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 29
記事 Mihoko Iijima · 2023年3月13日 3m read 永続クラス定義のデータが格納されるグローバル変数名について これは InterSystems FAQ サイトの記事です。 永続クラス定義では、データを格納するグローバル変数名を初回クラスコンパイル時に決定しています。グローバル変数名は、コンパイル後に表示されるストレージ定義(Storage)で確認できます。 例) #オブジェクトデータモデル #データベース #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 4 0 350
記事 Megumi Kakechi · 2024年12月17日 4m read 既存のセキュリティ設定をプログラムで変更する方法 こちらの記事では、既存のユーザ設定をプログラムで変更する方法をご紹介します。 ユーザロールを追加/削除したい、有効期限設定を変更したい、等の場合にお役立てください。 なお、ユーザ設定をプログラムで新規作成する方法は こちら の記事で紹介しております。 1.ある特定ユーザの設定を参照+変更する方法 2.既存の全てのユーザの設定を参照する方法 3.おまけ(Webアプリケーション情報の参照+変更) 1.ある特定ユーザの設定を参照+変更する方法 #セキュリティ #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 33
記事 Hiroshi Sato · 2024年12月9日 1m read CSP/RESTのPOSTデータに日本語が含まれる場合の処理のおまじない Parameter CONVERTINPUTSTREAM = 1 REST/JSONを使ってデータを交換することが増えてきていると思いますが、POSTでIRISにデータを渡す場合に日本語が含まれる場合に皆さんどう処理していますか? わざわざ自分でコード変換する処理を追加していませんか? 実は、あまり知られていないのですが、自動で変換する方法がありますので、紹介します。 CSPのメカニズムを使ってクライアントからデータをPOSTすると、それはCSPのRequestオブジェクトのContentプロパティに渡されます。 ContentプロパティのTypeは%CSP.Streamになっていて、このTypeのクラスリファレンスを読むと、Content-TypeがText/のときには、CharSetに基づいてコード変換が行われると示唆されています。 つまりContent-TypeがJSONの場合には、自動的な変換がされないということになります。 本当は、Content-TypeがJSONの時も変換してくれるのが一番良い(わかりやすい)のですが、残念ながらそうなっていません。 その代わりにパラメータが用意されています。 RESTのディスパッチクラスの定義に以下のパラメータを追加することで、自動コード変換を行なってくれます。 #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 2 40
記事 Toshihiko Minamoto · 2024年11月21日 6m read IRIS-RAG-Gen_ IRIS Vector Search による ChatGPT RAG アプリケーションのパーソナライズ コミュニティの皆さん、こんにちは。この記事では、iris-RAG-Gen という私のアプリケーションをご紹介します。 iris-RAG-Gen は、IRIS Vector Search の機能を使用して、Streamlit ウェブフレームワーク、LangChain、および OpenAI で ChatGPT をパーソナライズするジェネレーティブ AI 検索拡張生成(RAG: Retrieval-Augmented Generation)アプリケーションです。 このアプリケーションは IRIS をベクトルストアとして使用します。 アプリケーションの機能 ドキュメント(PDF または TXT)を IRIS に取り込む 選択されたドキュメントの取り込みを使ってチャットする ドキュメントの取り込みを削除する OpenAI ChatGPT #ChatGPT #Docker #Embedded Python #Generative AI (GenAI) #Large Language Model (LLM) #SQL #Vector Search #Caché #Open Exchange Open Exchange app 0 0 0 38
記事 Hiroshi Sato · 2024年11月18日 1m read クラス定義に32個より多くのインデックスがあると、MS-ACCESSからそのテーブルにリンクできません。 これは、InterSystems FAQサイトの記事です。 これは、MS-ACCESSの制限事項です。 MS-ACCESSは、インデックスが32個より多いテーブルにはリンクできません。 この問題を回避する方法として、直接テーブル(クラス)をリンクするのではなく、VIEWを使用する方法があります。 #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 38
記事 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 422
記事 Tomoko Furuzono · 2024年10月27日 1m read Windowsのサービスパックの適用に対する製品サポートについて これは、InterSystems FAQサイトの記事です。 インターシステムズは、特定のオペレーティングシステムのパッチやサービスパックに対して、製品の検証は実施しておりません。 これらの保証については、オペレーティングシステムベンダーが互換性を保証する限りにおいて、提供されます。まれなケースで、インターシステムズの製品を稼動するために、特定のパッチやサービスパックを必要とするケースもあります。その様な特別な状況の詳細は、サポートサーバプラットフォームに明記しています。以下ドキュメントをご参照ください。 サポートサーバプラットフォームについて 明記されていない場合には、オペレーティングシステムベンダーが互換性を保証する限りにおいて、パッチやサービスパックもサポート対象となります。 ※2022.1以降のバージョンにおいては、OSのマイナーバージョンにおいても検証を実施しております。 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 37
記事 Hiroshi Sato · 2024年9月12日 2m read 適正なロックテーブルサイズの算出方法 これは InterSystems FAQ サイトの記事です。 ロックテーブルの1エントリは管理領域の固定512 bytesとロック文字列情報などの可変領域から構成されます。 可変領域はロック対象のグローバルノード名に関連する情報に必要な長さ(bytes)になります。 1つのLockコマンドにつき、上記で示した長さのデータが必要です。 そしてその可変領域に必要なデータ長は、ロック対象のグローバルノード名(^xxx(xxx,xxx)) の長さに見合う16,32,64,128,256,…bytesのバケットの長さになります。 例えばロック対象のグローバルノード名が^xxx(123,"data")とすると、 ^xxx(123,"data")にデータのロケーション等のデータが付加されたものがその可変領域となり、32byteまたは64bytes(データロケーションが相応に長い場合)のバケットを使用しますので、 #システム管理 #Caché #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 52
記事 Hiroshi Sato · 2024年9月12日 1m read CSPGatewayLatencyメッセージの対応について これは InterSystems FAQ サイトの記事です。 messages.logまたはcconsole.log内に記録されるCSPGatewayLatencyのメッセージは、サーバが、パフォーマンス測定のため定期的に「CSPゲートウェイにリクエストを送信して応答をもらう」ことを行っており、応答を受け取るまで一定時間以上かかったときに出る警告(応答時間の閾値)です。 その既定値は1000ミリ秒です。 WebGateway(CSPGateway)が稼働する Web サーバの負荷が高い場合に出力する場合がありますが、実際のCSPアプリケーションやREST APIの動作や応答速度に影響が見られなければ、特に問題はありません。 またこのメッセージの出力頻度を下げるためにこの閾値を変更する方法もあります。 変更方法は以下を参照ください #API #CSP #REST API #Caché #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 53
記事 Hiroshi Sato · 2024年9月12日 2m read IIS上のWebGateway管理画面にアクセスすると404エラーが返ってくる場合の対処法 これは InterSystems FAQ サイトの記事です。 404エラーが返される場合に、以下の対応でエラーが解消されることがわかっています。 (1) binの接続を許可 /cspの構成エディタ>セクションで以下選択 system.webServer > security > requestFiltering > hiddenSegmets 選択 > (コレクション)の右欄(Count=xx)の右端 [...] クリック > segment欄に binの行があったので、選択して削除 > 画面戻って、右上の [適用] クリック または、IISの構成ファイルを直接編集することでも対応可能です。 C:\Windows\System32\inetsrv\config\applicationHost.config #CSP #セキュリティ #Caché #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 126
記事 Megumi Kakechi · 2024年9月3日 2m read HTTPレスポンスヘッダの取得方法 これは InterSystems FAQ サイトの記事です。HTTPレスポンスヘッダ情報を取得したい場合、以下のような方法があります。開発中などに、送られてきたヘッダの項目名、そのデータを確認したい場合に、是非ご活用ください。 #CSP #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 80