検索

クリアフィルター
お知らせ
Mihoko Iijima · 2022年5月29日

【アーカイブ配信のお知らせ】SQLでどこまでできる? ~データロードから機械学習まで~(2022年3月9日開催)

開発者のみなさん、こんにちは! 2022年3月9日開催「InterSystems Japan Virtual Summit 2022」のセッション「SQLでどこまでできる? ~データロードから機械学習まで~」のアーカイブを YouTube に公開いたしました。 (プレイリストはこちら) データベースのテーブルにアクセスするためにSQLを利用するのは「ご飯を食べるときは箸を使います」と同じぐらい開発者にとって当たり前のことだと思いますが、SQLで分析や機械学習まで行えたらどうでしょうか。 便利ですよね? 本セッションではInterSystems IRISのSQLを使って、どこまでの操作ができるのかについて、デモを交えながらご紹介します。 ぜひ、動画をご参照ください。 【目次】 00:44 貯めたデータの使い道 02:39 分析(Window)関数を新たに追加された便利な SQL コマンドについて 03:59 分析(Window)関数のデモ 11:07 SQL に似た文法で機械学習ができる機能のご紹介 14:58 モデル作成・学習・検証・予測の構文紹介 16:31 Integrated ML のデモ 19:40 Interoperability(相互運用性機能)を利用した検証結果の通知例ご紹介 23:24 検証結果の通知例 デモ 27:37 まとめ ご参考:Embedded Python で広がる InterSystems IRIS の世界(2022年3月9日開催)
記事
Mihoko Iijima · 2025年1月9日

データベースミラーリングを構成している環境でシステム開始時の処理を追加する方法

これは InterSystems FAQ サイトの記事です。 InterSystems製品では、システム開始時に任意の処理を追加できます。 データベースミラーリングを構成していない環境では、%ZSTARTルーチンのSYSTEMラベルを作成することで任意の処理を実装できますが、データベースミラーリングを構成している環境では、このルーチンでは動作しない処理があります。 ご参考:^%ZSTART ルーチンと ^%ZSTOP ルーチンによる開始動作と停止動作のカスタマイズ 理由として、ミラーリング構成の場合、ミラーデータベースへのアクセスはミラーリングサービスが開始されプライマリメンバとなるまでReadOnlyとなります。 ミラーリングの開始処理は、%ZSTARTの処理とは別プロセスで実施している為、%ZSTARTの実行時にミラーデータベースへ書き込みアクセスができる状態とは限りません。 そのため、InterSystems製品開始時にミラーデータベースにアクセスするような任意処理を追加する場合は、ルーチン:ZMIRRORの NotifyBecomePrimary()を使用します。 ご参考:^ZMIRROR ルーチンの使用法 なお、ルーチン:ZMIRROR は、%ZSTART と同様に既定では存在しませんので%SYS上に新規で作成する必要があります。 例:ZMIRROR.mac ZMIRROR // Quit NotifyBecomePrimary() // //%ZSTARTの処理を移行 quit 1
記事
Megumi Kakechi · 2021年8月5日

しばらく(1ヶ月以上)使用していなかった環境にログインする方法

