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

InterSystems IRIS では、柔軟でユーザ拡張可能な監視ツールである「システムモニタ」をお使いいただくことが可能です。

システムモニタには、以下の3つのインスタンス監視ツールがあります。

1 0
0 139


こんにちは!

この記事では、IRIS から Caché、Ensemble、HealthShare など、InterSystems の製品で使用されるクラスやその構造を理解するのに役立つツールの概要を簡単にまとめています。

つまり、そのツールはクラスやパッケージ全体を視覚化し、クラス間の相対関係を示し、ディベロッパーやチームリーダーに必要な情報をすべて提供してくれるので、わざわざ Studio に移動してコードを調べる必要が省けます。

InterSystems の製品について情報を集めている方からたくさんのプロジェクトをレビューしている方、または単純に InterSystems Technology ソリューションの新機能に興味がある方まで、ObjectScript Class Explorer の概要をぜひお読みください!

1 0
0 262
記事
· 2020年12月25日 2m read
実行中のiris-analytics-package

皆さん、こんにちは。

iris-analytics-パッケージには、「企業が自社のソフトウェアで InterSystems Analytics の サポートをいかに簡単、そしてシンプルに利用できるかを示す」意図があります。

新しいシンプルなソリューションを作成したり、OpenExchange を使用して既存のソリューションを改善したりすることもできます。

InterSystems IRISにアップグレードしている企業のほとんどは、ツールが提供するすべての機能を活用しています。

このコンテストでの私のもう一つのターゲットは、インターシステムズを長く利用していても、自分たちがアクセスしている可能性をフルに活用していない企業です。

1 0
0 324

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

監査ログをプログラミングで出力するために、監査ログの一覧を取得する%SYS.Audit クラスのListクエリを利用することができます。


サンプルコードは以下のようになります。

 Set statement=##class(%SQL.Statement).%New()  
Set status=statement.%PrepareClassQuery("%SYS.Audit","List")
Set rs=statement.%Execute()
Set tab = $char(9)
While rs.%Next() {
Write rs.%Get("TimeStamp")_tab_rs.%Get("Event")_tab_rs.%Get("Username"),!
}

1 0
0 129

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

グローバル単位でジャーナルのON/OFF設定を行いたい場合は、グローバルマッピング設定で、
 ・ジャーナルしたいグローバル ⇒ ジャーナルON(「はい」)のデータベースにマッピング
 ・ジャーナルしたくないグローバル ⇒ ジャーナルOFF(「いいえ」)のデータベースにマッピング
と、分けることで可能です。 但し、通常のデータベースは、ジャーナルOFF設定であっても、トランザクション中の更新についてはジャーナルファイルに記録されます。

1 0
0 99

IRISでは.Net Binding機能が非推奨になったため、VisM.OCXの置き換えのために用意していたCaché版Cache Directエミュレータ(.Net Binding機能を使用していたため)の使用も非推奨となりました。

そこでIRISのNative API機能を使用して書き換えたものを作成し、OpenExchange(以下のFAQトピックを参照してください)に登録しています。

FAQのトピック


Caché版Cache Directエミュレータを使っているアプリケーションをIRISに移行するためには、IRIS用のCache Directエミュレータに置き換えて、アプリケーションのコードをいくつか書き換える必要があります。

内容は、それぞれのプロジェクトに含まれるコンソールアプリケーションサンプル(consoleApp.cs)を比較することで大体理解できると思いますが、以下にその手順について説明します。

1 0
0 222

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

^%GCMP ユーティリティにて2つのグローバルの内容を比較することができます。

例としてUSERとSAMPLESネームスペースにある、^testと^testを比較する場合は以下のようになります。
※以下の例では、2つのネームスペースに全く同じグローバルを700個作り、その中の一つの中身を変えて検出対象としています。

1 0
0 72

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

サブスクリプトレベルマッピングされたグローバルを、トップノードから全体をkillする場合、<SLMSPAN>エラーとなり削除ができません。

