これは InterSystems FAQ サイトの記事です。

リレーションシップが設定されており 1対n の n が多量の場合、そのリレーションシップの順次処理などで大量のメモリ消費となるケースがあります。

プログラムの中で多側オブジェクトを参照し内部的にスウィズル処理した後には、そのOREFを含む変数の解放(削除、他の値の設定など)だけでは、その多側オブジェクトとリレーションシップオブジェクトが解放されないことが原因です。

それらを完全にメモリから解放するためには、OREF変数の解放とRelationshipオブジェクトの%UnSwizzleAt<%Library.RelationshipObject >メソッドの実行による明示的なメモリ解放が必要です。
 

- 使用例 -

0 6
0 68

Config.Configurationクラス、SYS.Databaseクラスのメソッドを使用して、ネームスペース・データベースの作成及び登録をターミナルから実行することができます。

以下はデータベースファル/CacheDB/AAA/cache.datを作成し、構成ファイル(cache.cpf)にデータベース AAA、及び、ネームスペースAAAの登録を行う一連の実行例です。 *実行は、%SYSネームスペースで行って下さい。*
 

1 3
0 164

これは 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":["あ","い","う","え"]}

 

詳細はドキュメントもご参照下さい。

1 3
0 103

開発者の皆さん、こんにちは!

VSCode の ObjectScript エクステンションで、プロセスにアタッチしてデバッグする方法についてご紹介します。

ObjectScript エクステンションの基本的な操作方法については、こちらの記事をぜひご参照ください。

解説ビデオ(4分ちょっと)もあります。ぜひご参照ください。

2 2
0 3,415

これはInterSystems FAQ サイトの記事です。

DBLatency の Warning メッセージは、ヘルス・モニタプロセスが定期的にデータベースからのランダム読み取りが完了するまでに要した時間(ミリ秒)を計測していて、設定されている閾値(1000 msec)を超えた場合に出力されます。

mm/dd/yy-18:31:15:060 (2932) 1 [SYSTEM MONITOR] DBLatency(c:\xxx\) Warning: DBLatency = 1510 ( Warnvalue is 1000).


上記例では、C:\xxx\IRIS.DAT(または C:\xxx\CACHE.DAT)へのディスク読み取り I/O に 1510 msec かかったことを示していて、メッセージ出力時のディスク I/O 応答速度が遅いことが考えられます。

ディスク I/O 応答速度が遅い原因としては、ディスク I/O 負荷が高いことが考えられます。

0 0
0 80

これはInterSystems FAQ サイトの記事です

システムルーチン ^DBSIZE を利用するとバックアップファイルサイズを見積もることができます(メモ1もご参照ください)。

^DBSIZE は、データベース・バックアップ・リストに選択されたデータベースを対象に、フルバックアップ/累積バックアップ/差分バックアップそれぞれのファイルサイズを見積もります。

なお、データベース・バックアップ・リストは、管理ポータルの [システム管理] > [構成] > [データベースバックアップ] > [データベース・バックアップ・リスト] から作成します。

 

詳細については、下記ドキュメントもご参照ください。

0 0
0 73

これは InterSystems FAQ サイトの記事です

ミラーリングが同期の対象とするのはデータベースファイルのみです。

アプリケーションに必要なその他のファイル(CSPファイル、画像ファイル、ドキュメントファイルなど)をミラーセットを構成する二台のサーバー間で同期させるには、

  1. NASなどを導入して共有ディスク上にそれらのファイルを配置する方法
  2. または同期ソフトを導入して二台のサーバー間のファイルを同期させる方法

などの方法が考えられます。 また、2の方法では Windows 上では RoboCopy、Linuxの場合には rsync という同期ソフトを使った実例があります。

0 0
0 45

これは InterSystems FAQ サイトの記事です。
 

システムのパフォーマンスが低下した場合、OSやインターシステムズ製品の様々なツールを使用して情報収集を行い
  ”通常時と比較して、どこがどの程度変わっているか”
を確認することで、問題のある箇所を特定できます。
(逆に、通常時の状況が不明な場合、パフォーマンス問題点の切り分けが非常に困難となる場合もあります。)

いざ という時に備え、通常時のパフォーマンスを確認することは、大変重要な情報となります。


収集情報詳細は、以下のドキュメントをご参照ください。

パフォーマンス調査ガイド

0 0
0 50

これは、InterSystems FAQサイトの記事です。
 

CSPアプリケーションでは、リクエスト処理時間がサーバー応答タイムアウト値(CSPゲートウェイ管理ページで設定、既定値60 sec)を経過すると、CSPゲートウェイからクライアントブラウザにタイムアウトを通知し、処理を続けているデータプラットフォームサーバプロセスにエラーを発生させます。

 

エラーが発生している処理を確認して頂き、処理遅延の改善、例えばタイムアウトが発生しないように処理内容を見直して応答時間を短くすることや必要に応じてサーバ応答タイムアウト値を大きくすることで対処可能です。

