クリアフィルター
記事
Minoru Horita · 2020年8月6日
この連載記事では、InterSystemsデータプラットフォーム用の[Python Gateway](https://openexchange.intersystems.com/package/PythonGateway)について説明します。 また、InterSystems IRISからPythonコードなどを実行します。 このプロジェクトは、InterSystems IRIS環境にPythonの力を与えます。
* 任意のPythonコードを実行する
* InterSystems IRISからPythonへのシームレスなデータ転送
* Python相互運用アダプタでインテリジェントな相互運用ビジネスプロセスを構築する
* InterSystems IRISからのPythonコンテキストの保存、調査、変更、復元
その他の記事
現時点での連載計画です(変更される可能性があります)。
* [パート I:概要、展望、紹介](https://jp.community.intersystems.com/post/python%C2%A0gateway%C2%A0%E3%83%91%E3%83%BC%E3%83%88%C2%A0i%EF%BC%9A%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB)
* [パート II:インストールとトラブルシューティング](https://jp.community.intersystems.com/post/python%C2%A0gateway%C2%A0%E3%83%91%E3%83%BC%E3%83%88%C2%A0ii%EF%BC%9A%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%C2%A0)
* [パート III:基本機能](https://jp.community.intersystems.com/post/python-gateway-%E3%83%91%E3%83%BC%E3%83%88iii%EF%BC%9A%E5%9F%BA%E6%9C%AC%E6%A9%9F%E8%83%BD)
* [パート IV:相互運用アダプタ](https://jp.community.intersystems.com/post/python-gateway-%E3%83%91%E3%83%BC%E3%83%88-iv%EF%BC%9A%E7%9B%B8%E4%BA%92%E9%81%8B%E7%94%A8%E3%82%A2%E3%83%80%E3%83%97%E3%82%BF)
* パート V:Execute関数
* パート VI: Jupyter Notebook
現在、デフォルトのPython 3のexecutorが使用されています。
この拡張機能はアノテーションにPythonコードが含まれていることを前提としており、アクティビティ名を先行する読み取り専用の見出しとして使用します。
最近、私はJupyterのサポートを拡張しました。 これで、JupyterからPythonGatewayのビジネスプロセスを開発できるようになりました。 以下のように何でも対応できます。
* 新しいビジネスプロセスを作成する
* ビジネスプロセスを削除する
* 新しいアクティビティを作成する
* アクティビティを変更する
* アクティビティを削除する
記事
Megumi Kakechi · 2025年7月6日
これは InterSystems FAQ サイトの記事です。各InterSystems製品のサポートOS情報は、製品ドキュメントの「サポートプラットフォーム」情報で確認できます。
製品ドキュメントは、弊社ホームページ > サポート > ドキュメント よりご確認いただけます。
確認したい製品バージョンのドキュメント(例えば、InterSystems IRIS Version 2025.1)を開いていただき、「サポート対象プラットフォーム」リンクからご確認いただけます。
↓↓↓
※Cache & Ensemble の場合は(例えば、Cache & Ensemble Version 2018.1)、ドキュメント上部の Supported Platforms リンク
※過去のバージョンは、IRIS:InterSystems IRIS 過去一覧 > バージョン > Supported Platforms > サポート対象プラットフォームCache:Caché & Ensemble 過去一覧 > バージョン > Supported Platforms > サポート対象プラットフォーム 各OSをサポートするInterSystems製品の一覧は用意しておりませんので、製品バージョンごとのサポートOSをご確認いただく必要があります。 例:IRIS 2025.1 の サポートプラットフォームIRIS 2024.3 の サポートプラットフォームIRIS 2024.1 の サポートプラットフォームCache 2018.1 の サポートプラットフォームCache 2017.2 の サポートプラットフォーム
ドキュメント URL の バージョン情報を確認したいバージョンに変えていただくと、そのバージョンのドキュメントをご確認いただけます。
☆IRISの場合:https://docs.intersystems.com/iris20241/csp/docbook/DocBook.UI.Page.cls?KEY=ISP_technologies#ISP_platforms↓ 2023.1が見たいときは以下に変更https://docs.intersystems.com/iris20231/csp/docbook/DocBook.UI.Page.cls?KEY=ISP_technologies#ISP_platforms
☆Cacheの場合:https://docs.intersystems.com/ens20181j/csp/docbook/DocBook.UI.Page.cls?KEY=ISP_technologies#ISP_platforms↓ 2017.1が見たいときは以下に変更https://docs.intersystems.com/ens20171j/csp/docbook/DocBook.UI.Page.cls?KEY=ISP_technologies#ISP_platforms
※Cacheの場合、2016.1より前のバージョンのドキュメントは、PDF形式のものしかありません。 この場合は、 [ドキュメントトップ] > [はじめに] > [Cache サポート対象プラットフォーム] より辿れます。 例:Cache 2016.2 ドキュメントCache 2016.1 ドキュメントCache 2015.1 ドキュメントCache 2014.1 ドキュメントCache 2013.1 ドキュメント
また、以下に Q2-2025 に発表された最新情報を載せております。こちらもぜひ参考になさってください。InterSystems サポートプラットフォーム最新情報 Q2-2025
記事
Mihoko Iijima · 2020年7月21日
IRIS で REST サーバを作成する際に準備する REST ディスパッチクラスを API ファーストの手順で作成する方法を解説します。(OpenAPI 2.0に基づいて作成したアプリケーション定義を使用してディスパッチクラスを作成する手順を解説します)
このビデオには、以下の関連ビデオがあります。
IRISの基本操作についてのビデオ(索引ページ)
InterSystems開発者コミュニティ biginnerタグ一覧
もくじ
最初~ 復習ビデオ/関連ビデオについて など
IRIS で 作成する REST サーバの仕組み
IRISでのJSON操作について
手動によるRESTディスパッチクラスの作成
2:36~ 作成するディスパッチクラスの内容
4:15~ RESTディスパッチクラス:APIファーストで作成する方法(手順説明)
5:55~ アプリケーションの仕様を定義する (例)
6:19~ IRISにアプリケーション仕様を登録する(説明)など
7:40~ POST要求の実行 (例)
8:24~ 実演
↓実演で使用したURL↓ http://localhost:52773/api/mgmnt/v2/user/crud2
10:32~ (POST要求の)実行結果
11:50~ ベースURLの設定(管理ポータルでの設定)+ 実演
13:23~ curd2.implクラスの実装方法(スタジオとVSCodeで確認)
16:30~ curd2.implクラスの実装方法
↓ドキュメントへのリンク↓ https://docs.intersystems.com/irislatest/csp/docbook/Doc.View.cls?KEY=GREST_implementation
18:02~ VSCode:curd2.implクラスの変更方法
18:40~ GET要求:全件取得 GetAllPerson()の実装 実演
24:44~ GET要求:全件取得 Postmanでテスト
25:20~ POST要求:Test.Person(1件)の実装 実演
29:37~ POST要求:Postmanでテスト
31:10~ GET要求:IDを指定したTest.Personの取得 GetPerson()の実装 実演
33:42~ GET要求:IDを指定したTest.Person Postmanでテスト
34:02~ PUT要求:IDを指定してTest.Personの修正 UpdatePerson()の実装 実演
36:12~ PUT要求:Postmanでテスト
36:50~ DELETE要求:IDを指定してTest.Personを削除 DeletePerson()の実装 実演
38:00~ DELETE要求:Postmanでテスト
38:30~ まとめ
38:57~ ビデオで確認できたこと
※YouTubeでご覧いただくと、もくじの秒数にジャンプできます。
サンプルコード一式(Git)(コンテナでサンプル環境を開始できます。詳細は Readme をご参照ください。)
impl クラスコード例
記事
Tomohiro Iwamoto · 2020年8月13日
本記事について
InterSystems IRISは、管理ポータルへのアクセス方法がデフォルトではhttpとなっており、クライアントが社内、サーバがクラウドという配置の場合、なんらかの方法でトラフィックを暗号化したいと考える方も多いかと思います。そこで、AWS上にて稼働中のIRISの管理ポータル(あるいは各種RESTサービス)との通信を暗号化する方法をいくつかご紹介したいと思います。
本記事では、アクセスにIRIS組み込みのapacheサーバを使用しています。ベンチマーク目的や本番環境のアプリケーションからのアクセス方法としては使用しないでください。短期間・少人数での開発・動作検証・管理目的でのアクセスを暗号化する事を想定しています。
ドメイン名とメジャーな認証局発行のSSLサーバ証明書を用意できればベストなのですが、上記のような用途の場合、コスト面でなかなか難しいと思います。ですので、下記の証明書の使用を想定しています。- 自己署名(いわゆるオレオレ証明書)- 自分で建てた認証局で署名した証明書(いわゆるオレオレ認証局)
また、下記のような実行環境を想定しています。
手元のPC環境
O/S
Windows10
ブラウザ
Chrome/FireFox/Edge
IDE
vscode+ObjectScript拡張
ローカルPCで未使用のポート番号
8888
EC2インスタンス作成時に使用したキーペアの秘密鍵
aws-secret.pem
AWS環境
IRISホストの公開ホスト名
ec2-54-250-169-xxx.ap-northeast-1.compute.amazonaws.com
IRISのウェブサーバポート番号
52773
O/S
Ubuntu 18.04LTS
O/Sユーザ名
ubuntu
直接アクセス
1) ポートフォワーディングを使う
最もお手軽な方法です。セキュリティグループで、SSH用のポート(22)をインターネットからのインバウンド許可する必要があります。
C:\Users\xxxx>ssh -i aws-secret.pem -L 8888:localhost:52773 ubuntu@ec2-54-250-169-xxx.ap-northeast-1.compute.amazonaws.com
このコマンドを実行中は、SSHを実行したPCからは、IRISホストに
http://localhost:8888/csp/sys/%25CSP.Portal.Home.zen
でアクセスできます。sshでログインした状態になっているので、開発時に行うような端末操作(IRISの起動・停止、IRISセッション開始など)に利用できます。この方法は、スーパーサーバ・ポート(51773)にも有効ですので、Studioによる通信の暗号化にも使用できます。
注意)Windowsの場合、ssh用の秘密鍵(aws-secret.pem)を%USERPROFILE%\に配置しないと、エラーになります。
C:\Users\xxxx>dir %USERPROFILE%\aws-secret.pem
2020/07/14 17:10 1,692 aws-secret.pem
1 個のファイル 1,692 バイト
0 個のディレクトリ 108,323,176,448 バイトの空き領域
vscodeの設定(settings.json)は下記のようになります。
{
"objectscript.conn": {
"host": "localhost",
"https": false,
"port": 8888,
"ns": "USER",
"username": "xxx",
"password": "xxx",
"active": true
}
}
2) SSL設定を施したReverse Proxyを使う
IRISホストに自己証明書を適用したapacheやnginxをReverseProxy設定で配置します。セキュリティグループで、HTTPS用のポート(443)をインターネットからのインバウンド許可する必要があります。
apache及びnginxの設定を行うスクリプトをこちらに掲載しています。これにより、ブラウザからIRISホストに
https://ec2-54-250-169-xxx.ap-northeast-1.compute.amazonaws.com/csp/sys/%25CSP.Portal.Home.zen
でアクセスできます。
vscodeの設定(settings.json)は下記のようになります。
{
"objectscript.conn": {
"host": "ec2-54-250-169-xxx.ap-northeast-1.compute.amazonaws.com",
"https": true,
"port": 443,
"ns": "USER",
"username": "xxx",
"password": "xxx",
"active": true
}
}
踏み台ホスト経由
検証用とはいえ、ユーザデータやコードを含むEC2インスタンスのSSHやHTTPSポートをインターネット解放するのは不安がある場合は、踏み台ホスト(Bastion Host)を使用しますが上記の方法は、踏み台ホストがある場合でも同様です。セキュリティグループで、踏み台ホストとIRISホスト間のTCPトラフィックをインバウンド許可する必要があります。
下記のような実行環境であると想定します。
AWS環境
IRISホストの公開ホスト名
なし
IRISホストの内部IPアドレス
10.0.1.81
踏み台ホストの公開ホスト名
ec2-54-250-169-yyy.ap-northeast-1.compute.amazonaws.com
1) ポートフォワーディングを使う
セキュリティグループで、SSH用のポート(22)をインターネットからのインバウンド許可する必要があります。
下記のコマンドを、踏み台ホストに対して実行します。
C:\Users\xxxx>ssh -i aws-secret.pem -L 8888:10.0.1.81:52773 ubuntu@ec2-54-250-169-yyy.ap-northeast-1.compute.amazonaws.co
以下、同様です。
2) SSL設定を施したReverse Proxyを使う
セキュリティグループで、HTTPS用のポート(443)をインターネットからのインバウンド許可する必要があります。同じ作業を、踏み台ホストで実行します。転送先のURLをIRISホストの内部IPアドレス:10.0.1.81に変更します。
ProxyRequests Off
ProxyPass / http://10.0.1.81:52773/
ProxyPassReverse / http://10.0.1.81:52773/
以下、ホスト名が踏み台ホスト名に変わる事以外は、同様です。
AWS/ALB経由
あまり一般的ではないかもしれませんが、AWS/ALBに自己証明書を適用することができます。この場合、ALBにてSSL終端させるので、別途SSL有効化したapacheを用意する手間が省けます。
ALBの作成には、最低2つのAZの指定が必要なので、ここではICM(InterSystems Cloud Manager)にて、DM(2台)をMIRROR:trueで作成した環境を使用しました。(ICMについては、icmを利用してIRISクラスターを構成する方法をご覧ください)
default.json (抜粋)
{
"Zone": "ap-northeast-1a,ap-northeast-1c",
"Mirror": "true",
}
definitions.json
[
{
"Role": "DM",
"Count": "2",
"MirrorMap": "primary,backup",
"ZoneMap": "0,1"
}
]
setup.shで作成した証明書ファイルを使用します。これらのファイルをACM(Certificate Manager)にインポートします。証明書本文:server.crtの内容証明書のプライベートキー:server.keyの内容証明書チェーン:inca.pemの内容
補足)awscliを使える環境であれば、setup.shの最後の行をアンコメントすれば自動登録されます。
下記設定でALBを新規作成します。
手順 1: ロードバランサーの設定名前:任意スキーム:インターネット向けIP アドレスタイプ:ipv4リスナー:https(port:443)アベイラビリティーゾーン:ap-northeast-1a,ap-northeast-1c
手順 2: セキュリティ設定の構成デフォルトの証明書の選択:ACM から証明書を選択する証明書の名前:(先ほどACMにインポートした証明書を選択)
手順 3: セキュリティグループの設定セキュリティグループの設定:新しいセキュリティグループを作成する→https(port:443)のみを許可。
手順 4: ルーティングの設定ターゲットグループ:新しいターゲットグループ名前:任意ターゲットの種類:インスタンスプトロコル:httpポート:52773
ヘルスチェック プトロコル:httpパス:/csp/bin/mirror_status.cxwヘルスチェックの詳細設定ポート:上書き→52773
手順 5: ターゲットの登録先ほど作成したEC2インスタンスを登録済みに追加
作成したALBの状態がactiveになれば、ALBのDNS名を使ってhttpsアクセスできるようになります。
https://[DNS名]/csp/sys/exp/%25CSP.UI.Portal.SQL.Home.zen
記事
Megumi Kakechi · 2021年5月27日
これは InterSystems FAQ サイトの記事です。
InterSystems Data Platformは、データベースキャッシュやルーチンキャッシュなどの共有メモリを、起動時に割り当てます。
バージョン2007.1以降をWindows上で動作させる際、Windows特有の共有メモリに関する問題が生じることが判明しています。
詳細については、以下の技術資料をご参照ください。
Windows上での共有メモリの割り当てについて
また、以下の記事もあわせてご覧ください。
コンソールログに "Failed to allocate xxxMB shared memory using large pages..." のエラーメッセージが出ているとき
IRISが使用するワーキングセット(メモリ)について
お知らせ
Rie Tokue · 2025年3月20日
本年よりスタートしたインターシステムズ ソリューションウェビナー、第2回は以下の日時・内容で開催いたします。
日時:4月24日(木)13時30分~14時15分(45分間)
参加費無料・事前登録制
ご登録はこちらから
ウェビナー概要:このウェビナーでは、InterSystems IRIS data platform の2025.1 EM(Extended Maintenance)リリースに搭載される新機能と改善点を包括的に紹介します。EMリリースは長期サポートが提供され、安定性が重視されるため、多くのお客様が本番環境で採用されるバージョンです。2024.1 EMリリース以降の機能強化も含め、技術者の皆様が新バージョンを最大限に活用できるよう情報をお届けします。
本ウェビナーでは、製品の新機能や改善点について、実際の実行環境での画面を共有しながら解説します。理論的な説明だけでなく、具体的なコード例や実際の動作デモンストレーションを通して、新機能の実用的な活用方法を分かりやすく紹介します。これにより、参加者の皆様はすぐに実践できる知識を得ることができます。
こんな方にお勧め:
IRIS data platform開発者
データベース管理者
前提となる知識:
IRIS data platformの基本的な知識
過去のバージョン(特に2024.1以降)の使用経験があると望ましい
ご多用中とは存じますが皆様のご参加をお待ち申し上げております。
記事
Megumi Kakechi · 2022年4月17日
InterSystems IRIS 2021.2 のバージョンより、Embedded Python を使用できるようになりました。Embedded Python については、「Embedded Pythonを簡単にご紹介します」の記事をぜひご覧ください。
こちらでは、Embedded Python を使用して Excel のデータを IRIS グローバルに出力する方法をご紹介します。
最初に、irispip コマンドで必要なライブラリをインストールします。今回は、pandas、xlrd、openpyxl の3つのライブラリをインストールします。
>cd C:\InterSystems\IRIS\bin
C:\InterSystems\IRIS\bin>irispip install --target C:\InterSystems\IRIS\mgr\python pandas
C:\InterSystems\IRIS\bin>irispip install --target C:\InterSystems\IRIS\mgr\python xlrd
C:\InterSystems\IRIS\bin>irispip install --target C:\InterSystems\IRIS\mgr\python openpyxl
Excel ファイルは次のような test.xslx を用意します。
Name
Age
Address
佐藤
50
東京
加藤
40
大阪
伊藤
30
京都
VSCode または IRISスタジオで次のようなクラスを作成します。メソッドの宣言部に [ Language = Python ] と指定することで、クラスのメソッドに直接 Pythonコードを書くことができます。
Class User.PythonTest Extends %Persistent
{
ClassMethod fromPythonString(in As %String)
{
set ^ISJ($increment(^ISJ))=$LISTFROMSTRING(in,",")
}
ClassMethod PythonPrint(fname as %String) [ Language = python ]
{
import iris
import pandas
df=pandas.read_excel(fname, header=None)
for key,row in df.iterrows():
moji=",".join(list(map(str, row)))
#iris.cls('User.PythonTest').fromPythonString(moji)
iris.cls(__name__).fromPythonString(moji)
}
}
上の IRIS クラスでは、以下のような処理を行っています。
① Python プログラム(PythonPrint)で、拡張子「.xlsx」のエクセルファイルを pandas データフレームに読み込む ↓② Dataframe のデータを行単位で読み込み、iris モジュールの cls() メソッドで文字列をグローバルに格納するクラスメソッド(fromPythonString)に渡す ↓③ クラスメソッドの中で $LISTFROMSTRING() を使用して ^ISJ グローバルにセットする。
IRISターミナルから正しく実行できているかを確認します。
USER>kill ^ISJ
USER>do ##class(User.PythonTest).PythonPrint("c:\temp\test.xlsx")
USER>zw ^ISJ
^ISJ=4
^ISJ(1)=$lb("Name","Age","Address")
^ISJ(2)=$lb("佐藤","50","東京")
^ISJ(3)=$lb("加藤","40","大阪")
^ISJ(4)=$lb("伊藤","30","京都")
USER>
Pythonプログラムのデバッグを行いたい場合は、 Python シェルに切り替えて確認することができます。
USER>kill ^ISJ
USER>do ##class(%SYS.Python).Shell()
Python 3.9.5 (default, Jan 31 2022, 17:55:36) [MSC v.1927 64 bit (AMD64)] on win32
Type quit() or Ctrl-D to exit this shell.
>>> import iris
>>> import pandas
>>> df=pandas.read_excel('c:\\temp\\test.xlsx', header=None)
>>> for key,row in df.iterrows():
... moji=','.join(list(map(str, row)))
... iris.cls('User.PythonTest').fromPythonString(moji)
...
>>> exit()
USER>zwrite ^ISJ
^ISJ=4
^ISJ(1)=$lb("Name","Age","Address")
^ISJ(2)=$lb("佐藤","50","東京")
^ISJ(3)=$lb("加藤","40","大阪")
^ISJ(4)=$lb("伊藤","30","京都")
USER>
上のサンプルでは、IRISのクラスメソッドを呼び出して操作していますが、Python プログラムで直接 IRIS のグローバルに書き込むことも可能です。その場合は、iris.gref("^ISJ") のように、^ISJ へのグローバル参照を取得して書き出しが行えます。詳細は以下のドキュメントをご覧ください。https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=AFL_epython#AFL_epython_irisapi_gref
USER>do ##class(%SYS.Python).Shell()
Python 3.9.5 (default, Jan 31 2022, 17:55:36) [MSC v.1927 64 bit (AMD64)] on win32
Type quit() or Ctrl-D to exit this shell.
>>> import pandas
>>> glo=iris.gref('^ISJ')
>>> glo.kill([None])
>>> df=pandas.read_excel('c:\\temp\\test.xlsx', header=None)
>>> for key,row in df.iterrows():
... moji=','.join(list(map(str, row)))
... glo[key]=moji
...
>>> exit()
USER>zw ^ISJ
^ISJ(0)="Name,Age,Address"
^ISJ(1)="佐藤,50,東京"
^ISJ(2)="加藤,40,大阪"
^ISJ(3)="伊藤,30,京都"
USER>
以下の関連記事も、ぜひご覧ください。
PandasデータフレームをIRISに保存する - 簡易メモInterSystems IRIS グローバル($LB) を pandas.DataFrame に変換する @Megumi.Kakechi さん、役に立つ記事ありがとうございます!
細かい点ですが、クラスメソッドから、同じクラスの別のクラスメソッドを呼ぶときに、
iris.cls("User.PythonTest").fromPythonString(moji)
のように呼んでますが、クラス名を繰り返さずに、
iris.cls(__name__).fromPythonString(moji)
で呼べるようです。(参考:英語のコミュティティ記事)
Pythonなら、clsという変数で自分のクラスへの参照が入って欲しいのですが、これは将来の改善を待たないといけないみたいです。 @Minoru.Horita さん
情報ありがとうございます!__name__で呼べるとは、スマートでいいですね。早速記事に反映させていただきました。
記事
Mihoko Iijima · 2021年1月29日
これは InterSystems FAQ サイトの記事です。
システム提供の %SYS.GlobalQueryクラス の Size クエリーを使用することで取得できます。
使用例は、以下のサンプルコードをご参照ください。※カラムやパラメータの指定はクラスリファレンスをご確認ください。
set dir="C:\intersystems\iris\mgr\user" // IRIS.DAT(またはCACHE.DAT)フォルダ
set rs = ##class(%ResultSet).%New("%SYS.GlobalQuery:Size")
do rs.Execute(dir) // 第3引数でマスク指定も可
while (rs.Next()) {
set gname= rs.Get("Name") // グローバル名
set gsize= rs.Get("Used MB") // グローバルサイズ(MB)
write gname," : ",gsize,!
}
グローバル変数のサイズが大きい場合、取得時間がかかる場合もあります。その場合、Size クエリー 実行時、第 6 引数に 1 を指定してクエリを再実行してみてください。
第 6 引数の指定により、簡易モードでサイズを取得します。簡易モードのため「Used MB」は取得できませんが、「Allocated MB」は取得できます。
以下、第 6 引数を指定した場合の実行例です(Used MB ではなく、Allocated MB を取得しています)。
set dir="C:\intersystems\iris\mgr\user" // IRIS.DAT(またはCACHE.DAT)フォルダ
set rs = ##class(%ResultSet).%New("%SYS.GlobalQuery:Size")
do rs.Execute(dir,,,,,1) // 第3引数でマスク指定も可
while (rs.Next()) {
set gname= rs.Get("Name") // グローバル名
set gsize= rs.Get("Allocated MB") // グローバルサイズ(MB)
write gname," : ",gsize,!
}
記事
Megumi Kakechi · 2025年6月20日
これは InterSystems FAQ サイトの記事です。こちらの記事では、非ミラー環境にミラー環境でオンラインバックアップしたバックアップファイルをリストアする方法をご紹介します。
手順は大きく分けて2つになります。
1.バックアップファイルからリストアを行う
2.データベースファイルのミラー属性を削除する
1.バックアップファイルからリストアを行う
以下は、^DBREST ユーティリティによる対話形式のリストア方法になります。
%SYS>do ^DBREST
Cache DBREST Utility
Restore database directories from a backup archive
Restore: 1. All directories
2. Selected and/or renamed directories
3. Display backup volume information
4. Exit the restore program
1 => 2 // <-- <Enter> ミラー環境でバックアップしたバックアップファイルを、ミラー環境ではない環境にリストアする場合は、2 を選択する必要があります
// ※『1. All directories』を選択した場合、リストア対象はミラーデータベースのみになるため、ミラーでなければリストアはされません
Do you want to set switch 10 so that other processes will be
prevented from running during the restore? Yes => // <-- <Enter>
// Yes の場合、リストア中に他のプロセスがグローバルデータにアクセスできないように制御するスイッチ10を設定します。
Specify input file for volume 1 of backup 1
(Type STOP to exit)
Device: C:\Backup\FullDBList_20250402_001.cbk // <-- バックアップファイルパス
This backup volume was created by:
IRIS for Windows (x86-64) 2024.1
The volume label contains:
Volume number 1
Volume backup APR 2 2025 09:50AM Full
Previous backup DEC 23 2024 12:21PM Full
Last FULL backup DEC 23 2024 12:21PM
Description Full backup of all databases that are in the backup database list.
Buffer Count 0
Mirror name TESTMIRROR
Failover Member MACHINEA
Is this the backup you want to start restoring? Yes => // <-- <Enter>
Restoring a mirror backup but this system is not a mirror member
For each database included in the backup file, you can:
-- press RETURN to restore it to its original directory;
-- type X, then press RETURN to skip it and not restore it at all.
-- type a different directory name. It will be restored to the directory
you specify. (If you specify a directory that already contains a
database, the data it contains will be lost).
c:\intersystems\iris\mgr\mirrordata\ (:mirror:TESTMIRROR:MIRRORDATA) => // <-- 同じで良ければ <Enter>
Directory c:\intersystems\iris\mgr\mirrordata\ does not contain a database
or it can't be accessed.
Do you want to create this database? Yes => // <-- <Enter> IRIS.datがないときは作成する
Do you want to change this list of directories? No => // <-- <Enter>
Restore will overwrite the data in the old database. Confirm Restore? No => y // <-- y+<Enter>
***Restoring c:\intersystems\iris\mgr\mirrordata\ at 10:22:10
84 blocks restored in 0.0 seconds for this pass, 84 total restored.
***Restoring c:\intersystems\iris\mgr\mirrordata\ at 10:22:10
2 blocks restored in 0.0 seconds for this pass, 86 total restored.
***Restoring c:\intersystems\iris\mgr\mirrordata\ at 10:22:10
2 blocks restored in 0.0 seconds for this pass, 88 total restored.
Specify input file for volume 1 of backup following APR 2 2025 09:50AM
(Type STOP to exit)
Device: STOP <-- STOP+<Enter>
Do you have any more backups to restore? Yes => N // <-- 他になければ N+<Enter>
Mounting c:\intersystems\iris\mgr\mirrordata\ which is a mirrored DB
c:\intersystems\iris\mgr\mirrordata\ ... (Mounted)
There are mirrored DBs restored, please make sure the mirror
journal files are copied to a specific directory in order to
let system restore the journal records.
Please enter the directory contains the mirror journal files:
<C:\InterSystems\IRIS\mgr\journal\>? // <-- 特になければ <Enter>
*** WARNING **** Failed to restore the journal records for the mirrored DBs
// バックアップからリストアした後、さらに現時点のDBまでミラージャーナルファイルを使用してキャッチアップするかどうかの選択
// バックアップ時点までで良ければ、そのまま<Enter>するとディレクトリ内にリストア対象のミラージャーナルがないため、上記Warningが出てリストアは終了する
%SYS>
2.データベースファイルのミラー属性を削除する
ミラー環境で取得したバックアップを、非ミラー環境にリストアすると、そのままではDB書き込みができません。これは、リストアされたデータベースは、読み取り専用でマウントされるためです。(ミラーデータベースについては、別ミラー環境やミラー構成でない環境にリストアすると読み取り専用になります)この為、リストア完了後に以下の操作にてデータベースファイルのミラー属性を削除する必要があります。
手順は、以下のようになります。
%SYS>do ^MIRROR
This instance is not initialized as a mirror member
1) List mirrored databases
2) Remove one or more mirrored databases
3) Create a Mirror
4) Join Mirror as Failover Member // ミラーが有効になっている場合、この設定が表示されます
5) Join Mirror as Async Member // ミラーが有効になっている場合、この設定が表示されます
Option? 2 // Mirror DBからMirror 属性を削除します
There are xxx mirrored databases on this system
Remove (O)ne mirrored database, (A)ll mirrored databases or (Q)uit? <quit> A // A + <Enter> すべてのMirror DBを対象とします
// ミラーDBが1つしかないときは以下のようになります。Yでミラー属性を削除します
// There is one mirrored database on this system
// Remove it? <No> // Y + <Enter>
Removing c:\intersystems\iris\mgr\mirrordata\ ...succeeded
:
Press <enter> to return to the main menu... // <Enter> で抜けます
1) List mirrored databases
2) Remove one or more mirrored databases
3) Enable Mirror Service
:
Option?
%SYS>
これで、リストアは完了です。
詳細は以下のドキュメントをご覧ください。ミラーリングされたデータベースのフルバックアップ・リストア
お知らせ
Yoichi Miyashita · 2021年6月18日
InterSystems は、より新しく優れたオプションが利用可能になったときに従来のテクノロジーの開発を中止することがあります。ただし、それら機能は最小サポートバージョン以後の製品であれば他の機能と同等にサポートします。
非推奨とは、InterSystems が現在積極的に開発を行っておらず、より優れたオプションが存在する機能またはテクノロジーを意味します。非推奨の機能やテクノロジーを使用されているお客様はそれらを使用しないように計画していただく必要がございます。InterSystems は非推奨の製品機能をサポートするためのスタッフの専門知識を維持しております。例: Zen, Zenレポート, Cache Server Pages (CSP)
廃止されたとはその機能またはテクノロジーが既存アプリケーションであっても今後利用できなくなることを意味します。InterSystems はそのような技術を使用し続けることがお客様のリスクであると考えます。理由には以下が挙げられますが、これらに限定するものではありません。
使用するのが少数のお客様に限られる
現在のテクノロジーやセキュリティ対策と互換性がなくなる
現在の製品実装との非互換性によりアプリケーションのメンテナンスが困難である
サードパーティの廃止された機能に依存している
例: DCP (Distributed Cache Protocol; ECPにより置き換え), WebLink, Cache Direct (Visual M/VISM)
お知らせ
Mihoko Iijima · 2020年8月3日
開発者のみなさん、こんにちは!
インターシステムズは、2020年7月21日(火)に オンラインにて開催された開発者向けイベント「Developers Summit 2020 Summer」(主催:翔泳社)に協賛し、セミナーで IRIS プログラミングコンテストについてご紹介しました。
ご紹介内容は、コンテストに限らず、コンテナを使用した開発環境の整備にも使えますので、セミナーを見逃された方もぜひご覧ください!
もくじ
※ YouTubeでご覧いただくと目次の秒数にジャンプできます。
0:00~ InterSystems が開催しているプログラミングコンテストの概要
2:38~ 本セッションの目標
4:21~ ≪腕試しの準備その1≫開発環境の「テンプレート」で何が提供されるか
8:26~ テンプレート起動迄の手順(各コンテスト共通)
10:02~ 優勝作品のご紹介(2020年5月分開催 Native APIの回)
Banzaiさんの作品
OpenExchangeトップページ
11:40~ ≪腕試しの準備その2≫ご応募までの実際の流れ RESTサーバ作成用のテンプレート
13:00~ テンプレートで準備されるREST サーバ作成環境について
16:47~ テンプレートの中身解説+コンテナの開始とサンプルコードの実行(実演)
23:02~ GET要求 /test で動作する testMethod()の追加と実行
25:02~ 実行内容と応募までの流れ InterSystems 開発者コミュニティ ユーザ登録ページ
26:35~ コンテストの情報について コンテスト告知ページ
27:12~ InterSystems 開発者コミュニティのご紹介 「はじめての InterSystems IRIS 」セルフラーニングシリーズ
記事
Mihoko Iijima · 2020年9月16日
これはInterSystems FAQ サイトの記事です。
サーバ側ロジックの記載に使用する ObjectScript でのエラーが発生した場合の対処方法については「ObjectScriptでエラーが発生したら」にまとめています。
ぜひご参照ください!