これは、サブスクリプトレベルマッピングされたグローバルについては、マッピングを跨いだサブスクリプト範囲の kill コマンドは行えないためです。

1 0
0 60
記事
· 2021年8月30日 2m read
クエリをチューニングする方法

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

InterSystems 製品には、テーブルのコンテンツに関する統計を収集し、クエリの最適化に役立てる「テーブルチューニング機能」があります。

設定方法は、以下のドキュメントをご参照ください。

ターミナルでは次のコマンドを実行します。

Do $system.SQL.TuneTable("<テーブル名>",0,1)

また、以下の資料もご参照ください。

1) パフォーマンス調査の基礎知識として必要なグローバル構造の解説やSQLの動作の仕組みからクエリプランの見方の解説

インターシステムズ・シンポジア2011の資料

2) パフォーマンスチューニングの例(P13~)

インターシステムズ・シンポジア2012の資料

3) ビットマップ・インデックスの圧縮やオプティマイザ・ヒントなど、Caché SQLのパフォーマンスを最大限に引き出すための情報について

インターシステムズ・シンポジア2014の資料

4) パフォーマンスに困ったときにどこに着目し、どのツールで調べていくか、お客様から日々ご相談をいただくカスタマーサポートから、解決に向かうアプローチの「イロハ」をご紹介するビデオ

動画:Performance 101

5) 開発者コミュティのパフォーマンス関連情報(performanceタグ)

performanceタグ

1 0
0 245

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

$ZTIMESTAMPはUTC形式で日付時刻を返すため、ローカルのタイムゾーンに変更するためには以下システムオブジェクトを利用します。

$SYSTEM.Util.UTCtoLocalWithZTIMEZONE($ZTIMESTAMP)


上記出力結果は ddddd,sssss.fff の形式で出力されます。

ddddd:$HOROLOGの日付と同じ形式
 sssss:現在の日付の午前 0 時からの経過秒数を示す整数
 fff :秒の小数部を示す可変桁数

※ $HOROLOGに似ていますが、$HOROLOGには秒の小数部分は含まれません。

1 0
0 211

開発者のみなさん、こんにちは。

vscode上で動作するObjectScriptエクステンションがリリースされ、vscodeを開発環境として使用できるようになり、GitHubリポジトリと連携できるようになりました。その一方で、使い慣れたIRISやCacheのスタジオからGitHubを扱いたいという要望は根強くあり、GitHubと連携するツールがOpen Exchange上にいくつか公開されています。

そこで、Open exchangeに収録されているツールの中で新しい「git for shared development environment」を使い、環境を作成してみましたので、その手順をお伝えします。

ご利用される際のご参考になれば幸いです。

1 1
0 212

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

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

1 3
0 515

最近行われたディスカッションの中で、Caché ObjectScript における for/while loop のパフォーマンンスが話に出ましたので、意見やベストプラクティスをコミュニティの皆さんと共有したいと思います。 これ自体が基本的なトピックではありますが、他の点では合理的と言える方法のパフォーマンスが意味する内容を見逃してしまうことがよくあります。 つまり、$ListNext を使って$ListBuild リストをイテレートするループ、または $Order を使ってローカル配列をイテレートするループが最も高速な選択肢ということです。

1 0
0 355

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

$ZHorologを使用します。

$ZHorologシステム変数はInterSystems製品を起動してからの経過時間(秒)を保持しています。

2点間の$ZHorolog値の差を取るだけで正確な経過時間を取得する事が出来ます。

詳しくは以下、ドキュメントをご参照ください。


$ZHorologについて【IRIS】


$ZHorologについて

この他、秒の小数部を含む時間の日付と時間の取得には $NOW, $ZTimeStamp が使用できます。

1 0
0 136

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

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

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

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

1 0
0 542

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

※ IRIS Data Platformのサーバーライセンス(プロセッサーコア単位の課金)では以下の内容は適用されませんので、ご注意お願いします。

2012.1以降のバージョンより、ライセンス管理が厳格化されたために、管理ポータルでもライセンスを消費するようになりました。


