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

バックアップ先に、共有フォルダを指定することは可能ですが、推奨しません。

バックアップの最終フェーズのDBアクセスを禁止する箇所で万一ネットワークエラー等で、バックアップがハングアップすることがあれば、システム全体に影響が及ぶリスクがあります。

1 0
0 118
記事
· 2021年11月11日 8m read
GitHub Codespaces と IRIS

しばらく前、GitHubはGitHub Codespacesという新しい機能を発表しました。 ブラウザでVSCodeを実行する機能があります。マシンでローカルに実行するのとほぼ同じ性能がありますが、クラウドの能力も備わっているため、最大32CPU、64 GB RAMのマシンタイプを選択することが可能です。

素晴らしいことですね。 でも、このことは、InterSystems IRISで駆動するプロジェクトで作業する上で、どのように役立つのでしょうか。 それをどのように構成するのか見てみましょう。

1 0
0 311

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

この記事では、【GettingStarted with IRIS】シリーズの MQTT アダプタを簡単に試せるサンプルの利用方法についてご紹介します!

(MQTTブローカーはインターネット上に公開されているテスト用ブローカーを利用しています)​​

サンプルは、こちら👉https://github.com/Intersystems-jp/Samples-MQTT-EKG-Devices (コンテナで動作します)

IRIS/IRIS for Health のバージョン2020.1から、IoT の世界でよく利用される MQTT プロトコルに対応できる MQTT アダプタが追加されました。

MQTTインバウンドアダプタでは、メッセージの Subscribe が行え、MQTTアウトバンドアダプタでは、メッセージの Publish が行えます。

サンプルでは、MQTT を使った遠隔モニタリングをテーマに、患者さんに装着した心電図から心拍数(BPM)をリアルタイムに近い状態で取得し、モニタ画面に患者さん毎の心拍数を表示します(IRIS の MQTT インバウンドアダプタを利用したメッセージの Subscribe をご体験いただけます)。

Publish されるトピックについて

サンプルでは、演習環境毎にユニークになるようにコンテナ開始時に以下の形式でトピックを作成しています(末尾の # はワイルドカードの指定です)。

/Student_4629/acmeHospital/EKG/#

実際に Publish されるトピックは患者さんに装着した心電図のデータになるので、# の部分は、Patient-1 や Patient-2 などのように患者さんを特定できる文字列が入ります。

サンプルのシナリオは、1つの医療機関の患者情報を取得する流れにしています(本来であれば複数の医療機関の患者情報をモニタできるようにしたほうが良いのですがシンプルに試すため、1つの医療機関の患者情報を取得する流れにしています)。

トピックの流れ

サンプルには1つHTMLファイルが用意されています。このファイルをブラウザで開くと MQTT ブローカーに接続し、データ(心拍数)を1秒ごとにブローカーへ Publish します。

IRIS は、MQTTブローカーから指定のトピックを Subscribe します。

​​​

MQTT ブローカーを Subscribe する設定を行った IRIS のサービスは、ブローカーからトピックを取得します。

実際の設定は以下の通りです。

受信したトピックは IRIS の中では​​​メッセージ(EnsLib.MQTT.Message)として扱われ、次のコンポーネントであるプロセス(図では Process_MQTT_Request)に渡します。

プロセスでは、受信した MQTT 用メッセージからモニタ表示に利用するデータ(Solution.HeartRate)に変換するため、データ変換を呼び出します。

プロセスエディタの開き方と、中で行われているデータ変換の呼び出しの設定を確認する方法は以下の通りです。

患者ごとの測定値を参照する流れ

MQTT ブローカーから Subscribe した心拍数をリアルタイムに近い状態で画面表示するため、データ変換で作成された Solution.HeartRate から1秒ごとに患者ごとの心拍数を収集し、画面に表示しています。

この表示を行うため、1秒間隔で Solution.HeartRate に対するSELECT文が実行されています。

このクエリを実行しているのが、メトリックと呼ぶクラスです。プロダクションでは以下の場所に設定されています。

メトリックでは、指定の呼び出し間隔で Solution.HeartRate から患者ごとの BPM を収集しています。詳細はソースコードをご参照ください。

1 0
0 278

インターネットを使うようになってから (1990年代後半)、PythonとIRIS グローバルを使ってブログを書いていますが、常にCMS (コンテンツ管理システム) でブログ、ソーシャルメディア、さらには企業ページに情報を簡単に投稿できるようにしていました。
数年後、自分がマークダウンファイルに収めて使ってきたすべてのコードをgithubに入れました。
ネイティブAPIでデータをIntersystems IRISに入れて永続化するのはとても簡単だったので、このアプリケーションを作成して少しSQLを忘れ、キー・バリュー・データベースモデルを受け入れることにしました!
picture

ブログとは?

これはWEB LOGの略名で、基本的にはユーザーが書いてページに投稿、公開できるプラットフォームです。

1 0
0 173

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

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

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


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

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


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

1 0
0 581
記事
· 2021年10月12日 1m read
DBリストア手順

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

^BACKUP ユーティリティを使用して、DBリストアする方法をご紹介します。

添付のドキュメントでは、オンラインバックアップ と レガシー並行外部バックアップ の2種類のバックアップからのリストア処理の方法を紹介しています。

リストア処理の詳細は、下記ドキュメントページを参照してください。

1 0
0 202

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

ネットワーク共有フォルダ/ネットワークプリンタにアクセスしたい場合、以下の2つの方法があります。

A. net use コマンドを使用する方法
B. IRISの起動ユーザを変更する方法

詳細は以下をご覧ください。

------------------------------------------------------------------------------------------
【方法A】net use コマンドを使用する方法
------------------------------------------------------------------------------------------

1) IRIS からネットワーク共有フォルダへのアクセスを許可する場合、以下のコマンドを実行するように SYSTEM^%ZSTART に記述します。