これは InterSystems FAQ サイトの記事です。 あるユーザが「不活動上限」を超える期間にわたって、一度もInterSystems製品にログインしなかった場合、そのユーザは無効になりログインできなくなります。 なお、この設定の初期値は、インストール時の初期セキュリティによって変わります。「通常」以上では既定値は90日間、「最小」では0日に設定されています。ユーザを有効に変更することにより再びログインすることができるようになります。 2007.1以降であれば%Allを持つユーザが最低1つは残っていますので、そのユーザでログインできればそこから設定を変更します。(%Allを持つユーザは、インストール時のセキュリティ設定によって異なります) 使用できるものがわからないときは、InterSystems製品を緊急アクセスモードで起動してログインします。 <緊急アクセスモードからの復元方法> 1. InterSystems製品の停止 2. InterSystems製品を緊急アクセスモードでの起動 ≪Windowsの例≫DOSコマンドプロンプトよりInterSystems製品を緊急アクセスモードで起動します。(Windows Vista以降では、コマンドプロンプト起動時、「管理者として実行」のオプションを指定して起動します。) DOS> cd C:\InterSystems\IRIS\Bin ; InterSystems製品インストールディレクトリ下のBin ディレクトリに移動 /EmergencyID にて緊急用のテンポラリユーザとそのパスワードを指定します。 // IRIS=iris、Cache/Ensemble/HealthShare =ccontrolC:\InterSystems\IRIS\Bin>iris start インスタンス名 /EmergencyId=ユーザ名,パスワード 例) C:\InterSystems\IRIS\Bin>iris start IRIS /EmergencyId=tempadmin,temppass ※1 EmergencyId は、事前登録は不要です。任意の文字列(英数字)を使用してください。※2 Windows以外のOSでは、EmergencyIdの前に / を付けず、実行します。  iris start インスタンス名 EmergencyId=ユーザ名,パスワード ccontrol start インスタンス名 EmergencyId=ユーザ名,パスワード 3. 管理ポータル(2010.2以前では「システム管理ポータル」)を起動し、設定を変更します。【注意】InterSystems製品のインストール時に、セキュリティオプション「最小」を指定した場合は、管理ポータル起動後のURLの末尾に、以下文字列を追記して画面を起動します。 IRISUserName=TheUserName&IRISPassword=ThePassword // IRISCacheUserName=TheUserName&CachePassword=ThePassword // Caché/Ensemble/HealthShare※TheUserNameは 例では、tempadmin ThePasswordは 例では、temppass もし、管理ポータルの起動ができない場合は、4番(ターミナルでセキュリティ設定を修正)を試します。 管理ポータルにログインできた場合、以下の画面を利用して、無効となったユーザーを有効にします。(画面を切り替えるたび、ユーザ名/パスワードを入力する画面が出てくる場合があります。その時は、/Emergencyidで指定したユーザ名/パスワードを入力します。) 【バージョン2011.1~】[システム管理] > [セキュリティ] > [ユーザ] > 無効化されたユーザの[編集]を選択 > [ユーザ有効]にチェック > 保存ボタン押下 【バージョン2010.2以前】[セキュリティ管理] > [ユーザ] > 無効化されたユーザの[編集]を選択 > [ユーザ有効]にチェック > 保存ボタン押下 次の手順を試すため、5番に進みます。 4. ターミナルでセキュリティ設定を修正 3番で、管理ポータルが起動できない場合は、ターミナルにログインしセキュリティ設定を変更します。ターミナル起動時に指定するユーザ名、パスワードに /EmergencyId で指定したものを入力します。 例) ユーザ名: tempadminパスワード: temppass%SYS> 4-1. ユーザの有効化 無効になっているユーザを有効にします。(以下コマンド実行例は、バージョンによってメニュー表示が異なる場合があります。例は2011.1の実行例です。) %SYS>do ^SECURITY 1) User setup2) Role setup3) Service setup4) Resource setup5) Application setup6) Auditing setup8) SSL configuration setup9) Mobile phone service provider setup10) OpenAM Identity Services setup11) Encryption key setup12) System parameter setup13) X509 User setup14) KMIP server setup15) Exit Option? 1 1) Create user2) Edit user3) List users4) Detailed list users5) Delete user6) Export users7) Import users8) Exit Option? 3 Display which users? * => *Display users containing these roles? * =>Name Enabled Roles LastLoginTime---- ------- ----- -------------Admin はい %EnsRole_Administrator,%EnsRole_Developer,%Manager CSPSystem はいIAM いいえ %IAM_APISuperUser はい %AllUnknownUser いいえ %All 2021-08-05 15:46:21.104_Ensemble はい %All_PUBLIC いいえ_SYSTEM いいえ %All 2021-08-05 15:37:10.682tempadmin いいえ %All 2021-08-05 15:29:42.140 1) Create user2) Edit user3) List users4) Detailed list users5) Delete user6) Export users7) Import users8) Exit Option? 2 Username to edit? ? Num Name Enabled 1) Admin はい 2) CSPSystem はい 3) IAM いいえ 4) SuperUser はい 5) UnknownUser はい 6) _Ensemble はい 7) _PUBLIC いいえ 8) _SYSTEM いいえ 9) tempadmin いいえ Username to edit? 8 _SYSTEMFull name? SQLシステム管理者 =>Comment?Password? ***** =>Enable user? No => YesChange password on next login? No => NoPassword never expires? No => NoAccount never expires? No => NoAccount expiration date (yyyy-mm-dd)?Keep role %All assigned to user? Yes => YesRole to add?Startup namespace (Space for none)?Email Address (Space for none)?Mobile phone number (Space for none)?Confirm changes to username _SYSTEM? Yes => YesUsername _SYSTEM updated Username to edit? // このあと全て <Enter> で抜ける。UnknownUser も有効化する場合は同様の手順で行う。 この例では、_System が無効になっていますので有効化設定しました。UnknownUser についても必要に応じて同様に有効にします。また、実際の環境では必要であれば、登録されたユーザアカウントについても無効の場合は、有効にします。 5. InterSystems製品の再起動 停止は【バージョン2007.1以降】 ランチャー(キューブ)から行います。【バージョン5.1~5.2.3】  ccontrol force 行います。 停止時にユーザ名とパスワードを聞かれる場合は、緊急用に指定したテンポラリユーザとそのパスワードを入力します。 再起動後、必要であれば管理ポータルにてユーザを無効にする期間を設定します。 設定項目: 不活動上限 (0-365): 90 (単位 日)  "0"を指定した場合、期間は無期限になり、アカウントが無効になりません。 【バージョン2011.1~】管理ポータル [システム管理] > [セキュリティ] > [システムセキュリティ設定] > [システムワイドセキュリティパラメータ] 【バージョン2010.2以前】システム管理ポータル [セキュリティ管理] > [システムセキュリティ設定] > [システムワイドセキュリティパラメータ]
記事
Mihoko Iijima · 2020年10月15日

誤って削除したグローバルを復旧させる方法

