記事 Toshihiko Minamoto · 7月 26, 2022 5m read

ObjectScript カーネルのロゴ Jupyter Notebook は、多数の異なるマークアップ言語とプログラミング言語でコードを実行できるセルで構成された対話型環境です。

Jupyter はこれを実現するために適切なカーネルに接続しなければなりませんが、 ObjectScript カーネルがなかったため、それを作成することにしました。

こちらから試すことができます。

結果を少し覗いてみましょう。

代替テキスト

Jupyter カーネルの基礎

Jupyter カーネルはいくつかの方法で作成できます。 ここでは、Python ラッパーカーネルを作成することにしましょう。

ipykernel.kernelbase.Kernel のサブクラスを作成して、特定の言語で実行されるコードを受け取る do_execute メソッドを実装する必要があります。

つまり、ある ObjectScript コードを取得して、何らかの方法で実行し、ノートブックにその結果を返すという概念です。

でも、実際にはどうすればよいのでしょうか。 では、その方法をさらに噛み砕いて説明しましょう。

ObjectScript コードを IRIS に送る

まず初めに、コードを IRIS に送る必要があります。 ここで使用するのが、Python 用の IRIS Native API です。

ここでは、irisnative パッケージをインポートして、接続を確立するだけです。

0
0 208
記事 Mihoko Iijima · 7月 26, 2022 9m read

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

Flaskを使うと簡単にWebアプリが作成できるようでしたので、Embedded Pythonを利用してIRISに保存した月毎の歩数データ(テーブル/グローバル)を matplotlibを利用してグラフ表示する簡単なWebアプリを作成してみました。

使っているPythonスクリプトファイルやHTMLは以下の通りです(図例はテーブルからデータを取る例ですが、サンプルにはグローバルからデータを取得する例も含まれます)。

サンプルはこちらに置いています👉https://github.com/Intersystems-jp/WalkSteps

IRISのインストール環境に合わせて、サンプルのディレクトリを分けています。

<Windows にIRISをインストールされている場合>
https://github.com/Intersystems-jp/WalkSteps/tree/master/Windows をご覧ください。
Windows上Pythonのバージョンは3.9で試しています。3.10では動作しませんでしたので、3.9でお試しください。

<Windows以外にIRISをインストールされている場合>
https://github.com/Intersystems-jp/WalkSteps/tree/master/Linux をご覧ください。

0
0 1619
記事 Hiroshi Sato · 7月 25, 2022 1m read

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

ObjectScript言語は、Java言語等がサポートしている型キャストをサポートしていません。

ただし、メソッドのキャストはサポートしています。

詳細は以下ドキュメントページをご参照ください。


メソッドのキャスト【IRIS】
メソッドのキャスト

InterSystems ObjectScript言語はJava言語や.NetのC#言語のような静的型付き言語とは異なり、動的型付き言語に分類される言語になります。

従って型の解釈は実行時に行われ、宣言時に型を合わせるという必要性がないため型キャストのような仕組みを用意していません。

0
0 232
記事 Hiroshi Sato · 7月 25, 2022 1m read

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

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

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

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

などの方法が考えられます。

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

0
0 192
記事 Hiroshi Sato · 7月 20, 2022 2m read

irisコマンドのqlistまたはlistを使用して出力先をファイルにして出力することができます。

qlistの結果は、^を区切り文字としたテキスト形式で出力されます。

^で区切られた3番目の部分に稼働状況のデータがあります。

$ iris qlist IRIS > iris.log
$ cat iris.log

IRIS^/Applications/iris^2022.1.0.164.0^running, since Thu Apr  7 16:37:03 2022^iris.cpf^1972^52773^0^alert^IRIS^^^/Applications/iris

listの場合には、先頭にstatus:と表示された行に稼働状況のデータがあります。

Unix系のOSの場合

$ iris list IRIS > iris.log
$ cat iris.log

Configuration 'IRIS'   (default)

directory:    /Applications/iris

versionid:    2021.2.0.650.0

datadir:      /Applications/iris

conf file:    iris.
0
0 182
記事 Hiroshi Sato · 7月 20, 2022 2m read

タスク成功時・失敗時、それぞれ通知メールを送信することができます。

そのためには事前にターミナルからTASKMGRルーチン を実行して、メールサーバを登録する必要があります。

> zn "%SYS"
> do ^TASKMGR

1) タスク作成
2) タスク編集
3) タスク一覧
4) タスク削除
5) タスク一時停止
6) タスク再開
7) タスク実行
8) タスクリポート
9) タスクマネージャオプション
10) 終了 


 

