検索

クリアフィルター
記事
Mihoko Iijima · 2023年6月13日

プロダクションをリセットする方法、インバウンドアダプタが持つ情報をリセットする方法

これは InterSystems FAQ サイトの記事です。 注意:本番環境では実行しないでください。テスト環境でご利用ください。 開発時にプロダクションに残っているキューを一括でクリアしたり、プロダクションに関連した一次的な情報をすべて消去したい場合、以下メソッドを利用して実行中のプロダクション情報をリセットできます。 set $namespace="プロダクションのあるネームスペース名指定" do ##class(Ens.Director).CleanProduction() ドキュメント:ネームスペースでのプロダクションのリセット プロダクション全体ではなく、一部コンポーネントの実行中データをリセットする場合は、アダプタの ClearAllAppData() を使用します。引数にはプロダクションに登録している構成名を指定してください。 例)SQLインバウンドアダプタが保持している永続値をリセットする do ##class(EnsLib.SQL.InboundAdapter).ClearAllAppData("構成名称") ドキュメント:受信アダプタで以前に処理された行のリセット 例)FTPインバウンドアダプタが処理したファイルの情報をリセットする do ##class(EnsLib.FTP.InboundAdapter).ClearAllAppData("構成名称")
記事
Mihoko Iijima · 2023年5月30日

Embedded Pythonから%SYSTEMパッケージ以下クラスを呼び出す方法

これは InterSystems FAQ サイトの記事です。 %SYSTEMパッケージには沢山の便利なシステムクラスがあり、Embedded Pythonでも一般クラスと同様に%SYSTEMパッケージ以下クラスを操作できます(iris.cls("クラス名").メソッド名()で呼び出せます)。 ObjectScriptでは、$SYSTEM特殊変数を利用して、%SYSTEMパッケージ以下クラスのメソッドを呼び出すことができますが、Embedded Pythonでは、iris.system を利用して実行することができます。 以下実行例をご紹介します。 現在のネームスペースを取得する 一般クラスと同じ呼び出し方の例 iris.cls("%SYSTEM.SYS").NameSpace() iris.systemを利用する例 iris.system.SYS.NameSpace() binディレクトリのパスを返す 一般クラスと同じ呼び出し方の例 iris.cls("%SYSTEM.Util").BinaryDirectory() iris.systemを利用する例 iris.system.Util.BinaryDirectory() SQL関連をまとめたSQLクラスの例は以下の通りです。 YYYY-MM-DDから$horolog形式の日付を返す 一般クラスと同じ呼び出し方の例 iris.cls("%SYSTEM.SQL").DATE("1999-01-01") iris.systemを利用する例 iris.system.SQL.DATE("1999-01-01") ※ 現時点(2023/5/1)では、%SYSTEM.SQLクラス以下メソッドの多くは deprecated であるため、%SYSTEM.SQL.Functionsや%SYSTEM.SQL.UtilなどSQLパッケージ以下にあるクラスメソッドへの切り替えを推奨していますが、現時点のEmbedded Pythonでは、%SYSTEM.SQLクラスにあるメソッドをご利用ください。
お知らせ
Seisuke Nakahashi · 2023年5月8日

早期アクセスプログラム (EAP) のご紹介

インターシステムズは現在、早期アクセスプログラム (EAP) に非常に注力しています。このプログラムは、私たちの製品がリリースされる前に、ユーザのみなさまにボランティアとして関わっていただくものです。次のグローバルサミットにおいても、あらためてプログラムを紹介させていただきます。 関わっていただくソフトウェアは、InterSystems IRIS 製品そのものの場合もありますが、たいていは、私たちがユーザ様の意見をいただきたい新機能に絞った単体ソフトウェアになります。 早期アクセスプログラムの参加利用規約は、評価いただくソフトウェアごとに変わります。 プログラムに参加いただく方法はとても簡単です。こちらのリンク(英語)から、フォームに必要事項をご記入ください。 EAPに関する最新情報を入手されたいみなさまは、このページ をブックマークいただくか、このハッシュタグ を開発者コミュニティでフォローしてください。 より詳細な情報が必要な方は、このページでご質問いただくか、 EarlyAccess@InterSystems.com までメールをお送りください。
記事
Hiroshi Sato · 2024年3月18日

