記事 Mihoko Iijima · 2022年12月7日 1m read ObjectScript クックブック 開発者の皆さん、こんにちは! InterSystems全製品のサーバ側コードで利用できる「ObjectScript」の基本の使い方から、困ったときのヒント集、エラーの読み方など、日本語ドキュメントの逆引きになるようなページを目指して、「ObjectScriptクックブック」を作成しました! - ObjectScriptの基本の「き」 Hello Worldの出力から始めたい方に最適です。 2024/3/25更新:8. デバッグ方法 を追加しました。ぜひご参照ください。 - CookBook(こんなときどうする?集) ObjectScriptの記述に困ったときに読んでいただけるヒント集です。コミュニティに寄せられたご質問をどんどん掲載していきます。 - ObjectScriptでエラーが発生したら ObjectScriptのプログラムでエラーが発生したときのエラーメッセージの読み方から、エラー情報の取得方法などを解説しています。 #ObjectScript #ヒントとコツ #初心者 #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 4 1 0 360
記事 Megumi Kakechi · 2024年3月24日 2m read テーブル統計情報をエクスポートして別環境にインポートする方法 これは InterSystems FAQ サイトの記事です。 クエリパフォーマンスを左右するクエリプランは、テーブルチューニングを行った結果の統計情報を元に生成されます。 ある環境で期待したプランになったけれど、他の環境では意図したプランにならない場合、(期待したプランとなる)既存環境からテーブル統計情報をエクスポートして別の環境にインポートし、同じ統計情報をもとにしたクエリプランで実行することができます。 #SQL #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 187
記事 Megumi Kakechi · 2024年3月20日 14m read インストールマニフェストのTips集 %Installerという特別なツールを使用すると、目的のIRIS構成を記述するインストールマニフェストを定義できることはご存じでしょうか?インストールマニフェストに作成したい IRIS 構成を記述すると、インストール中、またはターミナルやコードからマニフェストを実行した際に、構成設定が適用されます。 インストールマニフェストについては、以下の記事でご紹介しておりますので是非ご覧ください(Cachéの記事になりますがIRISでも同様です)。%InstallerでInterSystems Cachéにアプリケーションをデプロイする こちらの記事では、実際にマニフェストで追加できる主な項目について、サンプルコードとあわせてご紹介します。今回は、以下の機能の設定例をご紹介します。 #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 147
記事 Hiroshi Sato · 2024年3月18日 5m read コンソールログに"There exists a MISMATCH.WIJ file" が記録され、インスタンスの開始ができない時の対処法 これは InterSystems FAQ サイトの記事です。 インスタンスの開始が失敗し、コンソールログに"There exists a MISMATCH.WIJ file"が記録されている場合、何らかのシステム障害の影響でデータベースの整合性に関して問題が生じていることを示しています。 このような状況が発生した際にインスタンスの開始ができるようにするためには、以下の手順を実施します。 (1) a. インスタンスをNOSTUモードで起動(2) b. データベースの整合性チェック ◆(2)の整合性チェックでエラーを検出しなかった場合、 (3) d. MISMATCH.WIJ ファイルのリネーム (4) e. インスタンスの再起動を実施します。 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 77
記事 Hiroshi Sato · 2024年3月18日 1m read UTF-8のBOM付きのファイルを作成する方法 これは InterSystems FAQ サイトの記事です。 UTF-8(BOM付)のテキストファイルは以下のようにして作成可能です。 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 172
InterSystems公式 Yoichi Miyashita · 2021年6月18日 勧告: 非推奨および廃止されたテクノロジーと機能について InterSystems は、より新しく優れたオプションが利用可能になったときに従来のテクノロジーの開発を中止することがあります。ただし、それら機能は最小サポートバージョン以後の製品であれば他の機能と同等にサポートします。 #CSP #ZEN #Caché #Ensemble #InterSystems公式 0 1 0 367
記事 Hiroshi Sato · 2024年3月18日 1m read $ZF(-100) で呼び出した外部プロセスがハングしてしまった場合のIRISプロセスの終了方法 これは InterSystems FAQ サイトの記事です。 $ZF(-100)で外部コマンドを実行する場合、その外部コマンドの子プロセスからの応答が返らない限り、$ZF(100)コマンドを発行したIRISプロセスはその応答を待って残り続けます。 従ってIRISプロセスを終了させるためにはその応答がない子プロセスを強制終了させる必要があります。 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 101
記事 Tomoko Furuzono · 2024年3月18日 3m read 任意のXMLドキュメントの読み込み・書き出しを行う これは、InterSystems FAQサイトの記事です。 【任意のXMLドキュメントの読み込み】任意のXMLドキュメントの読み込みを行うには、%XML.TextReaderクラスを使用します。Parseメソッド(※ドキュメントがファイルの場合はParseFile())を使用してドキュメントをパースし、各ノードのプロパティを取得します。 例えば、下記のXMLの場合、 <emp empid="1"> <name>Suzuki</name> <address>Tokyo</address> </emp> 各赤枠が、"ノード"の単位となり、 #XML #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 147
記事 Megumi Kakechi · 2024年3月11日 2m read SQLのINSERT/UPDATE文でデータ更新時にインデックスを作成しない方法 これは InterSystems FAQ サイトの記事です。 SQLのINSERT/UPDATE/DELETE文で大量のデータを更新する際に、高速化する方法をご紹介します。以下の2つの手順を実行することで、更新処理のパフォーマンスを向上させることが可能です。 1.INSERT/UPDATE/DELETE時にインデックスを作成せず、あとでまとめて作成する 2.INSERT/UPDATE/DELETE時にジャーナルをOFFにする 1は、%NOINDEX キーワードを指定してインデックスの生成を後でまとめて行うことで、インデックスの構築を抑制しパフォーマンスを向上させる方法です。 クエリ実行例は、以下のようになります。 #ObjectScript #SQL #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 746
記事 Mihoko Iijima · 2024年3月6日 2m read プロダクションの設定項目をクラスメソッドで取得する方法 これは InterSystems FAQ サイトの記事です。 Ens.Directorクラスのクラスメソッドを使用して取得できます。 プロダクション名(FAQSample.Interop.Production)とホスト名(FAQSample.Interop.FileOperation)を指定して設定リストを取得する方法は以下の通りです。 #ヒントとコツ #相互運用性 #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 84
記事 Mihoko Iijima · 2024年3月4日 9m read オブジェクト同時(並行)処理オプションについて これは InterSystems FAQ サイトの記事です。 永続クラス定義(またはテーブル定義)に対してオブジェクト操作でデータの参照・更新を行うとき、オブジェクトオープンで使用する%OpenId()、オブジェクトの削除に使用する%DeleteId()の第2引数を使用して並行処理の制御方法を選択できます。 ご参考:オブジェクト同時処理のオプション 既定値は1です。(永続クラスのDEFAULTCONCURRENCYクラスパラメータでデフォルト値を指定できます。特に変更していない場合は 1を使用します) 並行処理の基本事項は以下の通りです。 #オブジェクトデータモデル #データベースのトランザクション処理 #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 140
InterSystems公式 Ayumu Tanaka · 2024年2月15日 1m read Caché, Ensemble, HSAP 2018.1.9 リリースのご案内 インターシステムズは、Caché, Ensemble, Health Connect HSAP のメンテナンスリリース(MR) 2018.1.9をリリースしました。本リリースは、幅広い領域で多くのアップデートが行われたメンテナンスリリースです。 Caché と Ensemble 製品のフルインストールキットは、WRC の Software Distribution ページからダウンロードすることができます。 #リリース #Caché #Ensemble #InterSystems公式 1 0 0 73
記事 Mihoko Iijima · 2024年1月18日 5m read Webサーバ(IISやApache)を利用してVSCodeからInterSystemsサーバに接続するときの注意点(バージョン2023.1以下) 開発者の皆さん、こんにちは! VSCodeのObjectScriptエクステンションを利用してInterSystems製品に接続するときに「プライベートWebサーバ (*1)」ではなく、「Webサーバ(IISやApache)」を利用される場合、接続時に使用するREST用パスが通るようにWebサーバに仮想パスを追加する必要があります。 (*1) プライベートWebサーバとは、バージョン2023.1以前のInterSystems製品をインストールすると自動でインストールされる簡易的なApacheで、52773番ポートで管理ポータルやWebアクセスのテストにご利用いただけるWebサーバです。(本番運用環境には適さない簡易的なWebサーバです) 対象バージョン:2023.1以下のInterSystems製品 追加が必要なパス: /api #ObjectScript #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health #VSCode 0 0 0 643
記事 Hiroshi Sato · 2024年1月5日 1m read インストール時に指定する初期セキュリティ設定について これは InterSystems FAQ サイトの記事です。 インストール時に選択できる初期セキュリティ設定のレベルには以下の3つがあります。※バージョンにより、表記(日本語/英語)が違う場合があります。 最小 (Minimal) 通常 (Normal) ロック・ダウン (Locked Down) 各レベルの違いの詳細は以下の資料をご確認ください。 セキュリティの説明資料 #セキュリティ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 96
記事 Megumi Kakechi · 2023年4月3日 3m read 現在の一般メモリヒープ(gmheap)と取得可能なロックテーブル(locksiz)最大サイズについて これは InterSystems FAQ サイトの記事です。 データ取込み処理の性能・エラー(Lock Table Full)対策として、一般メモリヒープ(gmheap)や ロックテーブルサイズ(locksiz)のパラメータチューニングを行う場合があると思います。 実際に、現在どのくらいの一般メモリヒープが確保できているのかは、ターミナルと管理ポータルで確認することができます。 ★ターミナルの場合 #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 1 1 191
記事 Megumi Kakechi · 2023年9月24日 4m read IRISアップグレードやインストールが失敗する場合の調査方法について IRISアップグレードやインストールがうまくいかない場合、初めに以下の4点をご確認ください。 インストーラーに問題はないか? 対象バージョンの最新インストーラー(キット)を使用しているか? サポート対象プラットフォームへのインストールを行っているか? インストールディレクトリパスに日本語を含んでいないか? ★1についてインストーラーのダウンロードに問題があったなどで、インストーラー自体に問題があり、インストールできないというケースがあります。その場合は、インストーラーのハッシュ値(md5 checksum)を比較してファイルの同一性を確認するか、再ダウンロードしてインストールをお試しください。 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 2 0 0 413
記事 Megumi Kakechi · 2023年8月31日 4m read 凍結プラン(Frozen Plan)について IRISをアップグレードすると、SQLクエリオプティマイザの機能向上により、旧バージョンとは異なるクエリプランによるクエリ実行コード(クエリキャッシュ)が作成される場合があります。ほとんどの場合はパフォーマンスが向上するのですが、稀にパフォーマンスが低下するケースもあります。 ・アップグレードによりオプティマイザが改善しているとはいえ、中には遅くなるクエリがあるのではないか?・予期しないSQLの問題が起きるのではないか?・アップグレード後に全てのクエリパターンをテストするには時間と労力がかかりすぎる このように、機能向上よりも安定性を優先して「今までのプランのまま実行したい」というご要望もあることでしょう。こちらの記事では、そのようなお客様への解決策をご案内します。 #SQL #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 2 0 0 153
記事 Megumi Kakechi · 2023年8月1日 2m read BACK^%ETN でスタックトレースを確認する方法 あるメソッドやルーチンを実行してエラーとなった場合、エラー発生個所はエラーメッセージより取得することができますが、処理の呼び出し履歴(スタックトレース)はエラーメッセージのみではわかりません。また、.Net や Python など IRIS 外からの呼び出しの場合に、エラー情報の詳細がクライアントに返らない場合などもあるかと思います。 #ObjectScript #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 2 0 0 139
記事 Megumi Kakechi · 2021年3月2日 2m read $ZF(-100) で実行したコマンドの出力を取得する方法 これは InterSystems FAQ サイトの記事です。※記事後半に、「2>&1」で 標準エラー出力(2) を 標準出力(1) にリダイレクトする方法を追記しました。 $ZF(-100) では実行したコマンドの出力を取得することはできませんが、代わりにコマンド・パイプ デバイスを使用する方法があります。 詳細は、以下ドキュメントをご参照ください。 コマンド・パイプ デバイスを使用する方法について こちらを %File クラスで使用した例が以下になります。 #ObjectScript #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 1 0 505
記事 Megumi Kakechi · 2023年2月6日 4m read ファイル操作関連のTips ファイルとディレクトリの操作に使用できる API 、%Library.File クラス (%File が省略形) の便利なサンプルコードをご紹介します。 こちらのAPIを使用して、ディレクトリやファイルの中身をのぞいたり、作成・書込み・読込みを行ってみます。 ★ディレクトリ内のファイル一覧をリストする 以下のサンプルは、C:\temp フォルダ内の *.txt ファイルをリストします(ファイルパス_サイズ_作成日)。 #ObjectScript #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 2 1 0 636
記事 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 328
記事 Mihoko Iijima · 2023年6月13日 1m read プロダクションをリセットする方法、インバウンドアダプタが持つ情報をリセットする方法 これは InterSystems FAQ サイトの記事です。 注意:本番環境では実行しないでください。テスト環境でご利用ください。 開発時にプロダクションに残っているキューを一括でクリアしたり、プロダクションに関連した一次的な情報をすべて消去したい場合、以下メソッドを利用して実行中のプロダクション情報をリセットできます。 #ヒントとコツ #相互運用性 #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 130
記事 Mihoko Iijima · 2023年6月6日 5m read ルーチン/クラスの一括コンパイルの結果からエラー情報を取得する方法 これは InterSystems FAQ サイトの記事です。 ターミナルでルーチンやクラスのコンパイルを行う際、コンパイル結果が画面に表示されるのでエラーが発生した場合でも確認しやすいですが、一括コンパイルの場合は、大量のコンパイル結果の中にエラー情報が含まれてしまうためエラー情報だけを取得したい場合には少し工夫が必要です。 以下、ルーチン/クラスの一括コンパイル時の結果からエラー情報を取得する方法をご紹介します。 #ObjectScript #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 233
記事 Mihoko Iijima · 2023年6月2日 6m read 任意のWebアプリから呼び出せるワークフロー用 REST API の使い方 開発者の皆さん、こんにちは! この記事では、ワークフローコンポーネントを使ってみよう!~使用手順解説~ でご紹介したユーザ操作画面(ユーザポータル)を任意のWebアプリに変更する際に便利な REST API の使用方法をご紹介します。 ワークフロー用 REST APIですが、開発者コミュニティのサンプル公開ページ:Open Exchange に公開されているAPIでどなたでも自由にご利用いただけます。 Open Exchangeの検索ボックスに「Workflow rest」と入力すると出てきます。EnsembleWorkflow が対象のサンプルです。 ちなみに、2023年6月2日時点で724のアプリケーションが公開されているようです👀 #REST API #ヒントとコツ #相互運用性 #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 311
記事 Mihoko Iijima · 2023年6月1日 7m read システム連携の自動的な流れの中にユーザからの指示を介入できる「ワークフローコンポーネント」のサンプル 開発者の皆さん、こんにちは。 先日のウェビナーでご紹介した「ワークフローコンポーネント」をお試しいただけるサンプルを公開しました。👉 https://github.com/Intersystems-jp/WorkFlow-DC 《サンプルのテーマ》 店舗で販売している商品に付けるPOPメッセージ候補を予めテーブルに登録できる仕組みが既にある、と仮定しています。 IRISの Interoperability を利用してPOPメッセージ候補が登録されるテーブルに対して一定間隔でSELECT文を実行し、未処理のメッセージを取得します。新たなレコードが存在する場合、ワークフローコンポーネントを利用して担当者に審査を依頼します。 担当者は、ワークフローユーザポータルを使用して、POPメッセージ候補の承認/却下を指示できるようにしています。 #Docker #Embedded Python #ビジネスオペレーション #相互運用性 #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 187
記事 Mihoko Iijima · 2023年5月24日 5m read サンプルまとめページ:Interoperability(相互運用性) 開発者の皆さん、こんにちは! IRISのInteroperability(相互運用性)機能(Ensembleのプロダクション)を使用してどのようなことができるか、コード例をご覧いただきながら/サンプルを動かしながらご確認いただける記事をまとめてみました。 ぜひご参照ください。 記事一覧: インストール環境をお持ちでない方でもお試しいただけるチュートリアル ファイル連携を試してみたい 常駐プロセスを作りたい レコードマップ機能を使いたい MQTTを使いたい FHIRサーバサイドアプリケーションを試したい Interoperabilityを学習したい システム連携の自動的な流れの中にユーザからの指示を介入できる「ワークフローコンポーネント」を試したい(2023/6/1 追記) REST経由で情報を入力する場合の Interoperability(相互運用性機能)のサンプル(2023/5/30 追記) #チュートリアル #ヒントとコツ #相互運用性 #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 2 0 1 210
記事 Megumi Kakechi · 2023年5月15日 2m read グローバルの kill で <SLMSPAN> エラーとなる原因と対処方法 これは InterSystems FAQ サイトの記事です。 サブスクリプトレベルマッピングされたグローバルを、トップノードから全体をkillする場合、<SLMSPAN>エラーとなり削除ができません。 これは、サブスクリプトレベルマッピングされたグローバルについては、マッピングを跨いだサブスクリプト範囲の kill コマンドは行えないためです。 #ObjectScript #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 106
記事 Tomoko Furuzono · 2023年5月14日 3m read オペレーティング・システム・ベースの認証について これは InterSystems FAQ サイトの記事です。 オペレーティング・システム・ベースの認証(OS認証)では、OSのユーザ ID を使用して、IRISを使用するユーザを識別します。 インストール時に選択する初期セキュリティ設定=最小の場合は、予め、OSログインユーザと同一名のユーザをInterSystems IRIS に作成する必要があります。(パスワードは異なっていても構いません。)初期セキュリティ設定=通常以上の場合は、インストールユーザ名(OSログインユーザ名)で、ユーザが作成されていますので、このユーザを使用することができます。別のログインユーザで実行したい場合は、同様にIRISユーザを同名で作成してください。 [インストール時の初期セキュリティ設定画面] #セキュリティ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 129
記事 Megumi Kakechi · 2023年5月12日 2m read ヘルスモニタのセンサー値をコマンドで変更する方法 こちらの記事 では、ヘルスモニタのセンサー値を ^%SYSMONMGR ユーティリティを使用して変更する方法をご紹介しました。今回は、ヘルスモニターセンサー値を コマンド(プログラム)で変更する方法をご紹介します。 ヘルスモニタは、CPUUsage(CPU使用率)、DBLatency(DBからのランダム読取に要する時間)、DiskPercentFull(DBのディスク使用率)などの該当しきい値を超えた場合に、通知を生成します。※ヘルスモニタのセンサー値(閾値)について センサーのしきい値を超えると、IRISのシステムログ(messages.log)に以下のようなメッセージが記録されます。 #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 3 0 0 178
記事 Megumi Kakechi · 2023年5月8日 4m read ヘルスモニタでのチェック頻度およびアラート通知条件の確認と変更方法 これは InterSystems FAQ サイトの記事です。 InterSystems IRIS では、柔軟でユーザ拡張可能な監視ツールである「システムモニタ」をお使いいただくことが可能です。 システムモニタには、以下の3つのインスタンス監視ツールがあります。 #システム管理 #セキュリティ #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 213