そして、メニューから9) タスクマネージャーオプションを選んで 

オプション?9
 
1) タスクマネージャ情報
2) タスクマネージャを開始する
3) タスクマネージャ一時停止
4) タスクマネージャ再開
5) タスクマネージャ履歴
6) メール設定定義
7) 終了


 次に6) メール設定定義を選びます。
 

オプション?6
 
1) メールサーバ定義
2) サーバポート定義
3) 返信先定義
4) 送信者定義
5) タイムゾーン
6) 認証ユーザ定義
7) SSL 構成を定義
8) 終了


そこで以下2点を最低限設定します。
 

1) メールサーバ定義 (SMTPサーバ名)  例: xxxxxx.xxxxx.com

4) 送信者定義 (通知メールのFROMアドレス) 例: m123456@gmail.

0
0 833
InterSystems公式 Toshihiko Minamoto · 7月 20, 2022

これは、2022.2の開発者プレビュープログラムのリリース第3弾です。 プレビューリリースは、隔週で更新される予定で、準備が整い次第、機能を追加していく予定です。  2022.2では、SQL管理、クラウド統合、KafkaおよびJMSアダプタ、SQL Loaderなどにおいて、多くのアップデート、修正、機能強化が行われています。 製品改善のため、開発者コミュニティを通じてフィードバックをお寄せください

列指向ストレージに関して、Early Access Program (EAP) を受け付けています。ご興味のある方はぜひ Early Access Program にご参加ください。

 CDリリースには、サポートされているすべてのプラットフォーム向けの標準インストールパッケージと、OCI(Open Container Initiative、別名Dockerコンテナ)形式のコンテナイメージが付属しています。  詳細については、サポートされるプラットフォームのドキュメントをご参照ください。

インストールパッケージとプレビューキーは、WRCのプレビューダウンロードサイトまたは評価サービスのウェブサイト(2022.2へのアクセスには「Show Preview Software」をチェックしてください)から入手できます

0
0 145
記事 Toshihiko Minamoto · 7月 19, 2022 2m read

インターシステムズのサポートではレポートのトラブルシューティングを手助けしており、彼らはローカルシステムにて問題を再現したいのですが、JDBC データソース接続が失敗するため、レポートを実行できず、残念な結果となります。 何かよい方法はあるでしょうか?  

0
0 125
お知らせ Mihoko Iijima · 6月 16, 2022

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

次のコンテスト:🐍 InterSystems 技術文書ライティングコンテスト:Python エディション 🐍 が発表されました 📢

このコンテストは、6月20日~7月21日31日までの期間に、InterSystems のテクノロジと Python の使い方に関するあらゆるトピックについての記事を投稿いただくコンテストです!

今回は、応募期間中に投稿いただいた方 全員 に 🎁賞品🎁をご用意しています。

🏆 特賞: AirPods Max; Apple Watch SE; Apple HomePod mini / Apple Pencil 

1
0 224
記事 Toshihiko Minamoto · 7月 14, 2022 2m read

開発者の皆さん、こんにちは! DICOM 統合を実装したことはありますか? おそらく例やシミュレーターを探したことはあるかもしれません。 この記事では、有用な例を紹介したいと思います。

DICOM はヘルスケアの分野で画像診断に広く使用されているメッセージ規格です。DICOM 規格は、IRIS For HealthHealth Connect の両方を使用して、相互運用性の本番環境で使用することができます。これについては、ドキュメントをご覧ください。

多くの場合、DICOM 統合を開発する際に外部システム(PACS など)をシミュレーターで実行すると非常に便利です。実際のシステムに接続する前に、実装したいフローを完全にテストすることができます。

IRIS For Health と dcm4che というシミュレーターを使った DICOM 統合の例があります。

この例では、2 つのシナリオが実装されています。

埋め込み PDF で DICOM メッセージを受信する

画像

DICOM 画像をクエリして PACS から取得する

クエリフロー:

画像

取得フロー:

画像

さまざまな貢献をぜひお待ちしています :)

0
0 239
記事 Mihoko Iijima · 7月 13, 2022 1m read

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

管理ポータルメニュー [Interoperability] > [構成] > [システムのデフォルト設定] で設定したデータを移行する場合、設定値が格納されているグローバル変数をエクスポートし、移行先システムでインポートします。

画面で登録した以下のような情報は、

グローバル変数 ^Ens.Config.DefaultSettingsD に格納されています。