SQLベンチマークプログラム

InterSystems IRISのSQLの性能を評価する簡単なベンチマークテストを公開します。 また、このベンチマークプログラムで測定した過去の様々なハードウェアでのベンチマーク結果も公開します。 ハードウェアの進歩、インターシステムズの新しいテクノロジーの追加や性能改善によって、性能が劇的に変化しています。 現在のハードウェアの性能を考慮すると、少し物足りない感じが否めないですが、過去との結果の公正な比較という意味であえて、データの規模に関しては過去と同一条件でベンチマーク実施した結果となっています。 データの規模に関してはデータ件数を増やすことで変更できるようになっています。(現時点では500万件) またこのベンチマークプログラムはインターシステムズ製品用に実装されていますが、使用しているテーブル構造は比較的シンプルなもので、また使用しているSQL文も標準的なものなので、他データベースシステムでも同じベンチマークを実施することはそんなに困難ではありません。 ベンチマークプログラムのリポジトリ
記事
Mihoko Iijima · 2022年10月19日

VSCode:クラスメソッド実行文をワンクリックでコピーできるようになりました!(VSCode:ObjectScriptエクステンション)

開発者の皆さん、こんにちは! ターミナルでクラスメソッドを実行するとき、パッケージ名やクラス名などの入力候補が出てこないので、 ##class(パッケージ名.クラス名).メソッド名() の記述をミスったりちょっと面倒だな・・と感じること、ありませんか??(第1回 InterSystems Idea-A-Thon(アイデアソン) でも、もっとシンプルに呼び出せるようにしよう!のアイデアが投稿されていたようです。) (私も含めて)そんな方に、朗報です!📣 なんと、VSCode ObjectScriptエクステンションに新機能「Copy Invocation」が追加されました! クラスメソッドを記述すると、定義の上に Copy Invocation のリンクが表示され、クリックするとクラスメソッドの実行文がバッファにコピーされるんです! Copy Invocation をクリックした後で、ターミナルで 右クリック→貼り付け をやってみてください。 ちゃんと実行文がコピーされていることを確認できます(下図の黄色い線の文章がコピーされます)。 あとは、Do や Write や Set 文を記述するだけでいいんです! ぜひ、お試しください!​​​​​​ VSCode contributorの皆さん、素敵な機能追加をありがとうございました!
記事
Hiroshi Sato · 2021年8月30日

【IRIS】サーバーを移行する際にコピーが必要な設定情報

これは InterSystems FAQ サイトの記事です。 何らかの理由でサーバー移行が必要になった際に、移行前の環境から移行後の環境に設定情報をコピーすることで設定作業を軽減できます。 以下の設定情報を移行できます。 iris.cpf SQLゲートウェイ設定 Webゲートウェイ設定 *注1 IRISSYSデータベースに保存しているユーザー作成ルーチンなど *注2 セキュリティ設定 タスク設定 注1 パスワードを設定している場合には、パスワードのみ手動で再設定が必要です。注2 ^%ZSTART, ^ZMIRRORルーチンなど 優先接続サーバー設定に関しても、物理的には移行可能ですが、Windowsのレジストリー情報をコピーする必要があります。 しかしながらレジストリー情報をコピーして他システムに移行する方法は通常推奨される方法ではありませんので、安心、安全を優先する場合は、手動設定することをお勧めします。 各設定のエクスポート/インポート方法は、以下のリンクをご確認ください。 各設定のエクスポート/インポート方法 また、以下のドキュメントもあわせてご覧ください。 タスクスケジュールをコピーする方法 サーバ移行ガイド
記事
Hiroshi Sato · 2021年9月9日

グローバルマッピングをプログラミングで登録する方法

