記事
Megumi Kakechi · 2021年2月2日 2m read

2つのデータベースにある複数のグローバルやルーチンを比較する方法

これは InterSystems FAQ サイトの記事です。


※こちらの方法は、ミラーリング、シャドウイング、またはその他のメカニズムを使用して複製したデーターベースを比較したい場合に利用します。

グローバル変数の比較には、DATACHECKユーティリティを利用できます。以下ドキュメントをご参照ください。
DataCheckの概要【IRIS】

DATACHECKユーティリティの実行サンプルは、添付のPDFをご覧ください。
 

***

ルーチンの比較は、システムルーチン %RCMP か、管理ポータルを使用します。

以下は、管理ポータルでの使用方法になります。

  例えば、以下ルーチンがUSERネームスペースにあるとします。

test() public{
 quit "hello"
}

以下ルーチンがUSER2ネームスペースにあるとします。

test() public{
 quit "こんにちは"
}

 

以下は、USERネームスペースに接続したターミナルで %RCOM を実行した結果になります。

※ Compare: にルーチン名を記述し、 with: に比較したいルーチン名を記載します。
  別ネームスペースにあるルーチンを指定する場合は |"ネームスペース名"|ルーチン名.MAC で指定します。

USER>do ^%RCMP
 
Compare: comptest.mac                   with: |"USER2"|comptest.mac
Compare:  //【メモ】比較対象がない場合はEnterを押下
 
Ignore Comment Differences? No => No
Ignore Leading White Space? No => No
 
Display Results on
Device: c:\temp\comp.txt   //【メモ】ファイル名を指定するとファイル出力します 
Parameters? ("WNS") =>
comptest.MAC                  |"USER2"|comptest.MAC
*******************************************************************************
USER>

  比較結果は以下の通りです。

                   Routine Comparison   02 Feb 2021   2:31 PM
                 From directory: c:\intersystems\iris\mgr\user\

comptest.MAC                  |"USER2"|comptest.MAC  
*******************************************************************************
comptest.MAC
 +2         quit "hello"
...................
|"USER2"|comptest.MAC
 +2         quit "こんにちは"
******************************************************************************

 

00
0 0 0 17