これはInterSystems FAQ サイトの記事です。 この記事では「グローバルを誤って削除してしまった!」という場合の対処方法をご紹介します。 誤って削除してしまった特定のグローバルを復旧するためには、バックアップファイルとジャーナルを使用します。復旧は、^ZJRNFILTユーティリティによるジャーナルリストアで条件を指定してジャーナルレコードをリストアする方法で行います。この方法で、ある時点のデータベースのバックアップに対して、削除が含まれるジャーナルレコードについて特定グローバルを削除するまでのものを適用することができます。 ^ZJRNFILTユーティリティの詳細については、以下のドキュメントをご参照ください。 ^ZJRNFILT を使用したジャーナル・レコードのフィルタ処理について【IRIS】^ZJRNFILT を使用したジャーナル・レコードのフィルタ処理について 【実施例】 ・2020/10/14 時点のバックアップが存在している(バックアップは2020/10/15 0:30に実行したとします) ジャーナル:2020/10/15 の1日分が存在している(2020/10/14のバックアップ以降のもの) ・対象のグローバル:^TEST1 イメージは以下の通りです。 グローバル ^TEST1 は 10/14 よりデータが作成される。 グローバル ^TEST1 が 10/15 の 15:30 に KILL 文にて誤って削除された。 この段階でKILL文が発行される直前のグローバル ^TEST1 を復旧したい。 実行例では、以下コマンドで作成したグローバルをジャーナルを利用して ^TEST1(1)~^TEST1(100) を復旧します。 USER>for i=1:1:100 set ^TEST1(i)=$ZTIMESTAMPUSER>for i=1:1:100 set ^TEST2(i)=$ZTIMESTAMPUSER>kill ^TEST1 // ← ここまでの処理の ^TEST1 に対してジャーナルファイルを利用して復旧します 【復旧手順】 別システムに、バックアップリストアまたはバックアップしたデータベースファイル(CACHE.DAT/IRIS.DAT)をコピー(マウント) バックアップ取得以降のジャーナルを別システムにコピー 最後のジャーナルファイルについてKillしたジャーナルレコードを特定 メモ1:管理ポータルのジャーナルレコードの表示(管理ポータル > [システムオペレーション] > [ジャーナル] > 対象ファイルの[参照]のリンクをクリック ) (図例の場合だと、KILLのジャーナルレコードは 9060180 ということがわかります) メモ2:システムルーチン SELECT^JRNDUMP を使用してジャーナルレコードを確認する方法もあります。 ジャーナルファイルを順番にリストア、リストア対象は復旧したいグローバルのみでOK 最後のジャーナルファイルのみ ZJRNFILT を使用 復旧したグローバルをエクスポートし、元システムにコピー&インポート 以下、5番の ZJRNFILT ルーチン例です(%SYSネームスペースにルーチン名:ZJRNFILT で作成します)。 ZJRNFILT(pid,dir,glo,type,restmode,addr,time) set restmode=1 // グローバル変数名に TEST1 が含まれいる // かつ ジャーナルレコードが9060180以降は restmode=0 に設定(=リストアしない) if (glo [ "TEST1") & (addr>=9060180) { set restmode=0 } quit 最後のジャーナルファイルのZJRNFILTを使用したリストア例は以下の通りです(青太文字が入力内容です)。 %SYS>do ^JRNRESTO This utility uses the contents of journal files to bring globals up to date from a backup. Restore the Journal? Yes => Yes Use current journal filter (ZJRNFILT)? yes Use journal marker filter (MARKER^ZJRNFILT)? no Apply filter to every selected file? Yes => yes Process all journaled globals in all directories? no Are journal files imported from a different operating system? No => no Directory to restore [? for help]: c:\intersystems\hscv\mgr\user\ c:\intersystems\hscv\mgr\user\ Redirect to Directory: c:\intersystems\hscv\mgr\user\ => c:\intersystems\hscv\mgr\user\--> c:\intersystems\hscv\mgr\user\ Process all globals in c:\intersystems\hscv\mgr\user\? No => no Global ^TEST1 Global ^ Directory to restore [? for help]: Processing globals from the following datasets: 1. c:\intersystems\hscv\mgr\user\ Selected Globals: ^TEST1 Specifications correct? Yes => yes Are journal files created by this IRIS instance and located in their original paths? (Uses journal.log to locate journals)? no If you have a copy of the journal history log file from the Cache or IRIS instance where the journal files were created, enter its full path below; otherwise, press ENTER and continue. Journal history log: Specify range of files to process (names in YYYYMMDD.NNN format) from: <20201012.002> [?] => 20201015.001 through: <20201015.001> [?] => Provide or confirm the following configuration settings: Journal File Prefix: [?] => Files to dejournal will be looked for in: c:\intersystems\hscv\mgr\journal\ in addition to any directories you are going to specify below, UNLESS you enter a minus sign ('-' without quotes) at the prompt below, in which case ONLY directories given subsequently will be searched Directory to search: <return when done> Here is a list of directories in the order they will be searched for files: c:\intersystems\hscv\mgr\journal\ Prompt for name of the next file to process? No => no The following actions will be performed if you answer YES below: * Listing journal files in the order they will be processed * Checking for any missing journal file on the list ("a broken chain") The basic assumption is that the files to be processed are all currently accessible. If that is not the case, e.g., if you plan to load journal files from tapes on demand, you should answer NO below. Check for missing journal files? Yes => no You may disable journaling of updates for faster restore for all databases other than mirrored databases. You may not want to do this if a database to restore is being shadowed as the shadow will not receive the updates. Do you want to disable journaling the updates? Yes => yes Updates will NOT be journaled Before we job off restore daemons, you may tailor the behavior of a restore daemon in certain events by choosing from the options below: DEFAULT: Continue despite database-related problems (e.g., a target database is not journaled, cannot be mounted, etc.), skipping affected updates ALTERNATE: Abort if an update would have to be skipped due to a database-related problem (e.g., a target database is not journaled, cannot be mounted, etc.) DEFAULT: Abort if an update would have to be skipped due to a journal-related problem (e.g., journal corruption, some cases of missing journal files, etc.) ALTERNATE: Continue despite journal-related problems (e.g., journal corruption, some missing journal files, etc.), skipping affected updates Would you like to change the default actions? No => no Start the restore? Yes => yes c:\intersystems\hscv\mgr\journal\20201015.001 100.00% ***Journal file finished at 15:43:05 [journal operation completed] Do you want to delete your journal filter? yes Journal filter ZJRNFILT deleted %SYS> ジャーナルリストアによりグローバルを復旧する場合は ** 安全の為 ** 本番環境とは別の環境に、データベース、ジャーナルを複製して実施することをお勧めします。そこで復旧したグローバルをエクスポートし本番環境に転送(コピー)するようにしてください。 ジャーナルリストア時に表示されるメッセージ詳細については、ドキュメントもご参照ください。
記事
Toshihiko Minamoto · 2020年10月19日

SQL パフォーマンスリソース