認証情報については、グローバル変数 ^Ens.SecondaryData.Password に格納されます。

InterSystems IRIS をご利用の場合は、このグローバルは xxxSECONDARY(xxx はネームスペース名)のデータベースに格納されます。

InterSystems IRIS for Health をご利用の場合は、このグローバルはネームスペースのデフォルトデータベースに格納されます。

xxxSECONDARYデータベースについて詳細は、以下ドキュメントをご参照ください。

InterSystems IRIS のパスワード資格情報の格納場所

【関連トピックのご紹介】

0
0 267
記事 Toshihiko Minamoto · 7月 12, 2022 21m read

はじめに

この記事では、gRPC とは何か、そして IRIS 組み込み Python を使って公式の Hello World を実行する例を紹介します。

ここで紹介するすべてのコードは、こちらのプロジェクトリポジトリにあります。

gRPC

gRPC(gRPC リモートプロシージャーコール)は、RPC プロトコルに基づく API アーキテクチャー式です。 このプロジェクトは、2015 年に Google によって作成され、Apache 2.0 の下にライセンス供与されています。 現在、プロジェクトは、Cloud Native Computing Foundation(CNCF)によってサポートされています。

マイクロサービス式のアーキテクチャのサービスなど、バックエンド間でサービスを接続することで使用することができます。

プロトコルバッファ

ほとんどの RPC ベースのプロトコルは、IDL(インターフェース記述言語)を使用して、サーバーとクライアント間の通信コントラクトを定義します。

gRPC は、プロトコルバッファという、シリアライザーメカニズムフォーマットを使用します。

このフォーマットの目的は、メソッドとデータ構造を定義できるという点で、WSDL に似ています。

0
0 1369
記事 Seisuke Nakahashi · 7月 11, 2022 3m read

IRIS 2022.1では Embedded Python が導入されました。Embedde Python によって、IRISの独自言語である ObjectScript と Python の親和性の良さをぜひ実感いただけると嬉しいです。今回の記事では、日本語PDFをPythonライブラリを利用して作成し、さらに ObjectScript と融合するところまで見ていただこうと思います。

0
0 332
記事 Toshihiko Minamoto · 7月 11, 2022 3m read

前編から少し間が空きましたが、シアトルで開催されたグローバルサミット2022の数日間を簡単に振り返ってみましょう。

After a short (or too long) pause from the previous part here is a short recap of the next few days of the Global Summit 2022 in Seattle!

前回同様、キーノートで始まりました(明日から視聴できますwink)。 しかし、6月21日の基調講演とは異なり、その翌日はData Platform IRISに特化した内容となっています。前回同様、トピックとプレゼンターはこちらで確認できます。注目のスピーチは、ベストセラー作家、コンサルタント、破壊的技術のスペシャリストであるGeoffrey Moore氏

0
0 321
記事 Toshihiko Minamoto · 7月 11, 2022 4m read

開発者コミュニティのメンバー、インターシステムズパートナー、そしてインターシステムズ製品に興味を持つ多くの人々が、待ち望んでいた時がやってきました。ついに、長い間お待たせしていたGlobal Summitが今年開催することができました。今回は、シアトルでの開催です。 急な坂道、エリオット湾の絶景、そして地元の人に言わせれば、常に天候の悪い美しい都市 cheeky

0
0 386
記事 Hiroshi Sato · 7月 11, 2022 2m read

iris コマンドを使用することで実行できます。
iris コマンド(iris.exe)は、<インストールディレクトリ>\bin にインストールされています。 書式:

iris run インスタンス名 tag^routine([parameter-list]) ネームスペース名
iris run インスタンス名 ##CLASS(package.class).method([parameter-list]) ネームスペース名

インスタンス名は、管理ポータル(システム管理ポータル)の右上にある [インスタンス:] に表示されている文字列です。


実行する環境に応じて一部の文字 ^ や " をエスケープする必要があります。

Windowsの場合は、以下のようなエスケープが必要となります。

例: USERネームスペースで do info^test(123,"abc") を実行します。