1 0
0 34

これは InterSystems FAQ サイトの記事です。

管理ポータルを使用して確認する場合は、以下の手順で参照できます。

管理ポータル > [システムエクスプローラ] > [グローバル] の画面で、ネームスペースではなく データベース を指定し、IRISTEMP / CACHETEMP データベースを選択すると参照できます。

 

 

0 0
0 43

これは InterSystems FAQ サイトの記事です。

クラスに定義されたプロパティの情報については、以下システムクラスを利用して情報を取得できます。

%Dictionary.ClassDefinetion

0 0
0 39
記事
Mihoko Iijima · 2021年5月23日 2m read
VDOC (仮想ドキュメント)とは?

これは InterSystems FAQ サイトの記事です。

仮想ドキュメント(以降VDOC)とは複雑な構造のドキュメント(メッセージ)を効率良く高速に処理するために考えられたメッセージ処理の仕組みです。

HL7に代表される EDI 標準は電子データ交換のための汎用的なかなり複雑なメッセージ形式を含んでいます。

また、メッセージの種類を増やすと運用が複雑になってしまうため、1 つのメッセージに様々なデータを詰め込む傾向があります。

その結果 1 つのメッセージは複雑かつデータ量が多いものになりがちです。

一方、実際のメッセージ交換では、メッセージの全てのデータを処理することはまれで一部のデータのみが必要となるケースがほとんどです。

0 0
0 96

これは InterSystems FAQ サイトの記事です。

ジャーナルファイルの削除は、自動削除と手動削除が選択できます。


「自動削除」については、以下2つの方法が選択できます。

A) タスクスケジュールを使用して指定時間に自動削除する方法
B) オンラインバックアップ使用時、指定回数成功後に自動削除する方法
 

A) タスクスケジュールを使用して指定時間に自動削除する方法

インストール時デフォルトで登録されるタスクスケジュール「ジャーナルファイルの削除」を使用して自動削除します。
自動削除を行う前に運用環境に合わせて適切な日数分ジャーナルを保持するよう、ジャーナルファイルの設定を修正します。

0 0
0 60

これは InterSystems FAQ サイトの記事です。

管理ポータルの SQL 画面(管理ポータル > システムエクスプローラ > SQL)で、任意の SQL を実行した後、結果の行数などが表示されいる行の右端にある「印刷」のリンクから、CSVファイル出力を選択できます。

「クエリ印刷」画面で「ファイルにエクスポート」をチェックすると「ファイル形式」の欄が表示されます。

形式に「CSV」を指定し、出力ファイル名を指定したあと「エクスポート」ボタンをクリックすると出力できます。

注意:古いバージョンでは正しくCSV出力が行えない場合もあります。新しいバージョンをぜひご利用ください。

0 0
0 46
記事
Tomoko Furuzono · 2021年11月28日 5m read
データサイズを調べる方法

これは、InterSystems FAQサイトの記事です。

InterSystems製品のデータ(テーブルの行データ、オブジェクトのインスタンスデータ)は、グローバル変数に格納されています。
各グローバルのデータサイズは、管理ポータル>システム>構成>ローカルデータベース>グローバルのページから参照したいグローバルのプロパティをクリックし、表示されるグローバル属性ページ上のサイズ計算ボタンをクリックすることで個別のグローバルのサイズを取得することができます。
ネームスペース上のグローバルのデータサイズをまとめて表示するには、ターミナル上で^%GSIZEユーティリティを起動することで取得することができます。
実行方法は以下の通りです。

0 0
0 30

これは、InterSystems FAQサイトの記事です。

データベースの空き容量は、システムモニタを使用して監視することができます。

システムモニタは、システム開始時に自動開始され、予め設定された閾値に対してアラートが通知されます。

0 0
0 11

これはInterSystems FAQ サイトの記事です。

この記事では「グローバルを誤って削除してしまった!」という場合の対処方法をご紹介します。

誤って削除してしまった特定のグローバルを復旧するためには、バックアップファイルとジャーナルを使用します。
復旧は、^ZJRNFILTユーティリティによるジャーナルリストアで条件を指定してジャーナルレコードをリストアする方法で行います。
この方法で、ある時点のデータベースのバックアップに対して、削除が含まれるジャーナルレコードについて特定グローバルを削除するまでのものを適用することができます。

^ZJRNFILTユーティリティの詳細については、以下のドキュメントをご参照ください。

0 0
0 113

これはInterSystems FAQ サイトの記事です

 1. エクスポートAPI

a. ルーチンを個別に指定してエクスポートする場合は、$system.OBJ.Export() を使用します。

例: 

do $system.OBJ.Export("TEST1.mac,TEST2.mac","c:\temp\routines.xml",,.errors)

 

指定する形式は ルーチン名.拡張子 で、拡張子は mac,bas,int,inc,obj を指定します。