デフォルトでは、管理ポータルは独立したID(CSPセッション)単位でライセンスを消費するために同一ユーザが複数ライセンスを消費するようになります。

スタジオ、ターミナル、管理ポータル全ての消費ライセンスをに同一ユーザにまとめる方法は以下になります。

(1) スタジオ、ターミナル、管理ポータルに共通ユーザでログイン

管理ポータル: [システム管理] > [セキュリティ] > [サービス]

以下3つを「パスワード」認証のみに変更

1 0
1 346

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

【 管理ポータルへのパスワード認証設定方法 】

管理ポータルの、
 [ホーム] > [システム管理] > [セキュリティ] > [アプリケーション] > [ウェブ・アプリケーション]
で /csp/sys、および、/csp/sys/ 以下の各アプリケーション(/csp/sys/expなど) の編集画面を開き、“許可された認証方法” の、"認証なし" のチェックを外し、“パスワード” のみチェックをして保存します。

1 0
0 385

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

オペレーティング・システム・ベースの認証(OS認証)では、OSのユーザ ID を使用して、IRISを使用するユーザを識別します。

インストール時に選択する初期セキュリティ設定=最小の場合は、予め、OSログインユーザと同一名のユーザをInterSystems IRIS に作成する必要があります。(パスワードは異なっていても構いません。)
初期セキュリティ設定=通常以上の場合は、インストールユーザ名(OSログインユーザ名)で、ユーザが作成されていますので、このユーザを使用することができます。別のログインユーザで実行したい場合は、同様にIRISユーザを同名で作成してください。

​​ [インストール時の初期セキュリティ設定画面]

1 0
0 65

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

命名規約については、それぞれ下記のドキュメントページをご確認ください。

テーブル名(クラス名)について


識別子のルールとガイドライン - クラス

カラム名(プロパティ名)について


識別子のルールとガイドライン - クラス・メンバ

1 0
0 561
記事
· 2021年12月28日 2m read
コンパイルフラグについて

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

コンパイル時のフラグや修飾子の記号と意味については、以下ドキュメントをご参照ください。


コンパイルフラグについて【IRIS】

コンパイルフラグについて

なお、開発環境のスタジオやVisual Studio Codeでは、開発環境の設定画面でフラグを変更できます。

1 0
0 534

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

TRY-CATCHで行うことが可能です。
以下のように行ってください。

 #dim ex As %Exception.AbstractException
 TRY {
    "<何かエラーを発生させる処理>"
  }
  CATCH ex {
     do ex.Log()
  }


^%ETNを使用する場合は、^%ETNを呼び出す際にBACKエントリ(BACK^%ETN)から呼び出してください。


あわせて、以下の関連記事も是非ご覧ください。

1 0
1 211

Studio では、クラスを直接その名前で開くことができます。何度もクリックしながら目的のクラスに到達するまでパッケージツリー内を移動する必要はありません。

Ctrl + O(またはファイル -> 開く)を押せば、以下のようにクラス名を入力するだけです。

Enter を押すと、クラスが開きます。

VSCode ではこれをどのようにして行えるでしょうか?

1 0
0 258

ObjectScript パッケージマネージャ ZPM のライフサイクルにおけるマイルストーンをここに発表させていただきます。このパッケージマネージャは、ObjectScript コードや 配置構成設定、バージョン情報などを便利にパッケージ化する機能を開発者に提供し てきました。 ここ数年のうちに、多くの開発ワークフローに不可欠な存在として大きく進化しました。

その結果、インターシステムズは所有するコンポーネントをパッケージ化するのに使用することとし、コミュニティのGitHubリポジトリをコーポレートリポジトリに移行、InterSystems Package Manager (IPM) に改名することとなりました。IPMはオープンソースのままです。コミュニティのメンバーは、コードをレビューし、プルリクエストを提出することができます。この変更により、従業員以外の方がコードベースに変更を加えることができないような方法で、ソフトウェアのセキュリティを確保することができるようになりました。また、データと一緒にコードをインストールできるソフトウェアでは、より高いレベルのセキュリティと信頼性が重要です。