1 1
0 1.3K

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

ターミナルでルーチンを実行し、プログラム上でエラーが発生した時に、エラートラップを適切に設定していない場合、以下のようなデバッグモードになります。

USER>do ^error1
write A
^
a+2^error1 *A
USER 2d0>

この状態から、ルーチン起動の前の状態に戻るにはQuitコマンドを入力します。

USER 2d0>Quit

またエラーが発生したルーチン内でトランザクション処理を行なっている場合には、以下のような表示のプロンプトになります。

1 0
0 278

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

こちらでは、タスクスケジュールを登録・参照するサンプルコードをご紹介します。

①タスクスケジュール登録のサンプル

※毎日 am1:00に do ^TEST を実行するタスクを作成します。

1 0
0 228

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

%IndexBuilder クラスを使用して、複数プロセスを利用してインデックス再構築を行うことができます。

Sample.Person の Home_State(連絡先住所の州情報)カラムに対して標準インデックス HomeStateIdx を定義する目的での例で記載します。

手順は以下の通りです。

1、追加/再構築予定のインデックス名をクエリオプティマイザから隠します。

>write $system.SQL.SetMapSelectability("Sample.Person","HomeStateIdx",0)
1

2、新インデックスを定義するクラス定義のスーパークラスに %IndexBuilder を一番右端に追加します。

1 0
0 151

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

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

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

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

 CacheStop.bat ※InterSystems Caché の場合

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

 IRISStop.bat ※InterSystems IRIS の場合

1 0
0 554

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

Excelのマクロ機能を使ってVBAからREST/JSON経由でアクセスすることが可能です。

REST/JSONを使用したInterSystems製品との連携の簡単なサンプルを以下のGitHubサイトから入手できます。

VBAマクロサンプル

マクロサンプルは Solution/activityreport.xlsm をご覧ください。

サンプルは、コンテナを利用しています。READMEに記載の方法でコンテナを開始し、Solution/activityreport.xlsm の「データ取得」ボタンをクリックすると以下の結果が得られます。

1 0
0 251

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

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

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


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

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

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

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

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

1 0
1 361

特定文字列が含まれるグローバルを検索する時、どのように行われているでしょうか?

