これは、InterSystems FAQサイトの記事です。
こちらのメッセージは、エラーではなく、アプリケーションのエラーログを記録した古い ^ERRORSグローバルのパージ処理が実行された際に出力されるメッセージになります。ログを削除した旨のみを伝えるメッセージであり、出力されていても特に問題はありません。
また、このログは、^ERRORSグローバルのパージ処理がタスク実行される毎日01:00 に出力されます。
実際にアプリケーションエラーがある場合は、管理ポータルの [システムオペレーション] > [システムログ] > [アプリケーションエラーログ] にて、詳細を確認できます。
※このエラーログの内容は、各ネームスペースの ^ERRORS グローバルに格納されているものです。
これは、InterSystems FAQサイトの記事です。
$ZTIMESTAMPはUTC形式で日付時刻を返すため、ローカルのタイムゾーンに変更するためには以下システムオブジェクトを利用します。
上記出力結果は ddddd,sssss.fff の形式で出力されます。
ddddd:$HOROLOGの日付と同じ形式
sssss:現在の日付の午前 0 時からの経過秒数を示す整数
fff :秒の小数部を示す可変桁数
※ $HOROLOGに似ていますが、$HOROLOGには秒の小数部分は含まれません。
63895,64252.66 - 63895,64252
SAMPLES>write $ZDATETIME($SYSTEM.Util.UTCtoLocalWithZTIMEZONE($ZTIMESTAMP),8)
20151209 17:45:56
SAMPLES>write $ZDATETIME($ZTIMESTAMP,8)
20151209 08:46:05
SAMPLES>
皆さん、こんにちは。私の最新のプロジェクトの1つをご紹介します。 Grafana用データソースプラグインです。これは、InterSystems IRISに直接接続して(将来的に)あらゆるデータを収集できるプラグインです。
.png)
先週のディスカッションでは、1つのファイルのデータ入力に基づく単純なグラフを作成しました。 ご存知のように、解析して相関付けるデータファイルが複数あることがあります。 そこで今週は、perfmonデータを追加して読み込み、それを同じグラフにプロットする方法について学習しましょう。 生成したグラフをレポートやWebページで使用する可能性があるため、生成したグラフのエクスポート方法についても説明します。
Windowsのperfmonデータを読み込む
標準のpButtonsレポートから抽出されたperfmonデータは、少し独特なデータ形式です。 一見すると、かなり単純なCSVファイルで、 最初の行には列のヘッダーがあり、それ以降の行にはデータポイントが含まれています。 ただし、ここでの目的のために、値エントリーを囲む引用符をどうにかする必要があります。 標準的なアプローチを使用してファイルをPythonに解析すると、文字列オブジェクトの列ができてしまい、うまくグラフ化できません。
perfmonfile="./vis-part2/perfmon.これは、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"),!
}これは、InterSystems FAQサイトの記事です。
CSPアプリケーションでは、リクエスト処理時間がサーバー応答タイムアウト値(CSPゲートウェイ管理ページで設定、既定値60 sec)を経過すると、CSPゲートウェイからクライアントブラウザにタイムアウトを通知し、処理を続けているデータプラットフォームサーバプロセスにエラーを発生させます。
エラーが発生している処理を確認して頂き、処理遅延の改善、例えばタイムアウトが発生しないように処理内容を見直して応答時間を短くすることや必要に応じてサーバ応答タイムアウト値を大きくすることで対処可能です。
2021年12月13日 - 勧告: Apache Log4j2ライブラリの脆弱性がインターシステムズ製品に与える影響
インターシステムズは現在、Apache Log4j2に関するセキュリティ脆弱性の影響を調査しています。
この脆弱性は少なくともApache Log4j2 (バージョン2.0から2.14.1)に影響を与えるもので、最近Apacheから発表され、米国国家脆弱性データベース (NVD) ではCVE-2021-44228 として報告されており、深刻度は最も高い10.0となっています。
脆弱性に関する詳細ならびにインターシステムズ製品に影響を与えるかどうかの最新情報は こちら をご参照ください。
あるお客様の問題から、この短い記事を書くことにしました。 お客様はEnsembleを使用して、多数のシステムを統合しています。一部のシステムではプレーンファイルのみが使用されています。
そのため、ターゲットファイルへの書き込みには、自然とFile Outbound Adapter を選択しました。 数年もの間すべてが順調に稼働していましたが、最近になって、ファイルに書き込まれるデータが数十メガバイトという大きなサイズに達するようになり問題が出てきました。オペレーションが完了するまでに約30分かかるようになり、プロセス内の後続の処理を待たせなければならないタイミングの問題が発生し始めたのです。当然、連携先のシステムはそれほど長く待つことを良しとしません。
お客様のコードは、以下の疑似コードのようなものでした。
set tResultSet=SQLStatement.Execute()
// compose header based on resultset columns Describe()
set tSC= .Adapter.PutLine(file,header)
while tResultSet.%Next() {
set line=. compose line of the resultset row data
set tSC=.開発者の皆さん、こんにちは!
InterSystems IRIS 2021.2 Preview 版 がリリースされました。新しい機能として LOAD DATA があります。
ということで、今回のコンテストでは、この新しい「LOAD DATA」をテストするコンテストにしてみたいと思います!
🏆 InterSystems Datasets Contest 🏆
応募期間: 2021年12月27日~2022年1月9日
💰 賞金総額: $9,450 💰
皆さん、こんにちは。
開発者コミュニティやGlobal Masters、Open Exchangeといった開発者Ecoシステムで、メールアドレス(ログインメール)を変更しても、アクティビティが失われないようにする必要があります。
それは簡単です。私たちにお任せください!
- 1️⃣ 古いDC(開発者コミュニティ)アカウントから新しいDCアカウントへ、あなたの情報をすべて正しく移行します。 あなたの投稿、コメント、メンション、「いいね!」などの情報はすべて新アカウントに保存されます。
- 2️⃣ Global Mastersのメンバーであれば、あなたのレベル、バッジ、ポイントなども新しいアカウントに移行されます。
- 3️⃣ Open Exchangeでのアプリケーションの移行も行います。
- 4️⃣ また、古いアカウントを解除するだけで(アクティビティを引き継がない)あれば、ワンクリックで完了します。
DCのダイレクトメッセージやメールで @Iryna Podmazko (または @Toshihiko Minamoto )に連絡するだけです。
- 古いアカウントへのリンクを送る (-s)
- 新しいアカウントへのリンクを送る(-s)
- 自分のアクティビティのどのリソース(DC/GM/OEX/すべてのリソース)を移したいのかを明記してください。
それでは。
着想: @Evgeny Shvarovとその記事より
Deploying InterSystems IRIS Embedded Python Solutions with ZPM Package Manager
このアイデアを発展させ、同じことを**Node.js.**のモジュールで行ってみました。
このケースは、私の「IRIS Native API for Node.js」の例に基づいています。
InterSystems IRIS はクライアントとしてネイティブでWebSocketsをサポートしているというわかりきった返答を期待して:
その通りです。そして、私がその昔書いた関連記事とOEXのサンプルへのリンクはこちらです。
これは、InterSystems FAQサイトの記事です。
グローバル単位でジャーナルのON/OFF設定を行いたい場合は、グローバルマッピング設定で、
・ジャーナルしたいグローバル ⇒ ジャーナルON(「はい」)のデータベースにマッピング
・ジャーナルしたくないグローバル ⇒ ジャーナルOFF(「いいえ」)のデータベースにマッピング
と、分けることで可能です。 但し、通常のデータベースは、ジャーナルOFF設定であっても、トランザクション中の更新についてはジャーナルファイルに記録されます。
一時グローバルを保存するIRISTEMP/CACHETEMPデータベースは、トランザクション中でもジャーナルファイルに記録されませんので、トランザクションデータもジャーナル記録したくない場合にはこれをマッピング先にすることも可能です。
但し、IRISTEMP/CACHETEMPデータベースは一時データベースであるため、インスタンス再起動でグローバルデータは失われますので注意が必要です。
一時グローバルと IRISTEMP データベース
キーワード: IRIS、IntegratedML、機械学習、Covid-19、Kaggle
前のパート1の続き... パート1では、Kaggleに掲載されているこのCovid-19データセットにおける従来型MLのアプローチを説明しました。
今回のパート2では、IRISのIntegratedMLを使用して、可能な限り単純な形態で同じデータとタスクを実行しましょう。IntegratedMLは、バックエンドAutoMLオプション用に洗練された優れたSQLインターフェースです。 同じ環境を使用します。
IntegratedMLアプローチとは
IRISにデータを読み込む方法
integredML-demo-templateには、IRISにデータを読み込む様々な方法が定義されています。 たとえば、このCSV形式のxlsファイルに固有のカスタムIRISクラスを定義し、それをIRISテーブルに読み込むことができます。 大量のデータをより適切に制御することができます。
ただし、この記事では、単純化された怠惰な方法を使用します。データフレーム全体を私が作成したカスタムPython関数で読み込む方法です。
これは、InterSystems FAQサイトの記事です。
【 管理ポータルへのパスワード認証設定方法 】
管理ポータルの、
[ホーム] > [システム管理] > [セキュリティ] > [アプリケーション] > [ウェブ・アプリケーション]
で /csp/sys、および、/csp/sys/ 以下の各アプリケーション(/csp/sys/expなど) の編集画面を開き、“許可された認証方法” の、"認証なし" のチェックを外し、“パスワード” のみチェックをして保存します。
.png)
また、これと同様のことを、ターミナルから、^SECURITYルーチンを使用して実行することも可能です。
以下は/csp/sys/アプリケーションに対する実行例です。*実行は%SYSネームスペースで行って下さい。
これは、InterSystems FAQサイトの記事です。
プライベートWebサーバを使用して、HTMLファイルをリクエストした際に、日本語が文字化けする場合があります。
その場合には、HTMLファイルをBOM(バイト・オーダー・マーク)付で保存してください。
※原則的に、プライベートWebサーバを使用してアプリケーションを稼働することは推奨しておりません。
アプリケーション稼働には、必ず、IISやApache等の製品版のWebサーバを使用してください。
プライベートWebサーバについては、以下のドキュメントをご参照ください。
プライベート Web サーバおよび管理ポータル【IRIS】
プロダクション Web サーバおよび Caché 付属のプライベート Web サーバ
これは、InterSystems FAQサイトの記事です。
このメッセージが出力される要因は以下の2つになります。
- 同じデータに対して適切に排他を行わずに、別々のプロセスから更新が行われている
- ロールバックが発生している
詳細は以下の通りです。 メッセージログ/コンソールログに、以下のようなメッセージがある場合、これはロールバック処理にて出力されています。
※バージョンによってメッセージは多少異なります。
Skipping KILL due to compare and swap failed on ...
---
Skipping Set global ^xxx during transaction rollback (transaction may not have been properly locked) in journal ...
Skipping KILL as node ^xxx exists in ...
---
Skipped rolling back x update(s) in ...
Total 1 update(s) were skipped during rollback of transaction beginning
開発者の皆さん、こんにちは!
今年 2 回目となる「InterSystems 技術文書ライティングコンテスト」の開催が決定しました!👏
いつもの「IRIS プログラミングコンテスト」とは異なり、このコンテストでは、InterSystems のテクノロジに関連するあらゆるトピックについての記事を投稿いただくコンテストです!
🎄 InterSystems 技術文書コンテスト:クリスマスエディション 🎄
応募期間:2021年11月25日~2021年12月25日
今回は、応募期間中に投稿いただいた方 全員 に 賞品 をご用意しています。
特賞:Apple AirPods Max / Oculus Quest 2 (VR Headset) / Amazon Kindle / Apple AirPods Pro / Raspberry Pi
月間 55,000人 以上の読者が訪れるインターシステムズ開発者コミュニティに記事を投稿してみませんか?
詳細は以下の通りです。
キーワード: IRIS、IntegratedML、機械学習、Covid-19、Kaggle
目的
最近、Covid-19患者がICU(集中治療室)に入室するかどうかを予測するKaggleデータセットがあることに気づきました。 231列のバイタルサインや観測で構成される1925件の遭遇記録が含まれる表計算シートで、最後の「ICU」列では「Yes」を示す1と「No」を示す0が使用されています。 既知のデータに基づいて、患者がICUに入室するかどうかを予測することがタスクです。
このデータセットは、「従来型ML」タスクと呼ばれるものの良い例のようです。 データ量は適切で、品質も比較的適切なようです。 IntegratedMLデモキットに直接適用できる可能性が高いようなのですが、通常のMLパイプラインと潜在的なIntegratedMLアプローチに基づいて簡易テストを行うには、どのようなアプローチが最も単純なのでしょうか。
範囲
次のような通常のMLステップを簡単に実行します。
- データのEDA(探索的データ分析)
- 特徴量の選択
- モデルの選択
- グリッド検索によるモデルパラメーターのチューニング
上記との比較で、次を実行します。
- SQLを介したIntegratedMLアプローチ
Docker-composeなどを使用して、AWS Ubuntu 16.04サーバーで実行します。
こんにちは、皆さま。
業務でIRISを用いて開発を行っている者です。
私はIRISでSQLアクセスを行うプログラムをを作成しており、
テーブルアクセスには%ScrollableResultSetクラスのAPIを用いて処理を実現しています。
作成するSQLはインジェクション対策のため、?パラメータを用いておりますが、
この度、大量のパラメータ(600項目)を用いるSQLを作成する必要が出てきました。
https://irisdocs.intersystems.com/iris20191/csp/docbookj/DocBook.UI.Pag…
こちらによりますと、可変長引数を用いても引数の上限値は255個となっており、
実際に600個のパラメータを引数に与えてSQLアクセスしようとすると、<STACK>エラーが発生する状況です。
Set query = "SQL文"
Set result = ##class(%ScrollableResultSet).%New("%DynamicQuery:SQL")
Do result.Prepare(query)
Do result.Execute(parameterValue.開発者の皆さん、こんにちは!
InterSystems セキュリティコンテスト は終了し、投票結果が発表されました!
この記事では、コンテスト受賞者を発表します!
受賞された開発者の皆さん、👏おめでとうございます!🎊
キーワード: ディープラーニング、Grad-CAM、X線、COVID-19、HealthShare、IRIS
目的
イースターウィークエンド中に、Covid-19に感染した胸部X線画像分類とCT検出デモを実行するを触ってみました。 デモの結果は上出来で、このトピックに関するその頃の学術研究出版物に一致しているようでした。 でも、本当に「上出来」と言えるのでしょうか。
最近、「機械学習における説明可能性」に関するオンラインランチウェビナーを聴くことがあったのですが、たまたまその講演の最後でDonがこの分類結果について話していました。

上図は研究論文にも示されています。『“Why Should I Trust You?” Explaining the Predictions of Any Classifier』という論文です。 分類器は実際に、ペットの犬か野生の狼に分類するための主な入力として、雪といった自然環境などの背景ピクセルを取るようにトレーニングされていることがわかります。
これを見て、私は以前から持っていた関心を思い出しました。このやり方に、確かに好奇心を掻き立てられます。
- どのピクセルが実際に「Covid-19に感染した胸部」の結果に寄与しているかを知るには、一般的に「ブラックボックス」として提示されるこれらのCovid-19分類器をどのように「調べる」とよいのでしょうか。
InterSystems 製品のキットには Apache Web サーバが含まれています。
これにより、お客様が外部Webサーバをインストールせずに Caché/IRIS 管理ポータルを動作させる為の便利な方法を提供しています。
ただし、このWebサーバを実稼働インスタンスに使用しないでください。お客様は、システムに応じたニーズとセキュリティ/リスク要件に適合するWebサーバを別途インストールする必要があります。
最近のテストでは、現在含まれている Apache Web サーバにいくつかのセキュリティ問題があることがわかっていますが InterSystems が管理していないテクノロジである為、
InterSystems は、Apache または別のサードパーティから直接取得した Web サーババージョンをインストールし、付属の Apache Webサーバ を無効にすることをお勧めします。
InterSystems は、今後のリリースに Apache Web サーバの新しいバージョンを含める予定です。
現在のバージョンと同様に、そのバージョンも本番インスタンスには使用できません。
当社の製品の将来のリリースでは、InterSystems はWeb サーバを同梱またはインストールしません。
計画の詳細については、今後、更新情報を提供する予定です。
キーワード: COVID-19、医用画像、ディープラーニング、PACSビューア、HealthShare。
目的
私たちは皆、この前例のないCovid-19パンデミックに悩まされています。 現場のお客様をあらゆる手段でサポートする一方で、今日のAI技術を活用して、Covid-19に立ち向かうさまざまな前線も見てきました。
昨年、私はディープラーニングのデモ環境について少し触れたことがあります。 この長いイースターの週末中に、実際の画像を扱ってみてはどうでしょうか。Covid-19に感染した胸部X線画像データセットに対して簡単な分類を行うディープラーニングモデルをテスト実行し、迅速な「AIトリアージ」や「放射線科医の支援」の目的で、X線画像やCT用のツールがdockerなどを介してクラウドにどれほど素早くデプロイされるのかを確認してみましょう。
これは、10分程度の簡易メモです。学習過程において、最も単純なアプローチでハンズオン経験を得られることを願っています。
範囲
このデモ環境では、次のコンポーネントが使用されます。 これまで見てきた中で最も単純な形式です。
- 3タイプの小さな匿名加工オープンデータセット: Covid-19感染胸部、細菌性肺炎胸部、正常な胸部。
これは、InterSystems FAQサイトの記事です。
FTPサーバから、アップロード/ダウンロードする方法は以下の通りです。
1. FTPサーバにイメージファイルをアップロードする
set tmpfile="c:\temp\test.jpg"
set ftp=##class(%Net.FtpSession).%New()
// ftp サーバへ接続する
do ftp.Connect("","<ユーザ名>","<パスワード>")
// 転送モードをBINARYに設定
do ftp.Binary()
// アップロードするディレクトリに移動
do ftp.SetDirectory("/temp/upload")
// アップロードするファイルのストリームを用意
set file=##class(%File).%New(tmpfile)
do file.Open("UK\BIN\")
// ファイルをアップロード
// 第1引数: アップロード先に作成するファイル名
// 第2引数: アップロードするファイル・ストリーム
do ftp.Store("test.jpg",file)
// ftp サーバからログアウト
do ftp.Logout()
// ファイルを閉じる
do file.これは、InterSystems FAQサイトの記事です。
InterSystems製品のデータ(テーブルの行データ、オブジェクトのインスタンスデータ)は、グローバル変数に格納されています。
各グローバルのデータサイズは、管理ポータル>システム>構成>ローカルデータベース>グローバルのページから参照したいグローバルのプロパティをクリックし、表示されるグローバル属性ページ上のサイズ計算ボタンをクリックすることで個別のグローバルのサイズを取得することができます。
ネームスペース上のグローバルのデータサイズをまとめて表示するには、ターミナル上で^%GSIZEユーティリティを起動することで取得することができます。
実行方法は以下の通りです。
Directory name: c:\intersystems\ensemble\mgr\user\ =>
All Globals? No => Yes
^DeepSee.ActiveTasks contains no data
Include it anyway? No => Y
Include any other similar globals without asking again? Yes =>
^DeepSee.ActiveTasks contains no data
Include it anyway?
キーワード: Jupyterノートブック、TensorFlow GPU、Keras、ディープラーニング、MLP、HealthShare
1. 目的
前回の「パート1」では、ディープラーニングデモ環境をセットアップしました。今回「パート2」では、それを使ってできることをテストします。
私と同年代の人の中には、古典的なMLP(多層パーセプトロン)モデルから始めた人がたくさんいます。 直感的であるため、概念的に取り組みやすいからです。
それでは、AI/NNコミュニティの誰もが使用してきた標準的なデモデータを使って、Kerasの「ディープラーニングMLP」を試してみましょう。 いわゆる「教師あり学習」の一種です。 これを実行するのがどんなに簡単かをKerasレベルで見ることにします。
後で、その歴史と、なぜ「ディープラーニング」と呼ばれているのかについて触れることができます。流行語ともいえるこの分野は、実際に最近20年間で進化してきたものです。
HealthShareにも関連しているため、最終的には、少々実現的なユースケースを想像または予測できるようになることを願っています。
2. 範囲と免責事項
次のことを行います。
- tensorflow-gpu環境用に新しいJupyterカーネルをセットアップします。
これは InterSystems FAQ サイトの記事です。
InterSystems製品開始時に、OSの実行ファイルやコマンド、InterSystems製品内に作成したプログラムを実行したい場合は SYSTEM^%ZSTART ルーチンに処理を記述します。
(%ZSTARTルーチンは%SYSネームスペースで作成します)
SYSTEM^%ZSTART に記述する処理は、事前にあらゆる条件下でうまく動作することを確認してください。
^%ZSTART ルーチンの記述ミスや、記述は正しくとも起動時にコマンドが応答を返さなかったり処理でエラーが起こった場合、InterSystems製品が起動できなくなることがあります。
詳しくは、以下ドキュメントをご参照ください。
Python 3をHealthShareにバインディングした深層学習デモキット(パート1) キーワード: Anaconda、Jupyterノートブック、TensorFlow GPU、ディープラーニング、Python 3、HealthShare
1. 目的
この「パート1」では、Python 3をHealthShare 2017.2.1インスタンスにバインドして、「単純」かつ一般的なディープラーニングデモ環境をセットアップする方法を段階的に簡単に説明します。 私は手元にあるWin10ノートパソコンを使用しましたが、このアプローチはMacOSとLinuxでも同じように実装できます。
先週、PYPL Indexにおいて、Pythonが最も人気のある言語としてJavaを超えたことが示されました。 TensorFlowも研究や学術の分野において非常に人気のある強力な計算エンジンです。 HealthShareは、ケア提供者に患者の統一介護記録を提供するデータプラットフォームです。
これらを1つのキットにまとめることはできるでしょうか。また、これを実現する上での最も単純なアプローチは何でしょうか。 ここでは、このトピックの最初のステップを一緒に試してから、次に試すことのできるデモについて検討しましょう。
2.
ODataとは?
OData(Open Data Protocol)は、RESTful APIの構築と消費に関する一連のベストプラクティスを定義するISO/IEC認定のOASIS標準です。 ODataは、リクエストとレスポンスのヘッダー、ステータスコード、HTTPメソッド、URL変換、メディアタイプ、ペイロード形式、クエリオプションなどを定義するための多様なアプローチを気にせずに、RESTful APIを構築しながらビジネスロジックに専念するのに役立ちます。 また、ODataには変更の追跡、再利用可能なプロシージャの関数/アクションの定義、および非同期/バッチリクエストの送信に関するガイダンスも提供されています(出典: OData.org)。