1 0
0 146

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

インデックスが複数定義されているクラス/テーブルへ csv 形式等のシーケンシャルファイルから大量データをデータベースに登録する際、推奨される登録方法として、データ登録時インデックスを生成させず、登録完了後に一括でインデックスを生成する 方法があります。

この方法は、新規に大量のレコードを一括登録する際に最も有効な手段となります。

<メモ>
大量のデータを追加登録する際には、既存のデータ量と新規データ量のバランスにより、この手法が有効でないケースもあります。その場合は、インデックスの再構築を範囲指定で行うこともできます。

説明に使用するクラス定義例は以下の通りです。

1 0
0 342

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

SELECT ... FOR UPDATE は明示的な行ロック取得の方法として多くの RDBMS で実装されているため、この機能を使われているケースも多いと思います。

このシンタックスは InterSystems 製品ではエラーにはなりませんが、期待されるような行ロックの取得は行われません。

この記事では同等の機能を実現する方法をご紹介します。

DECLARE CURSOR C1 IS
SELECT Name FROM Person WHERE Name LIKE 'A%' FOR UPDATE
OPEN C1
LOOP FETCH C1 INTO name 
... name を表示
... 終了ならLOOPをEXIT
END LOOP
CLOSE C1

上記のようなSQL文は、下記のSQL文で代替可能です。

※下記2行目のUPDATE文の実行により対象行に対して排他ロックがかかるため、他DBの動作と異なる点ご注意ください。

1 0
0 383

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

Windowsのグループセキュリティポリシーに停止コマンドを記述したバッチファイルを登録する事により可能です。

手順は以下のとおりです。

1.Windowsのローカルコンピュータ・ポリシーのシャットダウンスクリプトに停止コマンドを登録します。
  停止コマンドを含んだbatファイルを作成します。

 CacheStop.bat ※InterSystems Caché の場合

c:\intersystems\cache\bin\ccontrol stop CACHE

 IRISStop.bat ※InterSystems IRIS の場合

1 0
0 542

2021年12月13日 - 勧告: Apache Log4j2ライブラリの脆弱性がインターシステムズ製品に与える影響

インターシステムズは現在、Apache Log4j2に関するセキュリティ脆弱性の影響を調査しています。

1 1
0 133

古くなった MUMPS アプリケーションの新たな生命を吹き込みたいとお考えでしたら、以下にご紹介するステップを実行すれば、グローバルをクラスにマッピングし、美しいデータを Object や SQL に公開できます。

今回ご紹介する例には、パート 1 ではカバーしなかった内容を 4 つないし 5 つ程度盛り込んでいます。

その後は親子マッピングの例を紹介して完結となります。それを修得したらマッピングはもう完璧でしょう。

前回と同じ免責事項: これらの記事を読んでもグローバルがよく理解できないという方は、WRC (Support@InterSystems.com) までメールでお問い合わせください。喜んでサポートさせていただきます。

グローバルをクラスにマッピングするステップ。

1 0
0 194

YASPEはYAPE(Yet Another pButtons Extractor)の後継機種です。YASPEは、メンテナンスと拡張を容易にするために、多くの内部変更を行い、一から書き直しました。

YASPEの機能は以下の通りです。

  • 「InterSystems Caché pButtons」 および 「InterSystems IRIS SystemPerformance」 ファイルを解析してグラフ化し、オペレーティング・システムおよび IRIS のメトリックを迅速にパフォーマンス解析します。
  • アドホックチャートを作成したり、「Pretty Performance」オプションでOperating SystemとIRISの指標を組み合わせたチャートを作成することで、より深く掘り下げることが可能です。
  • 「System Overview」 オプションを使用すると、システムの詳細や一般的な設定オプションについて SystemPerformance ファイルを検索する手間を省くことができます。

YASPEはPythonで書かれています。ソースコードはGitHubで公開されており、Dockerコンテナ用には以下で公開されています。


1 0
0 74