これは InterSystems FAQ サイトの記事です。システムクラス Config.MapGlobals を使用して登録することができます。 ネームスペース USER からデフォルトデータベース以外のデータベース SAMPLES にある ^Sample.PersonD をグローバルマッピングする方法は以下の通りです(ターミナルでの実行例)。 USER>zn "%SYS" %SYS>set ns="USER" %SYS>set glo="Sample.PersonD" %SYS>set vals("Database")="SAMPLES" %SYS>set st=##class(Config.MapGlobals).Create(ns,glo,.vals) ※ Config.MapGlobals クラスの Create()メソッドの第3引数は参照渡しのため、変数名前にピリオド(.)を付与して指定します。 Config.MapGlobals クラスを使用する方法以外に、インストールマニフェストクラスを利用して定義することもできます。 インストールマニフェストクラスの作成方法詳細については添付をご参照ください。 以下例は、インストールマニフェストでの定義例です(クラス定義は添付内に含まれています)。 XData Test [ XMLNamespace = INSTALLER ]{<Manifest><Namespace Create="no" Name="USER" Code="USER" Data="USER"><Configuration><GlobalMapping Global="Sample.PersonD" From="SAMPLES"/></Configuration></Namespace></Manifest>} 詳細については、ドキュメントもご参照ください。 インストールマニフェストについて【IRIS】インストールマニフェストについて
記事
Mihoko Iijima · 2021年5月27日

HL7 プロダクションでサイズの大きなグローバルがある場合の削除方法について

これは InterSystems FAQ サイトの記事です。 HL7 メッセージの送受信を行うプロダクションでは、以下3個のグローバルが非常に大きくなることがあります。 グローバルの大きさを確認する場合は、^%GSIZEユーティリティを利用します。詳細は関連トピック/記事をご参照ください。 ^EnsHL7.Segment^EnsLib.H.MessageD^EnsLib.H.MessageI HL7メッセージは EnsLib.HL7.Message.cls で定義されます。^EnsLib.H.MessageD はデータを保存するグローバル、^EnsLib.H.MessageI はインデックスを保存するグローバルです。 また、HL7メッセージは多数のセグメントで構成されており、メッセージデータを含むそれらのセグメントは ^EnsHL7.Segment に保存されます。 ^EnsLib.H.MessageD グローバルの値は、^EnsHL7.Segment グローバルの添え字にリンクしています。 これらメッセージ関連のグローバルの削除については、任意の保持日数を指定して手動および定期的に削除することができます。パージ(Purge)用ユーティリティについては、以下のドキュメントをご参照ください。 プロダクション・データのパージ【IRIS】 プロダクション・データのパージ 関連トピック/記事 データサイズを調べる方法はありますか? Interoperability管理データを削除(パージ)する方法
お知らせ
Makiko Kokubun · 2021年7月5日

【FHIR ハンズオンセミナー】IRIS for Health でFHIRリポジトリを作って RESTやWebアプリから操作を体験してみよう!

開発者の皆さん、こんにちは! インターシステムズでは、7/30(金)に、InterSystems IRIS for Healthを使った FHIR のハンズオンセミナーをオンラインで開催致します。 FHIR R4リソースリポジトリを構築する上で知っておきたい、FHIR リソースのRESTを使った操作を体験し、サンプルアプリケーションを通してFHIRアプリケーション構築方法を学習します。 FHIR ハンズオンセミナー 概要 日時:2021年7月30日(金)16:00~18:00(2時間) 参加費:4,000円(Webからの事前登録制) 開催形式:オンライン(Teams会議+演習環境用システムを利用) 定員:10名 詳細・事前登録はこちらから 満席となりましたため、受付を締め切らせて頂きました。キャンセルが出ましたら、受付を再開致します。 ハンズオンを通して以下の内容をご理解・ご体験いただけます。 IRIS for Health でFHIR R4リソースリポジトリを作成する方法 FHIRリソース同士のリファレンスの意味 FHIRリソースの検索方法 サンプルWebアプリケーションから作成したR4リポジトリへアクセスする方法 CSV→FHIR変換処理の操作体験 SS-MIX2→FHIR変換処理の操作体験 ぜひご受講ご検討ください!
記事
Toshihiko Minamoto · 2022年2月9日

IRIS-NativeAPI-Nodejs-compact (jp)