管理ポータルでグローバルを表示して Ctrl+F で検索することもできますが、サイズが大きなグローバルでは表示に時間がかかり難しい場合もあります。

もちろん、$ORDER や $QUERY 関数でループして含まれる文字列を検索することは可能です。

しかし、もっと簡単で便利な方法があります。

管理ポータルで行える、グローバル文字列検索機能 を使う方法です。

こちら、管理ポータルの [システムエクスプローラ] > [グローバル] :検索 から簡単に行えます

例えば、^%ISCLOGグローバルの中から「CSP error cleaning up after page」というエラーが含まれるグローバルを検索するときは以下のようになります。

1 0
0 150

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

InterSystems製品のクラスクエリにはSQL文を利用する方法と、ユーザコードによる記述が選択できます。

スタジオメニューの [クラス] >[追加] > [クエリ] を選択すると、クエリウィザードが起動します。


画面に、「実装」を選択する項目があり、「このクエリはユーザコードで定義されている」を選択すると SQL文ではなく、ユーザコードによりクエリ定義が行えます。

1 0
0 322

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

Linux上では、以下の手順で InterSystems IRIS (以降IRIS)のインスタンスを削除してください。

(1) アンインストールしたい IRIS のインスタンスを iris stop で停止

# iris stop インスタンス名

(2) 以下のコマンドでインスタンス情報を削除

# iris delete インスタンス名

(3) IRIS のインストールディレクトリを rm コマンドで削除

# rm -r インストールディレクトリ

IRISは、インストール先のディレクトリのほかに、以下の(a)(b)も使用しています。

1 0
0 507
記事
· 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 258

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

※データベースファイルとは、IRIS.DAT、および、CACHE.DATのことを指します。

Caché/Ensemble 2018.1.4、IRIS 2019.1.2/2020.1.0 以降のバージョンより、データベースファイル のサイズの縮小に、データベースの「圧縮」と「未使用領域の削除」機能をあわせて使用できます。

1 0
0 852

*この動画は、2021年2月5日に開催したウェビナーのアーカイブです。

InterSystems IRIS data platform は、拡張性に優れ、相互運用性、分析機能を備えたアプリケーション開発のためのデータプラットフォームです。
この動画では、これからインターシステムズのデータプラットフォーム製品をお使いになる開発者の方を対象に、その特徴を20分でご紹介します。

https://www.youtube.com/embed/SqPfBDqps8I
[これは埋め込みリンクですが、あなたはサイト上の埋め込みコンテンツへのアクセスに必要な Cookie を拒否しているため、それを直接表示することはできません。埋め込みコンテンツを表示するには、Cookie 設定ですべての Cookie を受け入れる必要があります。]

このような方を対象としています。

1 0
0 112

不在時に、セキュリティとプライバシーを維持しながら、コンピューターを相互に信頼させるにはどうすればよいでしょうか?

「ドライマルティーニを」と彼は言った。 「1 杯。 深いシャンパングラスで。」
「承知いたしました。」
「気が変わった。 ゴードンを 3、ヴォッカを 1、キナリレを半量。 キンキンに冷えるまでよくシェイクしてから、大きめの薄いレモンピールを 1 つ加えてくれ。 わかったかい?」
「お承りいたしました。」 バーテンダーはその考えが気に入ったようだった。
イアン・フレミング著『カジノ・ロワイヤル』(1953 年)より

OAuth は、ユーザーログイン情報を伴うサービスを「運用中」のデータベースから、物理的にも地理的にも分離する上で役立ちます。 このように分離すると、ID データの保護が強化され、必要であれば、諸国のデータ保護法の要件に準拠しやすくしてくれます。

OAuth を使用すると、ユーザーは、最小限の個人データをさまざまなサービスやアプリケーションに「公開」しながら、一度に複数のデバイスから安全に作業することができるようになります。 また、サービスのユーザーに関する「過剰な」データを操作しなくてよくなります(データはパーソナル化されていない形態で処理することができます)。

1 0
0 309

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

ディスクの空きスペースにもよりますが、ブロック別で最大サイズが異なります。

