Pesquisar

Article
· Oct 7, 2021 3m de lecture

ジャーナルファイルの内容を管理ポータル以外で参照する方法

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

ジャーナルファイルのサイズが大きすぎて、管理ポータルで検索やフィルタリング等できない場合、以下の2つの方法で参照することができます。

① ^JRNDUMP ユーティリティを使用する方法
② プログラムで参照する方法

============================================================ 

① ^JRNDUMP ユーティリティを使用する方法 例えば、グローバル参照 ^ABC を含むジャーナルファイルのすべてのレコードを選択する場合は、以下のようになります。


※以下、すべてのコマンドは %SYS ネームスペースで実行してください。

 

DO SELECT^JRNDUMP("C:\MyCache\mgr\journal\YYYYMMDD.001","","","^ABC",1)

 

グローバル参照 ^ABC に完全に一致するレコードのみを選択する場合は、以下のようになります。 

 

DO SELECT^JRNDUMP("C:\MyCache\mgr\journal\YYYYMMDD.001","","","^ABC",0)

 

グローバル ^ABC に対するローカルの Set 処理のレコードのみを選択する場合は、以下のようになります。 

 DO SELECT^JRNDUMP("C:\MyCache\mgr\journal\YYYYMMDD.001","","","^ABC","",6)

 

グローバル ^ABC に対するローカルおよびリモートの Set 処理のレコードのみを選択する場合は、以下のようになります。 

 

 DO SELECT^JRNDUMP("C:\MyCache\mgr\journal\YYYYMMDD.001","","","^ABC","","s")

 

詳細は下記ドキュメントページをご覧ください。


^JRNDUMP を使用したジャーナル・レコードの表示


============================================================ 
② プログラムで参照する方法 %SYS.Journal.Record クラスを使用して、任意のジャーナルファイルのレコード内容を取得することができます。

 

  set jrn="C:\intersystems\cache\mgr\journal\20160101.003"
  set log="C:\temp\journal.log"
  set file=##class(%File).%New(log)
  do file.Open("WSN")
  set rs=##class(%ResultSet).%New("%SYS.Journal.Record:List")
  do rs.Execute(jrn)
  while rs.Next() {
  set time=rs.Get("TimeStamp") // 時間:yyyy-mm-dd hh:mm:ss
  set type=rs.Get("TypeName"// タイプ:SET、KILL、xxTrans など
  set gref=rs.Get("GlobalReference") // グローバル参照
  set gval=rs.Get("NewValue"// 更新後の値
  /* if gref["ABC" { */
  set line=time_" ["_type_"] "_gref
  if type="SET" { set line=line_"="_gval }
  do file.WriteLine(line)
  /* } */
  }
  do file.Close() 

 

※このサンプルコードは、表示対象のデータが一般的なテキストデータのみで構成されていることを前提に記述されています。

※データにコントロールコード等非表示のデータが含まれる場合にはファイルに正確に出力されない場合があります。

 

詳細は下記クラスリファレンスをご覧ください。


クラスリファレンス(%SYS.Journal.Record:List)

4 Comments
Discussion (4)2
Connectez-vous ou inscrivez-vous pour continuer
Article
· Oct 5, 2021 2m de lecture

Webゲートウェイ/CSPゲートウェイの設定管理ページにどのクライアントからもアクセスできるようにする

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

Web/CSPゲートウェイ管理ページは、通常クライアントマシンからアクセスできないように構成されています。

 

クライアントからその管理ページにアクセスすると、以下の様なメッセージが返ってきます。

 

システム管理  このシステムを使用する権限がありません。

Not authorized to use this facility.

You are not authorized to use this facility.

 

任意のクライアントからアクセスするためには以下の操作を行います。

 

Web/CSPゲートウェイ管理ページにアクセス可能なシステムからブラウザを起動し、管理ポータルにアクセスします。


管理ポータル>システム管理>構成>の所でCSPゲートウェイ管理をクリックします。


表示されるページの左ペインに表示されるデフォルトパラメータをクリックします。

 

システム管理マシンの所に*.*.*.*と入力し、設定を保存ボタンを押下げます。

 

しかしながら任意のクライアントから管理ページにアクセスできるようにするのはセキュリティの観点からはあまりお勧めできません。


アクセスできるクライアントはなるべく限定することをお勧めします。

 

クライアントアドレスの指定方法としては、以下のような指定形式があります。

 

[SYSTEM]
System_Manager=190.8.7.4-6

上記の例は、以下の記述をより簡単にしたものです。

[SYSTEM]
System_Manager=190.8.7.6, 190.8.7.5, 190.8.7.4

以下の例のように、ワイルドカードも使用できます。

[SYSTEM]
System_Manager=190.8.7.*

またはCSP.iniを直接編集することで上記と同じ設定を行うことが可能です。

Windowsシステムの場合、<システムドライブ>:¥intepub¥CSPGatewayにCSP.iniファイルがあります。

UNIX系システムの場合、CSPnsdと同じディレクトリに、CSP.iniファイルがあります。

[SYSTEM]セクションに、以下の行を追加します。 

[SYSTEM]
System_Manager=190.8.7.6, 190.8.7.5, 190.8.7.4

 

ファイル修正後、この設定を反映するためには、CSPnsdの再起動が必要です。

 

詳細は、下記ドキュメントページをご参照ください。


Webゲートウェイ管理ページでのセキュリティの考慮事項【IRIS】
CSP ウェブゲートウェイ管理ページでのセキュリティの考慮事項

Discussion (0)1
Connectez-vous ou inscrivez-vous pour continuer
Question
· Sept 27, 2021

How to find a global's original namespace ? Potentially mapped from a different namespace

How to find a global's original namespace ? Potentially mapped from a different namespace .

I have a global ^Custom that exists in multiple namespaces but it could mapped from namespace Drone(A) to Launch(B)

Without access to Cache management portal how to find where is my global located using cache code ?

Like if ^Custom == ^[Drone]Custom ??

5 Comments
Discussion (5)0
Connectez-vous ou inscrivez-vous pour continuer
Question
· Sept 23, 2021

Problem starting production after upgrade cache to iris

Hello,

We upgrade from CACHE 2016 to IRIS 2021 and when we try to start a production gives the error behind.

I think the error could be that the Ens.Director is deprecated on IRIS 2021, is this possible? 

09/22/21-14:35:35:563 (16501) 1 [Utility.Event] Production AutoStart: ERROR in namespace 'REGINUS': 'ERROR <Ens>ErrException: <CLASS DOES NOT EXIST>zgetProductionItems+29^Ens.Director.1 *%Library.CacheStorage -- logged as '22 Sep 2021' number 1 @''' $ZU(56,2)='$Id: //adhocs-iris/2020.1.0.217.1/ISC_INTERNAL_BASE_20418_001/kernel/common/src/aclass.c#1 $ 9520 0'

5 Comments
Discussion (5)0
Connectez-vous ou inscrivez-vous pour continuer
Annonce
· Sept 20, 2021

Video: Kafka! Integrating the World's Favorite Stream Processor with InterSystems IRIS

Hey Developers,

Get an introduction to Apache Kafka, a popular event-streaming platform, and see a demonstration of the upcoming Kafka integration with InterSystems IRIS Interoperability:

⏯ Kafka! Integrating the World's Favorite Stream Processor with InterSystems IRIS


🗣 Presenter: Helen Bang, Systems Developer, InterSystems

Subscribe to InterSystems Developers YouTube. Enjoy and stay tuned!

1 Comment
Discussion (1)0
Connectez-vous ou inscrivez-vous pour continuer