これは InterSystems FAQ サイトの記事です。
アプリケーション等がデータベースにアクセスしている最中に、データベースの最大サイズの変更や未使用領域の開放などのデータベース設定変更を行うことにより、データベース整合性等に悪影響を及ぼすことはありません。
しかし、未使用領域の開放などは、ディスクアクセスの増加やメモリの使用等でシステムに負荷をかける可能性があるため、その観点からシステム運用に影響が出ないよう注意が必要です。
InterSystems HealthShareは病院、統合配信ネットワーク(IDN)、地域および国の医療情報交換組織(HIE)向けの医療情報プラットフォームです。HealthShareには、医療情報交換、データ集約、ワークフロー、テキスト分析、分析テクノロジーなどの機能が搭載されています。
これは InterSystems FAQ サイトの記事です。
アプリケーション等がデータベースにアクセスしている最中に、データベースの最大サイズの変更や未使用領域の開放などのデータベース設定変更を行うことにより、データベース整合性等に悪影響を及ぼすことはありません。
しかし、未使用領域の開放などは、ディスクアクセスの増加やメモリの使用等でシステムに負荷をかける可能性があるため、その観点からシステム運用に影響が出ないよう注意が必要です。
これは InterSystems FAQ サイトの記事です。
Linux で シェルスクリプト(shell script) からルーチンやメソッドを実行し戻り値を取得するには、iris コマンドを使用します。
詳細はドキュメント「インスタンスの接続について」 をご参照ください。
コマンド記述例は以下の通りです。
iris session インスタンス名 -U ネームスペース名 "実行ルーチン・メソッド"
シェルスクリプトへの戻り値の指定は、ルーチンやメソッド終了時に指定する QUIT や RETURN コマンドに引数を指定する方法ではなく、プロセス処理終了時に %SYSTEM.Process クラスの Terminate() メソッドを使用して 特殊変数 $? に値を返す方法を利用します。
値は、0~255 を指定できます。 ルーチンでの利用例は以下の通りです。
// ルーチン名をTestとします
start1() public {
hang 5 // 5秒待つ
//第2引数に指定した数値がシェルスクリプトに戻ります
set st=$system.Process.Terminate($JOB,11)
}
実行例は以下の通りです。
# iris session iris -U USER "start1^Test()"
# echo $?
11これは InterSystems FAQ サイトの記事です。
管理ポータルを使用して確認する場合は、以下の手順で参照できます。
管理ポータル > [システムエクスプローラ] > [グローバル] の画面で、ネームスペースではなく データベース を指定し、IRISTEMP / CACHETEMP データベースを選択すると参照できます。
ターミナル上で確認する場合は、znspace(省略形:zn)コマンドのパラメータとしてネームスペース名ではなく、データベースディレクトリ名を指定することで該当データベースのみに存在するグローバルを参照できます。
IRISTEMP データベース上のグローバルを参照する場合、以下例のように移動します。
USER>zn "^^../IRISTEMP"
..iris\mgr\iristemp\>HealthShare HealthConnect と Information Exchange のバージョン 15.03 では、C-CDA 2.1 から SDA へのインポートトランスフォーメーションをサポートしています。 こういったプログラムのビルドは、インストレーションパッケージの csp/xslt/SDA3 ディレクトリにあります。 インポートトランスフォーメーションの概要は、Overview of Health Connect の「CDA Documents and XSL Transforms in HealthShare」をご覧ください。
C-CDA 2.1 サポートに関連するインポート機能の強化の 1 つとして、 C-CDA ファイルをインポートする前に前処理を実行できる機能が追加されました。
前処理サポートの導入により、トランスフォーメーションは大幅に簡素化され、その合計処理時間も削減されます。 考えられるユースケースは以下の 2 つです。
対象バージョン:
Caché/Ensemble、InterSystems IRIS および IRIS for Health のすべてのバージョン、上記のデータプラットフォームバージョンに基づくすべての HealthShare 製品
対象プラットフォーム: すべて
InterSystemsは、非常にまれな状況でプライマリミラーメンバー以外のミラーメンバーでデータの不整合を引き起こす可能性がある問題を修正しました。
この問題は、上記の InterSystems 製品のバージョンで発生する可能性があります。
[発生する問題]
ミラーリングを使用しているシステムでデータの不整合性が発生します。
[問題の詳細]
この問題は、ミラーリングされたシステムでの通常の操作中にエラーなく発生します。
この問題によりミラーメンバーで一部のジャーナルレコードのデジャーナル処理が失敗し、ミラーメンバー間でデータの不整合が発生します。
これは、フェイルオーバーメンバーと非同期メンバーの両方で発生する可能性があります。
これは InterSystems FAQ サイトの記事です。
各タイムアウト値の意味は以下の通りです。
(1) [サーバ応答タイムアウト]
この設定時間内に、IRIS/Caché での処理(ルーチンやクエリの実行)が終わらない場合は、ブラウザ側にエラーを返します。
例) この値が60秒の時に、ルーチン/メソッド/クエリ実行に 90秒 かかる場合にはエラーになります。
(2) [キューイングされたリクエストのタイムアウト]
CSP/REST で設定する IRIS/Caché サーバごとに、CSP/REST を同時実行できるプロセス数を制限できます。
たとえば、サーバ接続最大数=3の場合、表示に数十秒かかるページを複数同時に要求した場合、4つ目以降のリクエストは、Web/CSP ゲートウェイ上で「キュー」に入り待ち状態になります。
このキューで待つ最大時間が (2) のタイムアウトになります。
(3) [非活動タイムアウト]
CSP/REST では、IRIS/Caché サーバ上に待ち受けプロセスが複数でき、「サーバ接続最大数」まで待ち受けプロセスが出来る可能性があります。
各プロセスが、次の要求が来るまで待機する時間がこのタイムアウト値になります。
タイムアウト後、プロセスは自動的に消滅します(これらのプロセスはライセンスを消費しません)。
詳細は下記ドキュメントページをご参照ください。
これは InterSystems FAQ サイトの記事です。
複数の SQL 文を実行する GUI はありませんが、複数の SQL 文を含むファイルを作成しファイルをインポートしながら SQL を実行する方法で対応できます。
ご利用バージョンによって使用するユーティリティメソッドが異なります。
2020.3以降をご利用の場合は %SYSTEM.SQL.Schema クラスの ImportDDL() メソッドを使用します。
2020.2以前をご利用の場合は %SYSTEM.SQL クラスの DDLImport() メソッドを使用します。
1)バージョン 2020.3 以降での方法:%SYSTEM.SQL.Schema クラスの ImportDDL() メソッドの利用
インポート用ファイルに記述するSQL文が複数行ある場合は、記述する SQL の後ろに GO 文を記述する必要があります。
インポートファイル例は以下の通りです。
INSERT INTO Test2.Person (Name) values('test1')
go
INSERT INTO Test2.Person (Name) values('test2')
go
INSERT INTO Test2.Person (Name) values('test3')
goこれは InterSystems FAQ サイトの記事です。
ダイナミックオブジェクトから JSON 文字列を生成するときに使用する %ToJSON() の引数にストリームオブジェクトを指定することでエラーを回避できます。
コード例は以下の通りです。
USER>set temp=##class(%Stream.TmpCharacter).%New()
USER>set jsonobj={}
USER>set jsonobj.pro1=["a","b","c","d"]
USER>set jsonobj.pro2=["あ","い","う","え"]
USER>do jsonobj.%ToJSON(temp)
USER>write temp.Size
51
USER>write temp.Read()
{"pro1":["a","b","c","d"],"pro2":["あ","い","う","え"]}
詳細はドキュメントもご参照下さい。
これは InterSystems FAQ サイトの記事です。
INFORMATION_SCHEMA スキーマを使用して取得できます。
INFORMATION_SCHEMA はシステム用スキーマのため、デフォルトでは管理ポータルの SQL メニューに表示されません。
表示させる方法は以下の通りです。
指定のテーブル(Test.Person)に対するID、フィールド名(COLUMN_NAME)、データタイプ(DATA_TYPE)、説明(DESCRIPTION)を取得するSQLは以下の通りです。
SELECT ID,COLUMN_NAME,DATA_TYPE,DESCRIPTION
FROM INFORMATION_SCHEMA.COLUMNS
where TABLE_SCHEMA='Test' AND TABLE_NAME='Person'
関連するFAQトピックもご参照ください:「プログラムから、クラス定義に記述されたプロパティ定義を取得する方法はありますか?」
これは InterSystems FAQ サイトの記事です。
SYS.ApplicationError クラスの ErrorList クエリを使用します。
注意1:%SYS ネームスペースで実行します。
注意2:ストアド化していないユーティリティのため %SQL.Statement ではなく %ResultSet クラスを利用します。
コマンド実行例は以下の通りです。
カタカナ→ローマ字変換ができるサンプルクラスはありませんでしょうか?
これは InterSystems FAQ サイトの記事です。
%SYS.ProcessQuery クラスの AllFields クエリを使用すると取得できます。
詳細は、ドキュメント「プロセス(ジョブ)について【IRIS】 / プロセス(ジョブ)について」もご参照ください。
ターミナルでの実行例は以下の通りです。
これは InterSystems FAQ サイトの記事です
復旧を優先される場合を除き 【トラブル発生状態のまま】弊社サポートセンターまでご連絡ください。
その際、専用ツールを利用して情報収集いただくことで(所要時間約 5分)、サポートセンターによる状況確認がスムーズに行えます。
ツール使用方法については、PDF または以下ビデオでご紹介しています。
※ InterSystems IRIS / IRIS for Health をご利用の方は、こちらの記事をご参照ください。
ぜひ 1 度、テスト/開発環境で実行をお試しいただき、万が一の場合に備えていただければ思います。
ビデオの目次(YouTubeでもご覧いただけます)
0:00~1:40 情報収集ツールを使用する上での大事なポイント
1:41~2:15 ツールの種類について
2:15~3:45 どのツールを実行したらいいか困った時の考え方
3:45~5:04 管理ポータルの診断レポートの例
5:04~6:00 ^Buttonsの実行例(Cache)
6:00~7:12 ^Buttonsの実行例(Ensemble / Cacheベースの HealthConnect)
7:12~8:27 CacheHungスクリプトの実行例(Windowsの例)
8:27~9:30 CacheHungスクリプトの実行例(Linuxの例)
これは InterSystems FAQ サイトの記事です。
Java のガベージコレクションは、使用しなくなったメモリ上のオブジェクトを自動開放するしくみですが、InterSystems data platform(以下IRISと表記)のガベージコレクションは、意味が異なります。
IRIS では、ディスク上の大量のデータノードを 1 コマンド(killコマンド)で削除する機能があります。
通常、データ容量が増えれば、それに伴い、削除に必要な時間が増加しますが、そうすると、そのkillコマンドを発行したプロセスが、削除が終わるのを待つ時間が増加することになってしまいます。
その様な事象の発生を避けるため、IRIS では、ユーザプロセスが大量のデータを削除する kill コマンドを発行した際に、その場で削除に必要な全ての処理を行うのではなく、削除が必要な開始の場所だけを示して、次の処理に進むようになっています。
その後、ガベージコレクタというシステムプロセスに起動がかかり、その指示されたポイントから大量データの削除に伴う領域の開放処理をバックグラウンドで処理していきます。
つまり、論理的な削除は、一瞬で終わるが、実際の物理的な削除は、遅延して行われる仕組みとなります。
このような仕組みをガベージコレクションと呼んでいます。
これは InterSystems FAQ サイトの記事です。
インターシステムズは、個々の仮想化ソフトウェアに対して、弊社製品の動作検証は行なっておりません。
インターシステムズでは、弊社製品がサポートするプラットフォームをサーバプラットフォームという単位で定義しています。
サーバプラットフォームは、オペレーティングシステムとそのバージョン、およびそのオペレーティングシステムが動作するプロセッサタイプの 3 つの要素で定義されます。
従いまして、ある仮想ソフト上で InterSystems 製品がサポートしているサーバプラットフォームが稼動し、その上で InterSystems 製品が動作している限りにおいて、製品のサポートを提供します。
これは InterSystems FAQ サイトの記事です。
$ZSTRIP() 関数を使用します。
この関数を使用すると、指定文字列から、文字のタイプと文字を削除できます。
下記の例のように、第2引数で、"<"、">"、"<>"を指定することにより、SQLのLTRIM、RTRIM、TRIM関数と同等の処理が可能になります。
// アクションコード "<>" を指定すると前後の空白を削除する
// マスクコード:W で空白 ($C(9), $C(32), $C(160)) を削除する
// 第3引数(全角スペース)は $C($ZHEX("3000")) でも指定可能
USER>Set a=" 全角 ・半角 スペースを含む文字列 "
USER>Set b=$ZSTRIP(a,"<>W"," ")
USER>Write "["_b_"]"
[全角 ・半角 スペースを含む文字列]
USER>Set c=$ZSTRIP(a,"*W"," ") // アクションコード "*" を指定すると全ての空白を削除する
USER>Write "["_c_"]"
[全角・半角スペースを含む文字列]
USER>HealthShare の理想的な Apache HTTPD Web サーバー構成に関するお問い合わせをよくいただいています。 この記事では、真っ先に推奨される HealthShare 製品の Web サーバー構成について概要を説明します。
何よりもまず第一に、Apache HTTPD バージョン 2.4.x(64ビット)を使用することをお勧めします。 2.2.x のような旧バージョンも使用できますが、HealthShare のパフォーマンスとスケーラビリティを確保するにはバージョン 2.2 はお勧めできません。
これは、InterSystems FAQサイトの記事です。
[管理ポータル] > [システムオペレーション] > [ライセンス使用量] ページで表示される各項目の意味は以下のとおりです。
① 現在使用中のライセンス数:現時点のライセンスユニット使用数です。
② 最大ライセンス使用:インスタンスが起動した後、現在に至るまでで最もライセンス使用の大きかった時点の
"現在使用中のライセンス数"です。
③ 許可されたライセンス数(Cache.Key/iris.keyの値):該当システムで許可されている最大ライセンスユニット数です。
④ 現在の接続:現時点のクライアントからの接続数です。
⑤ 最大接続:インスタンスが起動した後、現在に至るまでで最も接続数の大きかった時点の"現在の接続"です。
(A) ローカル:表示しているサーバのインスタンスで消費しているライセンスの情報です。
(B) リモート:マルチサーバライセンスを使用して複数インスタンスでライセンス共有している場合の、共有している全インスタンスで消費しているライセンスの合計値の情報です。
※ライセンス共有を行うには、ライセンスサーバの設定が必要です。詳細は下記トピックをご参考になさってください。
複数インスタンスでライセンスを共有する場合に必要な設定
これはInterSystems FAQ サイトの記事です。
システムルーチン ^DBSIZE を利用するとバックアップファイルサイズを見積もることができます(メモ1もご参照ください)。
^DBSIZE は、データベース・バックアップ・リストに選択されたデータベースを対象に、フルバックアップ/累積バックアップ/差分バックアップそれぞれのファイルサイズを見積もります。
なお、データベース・バックアップ・リストは、管理ポータルの [システム管理] > [構成] > [データベースバックアップ] > [データベース・バックアップ・リスト] から作成します。
詳細については、下記ドキュメントもご参照ください。
^DBSIZEによるバックアップ・サイズの見積もり【IRIS】
実行例は、以下の通りです。
これはInterSystems FAQ サイトの記事です。
%Net.HttpRequest クラスの SSLConfiguration プロパティに SSL/TLS 構成の「クライアント」構成名が指定されているかご確認ください。
%Net.HttpRequest クラスを使用して、https の url にアクセスするためには、以下のドキュメントに記載されている SSL/TLS 構成 の「クライアント」構成を作成して指定した名前を SSLConfiguration プロパティに指定する必要があります。
管理ポータルの [システム管理] > [セキュリティ] > [SSL/TLS構成] メニューを開き、「構成名」に任意名を設定し、「保存」ボタンをクリックします(そのほかの構成パラメータは、デフォルト値で作成します)。
実行例は以下の通りです(https://www3.nhk.or.jp/news/ にアクセスしています)。
こんにちは!
この記事では、IRIS から Caché、Ensemble、HealthShare など、InterSystems の製品で使用されるクラスやその構造を理解するのに役立つツールの概要を簡単にまとめています。
つまり、そのツールはクラスやパッケージ全体を視覚化し、クラス間の相対関係を示し、ディベロッパーやチームリーダーに必要な情報をすべて提供してくれるので、わざわざ Studio に移動してコードを調べる必要が省けます。
InterSystems の製品について情報を集めている方からたくさんのプロジェクトをレビューしている方、または単純に InterSystems Technology ソリューションの新機能に興味がある方まで、ObjectScript Class Explorer の概要をぜひお読みください!
Config.Configurationクラス、SYS.Databaseクラスのメソッドを使用して、ネームスペース・データベースの作成及び登録をターミナルから実行することができます。
以下はデータベースファル/CacheDB/AAA/cache.datを作成し、構成ファイル(cache.cpf)にデータベース AAA、及び、ネームスペースAAAの登録を行う一連の実行例です。 *実行は、%SYSネームスペースで行って下さい。*
Set Directory="/CacheDB/AAA/"Setx=$ZF(-100, "/shell", "mkdir", Directory)
Set db=##Class(SYS.Database).%New()
Set db.Directory=Directory
Set status=db.%Save()
Set DBName="AAA"Set status=##class(Config.Configuration).AddDatabase(DBName,Directory)
Set NSName=DBName
Set status=##class(Config.Configuration).AddNamespace(NSName,DBName)これはInterSystems FAQ サイトの記事です。
InterSystemsでは、パフォーマンスの影響や動作不調を避けるために、データベースファイルを含む主要なコンポーネントをウイルススキャンの対象から除外していただくことを推奨しております。
具体的には、アンチウイルスソフトのスキャン対象から、以下のファイルを除外してください。
上記ファイルが、アンチウイルスソフトで除外設定されていない場合、「SERIOUS DISK WRITE ERROR...」のようなエラーが発生する場合があります。
このエラーは、実際にハード的なディスク障害が原因であることもありますが、それ以外にアンチウィルスソフトのウィルスチェックなどによって、ディスクへの書き込みが阻止された場合にも起こります。
詳細は、下記ドキュメントページをご参照ください。
インターシステムズ製品と連係して動作するようにサードパーティ・ソフトウェアを構成する方法【IRIS】
インターシステムズ製品と連係して動作するようにサードパーティ・ソフトウェアを構成する方法
これはInterSystems FAQ サイトの記事です。
サーバ側ロジックの記載に使用する ObjectScript でのエラーが発生した場合の対処方法については「ObjectScriptでエラーが発生したら」にまとめています。
ぜひご参照ください!
この記事では、InterSystems Technologiesに基づく、堅牢なパフォーマンスと可用性の高いアプリケーションを提供するリファレンスアーキテクチャをサンプルとして提供します。Caché、Ensemble、HealthShare、TrakCare、およびDeepSee、iKnow、Zen、Zen Mojoといった関連する組み込みテクノロジーに適用可能です。
Azureには、リソースを作成して操作するための、Azure ClassicとAzure Resource Managerという2つのデプロイメントモデルがあります。 この記事で説明する情報は、Azure Resource Managerモデル(ARM)に基づきます。
Microsoft Azureクラウドプラットフォームは、InterSystems製品すべてを完全にサポートできるクラウドサービスとして、IaaS(サービスとしてのインフラストラクチャ)向けの機能の豊富な環境を提供しています。 あらゆるプラットフォームやデプロイメントモデルと同様に、パフォーマンス、可用性、運用、管理手順などの環境に関わるすべての側面が正しく機能するように注意を払う必要があります。 この記事では、こういった各分野の詳細について説明しています。