記事 Mihoko Iijima · 2021年7月5日 1m read データベースの暗号化の仕組み これは InterSystems FAQ サイトの記事です。 バージョン5.1以降、データベース単位に暗号化する仕組みが用意されています。 InterSystems data platform のデータベース暗号化は物理ブロックレベルの暗号化ですので、暗号化のオーバヘッドが非常に少なく、性能への影響が極小化されており、暗号化されている項目のインデックス化に制限等がありません。 関連記事もご参照ください。 データベースの暗号化手順について #ヒントとコツ #暗号化 #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 96
記事 Tomoko Furuzono · 2021年12月7日 2m read メッセージ・ログ(messages.log)/コンソール・ログ(cconsole.log) に出力される「Skipping SET(KILL) global ^xxxx during transaction rollback...」のメッセージとは これは、InterSystems FAQサイトの記事です。このメッセージが出力される要因は以下の2つになります。 同じデータに対して適切に排他を行わずに、別々のプロセスから更新が行われている ロールバックが発生している 詳細は以下の通りです。 メッセージログ/コンソールログに、以下のようなメッセージがある場合、これはロールバック処理にて出力されています。※バージョンによってメッセージは多少異なります。 #システム管理 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 94
記事 Toshihiko Minamoto · 2021年10月5日 2m read Ensembleで大量のメッセージを再送信するには メッセージビューアはメッセージを再送信できますが、大量(>100件)のメッセージを再送信するには適していません。 それを行うには、以下のようなCache Object Scriptコードを使用する必要があります。 Class Sample.Resender Extends %RegisteredObject{ #Code Snippet #Ensemble 0 0 0 94
記事 Tomoko Furuzono · 2024年3月18日 3m read 任意のXMLドキュメントの読み込み・書き出しを行う これは、InterSystems FAQサイトの記事です。 【任意のXMLドキュメントの読み込み】任意のXMLドキュメントの読み込み・書き出しを行うには、%XML.TextReaderクラスを使用します。Parseメソッド(※ドキュメントがファイルの場合はParseFile())を使用してドキュメントをParseし、各ノードのプロパティを取得します。 例えば、下記のXMLの場合、 <emp empid="1"> <name>Suzuki</name> <address>Tokyo</address> </emp> 各赤枠が、"ノード"の単位となり、 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 93
記事 Megumi Kakechi · 2023年5月15日 2m read グローバルの kill で <SLMSPAN> エラーとなる原因と対処方法 これは InterSystems FAQ サイトの記事です。 サブスクリプトレベルマッピングされたグローバルを、トップノードから全体をkillする場合、<SLMSPAN>エラーとなり削除ができません。 これは、サブスクリプトレベルマッピングされたグローバルについては、マッピングを跨いだサブスクリプト範囲の kill コマンドは行えないためです。 #ObjectScript #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 91
記事 Tomoko Furuzono · 2023年4月11日 2m read 監査データベースの閲覧のみを許可する これは、InterSystems FAQサイトの記事です。管理ポータルの監査メニューを使用する場合、ユーザに監査データベースの閲覧のみを許可するということはできません。管理ポータルから監査データベースを閲覧する場合は、そのユーザに、・%Admin_Secure:U(監査以外にもセキュリティ関連の操作が可能となる)・%DB_IRISAUDIT:RW(監査データベースへの読み込み/書き込み権限)等のリソースへの権限が必要になりますが、これを与えることにより、監査データベースの閲覧以外の操作も可能となってしまいます。 監査データベースの閲覧のみを許可したい場合には、管理ポータルの監査メニューは使用せず、外部ツール等からSQLで監査テーブルを参照するようにします。このとき、ユーザに必要な権限は以下の通りです。※他の権限は与えないようにします。・IRISAUDITデータベースへのRW権限 ⇒ %DB_IRISAUDITロールの付与・%SYS.AuditテーブルへのSelect権限 #システム管理 #セキュリティ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 91
記事 Mihoko Iijima · 2024年5月16日 26m read 外部バックアップの仕組みとバックアップとリストア方法について 開発者の皆さん、こんにちは。 この記事は、「インターシステムズ製品をバックアップする前に確認したいこと」に続く記事で、InterSystems製品のバックアップの手法の中の「外部バックアップ」の仕組みと、バックアップ・リストア手順について解説します。 まず、「外部バックアップ」とは、InterSystems製品の専用ルーチン使用せず、InterSystems製品以外のバックアップソリューションを使用してデータベースをバックアップする方法で、現時点の推奨されるバックアップ方法です。 #システム管理 #バックアップ #ヒントとコツ #Caché #Ensemble #Health Connect #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 86
記事 Megumi Kakechi · 2022年10月3日 1m read InterSystems IRIS は 2フェーズコミットをサポートしていますか? これは InterSystems FAQ サイトの記事です。 Question: InterSystems IRIS は 2フェーズコミットをサポートしていますか? Answer: サポートしていません。 2フェーズコミットはデータベースシステムがサポートしているだけでは十分ではなく、アプリケーションサーバ等の各実装が定めている2フェーズコミットのプロトコルを駆使して、アプリケーションを構築する必要があります。 また関連するシステムの全てのコンポーネントが対応している必要がある、ロングトランザクションには向いていないなど、現実に実装する局面では様々な制約事項があります。 2フェーズコミットは、技術面、設計および実装面、コスト面、性能面などハードルが非常に高いため、実際には限られた領域での利用に留まっています。 #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 86
記事 Mihoko Iijima · 2021年2月19日 1m read 仮想化ソフトのサポートについて これは InterSystems FAQ サイトの記事です。 インターシステムズは、個々の仮想化ソフトウェアに対して、弊社製品の動作検証は行なっておりません。 インターシステムズでは、弊社製品がサポートするプラットフォームをサーバプラットフォームという単位で定義しています。 サーバプラットフォームは、オペレーティングシステムとそのバージョン、およびそのオペレーティングシステムが動作するプロセッサタイプの 3 つの要素で定義されます。 従いまして、ある仮想ソフト上で InterSystems 製品がサポートしているサーバプラットフォームが稼動し、その上で InterSystems 製品が動作している限りにおいて、製品のサポートを提供します。 #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 85
記事 Mihoko Iijima · 2020年12月20日 1m read データベース以外のファイルをミラーリングで同期する方法があるのかどうか これは InterSystems FAQ サイトの記事です ミラーリングが同期の対象とするのはデータベースファイルのみです。 アプリケーションに必要なその他のファイル(CSPファイル、画像ファイル、ドキュメントファイルなど)をミラーセットを構成する二台のサーバー間で同期させるには、 NASなどを導入して共有ディスク上にそれらのファイルを配置する方法 または同期ソフトを導入して二台のサーバー間のファイルを同期させる方法 などの方法が考えられます。 また、2の方法では Windows 上では RoboCopy、Linuxの場合には rsync という同期ソフトを使った実例があります。 #Mirroring #システム管理 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 84
記事 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 80
記事 Mihoko Iijima · 2024年5月20日 5m read 並行外部バックアップの仕組みとバックアップとリストア方法について InterSystems製品のバックアップ方法の中の3つの目方法は、「並行外部バックアップ」についてです。 この方法は外部バックアップと異なり、スナップショットなどのストレージ機能がない環境に向いている方法でオンラインバックアップよりも高速にバックアップできます。(古いバージョンのInterSystems製品でも利用できるバックアップ方法です。) ただし、バックアップやリストア手順が複雑になります。 並行外部バックアップの利用を検討される際は、事前にリストア手順についてもテスト環境などでご確認いただくことを推奨します。 #システム管理 #バックアップ #ヒントとコツ #Caché #Ensemble #Health Connect #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 79
記事 Hiroshi Sato · 2024年1月5日 1m read インストール時に指定する初期セキュリティ設定について これは InterSystems FAQ サイトの記事です。 インストール時に選択できる初期セキュリティ設定のレベルには以下の3つがあります。※バージョンにより、表記(日本語/英語)が違う場合があります。 最小 (Minimal) 通常 (Normal) ロック・ダウン (Locked Down) 各レベルの違いの詳細は以下の資料をご確認ください。 セキュリティの説明資料 #セキュリティ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 72
記事 Mihoko Iijima · 2024年3月6日 2m read プロダクションの設定項目をクラスメソッドで取得する方法 これは InterSystems FAQ サイトの記事です。 Ens.Directorクラスのクラスメソッドを使用して取得できます。 プロダクション名(FAQSample.Interop.Production)とホスト名(FAQSample.Interop.FileOperation)を指定して設定リストを取得する方法は以下の通りです。 #ヒントとコツ #相互運用性 #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 71
記事 Hiroshi Sato · 2024年3月18日 1m read $ZF(-100) で呼び出した外部プロセスがハングしてしまった場合のIRISプロセスの終了方法 これは InterSystems FAQ サイトの記事です。 $ZF(-100)で外部コマンドを実行する場合、その外部コマンドの子プロセスからの応答が返らない限り、$ZF(100)コマンドを発行したIRISプロセスはその応答を待って残り続けます。 従ってIRISプロセスを終了させるためにはその応答がない子プロセスを強制終了させる必要があります。 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 69
記事 Mihoko Iijima · 2024年5月16日 9m read インターシステムズ製品をバックアップする前に確認したいこと 開発者の皆さん、こんにちは。 この記事では、InterSystems製品のバックアップ方法(4種類)のご紹介と、バックアップを行う前に確認しておきたい内容について解説します。 また、この記事に続くシリーズ記事では、それぞれのバックアップの仕組みと操作例を交えたバックアップとリストア手順を解説していきます。 #システム管理 #バックアップ #ヒントとコツ #Caché #Ensemble #Health Connect #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 68
記事 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 67
記事 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 62
記事 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 56
記事 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 55
記事 Megumi Kakechi · 2024年9月3日 2m read HTTPレスポンスヘッダの取得方法 これは InterSystems FAQ サイトの記事です。HTTPレスポンスヘッダ情報を取得したい場合、以下のような方法があります。開発中などに、送られてきたヘッダの項目名、そのデータを確認したい場合に、是非ご活用ください。 #CSP #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 50
記事 Tomoko Furuzono · 2024年8月4日 1m read 管理ポータルのグローバル表示で、サブスクリプトレベルの範囲を指定して表示する これは、InterSystems FAQサイトの記事です。 管理ポータルのグローバル変数表示ページでは、サブスクリプトレベルの範囲を指定して表示することが可能です。 各サブスクリプトレベルで、 <開始値>:<終了値> のように指定します。開始値を省略すると先頭から終了値まで、終了値を省略すると指定値から最後までのグローバル変数を表示します。 《例》 (グローバル全体) (第2サブスクリプトが"b"のデータだけを表示) (第3サブスクリプトが300以上のデータを表示) #管理ポータル #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 47
記事 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 46
記事 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 46
記事 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 46
記事 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 44
記事 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 43
InterSystems公式 Ayumu Tanaka · 2024年2月15日 1m read Caché, Ensemble, HSAP 2018.1.9 リリースのご案内 インターシステムズは、Caché, Ensemble, Health Connect HSAP のメンテナンスリリース(MR) 2018.1.9をリリースしました。本リリースは、幅広い領域で多くのアップデートが行われたメンテナンスリリースです。 Caché と Ensemble 製品のフルインストールキットは、WRC の Software Distribution ページからダウンロードすることができます。 #リリース #Caché #Ensemble #InterSystems公式 1 0 0 42
記事 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 40
記事 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 38