各バージョン共通で、8KBのブロックサイズを使用した場合は、32TBです。

バージョン2008.1以降のバージョンでは、8KB以外のブロックサイズを指定できるようになったため、最大サイズは以下の通りです。

  • 16KBのブロックサイズを使用した場合、64TB
  • 32KBのブロックサイズを使用した場合、128TB
  • 64KBのブロックサイズを使用した場合、256TB
1 0
0 164
記事
· 2021年7月20日 7m read
Windows環境でnginxを構築する

皆さん、こんにちは。

InterSystems製品ではCache 2015.1からNGINXに対応しているのですが、インストールマニュアルを見るとC言語のソースファイルが提供されていて、「むむむ。。。コンパイルか。。。」と躊躇してしまいますね(^_^;)。
そこで、実際にWindows環境でNGINXをビルドしてみましたのでレポートします。

1 0
0 2.3K

インターシステムズは、InterSystems IRIS データ・プラットフォーム、InterSystems IRIS for Health 、HealthShare Health Connect のメジャーバージョン 2021.1 をリリースしました。

本リリースの機能強化により、サーバ側およびクライアント側の両方で選択した言語による高速で堅牢なアプリケーションをより自由に構築していただくことが可能になります。また、新しく高速な分析機能を通じて大量の情報をより効果的に処理することもできます。

多くのお客様に Caché および Ensemble を使用したシステムをこの InterSystems IRIS バージョンに移行していただくことを期待して、スムーズで価値のある移行を実現するためにあらゆる努力を行ってきております。多くのアプリケーションにおいて、単純にIRIS上で動作させるだけでパフォーマンスの向上を期待できます。
それだけでなく、IRISがもたらず強力な機能を検討していただくこともできます。

1 0
0 237

alt

この記事には、IAM の基本概念を学習するための、教材、例、演習が含まれます。

すべてのリソースはこちらの git から入手できます: https://github.com/grongierisc/iam-training

ソリューションは training ブランチにあります。

この記事では、次の点について説明します。

1 0
0 468

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

ユーザ定義エラーとして使用したいエラーコードと対応するメッセージを記述したXMLを用意します。

なお、エラーコードは負の整数で設定してください。

<?xml version="1.0" encoding="UTF-8" ?> 
<MsgFile Language="ja">
  <MsgDomain Domain="UserErrors">
    <Message Id="-111" Name="MyError">エラーが発生しました</Message> 
    <Message Id="-222" Name="MyError2">エラーが発生しました2</Message> 
  </MsgDomain>
</MsgFile>

XML ファイルが作成できたら使用したいネームスペースにロードします。

1 0
0 120

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

ルーチン(*.mac)の場合

ソースプログラムのコンパイル後に生成される *.obj のみをエクスポート/インポートすることでソースの隠蔽化を実現できます。

コマンド実行例は、EX1Sample.mac と EX2Sample.mac のコンパイルで生成される EX1Sample.obj と EX2Sample.obj をエクスポート対象に指定し、第2引数のファイルにエクスポートしています。

別ネームスペースに移動したあと、エクスポートした XML ファイルを利用してインポートを実行しています。

1 0
0 212

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

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

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

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

1 0
0 558

*この動画は、2021年2月に開催された「InterSystems Japan Virtual Summit 2021」のアーカイブです。

この動画では、Caché/EnsembleからInterSystems IRISへの移行プロセスについてご説明しています。

https://www.youtube.com/embed/612KLqB5mdY
[これは埋め込みリンクですが、あなたはサイト上の埋め込みコンテンツへのアクセスに必要な Cookie を拒否しているため、それを直接表示することはできません。埋め込みコンテンツを表示するには、Cookie 設定ですべての Cookie を受け入れる必要があります。]

Caché/Ensembleから InterSystems IRIS への移行を考えられている方は、まずこちらをご覧ください。
「移行する際の注意点」、「移行の方法」、「必読ドキュメント」、「キットや評価ライセンスの入手方法」など、IRIS移行の際に必要となる情報をまとめてご案内しています。

1 0
0 243