これは、前回の「[DockerマイクロサーバーとしてのIRIS Native APIを使用するWebSocketクライアントJS](https://jp.community.intersystems.com/node/507846)」のフォローアップです。 すべてのピースが1つのDockerイメージにまとめられたため、インストールがはるかに簡単になりました。 作業が楽になります。 ただしもちろん、マイクロサービスの原則はわかりにくくなくなっています。 オールインワンのバンドルパッケージであるため、 コンパクトになっています。 動作には変更がないため、 下位互換性のあるマイナーリリースと解釈されてしまう可能性があります。 これには、intersystems/iris-community:2020.2.0.204.0が含まれています。 実行するのは、以下の通りです。 * docker pull **rcemper/rcc:iris-nodejs-compact** _(1回)_ * docker **run** --rm --init -d \ --name=iris1 -p 52773:52773 -p 51773:51773 \ rcemper/rcc:iris-nodejs-compact _(コンテナーを起動)_ * docker **exec** -it iris1 bash wsgo.sh _(マイクロサービスを起動)_ * docker **exec** -it iris1 bash wsdemo.sh _(テストデータを作成する制御を開始し、echoServerに送信して受信)_ * docker exec -it iris1 bash wsstop.sh _(制御から実行されない場合は、最終的にサービスを停止)_ * docker **stop** iris1 _(コンテナーを終了)_ それだけです。 2021年7月7日: 正規化された**V2**がリリースされました。 * `git clone https://github.com/rcemper/IRIS-NativeAPI-Nodejs-compact.git` * `docker-compose up -d` * `docker-compose exec iris iris session iris %ZSocket` * `docker-compose exec iris node WsockIris.js`  
記事
Toshihiko Minamoto · 2023年1月29日

インターシステムズ認定プログラムを開発者コミュニティのプロファイルに追加する方法

開発者コミュニティの皆さんこんにちは。 インターシステムズの認定プログラムに合格された方の中には、プロフィールのアバターに緑色の目印を付けたい方や、開発者コミュニティのプロフィールに全ての認定証を掲載し、他の人に知ってもらいたいと考えている方もいらっしゃると思います。 そこで、DC プロフィールに認定証を追加するために実行する3 つの簡単な手順をステップを紹介します。 1️⃣ 開発者コミュニティのプロファイルに移動します。 2️⃣ InterSystems certifications (インターシステムズ認証)セクションに移動します。 3️⃣ Load my certification(s) ボタンをクリックします。 以上です! システムは、開発者コミュニティの電子メールを使用してCredlyにリクエストを送信します。証明書が同じメールにリンクされている場合、証明書は自動的に読み込まれます。 読み込まれない場合は、ページに記述された手順に従って操作してください。 これで完了です。認定証が追加され、誰もが見れるようになりました!
記事
Megumi Kakechi · 2024年9月3日

HTTPレスポンスヘッダの取得方法

これは InterSystems FAQ サイトの記事です。HTTPレスポンスヘッダ情報を取得したい場合、以下のような方法があります。開発中などに、送られてきたヘッダの項目名、そのデータを確認したい場合に、是非ご活用ください。 *CSPまたはRESTでヘッダ情報を取る場合 set var="" for { set var=$order(%request.CgiEnvs(var)) if var="" quit set val=$get(%request.CgiEnvs(var)) write var_": "_val,"<BR>" } ※ %request オブジェクトについて *ターミナルで情報を取る場合 %Net.HttpRequest クラスの Head メソッドを使用します。 set http = ##class(%Net.HttpRequest).%New() set http.Server = "localhost" set http.Port = 80 do http.Head("/csp/user/menu.csp") // ヘッダ情報をリクエストするURL do http.HttpResponse.OutputToDevice() set http = "" *簡単に目で見る場合 WebゲートウェイのHTTPトレースを使用する1. Webゲートウェイ管理ページにアクセス http://localhost/csp/bin/Systems/Module.cxw2. HTTP トレースを表示 をクリック3. トレースON をクリック4. (データをリクエスト)5. トレースOFFをクリック6. ログを確認→ 調査後、トレースをOFFにするのを忘れないようにしてください→ IRIS2024.1 より前のバージョンでは、管理ポータル用に Private Web Server (既定のポート:52773)が同梱されていました。  本番アプリのWebサーバ(IIS/Apacheなど、既定のポート:80)の設定と区別するよう注意してください。
記事
Hiroshi Sato · 2025年9月3日

大量データをJSON形式で渡す方法

これは InterSystems FAQ サイトの記事です。 ダイナミックオブジェクトの%ToJSONメソッドを利用することで簡単にJSONデータを送信することができます。 但し、標準的な方法では、出力するJSONのデータがIRIS文字列の最大長(約32万文字 正確には$SYSTEM.SYS.MaxLocalLength()が返す値)を超えると<MAXLENGTH>エラーとなります。 これを回避するためには、文字列として返すのではなく、%ToJSONメソッドの出力先としてStreamを指定し、その結果作成されたそのStreamデータを順次読み取って、出力先に書き出すようにする必要があります。 以下のように処理できます。 ClassMethod bigjson() As %Status [ ProcedureBlock = 0 ] { set x={} for i=1:1:100 { set cmd=" set x.a"_i_" = ^a " ;; ^aのサイズは1MB xecute cmd } set tmpStream = ##class(%Stream.GlobalCharacter).%New() do x.%ToJSON(tmpStream) while tmpStream.AtEnd'=1 { write tmpStream.Read(1000) } quit $$$OK } なお、このような処理はREST APIの実装として用いられることが多いと想定されますが、あまりの大量データを一度にREST経由で送信することは、ネットワーク帯域の逼迫や応答時間の増大等の影響が懸念されるため、その処理の適切性について十分考慮する必要があり、場合によっては、他の方法を検討した方が良いケースもあります。
記事
Mihoko Iijima · 2023年9月18日

VSCode:管理ポータルやスタジオにある「XMLファイルのインポート/エクスポート 」が追加されました

開発者の皆さん、こんにちは! スタジオを利用されている方にはお馴染みのソースコードの「XMLファイルへのエクスポート/インポート機能」がVSCodeのObjectScriptエクステンションに追加されました! (ObjectScript 2.10.0以降に含まれています。こちらのリクエストが元となりました👉https://github.com/intersystems-community/vscode-objectscript/issues/1158 エクステンションの追加番号は#1171です) 今まで、過去エクスポートしたXMLファイルをVSCodeから参照するためには、管理ポータル(またはスタジオ)を利用してインポートする必要がありましたが、VSCodeの画面だけでできるようになりました! 💡注意1: InterSystems IRIS /InterSystems IRIS for Health 2023.2以降のバージョンに接続した状態でご利用いただける機能です。 💡注意2:この機能は管理ポータルやスタジオのインポート/エクスポートのVSCode版のような機能となるため、インポートしたソースコードはサーバ側にインポートされ、エクスポートはサーバ側コードを選択してXMLファイルにエクスポートする動作となります。XMLファイルインポート後、VSCodeのワークスペースでローカルファイル(*.cls や *.mac)として編集 したい場合は、 ObjectScriptエクステンションマークをクリックし、対象のコードを選択→エクスポート の手順でローカルにエクスポートする必要があります。 では早速、XMLファイルのインポートからをご紹介します。 《事前準備》VSCodeを開き、IRISに接続します。ローカルでソースコードを編集する場合は、任意のワークスペースフォルダを開いた状態とします。 VSCodeのメニュー:View→Command Palette... (コマンドパレット)を選択し、画面上部に表示されるテキストボックス内で「ObjectS」ぐらいまで記述すると下図のようにObjectScriptエクステンションが提供するコマンドが表示されます。 この中の「ObjectScript:Import XML Files..」を選択します。 ​​​​​​ 図例はWindowsを使用していますので、「ObjectScript:Import XML Files...」を選択すると、Windowsのエクスプローラが表示されます。 ここで、スタジオや管理ポータルでXML形式でエクスポートしておいたファイルを選択し、インポートを実施します。 上記XMLファイルの中身はスタジオ/管理ポータルからエクスポートしておいたクラス定義一式が含まれています↓  ボタンを押すと、スタジオや管理ポータルのXMLインポートと同様に、ファイルに含まれるコード一覧を表示しどれをインポートするか選択できるようになっています。 OKボタンを押すと、以下確認画面がVSCode右下に表示されので、「Yes」を押します。 コードはサーバ側にインポートされます。(下図はObjectScriptエクステンションマークをクリックしてサーバ側コード一覧を表示している状態です。) ObjectScriptエクステンションのサーバ側編集機能を利用されている場合は、このまま編集を行えます。 サーバ側編集機能ではなく、VSCode上のローカルファイル(*.clsや *.mac)として操作する場合は、対象コードを右クリックし「エクスポート」を選択します。(例はパッケージ全体をエクスポートしています) これで完了です。 続いて、エクスポートです。 インポートと同様に、コマンドパレットを利用します。 VSCodeの View → Command Pallet.. をクリックし「ObjectScrpt: Export Documents to XML File...」を選択します。 サーバ側のコード一覧が表示されます。エクスポート対象を選択したらOKをボタンをクリックします。 配置するフォルダを選択し、XMLファイル名を決定し、Exportボタンをクリックします。 例では、VSCodeのワークスペースにXMLファイルをエクスポートしています。 スタジオや管理ポータルで行うエクスポートと同様にXMLでエクスポートできたことを確認できます。 基本はサーバ側コードのインポート/エクスポートを行う動作となるので、管理ポータルやスタジオで行っていたインポート/エクスポートと同じ感覚で操作できます。 サーバー側編集ではなく、ローカルにファイルをエクスポートして開発を行っている場合は、対象コードを選択してエクスポートを行う操作は必要となりますが、管理ポータルをわざわざ開かなくてもインポートが行えるようになりましたので、少し操作が便利になったかと思ます。 ぜひ、みなさんの環境でもお試しください!​​​​​​
記事
Megumi Kakechi · 2024年7月10日

IRISでシャドウイングの代わりにミラーリングを構成する方法-プログラム編

これは InterSystems FAQ サイトの記事です。 こちらの記事では、「IRISでシャドウイングの代わりにミラーリングを構成する方法」を紹介しました。 今回は、「プログラムでシャドウイングの代わりにミラーリングを構成する方法(Windows版)」を紹介します。【今回のサンプル・ミラー構成について】   正サーバ(ミラー・プライマリ) 副サーバ(ミラー・非同期) ミラー名 MIRRORSET MIRRORSET ミラーメンバ名 MACHINEA MACHINEC IPアドレス 35.77.84.159 54.248.39.237 では、ミラーの構成手順をご紹介します。手順は以下になります。 <ミラーリングのプライマリ設定> // MACHINEA(正サーバ) 1. ISCAgentの自動起動設定および起動 ※Windowsコマンドプロンプトで実行 C:\Users\Administrator>sc config ISCAgent start=auto C:\Users\Administrator>sc start ISCAgent 2. [システム管理] > [構成] > [ミラーサービスの有効化] ※IRISターミナルで実行 zn "%SYS" set status=##class(Security.Services).Get("%Service_Mirror", .svcProps) set svcProps("Enabled") = 1 set status=##class(Security.Services).Modify("%Service_Mirror", .svcProps) 3. [システム管理] > [構成] > [ミラーの作成] ※IRISターミナルで実行 zn "%SYS" set MirrorSetName="MIRRORSET" set SystemName = "MIRRORA" // 任意で設定。設定しない場合、既定で$sysytem 変数の内容を利用(例:<デバイス名>/IRIS) set MirrorInfo("UseSSL") = 0 set MirrorInfo("ECPAddress") = "xxx.xxx.xxx.xxx" // this is the SuperServer Address, default value is result of $System.INetInfo.LocalHostName(). set sc = ##class(SYS.Mirror).CreateNewMirrorSet(MirrorSetName, SystemName, .MirrorInfo) write $system.Mirror.GetMemberType() // (出力) Failover write $system.Mirror.GetStatus() // (出力) PRIMARY、TRANSITIONの場合は少し待って再度実行 4. ローカルデータベースの作成(ミラー属性の追加) ※IRISターミナルで実行 zn "%SYS" /// ローカルデータベースの作成 Set Directory="c:\intersystems\iris\mgr\mirrordb\" Set x=$ZF(-100, "/shell", "mkdir", Directory) Set db=##Class(SYS.Database).%New() Set db.Directory=Directory Set status=db.%Save() Set DBName="MIRRORDB" Set status=##class(Config.Configuration).AddDatabase(DBName,Directory) Set NSName=DBName Set status=##class(Config.Configuration).AddNamespace(NSName,DBName) /// ミラー属性の追加(プライマリフェイルオーバーメンバのみ) set status=##class(SYS.Mirror).AddDatabase(Directory) set db=##Class(SYS.Database).%OpenId(Directory) write db.Mirrored // (出力) 1 ; Mirror DB の場合1 kill <ミラーリングのDR非同期設定> // MACHINEC(副サーバ) 1. ISCAgentの自動起動設定および起動 ※Windowsコマンドプロンプトで実行 C:\Users\Administrator>sc config ISCAgent start=auto C:\Users\Administrator>sc start ISCAgent 2. ミラーサービスの有効化 *[システム管理] > [構成] > [ミラーサービスの有効化] ※IRISターミナルで実行 zn "%SYS" set status=##class(Security.Services).Get("%Service_Mirror", .svcProps) set svcProps("Enabled") = 1 set status=##class(Security.Services).Modify("%Service_Mirror", .svcProps) 3. 非同期としてミラーに参加 *[システム管理] > [構成] > [非同期として参加] ※IRISターミナルで実行 zn "%SYS" set MirrorSetName="MIRRORSET" set InstanceName="IRIS" // primary instanace name set AgentAddress="xxx.xxx.xxx.xxx" // primary member DNS name or IPaddress set AsyncMemberType=0 // DR:0, Reporting R only:1, Reporting R/W:2 set SystemName = "MIRRORC" // 任意で設定。設定しない場合、既定で$sysytem 変数の内容を利用 set LocalInfo("ECPAddress") = "yyy.yyy.yyy.yyy" // this is the SuperServer Address, default value is result of $System.INetInfo.LocalHostName(). set status=##class(SYS.Mirror).JoinMirrorAsAsyncMember(MirrorSetName,SystemName ,InstanceName,AgentAddress,,AsyncMemberType,.LocalInfo) write $system.Mirror.GetMemberType() // (出力) Disaster Recovery write $system.Mirror.GetStatus() // (出力) CONNECTED、TRANSITIONの場合は少し待って再度実行 4. ミラーデータベースの準備 非同期の副サーバ:MACHINEC に、正サーバ:MACHINEA のバックアップファイルをリストアします。【補足】データベースファイル(IRIS.DAT)のコピーによるバックアップの場合は(=正サーバで Backup.Generalクラスの ExternalFreeze()/ExternalThaw() を利用してバックアップを取っている場合)、非同期データベースをディスマンとした状態でデータベースファイル(IRIS.DAT)を置換します。 ※ローカルデータベースの作成手順は、正サーバ:MACHINEAと同じです。 (4の「ローカルデータベースの作成」、ミラー属性の追加 以外を行います) ※外部/オンラインバックアップ・リストアについては、以下の記事で詳細手順を説明していますので、参考になさってください。・外部バックアップについて・オンラインバックアップについて 5. ミラーモニターでのジャーナルの有効化、キャッチアップ ※IRISターミナルで実行 zn "%SYS" set Directory="c:\intersystems\iris\mgr\mirrordb\" set status=##class(SYS.Mirror).ActivateMirroredDatabase(Directory) // 有効化 set db=##class(SYS.Database).%OpenId(Directory) set sfn= db.SFN // sfn system file number データベーステーブル(内部情報)内の番号 kill db set status=##class(SYS.Mirror).CatchupDB($lb(sfn)) // キャッチアップ write status // 1 でキャッチアップ成功。それ以外の場合は write $SYSTEM.Status.DisplayError(status) でエラーの内容を確認 6. 管理ポータルで、キャッチアップしたことを確認(こちらで構成は終了です) *[システムオペレーション] > [ミラーモニタ] 各種設定の詳細は以下のドキュメントをご覧ください。Security.ServicesSYS.Mirror$SYSTEM.Mirror 【ご参考】Cache Mirroring 101:簡単なガイドとよくある質問 ミラーリングの機能についてミラージャーナルファイルの削除のタイミングと要件IRISでシャドウイングの代わりにミラーリングを構成する方法