記事 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 10
記事 Mihoko Iijima · 2023年3月13日 3m read 永続クラス定義のデータが格納されるグローバル変数名について これは InterSystems FAQ サイトの記事です。 永続クラス定義では、データを格納するグローバル変数名を初回クラスコンパイル時に決定しています。グローバル変数名は、コンパイル後に表示されるストレージ定義(Storage)で確認できます。 例) #オブジェクトデータモデル #データベース #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 4 0 316
記事 Megumi Kakechi · 2024年12月17日 4m read 既存のセキュリティ設定をプログラムで変更する方法 こちらの記事では、既存のユーザ設定をプログラムで変更する方法をご紹介します。 ユーザロールを追加/削除したい、有効期限設定を変更したい、等の場合にお役立てください。 なお、ユーザ設定をプログラムで新規作成する方法は こちら の記事で紹介しております。 1.ある特定ユーザの設定を参照+変更する方法 2.既存の全てのユーザの設定を参照する方法 3.おまけ(Webアプリケーション情報の参照+変更) 1.ある特定ユーザの設定を参照+変更する方法 #セキュリティ #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 13
記事 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 402
記事 Tomoko Furuzono · 2024年10月27日 1m read Windowsのサービスパックの適用に対する製品サポートについて これは、InterSystems FAQサイトの記事です。 インターシステムズは、特定のオペレーティングシステムのパッチやサービスパックに対して、製品の検証は実施しておりません。 これらの保証については、オペレーティングシステムベンダーが互換性を保証する限りにおいて、提供されます。まれなケースで、インターシステムズの製品を稼動するために、特定のパッチやサービスパックを必要とするケースもあります。その様な特別な状況の詳細は、サポートサーバプラットフォームに明記しています。以下ドキュメントをご参照ください。 サポートサーバプラットフォームについて 明記されていない場合には、オペレーティングシステムベンダーが互換性を保証する限りにおいて、パッチやサービスパックもサポート対象となります。 ※2022.1以降のバージョンにおいては、OSのマイナーバージョンにおいても検証を実施しております。 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 26
記事 Megumi Kakechi · 2024年9月3日 2m read HTTPレスポンスヘッダの取得方法 これは InterSystems FAQ サイトの記事です。HTTPレスポンスヘッダ情報を取得したい場合、以下のような方法があります。開発中などに、送られてきたヘッダの項目名、そのデータを確認したい場合に、是非ご活用ください。 #CSP #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 59
記事 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 91
記事 Tomoko Furuzono · 2024年8月4日 1m read 管理ポータルのグローバル表示で、サブスクリプトレベルの範囲を指定して表示する これは、InterSystems FAQサイトの記事です。 管理ポータルのグローバル変数表示ページでは、サブスクリプトレベルの範囲を指定して表示することが可能です。 各サブスクリプトレベルで、 <開始値>:<終了値> のように指定します。開始値を省略すると先頭から終了値まで、終了値を省略すると指定値から最後までのグローバル変数を表示します。 《例》 (グローバル全体) (第2サブスクリプトが"b"のデータだけを表示) (第3サブスクリプトが300以上のデータを表示) #管理ポータル #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 53
記事 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 42
記事 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 59
記事 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 187
記事 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 63
記事 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 75
InterSystems公式 Seisuke Nakahashi · 2024年7月15日 MacOS 限定 - MacOS での Cache & Ensemble のサポート終了 2024年10月15日をもって、MacOS での Caché および Ensemble のサポートが非推奨となります。 Caché および Ensemble 2018.1.9 のサポートは続きますが、MacOS 向けのメンテナンスバージョンは今後リリースされません。つまり、MacOS 向け製品としては、Caché および Ensemble 2018.1.9 が最後のバージョンとなる予定です。 あらためてのお知らせですが、その他のプラットフォームにおいても、Caché および Ensemble のメンテナンスバージョンは 2027年3月31日をもってリリース終了となる予定です。詳細は昨年発表の記事をご参照ください。 #Apple macOS #プラットフォーム #Caché #Ensemble #InterSystems公式 1 0 0 52
記事 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 62
記事 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 47
記事 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 55
記事 Mihoko Iijima · 2024年7月4日 2m read ファイルに入力された文字列をバイト単位で読み込む方法 これは InterSystems FAQ サイトの記事です。 InterSystems製品のサーバサイドでファイル入出力を行うと、文字列はシステムで設定されたファイル入出力用文字コードに自動変換され、文字単位でREADします。 ファイルから入力する文字をバイト単位で操作するためには、自動変換を行わない無変換の状態でファイル入力を行い指定バイトずつ読みながら読んだ分だけUnicodeに手動で変換していく必要があります。 変換には$ZCONVERT()関数を使用します。($ZCONVERT()には省略形があり$ZCVT()でも同様の操作が行えます。) #ObjectScript #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health #Health Connect 1 0 0 75
記事 Mihoko Iijima · 2024年5月20日 2m read コールドバックアップとリストア方法について InterSystems製品のバックアップ方法の中の4つの目方法は「コールドバックアップ」です。 InterSystems製品を停止できるときに利用できるバックアップ方法です。別サーバに環境を移植するときや、コミュニティエディションから製品版キットのインストール環境にデータベースを移植する場合などにもお使いいただけます。 バックアップ手順 1. InterSystems製品を停止する 2. バックアップしたいデータベースを退避する 3. InterSystems製品を開始する 既存環境から新環境へ移植する場合などの手順 1. 既存環境のInterSystems製品を停止する。 #システム管理 #バックアップ #ヒントとコツ #Caché #Ensemble #Health Connect #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 53
記事 Mihoko Iijima · 2024年5月20日 5m read 並行外部バックアップの仕組みとバックアップとリストア方法について InterSystems製品のバックアップ方法の中の3つの目方法は、「並行外部バックアップ」についてです。 この方法は外部バックアップと異なり、スナップショットなどのストレージ機能がない環境に向いている方法でオンラインバックアップよりも高速にバックアップできます。(古いバージョンのInterSystems製品でも利用できるバックアップ方法です。) ただし、バックアップやリストア手順が複雑になります。 並行外部バックアップの利用を検討される際は、事前にリストア手順についてもテスト環境などでご確認いただくことを推奨します。 #システム管理 #バックアップ #ヒントとコツ #Caché #Ensemble #Health Connect #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 91
記事 Mihoko Iijima · 2024年5月16日 27m read オンラインバックアップの仕組みとバックアップとリストア方法について この記事は、「インターシステムズ製品をバックアップする前に確認したいこと」に続く記事で、InterSystems製品のバックアップの手法の中の「オンラインバックアップ」の仕組みと、バックアップ・リストア手順について解説します。 オンラインバックアップは、InterSystems製品が用意するバックアップ機能を利用する方法で、バックアップ対象に設定した全データベースの使用済ブロックをバックアップする方法です。 InterSystems製品のデータベースには、サーバ側で記述したコード、テーブル定義/クラス定義、データ(レコード、永続オブジェクト、グローバル)が格納されていますので、これらすべてが1つのファイルにバックアップされます。 #システム管理 #バックアップ #ヒントとコツ #Caché #Ensemble #Health Connect #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 155
記事 Mihoko Iijima · 2024年5月16日 26m read 外部バックアップの仕組みとバックアップとリストア方法について 開発者の皆さん、こんにちは。 この記事は、「インターシステムズ製品をバックアップする前に確認したいこと」に続く記事で、InterSystems製品のバックアップの手法の中の「外部バックアップ」の仕組みと、バックアップ・リストア手順について解説します。 まず、「外部バックアップ」とは、InterSystems製品の専用ルーチン使用せず、InterSystems製品以外のバックアップソリューションを使用してデータベースをバックアップする方法で、現時点の推奨されるバックアップ方法です。 #システム管理 #バックアップ #ヒントとコツ #Caché #Ensemble #Health Connect #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 103
記事 Mihoko Iijima · 2024年5月16日 9m read インターシステムズ製品をバックアップする前に確認したいこと 開発者の皆さん、こんにちは。 この記事では、InterSystems製品のバックアップ方法(4種類)のご紹介と、バックアップを行う前に確認しておきたい内容について解説します。 また、この記事に続くシリーズ記事では、それぞれのバックアップの仕組みと操作例を交えたバックアップとリストア手順を解説していきます。 #システム管理 #バックアップ #ヒントとコツ #Caché #Ensemble #Health Connect #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 70
記事 Megumi Kakechi · 2024年5月6日 4m read LinuxでJDBC接続を行う方法 前回、LinuxでODBC接続を行う方法 をご紹介しました。 今回は、LinuxでJDBC接続を行う方法 をご紹介します。作業は、root ユーザ で行います。 はじめに、Linuxのバージョンを確認します。 #JDBC #SQL #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 2 0 0 809
記事 Megumi Kakechi · 2024年5月2日 3m read LinuxでODBC接続を行う方法 こちらの記事では、LinuxでODBC接続の設定を行う方法をご紹介します。 はじめに、Linuxのバージョンを確認します。 #SQL #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 479
記事 Megumi Kakechi · 2024年4月25日 2m read 大きいデータを持つフィールドに対してインデックスを作成する方法 大きなサイズのデータを持つフィールドに対してインデックスを作成すると、<SUBSCRIPT>エラーとなることがあります。 これは、グローバルの添え字(サブスクリプト)のサイズには制限があり、制限を超えるとエラーとなるためです。 例えば、以下のようなインデックスの場合、 ^Sample.PersonI("NameIdx"," xxx...xxx",1) = "" グローバル名+サブスクリプト部(=の左側)が、エンコード文字数で最長 511 文字を超えるとエラーとなります(日本語の場合はもっと小さな文字数です)。 ※ご参考:グローバル参照の最大長 #SQL #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 72
記事 Mihoko Iijima · 2022年12月7日 1m read ObjectScript クックブック 開発者の皆さん、こんにちは! InterSystems全製品のサーバ側コードで利用できる「ObjectScript」の基本の使い方から、困ったときのヒント集、エラーの読み方など、日本語ドキュメントの逆引きになるようなページを目指して、「ObjectScriptクックブック」を作成しました! - ObjectScriptの基本の「き」 Hello Worldの出力から始めたい方に最適です。 2024/3/25更新:8. デバッグ方法 を追加しました。ぜひご参照ください。 - CookBook(こんなときどうする?集) ObjectScriptの記述に困ったときに読んでいただけるヒント集です。コミュニティに寄せられたご質問をどんどん掲載していきます。 - ObjectScriptでエラーが発生したら ObjectScriptのプログラムでエラーが発生したときのエラーメッセージの読み方から、エラー情報の取得方法などを解説しています。 #ObjectScript #ヒントとコツ #初心者 #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 4 1 0 320
記事 Megumi Kakechi · 2024年3月24日 2m read テーブル統計情報をエクスポートして別環境にインポートする方法 これは InterSystems FAQ サイトの記事です。 クエリパフォーマンスを左右するクエリプランは、テーブルチューニングを行った結果の統計情報を元に生成されます。 ある環境で期待したプランになったけれど、他の環境では意図したプランにならない場合、(期待したプランとなる)既存環境からテーブル統計情報をエクスポートして別の環境にインポートし、同じ統計情報をもとにしたクエリプランで実行することができます。 #SQL #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 116
記事 Megumi Kakechi · 2024年3月20日 14m read インストールマニフェストのTips集 %Installerという特別なツールを使用すると、目的のIRIS構成を記述するインストールマニフェストを定義できることはご存じでしょうか?インストールマニフェストに作成したい IRIS 構成を記述すると、インストール中、またはターミナルやコードからマニフェストを実行した際に、構成設定が適用されます。 インストールマニフェストについては、以下の記事でご紹介しておりますので是非ご覧ください(Cachéの記事になりますがIRISでも同様です)。%InstallerでInterSystems Cachéにアプリケーションをデプロイする こちらの記事では、実際にマニフェストで追加できる主な項目について、サンプルコードとあわせてご紹介します。今回は、以下の機能の設定例をご紹介します。 #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 105
記事 Hiroshi Sato · 2024年3月18日 5m read コンソールログに"There exists a MISMATCH.WIJ file" が記録され、インスタンスの開始ができない時の対処法 これは InterSystems FAQ サイトの記事です。 インスタンスの開始が失敗し、コンソールログに"There exists a MISMATCH.WIJ file"が記録されている場合、何らかのシステム障害の影響でデータベースの整合性に関して問題が生じていることを示しています。 このような状況が発生した際にインスタンスの開始ができるようにするためには、以下の手順を実施します。 (1) a. インスタンスをNOSTUモードで起動(2) b. データベースの整合性チェック ◆(2)の整合性チェックでエラーを検出しなかった場合、 (3) d. MISMATCH.WIJ ファイルのリネーム (4) e. インスタンスの再起動を実施します。 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 55