記事 Toshihiko Minamoto · 2021年5月18日 12m read インデックス処理 第2部: インデックス処理 クラスにどのようなインデックスが必要であるのか、それをどのように定義するのかについて理解できたので、 次に、どのように処理するのかについて確認しましょう。 #SQL #インデックス付け #パフォーマンス #ベストプラクティス #Caché #InterSystems IRIS 0 0 0 308
記事 Toshihiko Minamoto · 2021年4月22日 11m read ObjectScript の信頼性の高いエラー処理機能とクリーンアップ機能 はじめに (および本記事を書いた動機) ObjectScript コードのユニット (ClassMethod など) を実行する場合、そのスコープ外にあるシステムの諸部分と対話するときに適切なクリーンアップを行えないことが原因で、様々な予期せぬ副作用が発生することがあります。 以下にその一部を紹介します。 #エラーハンドリング #ObjectScript #Caché #InterSystems IRIS 0 0 0 308
記事 Hiroshi Sato · 2020年10月29日 1m read ローカル変数の値がOREFかどうかを判定する方法 これはInterSystems FAQ サイトの記事です。 $IsObject()を使用して判別できます。 調べたい変数をvとすると、 $IsObject(v)=1 // vはOREF$IsObject(v)=0 // vはOREFではない$IsObject(v)=-1 // vはOREFだが、有効なオブジェクトを指していない となります。 vが未定義の場合は、$IsObject(v)はUNDEFINEDエラーとなりますので、ご注意ください。 UNDEFINEDエラーを防止するには、次のように$Getを使用することをお勧めします。 $IsObject($Get(v)) #ObjectScript #Caché #InterSystems IRIS 0 0 0 308
記事 Hiroshi Sato · 2022年10月14日 2m read CachéでCache Directエミュレータを使っているアプリケーションをIRISのCache Directエミュレータに書き換える方法 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)を比較することで大体理解できると思いますが、以下にその手順について説明します。 #.NET #ヒントとコツ #Caché #InterSystems IRIS #InterSystems IRIS for Health Open Exchange app 1 0 0 307
記事 Mihoko Iijima · 2021年8月11日 3m read パフォーマンス低下時の情報収集ツールについて これは InterSystems FAQ サイトの記事です。 以下のような情報収集ツールがあります。 1) 性能評価の為のツール GLOSTAT グローバルアクセスのカウンター情報 mgstat グローバルアクセスのカウンター情報を連続してファイルに記録する JOBEXAM 問題のあるプロセスをモニターする SystemCheck または Buttons 内部情報の収集 使用方法詳細は以下の記事もご参照ください。 #パフォーマンス #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 2 0 0 307
記事 Toshihiko Minamoto · 2021年2月4日 6m read InterSystems ObjectScript Package Manager のご紹介 開発者の皆さん、こんにちは! InterSystems ObjectScript でライブラリやツール、パッケージなどを開発していると、「このパッケージはどうすればターゲットマシンに展開できるのか?」という疑問がよく浮かびます。 また、私たちは、既に別のライブラリがインストールされていることを想定したり、その特定のバージョンのことを考慮したりしながらパッケージを開発しています。 JavaScript や Python などでコーディングを行うと、依存関係を管理しながらパッケージを展開するのに パッケージ管理システム が必要になります。 これを踏まえ、 InterSystems ObjectScript Package Manager のリリースを発表したいと思います! #ObjectScript #InterSystems Package Manager (IPM) #オープンソース #リリース #InterSystems IRIS #Open Exchange Open Exchange app 0 0 0 307
記事 Mihoko Iijima · 2020年11月12日 3m read オンラインバックアップでのバックアップサイズを見積もる方法 これはInterSystems FAQ サイトの記事です。 システムルーチン ^DBSIZE を利用するとバックアップファイルサイズを見積もることができます(メモ1もご参照ください)。 ^DBSIZE は、データベース・バックアップ・リストに選択されたデータベースを対象に、フルバックアップ/累積バックアップ/差分バックアップそれぞれのファイルサイズを見積もります。 なお、データベース・バックアップ・リストは、管理ポータルの [システム管理] > [構成] > [データベースバックアップ] > [データベース・バックアップ・リスト] から作成します。 詳細については、下記ドキュメントもご参照ください。 #バックアップ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 307
記事 Toshihiko Minamoto · 2022年6月21日 3m read SQLgateway を使ったデータベース移行 @Yuri Marx のお陰で、非常に優れた Postgres から IRIS へのデータベース移行の例を確認できました。 私の個人的な問題は、DBeaver を移行ツールとして使用することです。特に、以前の IRIS(それから Caché)の強みの 1 つは、JBDC または ODBC でアクセスできる限り任意の外部 Db にアクセスできる SQLgateways を利用できることであったためです。 そこで、これを実演するために、パッケージを拡張しました。 #Docker #SQL # データのインポートとエクスポート #InterSystems IRIS Open Exchange app 0 0 0 306
記事 Hiroshi Sato · 2023年11月13日 2m read CSPアプリケーションをReactを使って書き換えるその1 CSPは非推奨機能となり、今後の新規アプリケーションの開発には使用しないことが推奨されています。 代わりに昨今のウェブアプリケーション開発に広く利用されているモダンなフレームワークの使用が推奨されています。 Webアプリケーション開発用のJava scriptフレームワークはたくさんあり、そのどれを選択するかは開発者の好みの問題です。 その中で比較的人気の高いReactを使って、CSPアプリケーションを書き換えた例について紹介します。ちなみにCSPは機能的には2つの側面があり、今回非推奨となったのは、HTMLをサーバー側で生成するための拡張機能を使ったプログラミングに関連する部分です(.cspファイルを使用したHTMLとサーバーサイドプログラミング、Javascriptプログラミングによる開発)。 HTTP通信のインフラの部分(リクエストオブジェクトやセッション管理など)は引き続きIRISの根幹を支える機能として残ります。 実際、現在のIRISのREST関連機能は、このインフラ上で実装されています。 #CSP #React #InterSystems IRIS #InterSystems IRIS for Health 5 1 1 285
記事 Tomoko Furuzono · 2021年6月15日 1m read マシン名(ホスト名)を変更後OSを再起動すると、InterSystems IRIS が開始しなくなる これは、InterSystems FAQサイトの記事です。マシン名の変更後に InterSystems IRIS(以降IRIS) を停止せずにOSを再起動すると、IRISが開始できないという問題が発生します。 開始するためには、<インストールディレクトリ>\mgr\iris.ids ファイルを削除してください。 iris.ids には、起動したノード名や共有メモリの情報(共有メモリID)が格納されていて、IRIS 開始時に作成され、停止時(iris stop または iris force を実施した場合)に削除されます。 #システム管理 #InterSystems IRIS 0 0 1 305
記事 Hiroshi Sato · 2020年6月30日 17m read icmを利用してIRISクラスターを構成する方法 1. 初めに IRISでは、複数ノードでクラスターを構成し、ワークロードのスケールアウト、データボリュームのスケールアウトやトランザクション処理と分析処理を異なるノードで処理するマルチワークロードを実現しています。しかし、クラスターを構成するための設定は、ノード数が増えるにつれ煩雑になり、それらを人手の作業に全て委ねると設定ミス等を招きやすいといえます。また、クラスタの構成を処理負荷の増加に基づいて拡張する、または逆に縮小する、あるいは、データ冗長性を追加するためにミラーリングの構成を追加するなど構成変更は、想定するより多いかもしれません。しかもクラスタ毎に同様の設定を毎回行うとなると、人手による作業では、煩雑性だけでなく俊敏性に欠けると言わざるを得ません。 そこで、IRISには、クラスター構成作業を自動化する新しいツールICM(InterSystems Cloud Manager)が用意されました。 ここでは、ICMを使用したクラウド上でのIRIS構成の自動化の手順について説明します。 2. 事前に準備するもの #Artificial Intelligence (AI) #DevOps #Docker #クラウド #シャーディング #継続的インテグレーション #継続的デリバリー #InterSystems IRIS 0 0 0 305
記事 Toshihiko Minamoto · 2020年10月28日 12m read $Sequence 関数について この記事では $Increment 関数と $Sequence 関数を比較します。 まずは、$Increment 関数を聞いたことがないという方のために、その概要を説明いたします。 $Increment は、CachéObjectScript の関数で、引数をアトミックに 1 ずつインクリメントし、結果の値を返します。 $Increment にパラメーターとして渡せるのはグローバル変数ノードとローカル変数ノードのみで、任意の式を渡すことはできません。 $Increment は連続する ID の割り当てに多用されます。 その場合、$Increment のパラメーターにはグローバルノードがよく使用されます。 $Increment を使用するプロセスには確実に任意の ID が割り当てられます。 #ObjectScript #Caché 0 0 0 304
記事 Tomohiro Iwamoto · 2020年6月5日 14m read InterSystemsデータプラットフォームとパフォーマンス-パート5: SNMPによる監視 前回の記事では、pButtonsを使って履歴パフォーマンスメトリックを収集する方法を説明しました。 すべてのデータプラットフォームインスタンス(Ensemble、Cachéなど)にはpButtonsがインストールされていることがわかっているため、私はpButtonsを使用する傾向にありますが、 Cachéパフォーマンスメトリックをリアルタイムで収集、処理、表示する方法はほかにもあり、単純な監視や、それよりもさらに重要な、より高度な運用分析とキャパシティプランニングに使用することができます。 データ収集の最も一般的な方法の1つは、SNMP(簡易ネットワーク管理プロトコル)を使用することです。 #インターシステムズビジネスソリューションとアーキテクチャ #システム管理 #パフォーマンス #監視 #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 304
記事 Megumi Kakechi · 2022年5月25日 2m read 設定されているネームスペース一覧をプログラムで取得する方法 これは、InterSystems FAQサイトの記事です。%SYS.Namespace クラスの List クエリで取得することができます。 次のようなルーチンを作成し、ターミナルで実行してください。 1. サンプルの作成 #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 303
記事 Tomoko Furuzono · 2022年3月29日 1m read SQLでのNULLデータの取り扱い これは、InterSystems FAQサイトの記事です。 SQLの場合、NULLデータと空文字列 ('')は区別されます。それぞれの設定・確認方法は、以下のようになります。 (1) NULLデータ 【SQL】 insert into test (a) values (NULL)select * from test where a IS NULL 【InterSystems ObjectScript】 set x=##class(User.test).%New()set x.a="" (2) 空文字列 ('') 【SQL】 #ObjectScript #SQL #Caché #InterSystems IRIS 0 0 0 303
記事 Mihoko Iijima · 2024年1月25日 12m read ApacheをWebサーバとする場合のプライベートWebサーバ(PWS)を使用しないバージョンの新規インストール/アップグレード この記事は、「プライベートWebサーバ(PWS)を使用しないバージョンの新規インストール/アップグレード:概要」の続きの記事で、ApacheをWebサーバとする場合の設定概要をご紹介します。(先に「概要」の記事をお読みいただくことをお勧めします。) 同一サーバ上にApacheとInterSystems製品をインストールする場合、事前にApacheをインストールしておくとApacheに必要なWebゲートウェイのインストールとIRISへの接続設定をインストーラーが自動で行います。 以降の説明では、以下のインストール方法について解説します。 1. Apacheを事前に準備しない状態での新規インストール 2. Apacheを事前に準備しない状態でのアップグレード 3. Apacheをインストールした後の新規/アップグレードインストール 4. Apacheの設定 ※ 図解では、InterSystems IRISを使用していますが、InterSystems製品で操作は共通です。 #Web Gateway #システム管理 #ヒントとコツ #InterSystems IRIS #InterSystems IRIS for Health 2 0 0 302
記事 Toshihiko Minamoto · 2022年5月10日 4m read まったく新しい LOAD DATA コマンドのコツとヒント 最近、LOAD DATA という素晴らしい新機能を使用することがありました。この記事では、初めて使用した際の体験についてお話しします。 以下の箇条書きには優先順がなく、他の評価も含まれません。 これらは、LOAD DATA コマンドを使用したときに私が気付いたことを記したものです。 また、プレビューリリースである IRIS バージョン 2021.2.0.617 を使用していることも記しておきたいと思います。 そのため、ここに記録されたことは、それ以降の IRIS バージョンに適用しない可能性があります。 それでも誰かのお役に立てるかもしれません。 #CSV #JDBC #SQL #コンテスト #ヒントとコツ #InterSystems IRIS Open Exchange app 0 0 0 302
質問 Yuji Ohata · 2022年1月26日 テーブル定義内のTIMESTAMP型のデータについて。 こんにちは、皆さま。業務でIRISを用いて開発を行っている者です。 TIMESTAMP型のデータを持つテーブルの扱いについて教えてください。 現在Ens_Util.Logを参照するシステムを開発しようとしております。このテーブルの中にTimeLoggedというTIMESTAMP型のデータがあるのですが、それをSELECTした際、CASTの有無で表示されるデータに差異が出ます。 SELECT DATE(TimeLogged), CAST(TimeLogged AS TIME), TimeLoggedFROM Ens_Util.Log #InterSystems IRIS 0 8 0 294
記事 Megumi Kakechi · 2021年6月1日 1m read OSのコマンドを実行する方法 これは InterSystems FAQ サイトの記事です。 OSのコマンド実行する場合、$ZF(-100) を使用します。 do $ZF(-100,"",program,args) // Windows コマンドを【同期】実行します。 do $ZF(-100,"/ASYNC",program,args) // Windows コマンドを【非同期】実行します。 mkdir, copy などのOSシェルコマンドを実行する場合は、/SHELL もあわせて指定します。 do $zf(-100,"/shell /async","mkdir","c:\temp\x") 詳細は以下のドキュメントを参照してください。 #ObjectScript #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 302
InterSystems公式 Mihoko Iijima · 2021年11月1日 大事なお知らせ: 2021.1 CommunityEdition のライセンス期限切れ(対処方法のご紹介) InterSystems IRIS と InterSystems IRIS for Health 2021.1 CommunityEdition の組み込みライセンスが 2021年10月30日で期限切れになるよう誤って設定されていることが判明しました。大変申し訳ありません。 CommunityEdition は開発用途であるため、実稼働バージョンへの影響はありませんが、CommunityEdition のキーが期限を迎えると、ご利用中インスタンスの実行が停止する、または開始できない状況になります。 ご利用を継続いただくためには、新しいインスタンスに置き換えていただく必要があります。インスタンスの置き換えが行えない場合には、ライセンスキーのオーバーライドが行える拡張用キーをご提供しております。 ご不便おかけし、大変申し訳ありません。 #InterSystems IRIS #InterSystems IRIS for Health #InterSystems公式 0 1 0 281
InterSystems公式 Yoichi Miyashita · 2021年4月13日 InterSystems IRIS および IRIS for Health バージョン 2020.4 リリースのご案内 インターシステムズは InterSystems IRIS および IRIS for Health バージョン2020.4 をリリースしました。本バージョンは、継続的デリバリ(CD) リリースのため、Docker コンテナ として知られる OCI (Open Container Initiative)形式 (for Linux x86-64 および Linux ARM64) のみ入手いただけます。 コンテナイメージは OCI に準拠した Linux x86-64 および Linux ARM64 対応のランタイムエンジンで動作可能です。 あわせて IRIS Studio 2020.4 もリリースしました。 リリースのビルド番号は 2020.4.0.547.0 です。 【新機能のご紹介】InterSystems IRIS Data Platform 2020.4 には、以下の新機能が含まれます。 #InterSystems API Manager (IAM) #System Alerting and Monitoring (SAM) #リリース #継続的デリバリー #InterSystems IRIS #InterSystems IRIS for Health #InterSystems公式 0 0 0 301
記事 Tomohiro Iwamoto · 2020年6月3日 2m read 「InterSystemsデータプラットフォームのキャパシティプランニングとパフォーマンス」シリーズの索引 「データプラットフォームのキャパシティプランニングとパフォーマンス」シリーズの全記事をリストしました。 その下には私の一般的なその他の記事も記載しています。 このシリーズに新しい記事が追加されるたびに、このリストを更新する予定です。 「キャパシティプランニングとパフォーマンス」シリーズ 通常、各記事はその前の記事の続きとして書かれていますが、ほかの記事を飛び越して気になるものを読むこともできます。 #ヒントとコツ #システム管理 #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 301
記事 Mihoko Iijima · 2020年12月17日 4m read Apache Spark + Apache Zeppelin + InterSystems IRIS を起動する方法 みなさん、こんにちは。 昨日、Apache Spark、Apache Zeppelin、そして InterSystems IRIS を接続しようとしたときに問題が発生したのですが、有用なガイドが見つからなかったので、自分で書くことにしました。 はじめに Apache Spark と Apache Zeppelin とは何か、そしてどのように連携するのかを理解しましょう。 Apache Spark はオープンソースのクラスタコンピューティングフレームワークです。暗黙的なデータ並列化と耐障害性を備えるようにクラスタ全体をプログラミングするためのインターフェースを提供しています。そのため、ビッグデータを扱う必要のある場合に非常に役立ちます。 一方の Apache Zeppelin はノートブックです。分析や機械学習に役立つ UI を提供しています。組み合わせて使う場合、IRIS がデータを提供し、提供されたデータを Spark が読み取って、ノートブックでデータを処理する、というように機能します。 注意: 以下の内容は、Windows 10 で行っています。 #Artificial Intelligence (AI) #ビッグデータ #ベストプラクティス #初心者 #Machine Learning (ML) #InterSystems IRIS 0 0 0 299
記事 Tomoko Furuzono · 2023年7月2日 3m read プログラムからグローバルのインポート/エクスポート処理を呼び出す方法 これは、InterSystems FAQサイトの記事です。 以下の様な方法で、グローバルのインポート/エクスポート処理をプログラムに組み込むことができます。 1. グローバルエクスポート方法1.1 XML形式でのエクスポートグローバルをXML形式のファイルにエクスポートする場合、$system.OBJ.Export() を使用します。 1.1.1. 指定したグローバルをエクスポートする場合エクスポート対象グローバルを グローバル名.gbl で指定します(先頭の ^ は不要)。例: #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 298
記事 Makiko Kokubun · 2021年5月11日 1m read 動画:FHIR プロファイル *この動画は、2021年2月に開催された「InterSystems Japan Virtual Summit 2021」のアーカイブです。 国や地域のニーズに合わせて何のデータをどこにどのように格納するのかを定める共通ルールである FHIR プロファイルは、FHIR による標準化において、非常に重要な要素です。 https://www.youtube.com/embed/B-B6ge_0nHg[これは埋め込みリンクですが、あなたはサイト上の埋め込みコンテンツへのアクセスに必要な Cookie を拒否しているため、それを直接表示することはできません。埋め込みコンテンツを表示するには、Cookie 設定ですべての Cookie を受け入れる必要があります。] この動画では、InterSystems IRIS for Health における FHIR リポジトリの構築・設定~ FHIR プロファイルの追加の方法を、最新バージョンおよび今後のバージョンでのサポート内容を含めてご紹介いたします。 #FHIR #Webセミナー #相互運用性 #InterSystems IRIS for Health 0 0 0 298
記事 Hiroshi Sato · 2021年10月20日 1m read IRISに含まれるアダプタについて これは、InterSystems FAQサイトの記事です。 InterSystems IRIS Data Platformにはシステム接続に良く使われる一般的な電子メール、ファイル、FTP、HTTP、ウェブサービス、REST、SQL、TCPアダプタなどが標準で含まれています。 特定アプリケーション向けに IBM WebSphere MQ アダプタや SAP Java Connector アダプタも提供します。 そしてJavaアプリケーションを呼び出すためや .Net アプリケーションを呼び出すための PEX(Production EXtension)というフレームワーク もあります。 そのほか、IRIS for HealthにはHL7 FHIR、HL7 V2、HL7 V3、CDA、DICOM、X12、ASTM,EDIFACT などのアダプタもあります。 さらに標準で用意していないカスタムアプリケーション用にはカスタムアダプタを作成することもできます。 #相互運用性 #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 296
記事 Toshihiko Minamoto · 2021年6月23日 10m read InterSystems Cachéのマクロ この記事では、InterSystems Cachéにおけるマクロについて説明します。 マクロは、コンパイル中に一連の命令に置き換えられるシンボリック名です。 マクロは、渡されたパラメーターとアクティブ化したシナリオに応じて、呼び出されるたびに一連の命令セットに「展開」されます。 これは、静的コードの場合もあれば、ObjectScriptを実行して得られる結果である場合もあります。 それでは、アプリケーションでマクロをどのように使用できるのかを見てみましょう。 #ObjectScript #コンパイラ #ターミナル #ヒントとコツ #ベストプラクティス #初心者 #Caché 0 0 0 296
記事 Toshihiko Minamoto · 2022年6月14日 6m read データ移行ツール - パート II: MySQL から IRIS これは、一般的なデータベース(PostgreSQL や MySQL など)から IRIS への移行に関する前回の記事に続く記事です。 PostgreSQL から移行する際に使用する場合と同じ手続きを使用します。 ただし、MySQL で使用されているデータ型は IRIS のデータ型に非常に似ているため、前回よりもさらに簡単に移行できます。 このため、列に変換ルールを作成する必要はありません。 移行プロセスにサンプルデータを取得 GitHub では、2 つのデータベースをビルドして実行する docker compose プロジェクトをダウンロードできます。 ソースデータベース: サンプルデータベースを含む MySQL データベースの Docker インスタンス。 ターゲットデータベース: ソースデータベースを受け取る準備のできたスキーマを含む InterSystems IRIS データプラットフォームの Docker インスタンス。 サンプルを取得して実行するには、以下の手順に従います。 # データのインポートとエクスポート #InterSystems IRIS 0 0 0 295
記事 Akio Hashimoto · 2024年7月5日 2m read %DynamicObjectを外部Pythonの引数に利用する方法 IRISでPythonを扱う時に、既存の%DynamicObject型の値をそのまま利用したいと思うのですが、Embedded Pythonは自動で%DynamicObjectをdict型にはしてくれません。親和性はとてもあるのですが。。。 そこで、既存プログラムで生成した%DynamicObject型の値をPython側、特に外部のPythonファイル側でdict型を期待している関数に利用するにはどうすれば良いか。 少しスマートではありませんが、%DynamicObjectを一旦JSON文字列に置き換え、Embedded Python 内でJSON文字列からdict型に変換する方法しかないようです。 以下が、その手順です。 #Embedded Python #InterSystems IRIS for Health #InterSystems IRIS 3 5 0 194
記事 Mihoko Iijima · 2023年6月12日 2m read FHIR Tips:FHIRドキュメント(診療情報提供書や退院時サマリ―など)をPOSTする方法 FHIRドキュメント(診療情報提供書や退院時サマリ―など)をFHIRリポジトリにPOSTする場合、 エンドポイント/Bundle 上記URLでPOSTできます。(以下の例では、IRIS for Healthに用意したFHIRリポジトリを使用しています。) GET要求で確認してみます。 登録できたことを確認できました。 #FHIR #ヒントとコツ #InterSystems IRIS for Health 1 0 0 294