記事 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 75
記事 Tomoko Furuzono · 2024年8月4日 1m read 管理ポータルのグローバル表示で、サブスクリプトレベルの範囲を指定して表示する これは、InterSystems FAQサイトの記事です。 管理ポータルのグローバル変数表示ページでは、サブスクリプトレベルの範囲を指定して表示することが可能です。 各サブスクリプトレベルで、 <開始値>:<終了値> のように指定します。開始値を省略すると先頭から終了値まで、終了値を省略すると指定値から最後までのグローバル変数を表示します。 《例》 (グローバル全体) (第2サブスクリプトが"b"のデータだけを表示) (第3サブスクリプトが300以上のデータを表示) #管理ポータル #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 75
記事 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 75
記事 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 71
記事 Tomoko Furuzono · 2024年8月4日 1m read 1840年12月31日 00:00:00よりも前の日付時刻をサポートする方法 これは、InterSystems FAQサイトの記事です。 既定では、InterSystems製品で表すことのできる日時の最小値は、1840年12月31日 0時0分0秒 です。 #ObjectScript #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 68
記事 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 68
記事 Tomoko Furuzono · 2024年8月4日 1m read IRIS SQLで、二重引用符「"」を、リテラル値を示す区切り文字として使う方法=区切り識別子を無効にする これは、InterSystems FAQサイトの記事です。 区切り識別子は、区切り文字で囲まれた一意の識別子です。InterSystems SQL は、その区切り文字として二重引用符 「"」 をサポートしています。一方、リテラル値を区切る場合は、一重引用符「'」を使用します。例えば、下記のSQLにおいて、①は、Nameの値が「AAA」という文字列である、という検索条件と解釈されますが、②は、Name列 = AAA列、という結合条件と解釈されます。※実際にAAA列が無ければエラーとなります。 ① #SQL #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 64
記事 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 62
記事 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 59
記事 Tomoko Furuzono · 2025年3月31日 2m read 小数桁数を指定して切り上げ・切り捨ての処理を行う方法 これは、InterSystems FAQ サイトの記事です。 小数点桁数を指定しない単純な整数への切り上げ・切り捨ては、それぞれ、以下の関数で実行できます。 (SQL関数) 切り上げ:CEILING切り捨て:FLOOR (ObjectScript関数) #ObjectScript #SQL #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 55
記事 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 54
記事 Tomoko Furuzono · 2024年10月27日 1m read Windowsのサービスパックの適用に対する製品サポートについて これは、InterSystems FAQサイトの記事です。 インターシステムズは、特定のオペレーティングシステムのパッチやサービスパックに対して、製品の検証は実施しておりません。 これらの保証については、オペレーティングシステムベンダーが互換性を保証する限りにおいて、提供されます。まれなケースで、インターシステムズの製品を稼動するために、特定のパッチやサービスパックを必要とするケースもあります。その様な特別な状況の詳細は、サポートサーバプラットフォームに明記しています。以下ドキュメントをご参照ください。 サポートサーバプラットフォームについて 明記されていない場合には、オペレーティングシステムベンダーが互換性を保証する限りにおいて、パッチやサービスパックもサポート対象となります。 ※2022.1以降のバージョンにおいては、OSのマイナーバージョンにおいても検証を実施しております。 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 49
記事 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 49
記事 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 48
記事 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 47
記事 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 43
記事 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 42
記事 Tomoko Furuzono · 2025年4月7日 1m read 全角/半角混在文字列から指定された幅の文字列を取得する方法 これはInterSystems FAQサイトの記事です。 指定した文字列式のうち指定したフィールド幅(半角での文字数)に収まる文字数を取得する関数:$ZPOSITIONと、部分文字列を返す関数:$EXTRACTを組み合わせることによって、全角/半角混在文字列から、指定された幅の文字列を取得することが出来ます。※$Extractは文字単位で処理を行いますので、全角/半角を区別した取り扱いはできません。 構文: #ObjectScript #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 41
記事 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 40
記事 Tomoko Furuzono · 2025年3月21日 1m read ジャーナルのON/OFFを、コマンドで操作する方法 これはInterSystems FAQサイトの記事です。 大量の更新を行うプログラムで、処理途中に何らかの問題が発生してもデータを初期化して再度実行することができる状況では、プロセスレベルでジャーナリングを無効/有効に変更することが可能です。 ※但し、トランザクションのロールバックにはジャーナルが必要ですので、ロールバックを正しく動作させたい場合にはこの方法は使用しないでください。 以下のコマンドを使用します。更新処理の開始と終了(またエラー処理での終了)の際に以下のコマンドを追加します。 #ジャーナリング #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 39
記事 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 38
記事 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 36
記事 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 34
記事 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 32
記事 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
記事 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 31
記事 Megumi Kakechi · 2025年6月1日 5m read ロックテーブルの参照方法とその見方 これは InterSystems FAQ サイトの記事です。ロックテーブルを参照する方法として、主に以下の3つの方法が挙げられます。 1. 管理ポータルで参照する方法 ⇒ 管理ポータル:システムオペレーション > ロック > ロックを表示(または管理) 2. ^LOCKTAB ユーティリティ を使用する方法 ⇒ %SYS> do ^LOCKTAB 3. プログラムで参照する方法 ⇒ プログラム内でロック情報を取得する方法 #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 30
記事 Tomoko Furuzono · 2025年3月27日 2m read ジャーナルの整合性チェックやサマリの表示をコマンドで実行する方法 これは、InterSystems FAQ サイトの記事です。 管理ポータルの [システムオペレーション] > [ジャーナル]のページで実行できる、 整合性チェックの実行や、サマリーの表示は、%SYS.Journal.File クラスのメソッドやクエリでも実行することができます。 クラスリファレンス:%SYS.Journal.File 以下、実行例です。※全て、%SYSネームスペースで実行します。 (1) 整合性チェック #システム管理 #ジャーナリング #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 29
記事 Mihoko Iijima · 2025年6月1日 7m read InterSystems 製品のセキュリティの基本:ユーザとロール これは InterSystems FAQ サイトの記事です。 InterSystems 製品では、ユーザが持つロールによって「InterSystems 製品内で何ができるのか」が決まります。 では、ロールには何が含まれているのでしょうか。 ロールには、複数の特権を含めることができます。特権とは、リソース(保護対象)に対する許可の設定を指しています。 本記事では、IRIS の開発者である山田さん(Yamada) を例に、以下の内容をご説明します。 1) ロールから付与される特権(=リソースに対する許可)について具体例を利用した確認方法 2) ロールを利用したセキュリティ設定について 《ご参考》 #システム管理 #セキュリティ #ヒントとコツ #管理ポータル #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 28