エクスポート中のエラーは errors に格納されます。

$system.OBJ.Export() の詳細はクラスリファレンス %SYSTEM.OBJ を参照してください。

b. ワイルドカードを使用してエクスポートする場合にも、$system.OBJ.Export() を使用します。
例: 

0 0
0 51

これは InterSystems FAQ サイトの記事です

揮発性テーブル(多数のINSERT、DELETEが行われるテーブル)では、ビットマップ・インデックス用ストレージは徐々に効率が低下する可能性があります。

例えば、以下の定義からなるデータが数千件あり、一定期間保持した後 TRUNCATE TABLE で一括削除を行うオペレーションが繰り返し行われているとします。

Class MyWork.MonthData Extends (%Persistent, %Populate)
{
/// 満足度
Property Satisfaction As %String(VALUELIST = ",満足,やや満足,やや不満,不満,");
/// 年齢
Property Age As %Integer(MAXVAL = 70, MINVAL = 20);
Index AgeIdx On Age [ Type = bitmap ];
}

 

0 0
0 59

これは InterSystems FAQ サイトの記事です。

XMLファイルの内容を格納する永続クラス定義を作成し、%XML.Adaptor を追加で継承します。

例は以下の通りです(右端の %XML.Adaptorクラスを追加で継承します)。

Class ISJ.Class1 Extends (%Persistent, %Populate, %XML.Adaptor)

 

2 0
0 269

これは InterSystems FAQ サイトの記事です。

Linux で シェルスクリプト(shell script) からルーチンやメソッドを実行し戻り値を取得するには、iris コマンドを使用します。

詳細はドキュメント「インスタンスの接続について」 をご参照ください。

コマンド記述例は以下の通りです。

iris session インスタンス名 -U ネームスペース名 "実行ルーチン・メソッド"

 

0 0
0 290

これは InterSystems FAQ サイトの記事です。

このエラーが発生する原因としては、アプリケーションの中で既に他のプロセスからロック対象リソースがロックされていて、何らかの理由でそのロックが解放されていないケースが考えられます。

他のプロセスがロックしている兆候がない場合は、ロックテーブルの空き領域が不足しているケースが想定されます。
その場合は、メッセージログ(コンソールログ)に LOCK TABLE FULL のメッセージが出力されます。

トランザクション処理を行なっている場合には、ロック解放の延期が影響しているケースも考えられます。
トランザクションとロック解放の延期については、以下のドキュメントをご参照下さい。

0 0
0 68

これは InterSystems FAQ サイトの記事です。

HL7 メッセージの送受信を行うプロダクションでは、以下3個のグローバルが非常に大きくなることがあります。

グローバルの大きさを確認する場合は、^%GSIZEユーティリティを利用します。詳細は関連トピック/記事をご参照ください。

^EnsHL7.Segment
^EnsLib.H.MessageD
^EnsLib.H.MessageI

HL7メッセージは EnsLib.HL7.Message.cls で定義されます。
^EnsLib.H.MessageD はデータを保存するグローバル、^EnsLib.H.MessageI はインデックスを保存するグローバルです。

また、HL7メッセージは多数のセグメントで構成されており、メッセージデータを含むそれらのセグメントは ^EnsHL7.Segment に保存されます。

0 0
0 34

これは InterSystems FAQ サイトの記事です。
 

InterSystemsでサポートを保証するバージョンは、最小サポートバージョン(ミニマムサポートバージョン)となります。
最小サポートバージョンは、通常リリース後 2 年以内のバージョンになります。
保守契約のあるお客様には、最小サポートバージョンより前のバージョンに対しても技術的なご質問や障害時の対応は可能な限りさせていたいただきますが、その保守対応はベストエフォートとなり、深刻な問題に対してもそのバージョンに対応したワークアラウンドや修正(パッチ)のご提供が難しくなります。

そのような場合には、最新バージョンへのバージョンアップをお勧めいたします。

最小サポートバージョンについては、以下のドキュメントをご覧ください。

最小サポートバージョン

0 0
0 49

これは、InterSystems FAQサイトの記事です。

MM/DD/YY-hh:mm:ss:fff ( ) 0 [Utility.Event] Purging old application errors

 
こちらのメッセージは、エラーではなく、アプリケーションのエラーログを記録した古い ^ERRORSグローバルのパージ処理が実行された際に出力されるメッセージになります。ログを削除した旨のみを伝えるメッセージであり、出力されていても特に問題はありません。
また、このログは、^ERRORSグローバルのパージ処理がタスク実行される毎日01:00 に出力されます。
 

1 0
0 22

これは、InterSystems FAQサイトの記事です。

メール送付のコードを記述する前に、管理ポータルで SSL/TLS 構成を作成します。

管理ポータル > システム管理 > セキュリティ > SSL/TLS 構成

メール送付までの流れは以下の通りです。

0 0
0 16