SQL パフォーマンスリソース SQL のパフォーマンスについて語るとき、最も重要なトピックとして取り上げられるのが「Indices」、「TuneTable」、「Show Plan」の 3 つです。  添付の PDF にはこれらのトピックに関する過去のプレゼン資料が含まれていますので、それぞれの基礎を一度に確認していただけます。  当社のドキュメンテーションでは、これらのトピックの詳細に加え、SQL パフォーマンスの他のトピックについてもカバーしておりますので、下のリンクからお読みください。  eラーニングをご利用いただくと、これらのトピックをもっと深く理解していただけます。  また、開発者コミュニティによる記事の中にも SQL パフォーマンスについて書かれたものが複数ありますので、関連するリンクを下に記載しております。 下に記載する情報には同じ内容が多く含まれています。  SQL パフォーマンスにおける最も重要な要素を以下に紹介します。 利用可能なインデックスの種類 あるインデックスの種類を他の種類の代わりに使用する TuneTable がテーブルに集める情報とそれが Optimizer に対して意味する内容 Show Plan を読んでクエリの善し悪しを深く理解する方法 以下は InterSystems IRIS SQL のパフォーマンスを詳しく理解するのに役立つリソースです Worldwide Response Center (WRC)。電話番号: 617-621-0700WRC をご利用ください。  同センターはユーザーが理解しやすいレベルで SQL パフォーマンスを説明してくれます。  優秀な SQL サポートスタッフが数人おりますが、アドバイザーと直接お話しをされる場合は、お気軽にサポートマネージャーの Brendan Bannon までお問い合わせください。[訳注:日本ではカスタマサポートセンター(jpnsup@intersystems.com)にお問い合わせください。]  InterSystems オンラインドキュメンテーション 機能紹介:  InterSystems SQL:  https://docs.intersystems.com/irislatestj/csp/docbook/DocBook.UI.Page.cls?KEY=AFL_sqlbasics 機能紹介: InterSystems 製品での SQL パフォーマンスの最適化:  https://docs.intersystems.com/irislatestj/csp/docbook/DocBook.UI.Page.cls?KEY=AFL_sqlqueryopt InterSystems SQL 最適化ガイド:  https://docs.intersystems.com/irislatestj/csp/docbook/DocBook.UI.Page.cls?KEY=GSQLOPT   InterSystems の eラーニング リソースガイド - Caché SQL を解説: パフォーマンス: https://learning.intersystems.com/enrol/index.php?id=255 リソースガイド – Caché SQL を解説: デザインと実行: https://learning.intersystems.com/enrol/index.php?id=256 SQL クエリの最適化:  https://learning.intersystems.com/course/view.php?id=707 アカデミー:  SQL パフォーマンスの最適化:  https://learning.intersystems.com/course/view.php?id=80 SQL クエリの最適化:  https://learning.intersystems.com/course/view.php?id=1013  Intersystems 開発者コミュニティ 知っておくと便利なクエリパフォーマンスのコツとは? ずばり Tune Table です! https://community.intersystems.com/post/one-query-performance-trick-you-need-know-tune-table InterSystems IRIS が提供する水平拡張性:  https://jp.community.intersystems.com/post/intersystems-irisによる水平スケーラビリティ 外れ値の選択性とは:  https://community.intersystems.com/post/introduction-outlier-selectivity 日付範囲クエリの SQL パフォーマンスを改善する:  https://jp.community.intersystems.com/post/日付範囲クエリのsqlパフォーマンスを改善する 日付範囲クエリの SQL パフォーマンスを改善する (vol2):  https://jp.community.intersystems.com/post/日付範囲クエリのsqlパフォーマンスを改善する-vol2 Caché でカスタムインデックスタイプを作成する方法:  https://jp.community.intersystems.com/post/cachéでのカスタムインデックスタイプの作成 グローバルはデータを保存するための魔法の剣です パート1:  https://jp.community.intersystems.com/post/グローバルはデータを保存するための魔法の剣です- パート1 グローバルはデータを保存するための魔法の剣ですパート2 - ツリー:  https://jp.community.intersystems.com/post/グローバルはデータを保存するための魔法の剣ですパート2-ツリー Globals – グローバルはデータを保存するための魔法の剣です パート3 - 疎な配列 :  https://jp.community.intersystems.com/post/グローバルはデータを保存するための魔法の剣です-パート3-疎な配列 フリーテキスト検索:SQL開発者が秘密にしているテキストフィールドの検索方法*: https://jp.community.intersystems.com/post/フリーテキスト検索:sql開発者が秘密にしているテキストフィールドの検索方法 ノンアトミック属性のインデックス作成:  https://community.intersystems.com/post/indexing-non-atomic-attributes 配列プロパティ要素の SQL インデックス:  https://community.intersystems.com/post/sql-index-array-property-elements  過去の PowerPoint 資料 付属のプレゼン資料は古いですが、充実した内容になっています。  情報の多くは Intersystems IRIS に該当するものですが、念のために最新のドキュメンテーションをご確認ください。  以下のすべてを PDF ファイルとして本記事に添付しています。 インデックス作成とは SQL パフォーマンスの最適化 (2015 年版) %PARALLEL Query のヒント (2016 年版) Frozen Plans と Parallel Queries (2017 年版) 生成された COS に対する Show Plan (2013 年版) SQL プログラミング (2006 年版) (本記事の著作者は Brendan Bannan、編集アシスタントは Cliff Mason と Kyle Baxter です)   
記事
Hiroshi Sato · 2021年10月20日

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 などのアダプタもあります。 さらに標準で用意していないカスタムアプリケーション用にはカスタムアダプタを作成することもできます。

#Embedded Python

69 投稿0 フォロワー
お知らせ
Mihoko Iijima · 2021年11月1日

大事なお知らせ: 2021.1 CommunityEdition のライセンス期限切れ(対処方法のご紹介)

InterSystems IRIS と InterSystems IRIS for Health 2021.1 CommunityEdition の組み込みライセンスが 2021年10月30日で期限切れになるよう誤って設定されていることが判明しました。大変申し訳ありません。 CommunityEdition は開発用途であるため、実稼働バージョンへの影響はありませんが、CommunityEdition のキーが期限を迎えると、ご利用中インスタンスの実行が停止する、または開始できない状況になります。 ご利用を継続いただくためには、新しいインスタンスに置き換えていただく必要があります。インスタンスの置き換えが行えない場合には、ライセンスキーのオーバーライドが行える拡張用キーをご提供しております。 ご不便おかけし、大変申し訳ありません。 置換対象のキット/コンテナのビルド番号について インストールキットとコンテナは、WRC software distribution site よりダウンロードいただけます。 バージョン 2021.1 build 215.3 をご利用ください。 拡張キーが含まれる新しいコンテナを、InterSystems Container Registry にご用意いたしました。 以下コマンドで新しいイメージを pull できます。 docker pull containers.intersystems.com/intersystems/iris-community:2021.1.0.215.3 docker pull containers.intersystems.com/intersystems/iris-community-arm64:2021.1.0.215.3 docker pull containers.intersystems.com/intersystems/irishealth-community:2021.1.0.215.3 docker pull containers.intersystems.com/intersystems/irishealth-community-arm64:2021.1.0.215.3 Docker Hub のInterSystems コンテナも更新しております。 また、AWS、Azure、GCP のクラウドマーケットプレイスにある CommunityEdition については、更新が完了しましたら、この記事でご案内します。 ライセンスキーのオーバーライドについて CommunityEdition のライセンスを2022年1月5日まで延長できる「オーバーライドキー」をご提供しています。 こちらは、WRC Direct のプレビューライセンスキー発行ページよりダウンロードいただけます。なお、新しいビルド(build 215.3)を使用されている環境にはこのキーは必要ありません。 オーバーライド用キーを反映する手順については、ドキュメントをご参照ください。 ダウンロードいただいたキーファイルを iris.key にリネームし、以下ディレクトリに配置してから IRIS を開始してください。 <インストールディレクトリ>\mgr\iris.key コンテナでのキー入れ替え方法については、こちらのドキュメントをご参照ください。 キーの期限切れの問題については、以前のバージョンの CommunityEdition(2020.1.1を含む)にも当てはまり、オーバーライドキーで対応可能です。 なお、「オーバーライドキー」の使用を DevOps のベストプラクティスとして推奨しているわけではなく、コンテナを置換する代わりの方法として推奨しております。 WRC Direct のアカウントをお持ちでない場合 大変お手数おかけいたしますが、コンテナ利用の場合には、コンテナの置換、インストールキットでご利用の場合は、 build 215.3 をダウンロードいただき、上書き(Upgrade)インストールをお願いいたします。 詳細は、こちらのドキュメントをご参照ください。 何かご不明な点ございましたら、お知らせくださいませ。 どうぞよろしくお願いいたします。 追加情報をお知らせします。 コミュニティが提供するZPM対応イメージの準備も整いました。 intersystemsdc/iris-community:2021.1.0.215.3-zpm intersystemsdc/iris-ml-community:2021.1.0.215.3-zpm intersystemsdc/irishealth-community:2021.1.0.215.3-zpm intersystemsdc/irishealth-ml-community:2021.1.0.215.3-zpm 開始方法の例 docker run --rm --name my-iris -d --publish 9091:1972 --publish 9092:52773 intersystemsdc/iris-community:2021.1.0.215.3-zpm docker run --rm --name my-iris -d --publish 9091:1972 --publish 9092:52773 intersystemsdc/iris-ml-community:2021.1.0.215.3-zpm docker run --rm --name my-iris -d --publish 9091:1972 --publish 9092:52773 intersystemsdc/irishealth-community:2021.1.0.215.3-zpm docker run --rm --name my-iris -d --publish 9091:1972 --publish 9092:52773 intersystemsdc/irishealth-ml-community:2021.1.0.215.3-zpm 開始後のログイン方法 docker exec -it my-iris iris session IRIS 管理ポータルの開始方法 http://localhost:9092/csp/sys/UtilHome.csp コンテナ停止方法 docker stop my-iris
お知らせ
Seisuke Nakahashi · 2023年5月10日