c:\InterSystems\IRIS\bin>iris terminal IRIS info^^test(123,\"abc\") USER

例: USERネームスペースで do ##class(Test.Class1).test(123,"abc") を実行します。

c:\InterSystems\IRIS\bin>iris run IRIS ##class(Test.Class1).
0
0 742
記事 Hiroshi Sato · 7月 11, 2022 2m read

CPU:サポート対象OSが問題なく動作するもの
以下のページをご参考ください。

 サポート対象プラットフォーム


ディスク容量:アプリケーションの要件を除外した場合、 IRISをインストールするためには、最低1.5GB以上の空き容量が必要です。
 

ストレージの計画

 実際に必要となる容量は、インストーラでセットアップタイプで "カスタム(Custom)"

を選択すると、インストールコンポーネント毎にご確認いただけます。


メモリ:推奨メモリー値は、アプリケーションや物理メモリサイズによるため

一概には言えませんが、IRISの全プロセスで使用するメモリサイズは以下になります。


①プロセスパーティション * ⑤プロセス数

 +

②データベースキャッシュ

 +

③ルーチンキャッシュ

 +

④一般ヒープメモリ


計算式でのこれらのパラメータは、業務アプリケーションの特性により異なってきます。


以前に導入実績のある業務アプリケーションの場合、既存システムでどの様に設定されたかも参考にしてください。

 ①プロセスパーティション(プロセスあたりの最大メモリ)

   管理ポータルで設定します。既定値は 262,144(KB)です。

0
0 816
記事 Hiroshi Sato · 7月 11, 2022 1m read

IRISがc:\InterSystems\IRISにインストールされているとします。
(1) a.py を C:\InterSystems\IRIS\lib\python に置きます。

a.py
 

def test():  
  print('Hello World!')

(2) それを IRISのクラスから実行します。
 

ClassMethod xx() [ Language = python ]
{
    import a
    a.test()
}
USER>do ##class(User.test).xx()
Hello World!

もし、a.py を別のディレクトリ C:\temp に置きたい場合は、C:\temp\ をPythonのPATHに指定する必要があります。


以下の方法があります。

(A)  管理ポータル>システム管理>構成>追加設定>メモリ詳細>PythonPath

の値に C:\tempを設定し、a.pyをそのディレクトリに置き、IRISを再起動します。
 

ClassMethod xx() [ Language = python ]
{
   import a
   a.test()
}
0
0 665
記事 Tomohiro Iwamoto · 7月 11, 2022 2m read

オリジナルの「InterSystems IRIS で Python を使って IMAPクライアントを実装する」は、埋め込みPythonを使用してIMAPインバウンドアダプタを実装されていますが、最近メールプロバイダがあいついでoAuth2認証しか受け付けなくなってきているので、その対応をしてみました。

本稿のGitHubはこちらです。

変更点

GMAILに対してメールの送受信を可能とするためにオリジナルに以下の修正を施しています。

  1. IMAP(Python版)インバウンドアダプタにoAuth2認証およびRefreshTokenによるAccessTokenの更新を追加
  2. oAuth2認証およびRefreshTokenによるAccessTokenの更新機能を持つSMTPアウトバウンドアダプタを新規作成
  3. IMAPにバイナリの添付ファイルの処理を追加
  4. メッセージ削除に、推奨APIであるclient.uid("STORE")を使用するように変更
  5. ClientIdなど、センシティブな情報をコンテナ起動時に動的に適用するように変更
  6. 日本語使用時の文字化けに対処

3.添付ファイルが存在する場合、追加設定/ファイル・パスで指定したファイルパス(既定値は/var/tmp/)上に保存します。

5.の実現は、プロダクション(IMAPPyProduction.

0
0 672
記事 Mihoko Iijima · 7月 4, 2022 7m read

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

PythonでExcelからPDFへ変換を行うには、pywinを使うとできるらしいので、IRISにあるデータをDataframeに設定した後Excelに出力し、ExcelからPDFに変換する流れを、Embedded Pythonで試してみました。

メモ:pywinはWindows環境下で動くモジュールのようです。

Excelに出力するデータですが、例では、SELECTの結果をDataframeに格納する方法を利用しています。グローバル変数の情報をDataframeに格納する方法については、以下の記事で詳しくご紹介しています。ぜひご参照ください。
Embedded Python で IRIS グローバル($LB) を Pandas Dataframe に変換する方法

まずは、必要なモジュールをインストールする必要があるので、pywin32 モジュールを irispipを使ってインストールします。

以下の例では、IRIS for Health が c:\InterSystems\IRISHealth にインストールされている状態で実行しています。

Embedded Pythonは、IRIS/IRIS for Health どちらでも利用できます。

0
0 1345
お知らせ Toshihiko Minamoto · 7月 4, 2022

開発者の皆さん
こんにちは。
シアトルで開催されたグローバル・サミット2022は、ちょうど1週間前に終了しましたが、会場にいながら聞き逃した方や、何らかの理由でこの対面式イベントに全く参加できなかった方のために(あるいは、記憶をリフレッシュしてもう一度聞きたい方のために)、キーノートがすでに公開されています。

前置きはこれくらいにして、グローバルサミット最初はコミュニティの皆さんからのご挨拶です。

それでは、このYouTubeプレイリストでグローバルサミット2022全3日間のキーノートをお楽しみください。

0
0 143
記事 Megumi Kakechi · 6月 7, 2021 1m read

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

Question:

IRIS Data Platformは大量のトラフィック処理に耐えられますか?

Answer:

IRIS Data Platformは他のデータベースシステムに比較してデータの処理スピードおよび処理能力の面で優れています。

ESGという外部機関が実際に他社データベース製品とのベンチマークテストを実施した結果に関するレポートを公表しています。

またウルシステムズ社による検証結果も公開されています。

ご参考いただければ幸いです。

ESGによるスピードテストの検証結果

ウルシステムズ社ベンチマーク結果レポート
 

1
0 250
記事 Tomohiro Iwamoto · 7月 3, 2022 18m read

IRISリリース2022.1のご紹介

本稿は、「InterSystems IRIS、IRIS for Health、HealthShare Health Connect 2022.1がリリースされました!」でご案内している内容を、補足解説する内容となります。

紹介ビデオ

米国本社プロダクトマネージャーによる本リリースのハイライトのご紹介ビデオ(英語)です。 https://www.intersystems.com/resources/whats-new-in-intersystems-iris-2022-1

リリース内容

年一度のEMリリースです。

0
0 637
記事 Megumi Kakechi · 7月 3, 2022 2m read

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

バージョン2015.2以降から、Windows上のインストール環境では、サービス・アカウントを
 「Windowsコントロールパネル > 管理ツール > サービス > InterSystems IRIS/Cache Controller for XX」
の「ローカル・システムアカウント」から Windows の任意の管理者アカウントに変更した場合に <NOTOPEN> エラー または -1 が返ります。

この状況を回復するためには、以下2つの設定をする必要があります。

1. 「Windowsコントロールパネル > 管理ツール > サービス > InterSystems IRIS/Cache Controller for XX」
    のログオン設定を、「ローカルシステムアカウント」に戻す
2. irisinstall/cinstall  コマンドを使用してInterSystems IRIS サービス・アカウントを変更する


2 の手順は以下になります。

Windowsコマンドプロンプトを管理者権限で起動し、以下コマンドを使用して変更します。
この設定を有効するためには、インスタンスの再起動が必要です。

0
0 600
記事 Megumi Kakechi · 6月 29, 2022 1m read

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

デフォルトではテーブルのカラムの順番はシステムが自動的に決定します。

順番を変更するにはクラス定義を行う際にプロパティ・キーワード SqlColumnNumber でプロパティ毎に明示的に順番を設定してください。

例:

Property Name As %String [SqlColumnNumber = 2];


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

SqlColumnNumber


なお、SQLテーブル名を変えたい場合は SqlTableName 、カラム名(フィールド名)を変えたい場合は SqlFieldName を指定します。

ともに、永続クラスのみに適用されます。

0
0 182
InterSystems公式 Seisuke Nakahashi · 6月 28, 2022

このたび InterSystems IRIS 2022.1 の日本語ドキュメントが完成しました。以下のURLでご参照いただけます。

ランチャーから日本語ドキュメントを参照したい

0
0 588
記事 Toshihiko Minamoto · 6月 28, 2022 5m read

皆さん、こんにちは!

職場で持ち上がった単純なリクエストで始めた個人プロジェクトを紹介したいと思います。 

使用している Caché ライセンス数を調べることはできますか? 

コミュニティに掲載されている他の記事を読んでみたところ、David Loveluck が投稿したぴったりの記事が見つかりました。 

APM - Using the Caché History Monitor(APM - Caché 履歴モニターを使用する)

そこで、David の記事を参考に、Caché 履歴モニターを使って、リクエストされた情報を表示して見ました。 

「どのテクノロジーを使用するのか」という疑問に対し 

私は CSP に決定しました。単純で強力なテクノロジーであるため、私が担当するお客様は Caché が単なる MUMPS/ターミナルではないことに気づくでしょう。

ライセンス、データベース増加状況、CSP セッションの履歴を表示するページを作成した後、「システムダッシュボードとプロセス」ページのデザインを新装することにしました。

私の Caché インスタンスではすべてうまく機能します。

でも、IRIS はどうでしょうか?

0
0 256