2023.2 からスタジオが非推奨となります

インターシステムズは、高品質な開発体験をみなさまにご提供することお約束しています。その中には優れた IDE (Integrated Developer Experience) も含まれます。ここ数年、長くお使いいただいている弊社独自の IDE である InterSystems スタジオと並行して、Visual Studio Code の ObjectScript ツールを提供してきました。VSCode-ObjectScript プラグインは 46,000 以上ダウンロードされ、開発者のみなさまからは、「すぐれた開発体験であり、今や InterSystems Studio を凌駕した」との嬉しいフィードバックをいただいています。 2023.2 のリリースから、InterSystems スタジオ非推奨となります (非推奨とは、インターシステムズが今後は積極的に開発を行わない、より優れたオプションが存在する機能を意味します)。 しばらくの間は InterSystems スタジオのメンテナンス、リリース、サポートは続けます。いくつかのお客様にとっては、スタジオが今なお重要なツールであることは重々承知しております。しかしながら、私たちはこれ以上スタジオに注力しないことをご理解いただければ幸いです。私たちは現在、VSCode に注力しています。 VS Code 拡張機能に関して、オープンソースを維持しながらのフルサポートと、定期的かつ迅速なリリースを提供するエコシステムが成長するために、貴重な意見をくださったすべてのお客様に心から感謝もうし上げます。この旅はつづきます。これからもみなさまからのフィードバック・アイデア・コードをお待ちしています。 この件に関しまして、遠慮なくコメントやメッセージをお寄せください。これまで同様、重要なプロセスにおいては、みなさまのご意見が私たちの大切な道しるべとなります。
記事
Hiroshi Sato · 2021年9月30日

データベースファイルのタイムスタンプ(更新日時)の更新タイミング

これは InterSystems FAQ サイトの記事です。IRIS.DAT/CACHE.DATのタイムスタンプ更新は、データベースの内容の更新後のディスマウント時 (明示的なディスマウント処理または停止処理の際、 または、 データベースファイルのサイズ拡張時に発生します。
記事
Mihoko Iijima · 2023年2月19日

OpenAPI-Suite(OpenAPI 3.0からObjectScriptコードを生成するためのツールセット):InterSystemsデベロッパーツールコンテスト2023入賞作品のご紹介

開発者の皆さん、こんにちは! InterSystems デベロッパーツールコンテスト2023 の21の応募作品の中から、Experts Nomination 第3位に輝いた @Lorenzo Scalese さんの OpenAPI-Suite(OpenAPI3.0 からObjectScriptコードを生成するためのツールセット)についてご紹介します。 現時点でIRISはOpenAPI2.0までの対応なのですが、このツールの凄いところは、OpenAPI3.0に対応しているところです! 提供している機能は、以下の通りです。 サーバー側クラスの作成(OpenAPI2.0と同様に、APIファーストで作成するRESTディスパッチクラスの作成に必要なクラス群を作成します。) HTTPクライアントクラスの作成 クライアントプロダクション(ビジネス・サービス、ビジネス・オペレーション、ビジネス・プロセス、Ens.Request、Ens.Response) このツールから生成する機能を指定できるWebインターフェース OpenAPI 1.x、2.x からバージョン3.0への変換ツール 各機能について詳しくは、@Lorenzo Scales さんが書かれた記事「OpenAPI Suite - Part 1」「OpenAPI Suite - Part 2」をご参照ください。 この記事では、1の機能を試してみました。その中でも、以下の対応がとても素晴らしい!と思いました。 OpenAPI 3.0から加わったComponentsオブジェクトの内容に合わせ、クラス定義を自動生成している(指定するパッケージ以下にmodelパッケージができ、そこにインスタンス化できるクラスができています) POSTやPUTの場合、HTTP要求で渡される情報を実装クラス(impl.cls)で処理しやすいように、Bodyで受け取ったJSON文字を1で生成されたクラスのインスタンスに設定するところまで処理してくれています。 現時点では、一部手動で修正が必要ですが、そのまま作成されたインスタンスを利用してimpl.clsで%Save()を書いたら保存されました。) IRISには、OpenAPI2.0の仕様でRESTディスパッチクラスを作成する方法が提供されていますが、使用するクラス群とベースURLの作成のみを行っています。 参考までに、IRISが対応しているOpenAPI2.0で作成した内容をご紹介します。 (OpenAPI2.0の仕様で作成されたJSONサンプルを使用しています。) 以下の例では、/curdがベースURLとなり、curdパッケージ以下にクラス群が作成されます。​​​​​​ 生成されるクラスは以下の通りです(左:impl.cls、右:spec.cls) ディスパッチクラス(disp.cls)は加工不要クラスのため、例ではスタジオでの表示でご紹介しています。 詳細は【はじめてのInterSystems IRIS】セルフラーニングビデオ:アクセス編:(REST)APIファーストで作成するRESTディスパッチクラス のビデオをご参照ください。 次は @Lorenzo Scalese さんの OpenAPI-Suite の結果をご紹介します。 使用するまでの手順はとても簡単です。 IPM(InterSystems Package Mangaer:以前はZPMとも呼ばれていました)のクライアントツールを管理ポータルかスタジオからインポートしたら、以下コマンドを実行するだけでツールの準備が整います。 クライアントツールのインポートはどのネームスペースでも大丈夫です。管理ポータルからインポートされる場合は、以下メニューを利用します。 管理ポータル→システムエクスプローラ→クラス→インポート対象ネームスペースを選択→インポートボタンクリック RESTディスパッチクラスを置きたいネームスペースに移動し、ZPMコマンドを利用してツールをインストールします。 zpm "install openapi-suite" インストール時の画面表示 USER>zpm "install openapi-suite" [USER|sslclient] Reload START (/usr/irissys/mgr/.modules/USER/sslclient/1.0.4/)[USER|sslclient] Reload SUCCESS[sslclient] Module object refreshed.[USER|sslclient] Validate START[USER|sslclient] Validate SUCCESS[USER|sslclient] Compile START[USER|sslclient] Compile SUCCESS[USER|sslclient] Activate START[USER|sslclient] Configure START[USER|sslclient] Configure SUCCESS[USER|sslclient] Activate SUCCESS[USER|yaml-utils] Reload START (/usr/irissys/mgr/.modules/USER/yaml-utils/0.1.2/)[USER|yaml-utils] Reload SUCCESS[yaml-utils] Module object refreshed.[USER|yaml-utils] Validate START[USER|yaml-utils] Validate SUCCESS[USER|yaml-utils] Compile START[USER|yaml-utils] Compile SUCCESS[USER|yaml-utils] Activate START[USER|yaml-utils] Configure START[USER|yaml-utils] Configure SUCCESS[USER|yaml-utils] Activate SUCCESS[USER|swagger-validator-cli] Reload START (/usr/irissys/mgr/.modules/USER/swagger-validator-cli/0.0.1/)[USER|swagger-validator-cli] Reload SUCCESS[swagger-validator-cli] Module object refreshed.[USER|swagger-validator-cli] Validate START[USER|swagger-validator-cli] Validate SUCCESS[USER|swagger-validator-cli] Compile START[USER|swagger-validator-cli] Compile SUCCESS[USER|swagger-validator-cli] Activate START[USER|swagger-validator-cli] Configure START[USER|swagger-validator-cli] Configure SUCCESS[USER|swagger-validator-cli] Activate SUCCESS[USER|swagger-converter-cli] Reload START (/usr/irissys/mgr/.modules/USER/swagger-converter-cli/0.0.2/)[USER|swagger-converter-cli] Reload SUCCESS[swagger-converter-cli] Module object refreshed.[USER|swagger-converter-cli] Validate START[USER|swagger-converter-cli] Validate SUCCESS[USER|swagger-converter-cli] Compile START[USER|swagger-converter-cli] Compile SUCCESS[USER|swagger-converter-cli] Activate START[USER|swagger-converter-cli] Configure START[USER|swagger-converter-cli] Configure SUCCESS[USER|swagger-converter-cli] Activate SUCCESS[USER|objectscript-openapi-definition] Reload START (/usr/irissys/mgr/.modules/USER/objectscript-openapi-definition/1.3.1/)[USER|objectscript-openapi-definition] Reload SUCCESS[objectscript-openapi-definition] Module object refreshed.[USER|objectscript-openapi-definition] Validate START[USER|objectscript-openapi-definition] Validate SUCCESS[USER|objectscript-openapi-definition] Compile START[USER|objectscript-openapi-definition] Compile SUCCESS[USER|objectscript-openapi-definition] Activate START[USER|objectscript-openapi-definition] Configure START[USER|objectscript-openapi-definition] Configure SUCCESS[USER|objectscript-openapi-definition] Activate SUCCESS[USER|io-redirect] Reload START (/usr/irissys/mgr/.modules/USER/io-redirect/1.0.2/)[USER|io-redirect] Reload SUCCESS[io-redirect] Module object refreshed.[USER|io-redirect] Validate START[USER|io-redirect] Validate SUCCESS[USER|io-redirect] Compile START[USER|io-redirect] Compile SUCCESS[USER|io-redirect] Activate START[USER|io-redirect] Configure START[USER|io-redirect] Configure SUCCESS[USER|io-redirect] Activate SUCCESS[USER|openapi-common-lib] Reload START (/usr/irissys/mgr/.modules/USER/openapi-common-lib/1.0.0/)[USER|openapi-common-lib] Reload SUCCESS[openapi-common-lib] Module object refreshed.[USER|openapi-common-lib] Validate START[USER|openapi-common-lib] Validate SUCCESS[USER|openapi-common-lib] Compile START[USER|openapi-common-lib] Compile SUCCESS[USER|openapi-common-lib] Activate START[USER|openapi-common-lib] Configure START[USER|openapi-common-lib] Configure SUCCESS[USER|openapi-common-lib] Activate SUCCESS[USER|openapi-server-gen] Reload START (/usr/irissys/mgr/.modules/USER/openapi-server-gen/1.0.0/)[USER|openapi-server-gen] Reload SUCCESS[openapi-server-gen] Module object refreshed.[USER|openapi-server-gen] Validate START[USER|openapi-server-gen] Validate SUCCESS[USER|openapi-server-gen] Compile START[USER|openapi-server-gen] Compile SUCCESS[USER|openapi-server-gen] Activate START[USER|openapi-server-gen] Configure START[USER|openapi-server-gen] Configure SUCCESS[USER|openapi-server-gen] Activate SUCCESS[USER|openapi-client-gen] Reload START (/usr/irissys/mgr/.modules/USER/openapi-client-gen/2.1.0/)[USER|openapi-client-gen] Reload SUCCESS[openapi-client-gen] Module object refreshed.[USER|openapi-client-gen] Validate START[USER|openapi-client-gen] Validate SUCCESS[USER|openapi-client-gen] Compile START[USER|openapi-client-gen] Compile SUCCESS[USER|openapi-client-gen] Activate START[USER|openapi-client-gen] Configure START[USER|openapi-client-gen] Configure SUCCESS[USER|openapi-client-gen] Activate SUCCESS[USER|openapi-suite] Reload START (/usr/irissys/mgr/.modules/USER/openapi-suite/1.0.0/)[USER|openapi-suite] Reload SUCCESS[openapi-suite] Module object refreshed.[USER|openapi-suite] Validate START[USER|openapi-suite] Validate SUCCESS[USER|openapi-suite] Compile START[USER|openapi-suite] Compile SUCCESS[USER|openapi-suite] Activate START[USER|openapi-suite] Configure START[USER|openapi-suite] Configure SUCCESS[USER|openapi-suite] Activate SUCCESSUSER> インストール後、以下URLでツールの専用画面にアクセスできます。 http://localhost:ポート番号/openapisuite/ui/index.csp 例)http://localhost:52773/openapisuite/ui/index.csp 初期段階では、画面右下の「Install On Server」ボタンは押せなくなっています。以下グローバル変数に値をセットすることで、ボタンが押せるようです。 (ZPMコマンドでツールをインストールしたネームスペースでセットしてください) Set ^openapisuite.config("web","enable-install-onserver") = 1 準備が完了したら、以下設定します。 「Applcation package name」にはクラス定義のパッケージ名を(例では、PetStore)、「What do you want to generate?」では、「REST Server」を選択します。「NameSpace」にはRESTディスパッチクラスを登録したいネームスペースを選択し、「Web Application Name」には、定義したいベースURL(ウェブ・アプリケーションパス)を指定します(例では、/pet1)。 後は、OpenAPIの仕様に基づいて作成されたJSONファイルを指定するだけですが、サンプルでは、https://petstore3.swagger.io/api/v3/openapi.json がデフォルトで指定されていますのでこのまま使用します。 最後に、「Install On Server」ボタンをクリックします。 以下のようにログが表示されますので、正常に終了したことを確認してCloseボタンをクリックします。 ツールを通して、ウェブアプリケーションパス:/pet1が作成されている予定です。確認してみましょう。 管理ポータル→システム管理→セキュリティ→アプリケーション→ウェブ・アプリケーション から /pet1があるか確認します。 しっかり作成されていました! では、入力されたパスに対応するメソッドのマッピングが記載されているdisp(​ディスパッチクラス)や、コードを実装するimplクラスができているか確認してみます。 PetStoreパッケージ以下にしっかりクラス定義が作成されていました! IRISが提供するOpenAPI2.0のクラス群と異なる点は、modelパッケージとrequestsパッケージが含まれている点です。 このツールの中では、OpenAPI3.0のComponentsオブジェクトで指定している情報を、インスタンス生成ができるクラス定義として作成しています。(初期段階では%RegisteredObjectクラスを継承しています) ComponentsオブジェクトのPetの情報は、以下展開すると参照できます。 Components:PetのSpec "Pet":{ "required":[ "name", "photoUrls" ], "type":"object", "properties":{ "id":{ "type":"integer", "format":"int64", "example":10 }, "name":{ "type":"string", "example":"doggie" }, "category":{ "$ref":"#/components/schemas/Category" }, "photoUrls":{ "type":"array", "xml":{ "wrapped":true }, "items":{ "type":"string", "xml":{ "name":"photoUrl" } } }, "tags":{ "type":"array", "xml":{ "wrapped":true }, "items":{ "$ref":"#/components/schemas/Tag" } }, "status":{ "type":"string", "description":"pet status in the store", "enum":[ "available", "pending", "sold" ] } }, "xml":{ "name":"pet" } }, この情報から作成されたクラスは以下の通りです。 インスタンス化ができるクラスで用意されています。 スーパークラスを%RegisteredObjectから%Persistentに変更+コンパイルを行えば、データベースに登録できる永続クラスとして利用できます。 また、POST要求では、以下の形式でJSONオブジェクトが送付されます。 { "id": 0, "category": { "id": 0, "name": "Dog" }, "name": "Hachi", "photoUrls": [ "https://x.gd/1pbYK" ], "tags": [ { "id": 0, "name": "Middle" } ], "status": "available" } このJSONをそのままPet、Tag、Categoryクラスのインスタンスに当てはめることができればいいので、%JSON.Adaptorを追加で継承させるとよさそうです。 ということで、Pet、Tag、Categoryに手を加えるとしたら、スーパークラスの設定を %RegisterdObject から %Persistent と %JSON.Adaptor の多重継承に変えたらよさそうです。 この後は、受け取ったBodyの情報をデータベースに更新する処理が必要です。 この処理の大枠を記載してくれているのが、requestパッケージ以下クラスです。以下例では、/petに対してPOST要求を行うときに動作するクラス(PetStore.requests.addPet.cls)の中身です。 LoadFromRequest()メソッドに注目すると、引数requestにHTTP要求を操作できる%requestが渡されるようになっています(IRISのRESTディスパッチクラスの内部処理では、HTTP要求は%CSP.Requestクラスのインスタンスに収納されます)。 request.Content 上記実行でBodyに指定されたJSONオブジェクトを取得できます。 Do ..PetNewObject().%JSONImport(request.Content) と記述がありますが、このクラス内にPetNewObject()メソッドがないため、以下のように修正しています(Petのインスタンスを生成し、プロパティPetに設定した後、受信したJSONをインスタンスに割り当てるための処理に変えています)。 set ..Pet=##class(PetStore.model.Pet).%New() do ..Pet.%JSONImport(request.Content) これで、HTTP要求を受信したときの処理は終了です。残りは、impl.clsの実装です。 初期段階では、以下の状態で何も記載されていません。 ClassMethod addPet(messageRequest As PetStore.requests.addPet) As %Status { ; Implement your service here. ; Return {} $$$ThrowStatus($$$ERROR($$$NotImplemented)) } 引数messageRequestには、1つ前の流れで確認した PetStore.requests.addPet クラスのインスタンスが指定されています(このインスタンスのPetプロパティにHTTP要求で受信したJSONオブジェクトから作成したインスタンスが設定されています。) 以下のように書き換え、コンパイルを行ったら修正は終了です! ClassMethod addPet(messageRequest As PetStore.requests.addPet) As %Status { ; Implement your service here. ; Return {} //$$$ThrowStatus($$$ERROR($$$NotImplemented)) set status=$$$OK set status=messageRequest.Pet.%Save() return status } POST要求をテストしてみます。 ​​ PetもCategoryもTagもしっかりデータ登録できました! 少し加工が必要ですが、OpenAPI3.0のComponentsオブジェクトからクラス定義が自動生成されるところが、とても便利だと思いました! ぜひ皆さんもお試しください。
お知らせ
Seisuke Nakahashi · 2025年4月3日

警告:IRIS 2024.3 で発生する2問題 - AIX での JSON パース / Integrated ML コンテナ非互換性

IRIS 2024.3 で発生する2つの製品障害が確認されました。お使いの環境が該当する場合は、それぞれの解決方法にしたがってご対応いただきますよう、よろしくお願いします。 ... [障害1] AIX プラットフォームにおける JSON Unicode パース問題 AIX 上の InterSystems IRIS 2024.3 で、JSON Unicode 文字列のパースに影響する障害が確認されました。 [対象バージョン]以下のオペレーティングシステム かつ 以下のバージョンでのみ発生します。 対象OS: AIX 対象バージョン: 2024.3 [問題の詳細]本障害は、AIX 上の Unicode バージョンのインスタンスでのみ発生し、ASCII 文字とUnicode 文字が混在するデータを処理するアプリケーションに影響します。 具体的には、%FromJSON() または %FromJSONFile() を使って $CHAR(256) 未満の文字の後に $CHAR(255) 以降の Unicode 文字が続く文字列を解析したときに発生します。その結果、文字が予期しない $CHAR(0) に変換されるなどして誤った文字がデータベースに保存されたり、エラーが発生しないまま結果が返る可能性があります。本障害は DP-439207 で解決されました。 [解決方法]AIX 上で InterSystems IRIS 2024.3.0 を実行し、かつ、Unicode データベースがあり、Unicode と非 Unicode の文字が混在している場合は、できるだけ早く InterSystems IRIS 2025.1.0 にアップグレードしてください。 ... [障害2] IntegratedML コンテナにおける TensorFlow 問題 IRIS 2024.3 コンテナ版で IntegratedML を使用すると、トレーニングエラーが発生する可能性があります。 [対象バージョン]以下の IRIS 2024.3 コンテナ版 container.intersystems.com/intersystems/iris-ml:2024.3 [問題の詳細]InterSystems が提供する IRIS 2024.3 コンテナで IntegratedML を使用時に TensorFlow と関連する依存関係との互換性の問題により、モデルのトレーニングに失敗する可能性があります。 [解決方法]IntegratedML を IRIS または IRIS for Health のコンテナで使用される場合、開発者コミュニティ記事(英語)の方法で、独自コンテナを作成することが推奨されます。 上記手順のように pip パッケージマネージャによって依存関係を手動で管理いただくことで、IntegratedML Python 環境内での scikit-learn のような AutoML コンポーネントの互換性と適切な機能が保証されます。 ... これら警告についてご質問がある場合は、カスタマーサポートセンターにご連絡下さい。
記事
Hiroshi Sato · 2021年3月3日

チーム開発を行う際に必要なソース管理の仕組みについて

これは InterSystems FAQ サイトの記事です。 InterSystems Data Platform自身には、ソース管理を行う機能はありません。 2016.2以降のバージョンをご使用の場合、統合開発環境として VSCode をご利用いただくことで、VSCode でご利用いただけるソース管理機能をご使用いただけます。 VSCode で ObjectScriptの操作を行うためには、専用エクステンションのインストールが必要です。 使用方法については、コミュニティの記事「VSCode を使ってみよう!」をご参照ください。 また、「VSCodeでのソースコード管理について」についても併せてご参照ください。 2016.2より前のバージョンをご使用の方でも使用できる方法としては、InterSystems製品 のIDEであるスタジオに、外部のソース管理ツール、製品と連携するためのフック機能があります。 このフック機能は、複数のAPIで構成されており、お客様毎にご自身の環境に合わせて、作りこむことを前提に提供されております。 よく使われるマイクロソフトのVisual Source SafeとSubversion(SVN)については、テンプレートがあります。 このテンプレートを利用すると、作りこみの作業を短縮することが可能です。 テンプレートにつきましては、カスタマーサポートセンターまでお問い合わせ下さい。
記事
Megumi Kakechi · 2022年9月5日

Web経由でイメージファイルを IRIS にアップロード/ダウンロードする方法

これは InterSystems FAQ サイトの記事です。 Web 経由でのイメージファイルのアップロード/ダウンロードを行うサンプルをご紹介します。サンプルでは、以下の手順でファイルの「アップロード/ダウンロード」を行っています。 Stream型のプロパティをもったクラスを用意する upload ボタン押下でイメージファイルをIRISサーバにアップロードする アップロードされたデータを %request.MimeData で受け取り CopyFromAndSave メソッドを使ってコピー&1 のクラスに保存する アップロードされたファイルを画面に表示する download ボタンを押下し、1 のクラスに保存したファイルをローカルにダウンロードする。 サンプルプログラムの使い方は次のとおりです。 User.test.xmlをUSERネームスペースにインポート test1.csp, test2.cspをC:\InterSystems\IRIS\csp\user にコピー http://localhost/csp/user/test1.csp を実行 最初のページでファイルを選択し go ボタンをクリックすると、次のページにアップロードされた画像が表示されます。 アップロードしたファイルをダウンロードしたい場合は、download ボタンをクリックしてください。 詳細はtest1.csp, test2.cspのコードをご参照ください。 今回使用したサンプルはこちらにあります 👉https://github.com/Intersystems-jp/CSPUploadDownload
記事
Megumi Kakechi · 2020年11月24日

差分バックアップがうまく取れない場合に確認すること

これは、InterSystems FAQサイトの記事です。 以下に当てはまる場合、差分バックアップではなくフルバックアップが取られます。 ・リストの中に1つでもフルバックアップを取っていないデータベース(DB)が含まれるとき・リストの中に読み込み専用のDBが含まれるとき →読込専用DBはバックアップが取れないため、対象リストのDBは毎回フルバックアップが取られます ReadOnlyマウントしたDBをバックアップしようとすると、以下のようなログが出力されます。 WARNING - the following directories could not be backed up c:\intersystems\ensemble\mgr\xxx\ (Database is readonly) 読込専用DBはバックアップリストから除く必要があります。 もし、読込専用DBをバックアップする場合は、別途バックアップする必要があります。