新着
記事 Megumi Kakechi · 4 hr 前 3m read

これは InterSystems FAQ サイトの記事です。
通常、フォームデータを受け取りたい場合は、CSPと同様に %request.Get() で受け取れます。

URLパラメータで、?name=123 のようにリクエストする場合も、同様に%request.Get(“name”) で受け取れます。
 

ファイルの場合は、%request.MimeDataで取得できます

例:

  set fname=%request.MimeData("files",1).FileName
  set upload=%request.MimeData("files",1)

  set save=##class(%Stream.FileBinary).%New()
  set save.Filename="C:\work\in\"_fname
  do save.CopyFromAndSave(upload)


HTMLやPostmanなどで、通常のテキストデータをフォームデータとして送る場合も、%request.Get() で受け取れます。

例:

set name=%request.
0
0 4
記事 Megumi Kakechi · 2月 25 5m read

これは InterSystems FAQ サイトの記事です。
こちらの記事では、ミラー環境をメジャーバージョン(例:2024.1.0 -> 2025.1.1)にアップグレードする際の手順についてご説明します。

こちらの手順は、「ミラー環境アップグレード時に計画的なダウンタイムを伴う」ことを前提とした手順になります。
こちらのドキュメント にあるイメージの、「 Procedure 2: Major Version Upgrades with Planned Downtime」の手順です。

  

【注意1】
ミラーを構成するすべてのフェイルオーバーおよび DR 非同期メンバーは、同じバージョンの InterSystems IRIS である必要があります。異なるバージョンが許容されるのは、アップグレード中のみです。
アップグレードしたメンバーがプライマリメンバーになると、アップグレードが完了するまで、他のフェイルオーバーメンバーおよび DR 非同期メンバーは使用できません。
 
【注意2】
InterSystems IRIS for Health および Health Connect でミラーリングを構成する場合は、HSSYSを必ずミラーリングするようにしてください。また、アップグレードは2024.1以降のバージョンへ行うようにしてください。

0
0 27
記事 Megumi Kakechi · 2月 15 4m read

これは InterSystems FAQ サイトの記事です。
こちらの記事では、ミラー環境をメンテナンスリリースバージョン(例:2025.1.0 -> 2025.1.1)にアップグレードする際の手順についてご説明します。

脆弱性の問題の対応などで、最新メンテナンスリリースバージョンへのアップグレードが必要な場合はこちらの方法をご使用ください。

こちらの手順は、「ミラー環境アップグレード中にアプリケーションの変更を伴わない」ことを前提とした手順になります。
こちらのドキュメント にある以下のイメージの、「 Procedure 1: Maintenance Release Upgrades with No Application Changes」の手順です。
※ ミラーが使用できなくなるのは、計画的フェイルオーバーの実行時間のみです。

  
【注意1】
InterSystems IRIS for Health および Health Connect でミラーリングを構成する場合は、HSSYSを必ずミラーリングするようにしてください。また、アップグレードは2024.1以降のバージョンへ行うようにしてください。
【注意2】
ミラーリング構成のInterSystems IRISでは、ジャーナルファイルの互換性を保つため、バックアップメンバーを先に、プライマリを後にアップグレードする必要があります。

0
0 34
記事 Megumi Kakechi · 1月 30 9m read

これは InterSystems FAQ サイトの記事です。
^SystemPerformance ユーティリティ (旧:^pButtons)  を使用すると、 InterSystems製品が稼働するプラットフォームに関する詳細なパフォーマンス・データを収集することができます。
収集できるのは以下の情報になります。

・IRIS の設定:構成、ドライブの割り当てなど 
mgstat:IRISのパフォーマンスメトリック(グローバル参照や物理読み込み、など)
・オペレーティングシステムのリソースとパフォーマンスに関するメトリック
 ※Unixの場合は vmstatとiostat、Windowsの場合は パフォーマンスモニター
・その他の有用なメトリック

こちらの記事では、^SystemPerformanceツール(旧:^pButtons)の実行方法と、出力情報の利用方法についてご紹介します。


【実行方法】

※^SystemPerformance の実行にはオペレーティングシステムの管理者権限が必要です。
管理者としてシステムにログインしてから実行してください。特にWindowsで UAC(User Access Control)が有効になっている場合は特別な実行方法が必要になります。詳しくは こちらIMPORTANT: の箇所)をご確認ください。

0
1 42
記事 Megumi Kakechi · 1月 23 2m read

これは InterSystems FAQ サイトの記事です。
こちらの記事では、データベースサイズを拡張する方法をご紹介します。


1.今すぐ拡張したい場合

2.空き容量がなくなったときに、拡張するサイズを設定したい場合



1.今すぐ拡張したい場合

管理ポータル、またはコマンドで、拡張したいサイズにデータベースサイズを指定します。

管理ポータル:
[システム管理] > [構成] > [システム構成] > [ローカルデータベース]

対象のデータベースを選択し、データベース属性のダイアログで、「現在」に拡張したいサイズ(拡張後のサイズ)を指定します。
保存クリック後、即座にデータベースは拡張されます。

 

上記例は、もともと11MBだったサイズを50MBに拡張、つまり39MB拡張したため、messages.logには以下のようなログが記録されます。

08/04/25-11:27:01:333 (3468) 0 [Database.StartExpansion] Starting Expansion for database c:\intersystems\iris\mgr\user\. 39 MB requested.
08/04/25-11:27:01:424 (3468) 0 [Database.
0
0 35
記事 Megumi Kakechi · 1月 12 4m read

これは InterSystems FAQ サイトの記事です。
こちらのトピックでは、ミラー環境でECPを行う場合の設定方法注意すべき点について、ご案内します。

【設定方法】

手順は以下になります。


(1) 両方のフェイルオーバーメンバおよび任意の DR 非同期メンバで、ECPを有効にします

(2) ECP アプリケーションサーバ(ECPクライアント)で、ECPの設定を行います

(3) ECP アプリケーションサーバ(ECPクライアント)で、リモートデータベースの作成を行います

(4) 動作確認&リダイレクトのテストを行います


今回作成するECP構成は、ドキュメントにある以下のイメージの赤丸のインスタンスによる構成になります。

 




  A:プライマリ・
フェイルオーバーメンバ
B:バックアップ・
フェイルオーバーメンバ
C:DR非同期 ECPアプリケーションサーバ
(クライアント)
ミラー名 TESTMIRROR TESTMIRROR TESTMIRROR  
ミラーメンバ名 MACHINEA MACHINEB MACHINEC  
IPアドレス 10.0.0.244 10.0.0.151 10.0.0.60 10.0.0.
0
0 37
記事 Megumi Kakechi · 1月 9 5m read

これは InterSystems FAQ サイトの記事です。
ミラーの現在の状態は、管理ポータルのミラーモニタで確認できます。

こちらのトピックでは、それらの情報をコマンドで確認する方法をご紹介します。


(1) フェイルオーバメンバ(プライマリ・バックアップ)の状態を確認する

(2) 非同期メンバの状態を確認する

(3) ISCAgentの状態を確認する

(4) 定期的にミラーステータスを取得するサンプル(ツール)のご紹介


では、以下のようなミラーの状態を確認してみます(以下はフェイルオーバーメンバ・プライマリの状態)。

 
 

(1) フェイルオーバメンバ(プライマリ・バックアップ)の状態を確認する

フェイルオーバメンバのミラーの状態は、SYS.Mirror クラスの GetFailoverMemberStatus メソッドで確認できます。
結果は出力引数に$list形式で返されます。詳細はクラスリファレンスをご覧ください。

   例)
    プライマリ、バックアップともActiveな状態

// フェイルオーバーメンバ(プライマリまたはバックアップ)で確認
// 以下はプライマリで実行した例
%SYS>set x=##class(SYS.Mirror).GetFailoverMemberStatus(.thismember,.
0
0 50
記事 Megumi Kakechi · 12月 16, 2025 2m read

これは InterSystems FAQ サイトの記事です。
こちらの記事では、コマンド・パイプデバイスを使用して、外部コマンドの出力を取得する方法をご紹介します。

以下のように行います。
★コマンド出力を取得する例:

USER>kill
USER>set cmd="netstat -anp tcp"
USER>set pipe=##class(%File).%New(cmd)
 
USER>write pipe.Open("rq")
1
USER>while 'pipe.AtEnd { write !,pipe.ReadLine() }
アクティブな接続
  プロトコル  ローカル アドレス          外部アドレス        状態
  TCP    0.0.0.0:23             0.0.0.0:0              LISTENING
  TCP    0.0.0.0:80             0.0.0.0:0              LISTENING
(中略)
  TCP    192.168.172.1:139      0.00.
0
0 45
記事 Megumi Kakechi · 12月 9, 2025 7m read

これは InterSystems FAQ サイトの記事です。
この記事では、ミラーリングの構成方法をご紹介します。

2025.1のバージョンより、既存のミラーリングされたデータベースをミラーメンバーに追加する際、「ミラーメンバーからの自動データベースダウンロード」が可能となりました。
以前のバージョンでは、手動でのバックアップとリストアを行っていましたが(もしくはIRIS.datのコピー)、この機能を使用するとデータベース作成時に、別のミラーメンバーから自動的にダウンロードされます。大変便利な機能なので、ぜひお試しください。
※ こちらの問題 があるため、「自動データベースダウンロード」機能は最新バージョン 2025.1.2~ でお試しください。​​​​​


本記事では、「自動ダウンロード」の機能についても、あわせてご紹介します。
では、ミラーの構成手順をご紹介します。
今回ご紹介するのは、同期ミラーによるフェールオーバー(常にデータベースが同期されて複製、障害時に自動でフェールオーバー)構成です。
手順は以下になります。


0
0 73
InterSystems公式 Megumi Kakechi · 11月 20, 2025

インターシステムズは InterSystems IRIS®InterSystems IRIS® for HealthTMHealthShare® Health Connect のバージョン 2025.3 をリリースしました。
2025.3 は Continuous Delivery(CD)リリースです。
 

【リリースハイライト】
Secure Wallet(セキュアウォレット)
  IRISSECURITY データベース上に構築された、新しい暗号化フレームワークで、機密データ管理を強化し、システムのセキュリティとアクセス制御を向上しました。

拡張されたオブザーバビリティとクラウド連携
  OpenTelemetry メトリクスが強化され、新たにプロセスおよび ECP メトリクスを追加しました。さらに、ジャーナルアーカイブが Azure Blob Storage に対応し、コスト効率の高い保管が可能になりました。

データ & AI の改善
  外部テーブルで JOIN のプッシュダウンがサポートされ、SQL パフォーマンスが向上しました。ベクトル検索では高速かつ堅牢な類似検索を実現する改良版 HNSW インデックスを導入しました。

ヘルスケア機能の強化
  FHIR Bulk Data Access と認証機能が改善されました。

0
0 64
記事 Megumi Kakechi · 9月 15, 2025 3m read

これは InterSystems FAQ サイトの記事です。
ビジネスサービスやビジネスオペレーションで EnsLib.CloudStorage.InboundAdapter アダプタを使用したり、%Net.Cloud.Storage.Client を使用することで、Amazon s3(クラウドストレージAPI)のファイルにアクセスすることが可能です。

いずれの場合も、事前に Javaランタイムをシステムにインストールし、インストールしたJavaランタイムの JAVA_HOME 情報を、管理ポータルにて設定する必要があります(手順は後述します)。


今回は、%Net.Cloud.Storage.Client クラスを使用したサンプルをご紹介します。
手順は以下のようになります。


【手順】

以下のS3パケットにアクセスする手順になります。

   

(1)  事前に、コマンドプロンプトにて aws コマンドを使用して動作確認をしておきます(S3に存在しているファイル一覧がプロンプトに返ればOKです)。

> aws s3 ls s3://isj-s3
2025-04-30 16:20:52         32 abc.txt
2025-04-30 16:14:00      21529 messages.log

もしくは

>aws s3 --endpoint-url https://s3.
2
0 122
記事 Megumi Kakechi · 8月 18, 2025 4m read

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

WebゲートウェイのSystem Status(システムステータス)ページでは、現在のすべてのアクティブな接続のステータスを確認することができます。

最初のステータステーブル (システムステータス) は、IRIS への接続に関する情報を表示します。
2番目のステータステーブル (InterSystems IRIS サーバ) は、InterSystems IRIS サーバに関する情報を表示します。
3 番目のステータステーブルは、アプリケーションパスの情報を表示します。
4 番目のテーブルは、Web ゲートウェイの応答キャッシュに保持されるフォームを表示します。

いくつかのサンプル接続ステータスを例にご説明します。


【ケース1】

接続最小数 の設定で、現在3接続が処理中の場合。
使用中のプロセスは InUse のステータス、待ち受けで空いているプロセスは Free で表示されます。

Free の接続は、[非活動タイムアウト(無使用タイムアウト)] まで残り、タイムアウトを過ぎると自動的に終了します。
 ただし、[サーバ接続最小数] 分の接続は上記タイムアウトが過ぎても残り、次のリクエストで使用されます。
 アイドル時間/タイムアウトの表示例は、0/0(接続最小数で残り続ける接続) や、300/86400(タイムアウト86400秒中、300秒経過)になります。

Server のステータスは、Webゲートウェイレジストリメソッドで使用のプロセスです。
 CSP.iniで以下の設定をしている場合は、このプロセスは作成されません。
 [SYSTEM]
 REGISTRY_METHODS=Disabled

  

1
0 98
記事 Megumi Kakechi · 8月 13, 2025 3m read

これは InterSystems FAQ サイトの記事です。
$ZF(-100) は、OSコマンドまたはプログラムを子プロセスとして実行するのに使われますが、一緒に便利なキーワードを指定することが可能です。

$ZF(-100)でコマンドの実行がうまくできない、という経験をされた方も多いかと思います。

そんな時は、この便利なキーワードを使って原因の調査をしていきましょう。

キーワードには以下のようなものがあります。








/SHELL シェルを使用して program を実行する。既定では、シェルは使用されない。
/STDIN=filename 入出力リダイレクト入力ファイル
/STDOUT=filename 入出力リダイレクト標準データ出力ファイル
/STDERR=filename 入出力リダイレクト標準エラー出力ファイル
/LOGCMD 結果として得られるコマンド行を messages.log に記録する
/NOQUOTE コマンド、コマンド引数、またはファイル名の自動引用を禁止する


使用方法は、以下のようになります。

write $zf(-100,"/SHELL /LOGCMD /STDERR=err.log","command1","command2",.
0
1 64
記事 Megumi Kakechi · 8月 4, 2025 2m read

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

Webゲートウェイ管理ページで、サーバ毎の最大接続数を設定したり、最大接続に達した場合に待ち時間(キュー)や静的なビジーページを設定することが可能です。

実際にサーバに接続する最大接続数を設定すると、それに達した場合に待ち時間(キュー)で設定した秒数待って、それを過ぎても接続数に空きが出なかった場合に、静的なビジーページに移行するような設定が可能となります。

設定箇所は以下になります。
※Webゲートウェイ管理ページ:
例(URLは環境・バージョンによって変わります):
http://<webserver>/<instancename>/csp/bin/Systems/Module.cxw
 

★全サーバに適用される設定(デフォルトパラメータ)

サーバ単位の個別の設定がない場合は、こちらの設定が適用されます。

構成 > デフォルトパラメータ

最大接続:各サーバの合計接続数の最大数(既定:1024)。

0
1 73
記事 Megumi Kakechi · 7月 31, 2025 2m read

これは InterSystems FAQ サイトの記事です。
アプリケーション保全のために、データベースのジャーナルは必ず有効にしておく必要がありますが、何らかの理由でジャーナルを無効にしなければならない場合があるかと思います。

ディスク容量の縮小や、データ更新時のシステム負荷の削減など理由は様々です。

ここで注意していただきたいのは、データベースのジャーナルを無効にした場合にどのような影響がでてくるのか、ということです。

こちらのトピックでは、「データベースのジャーナルを無効にした場合の影響について」ご説明します。


ジャーナルを無効にする方法は、以下の2種類があります。

1. システム全体で無効にする方法(こちらを行う場合は【慎重】に!

Set $namespace="%SYS"
Do ^JOURNAL  > 2) Stop Journaling (^JRNSTOP)

2. プロセス単位で無効にする方法 ※ご参考

 do DISABLE^%SYS.NOJRN                   // ジャーナリングを停止
 do ENABLE^%SYS.NOJRN                    // ジャーナリングを開始

※ミラーリング対象のデータベースは、ジャーナルを無効にすることはできません。
ジャーナルを無効にした場合、以下のことができなくなります。

0
0 53
記事 Megumi Kakechi · 7月 22, 2025 4m read

これは InterSystems FAQ サイトの記事です。
「定期的にプロセスを監視し、あるイベントが発生したときにのみ処理を実行したい」ような場合に使用できる、便利な機能をご紹介します。

もちろん、Forループを行う常駐プロセスを作成してその中で Hang XX しながらIf文にてイベントを検知したり、タスクスケジュールでルーチンを定期実行してその中でIf文にてイベントを検知して処理することも可能です。

今回ご紹介する、%SYSTEM.Event クラスを使用することで、よりシンプルに処理を作成することが可能となります。

【こんな時に便利】
・テーブルやグローバルに、あるデータが全て格納されたら処理を行いたい
・あるエラーを検知したときにのみ、^SystemCheck情報を取得したい
・処理が必要なものがデータベースに入ったら順番に処理を行いたい(pythonだとQueueモジュールのような感じ)


【使用方法】


準備(任意のプロセス)


do $SYSTEM.Event.Create("test")
これで、testというイベントがシステムワイドで作成されます。
 


パターンA=単純な常駐プロセス


(1) 待機プロセス側
do $SYSTEM.Event.Wait("test")
このコマンドの瞬間、このプロセスは待ち状態になります。
 
(2) 起こす側
do $SYSTEM.Event.

0
1 92
記事 Megumi Kakechi · 7月 15, 2025 4m read

これは InterSystems FAQ サイトの記事です。
IRISのプロセスを終了したい場合、管理ポータルから行う方法と、ターミナルからユーティリティやコマンドを使用して行う方法があります。

こちらのトピックでは、以下の3つの方法で停止する方法をご紹介します。

【プロセスの停止方法】
1.管理ポータルから停止する方法
2.ユーティリティーで停止する方法(RESJOB、JOBEXAM)
3.プログラムで停止する方法


【注意】
IRIS外から(Windowsならタスクマネージャーなど)、プロセスの終了は絶対に行わないでください。

IRIS外からプロセス終了してしまうと、IRIS内部ではプロセスの削除を検知できなかったりすることで、IRISの動作が不安定になったり、システム全体がハングする危険性がありますので、ご注意ください。

外部から停止の例外が一つだけあります。
$ZF コマンドによって起動された子プロセスが、何らかの問題で応答を返さなかった場合、$ZF コマンドを実行した親プロセスはそのまま残り続けます。
そのような親プロセスを終了したい場合、通常の上記1~3の方法では停止できません。
その際は、先に外部から子プロセスを停止する必要があります。子プロセスを特定するためには、以下の方法があります。

例:Windowsの場合
1. process explorer(マイクロソフト製)
2.
0
0 134
記事 Megumi Kakechi · 7月 6, 2025 2m read

これは 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.

0
1 68
記事 Megumi Kakechi · 6月 20, 2025 5m read

これは 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.
0
0 72
InterSystems公式 Megumi Kakechi · 6月 16, 2025

概要




勧告 ID

影響を受ける製品と
バージョン

リスクカテゴリー &
スコア

明示的な発生条件

DP-439649

製品:


  • InterSystems IRIS®
  • InterSystems IRIS for Health
  • HealthShare® Health Connect

バージョン:


  • 2025.1.0.225.1
  • 2025.1.0.223.0
  • 2024.1.4
  • 2023.1.6
  • 2022.1.7

運用:
4 – 高リスク

 

システム安定性:
3 – 中リスク

 


この問題はセキュリティ上の脆弱性ではありません。ユーザーの権限チェックを無効にしたり、承認されたネームスペース外のデータアクセスを可能にするものではありません。

 

暗黙のネームスペースの使用、管理ポータル または データベースに対する読み取り専用/読み取り書き込み混合アクセス。


上記にリストされたInterSystems製品において、以下の機能のいずれかを使用している環境で、ネームスペースを切り替えたりグローバル変数にアクセスしたりする際、予期しない <PROTECT> エラーが発生する可能性があります。

0
0 62
InterSystems公式 Megumi Kakechi · 6月 11, 2025

InterSystems は、以下のサポート対象製品バージョン 2025.1.0、2024.1.4、2023.1.6、および 2022.1.7 に影響する不具合を解決するために、新しいポイント アップデートをリリースしました。

  • InterSystems IRIS
  • InterSystems IRIS for Health
  • HealthShare Health Connect


この問題により、以下の機能を使用する際、予期しない <PROTECT> エラーやアクセス異常が発生する可能性があります:

  • 暗黙のネームスペース
  • データベースへの読み取り専用/読み取り書き込みの混合アクセス
  • 管理ポータルでのルーチンとグローバル一覧表示


含まれる症状:

  • ネームスペースの作成の失敗
  • ルーチンをリストするときに断続的に「アクセス拒否」エラーが発生する
  • 読み取り専用権限を持つユーザーに対してグローバル表示ページがデータを返さない

これらの問題によりアクセス制御やユーザー権限が損なわれることはありませんが、複数のシナリオにおいて、システムの想定された動作に影響を及ぼします
 

解決済みバージョン

修正は次のポイントリリースに含まれています。

  • 2025.1.0.230.2
  • 2024.1.4.516.1
  • 2023.1.6.810.1
  • 2022.1.7.116.
0
0 75
記事 Megumi Kakechi · 6月 1, 2025 5m read

これは InterSystems FAQ サイトの記事です。
ロックテーブルを参照する方法として、主に以下の3つの方法が挙げられます。

1. 管理ポータルで参照する方法
 ⇒ 管理ポータル:システムオペレーション > ロック > ロックを表示(または管理)

2. ^LOCKTAB ユーティリティ を使用する方法
 ⇒ %SYS> do ^LOCKTAB

3. プログラムで参照する方法
 ⇒ プログラム内でロック情報を取得する方法


こちらの記事では、ロックテーブルで参照できる情報について、以下の3つのケースに分けて、かかるロックとその意味をご説明します。

1.トランザクションで更新クエリ実行時、他のプロセスで更新・参照した状態
2.デッドロックとなった状態
3.テーブルロックがかかった状態


目視で一番わかり易いのは、1の 管理ポータルで参照する方法 になるので、こちらで説明したいと思います。

最初に、
1.トランザクションで更新クエリ実行時、他のプロセスで更新・参照をすると、どのようなロックがかかるのか見ていきます。

a. プロセスA(PID=10044)にてトランザクションで、Sample.Personテーブルの ID=1 を更新します。    ⇒ Exclusive_e->Delock ロック

[SQL]TL1:USER>>update Sample.
0
0 94
記事 Megumi Kakechi · 5月 29, 2025 6m read

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

InterSystems製品では、複数のプロセスが同時に同じデータにアクセスする場合、排他制御を行うためにロックを使用できます。
ロックは、データの更新を正しく行い整合性を保つための仕組みで、あるデータに対する更新処理を制御するために使用します。
ロックを操作するには、LOCK(L)というコマンドが使用できます。

こちらの記事では、InterSystems製品で使用できるロックの種類、LOCKコマンドの使い方をご紹介します。


★ロックの種類





  増分 単純
排他(既定) LOCK +^A LOCK ^A
共有 LOCK +^A#"S" LOCK ^A#"S"


プラス記号 (+) をつけると、増分ロックになります。1つのプロセスで複数の増分ロックを追加できます。
プラス記号 (+) をつけないと、単純ロックになります。こちらは、1つのプロセスで1つのロックのみ所有できます。単純ロックコマンド実行時に既存のロックがあった場合、そのプロセスが保持している既存のロックをすべて削除し、新しいロックを追加します。

排他ロック
データを更新するために使用するロックです。
プロセスが特定のロック名の付いた排他ロックを所有している時、その他のプロセスは、そのロック名の付いたロックを取得できません。

0
1 100
記事 Megumi Kakechi · 4月 22, 2025 5m read

先日、お客様よりタイトルのご質問をいただき、サンプルコードを作成しました。せっかくですので、こちらでも共有したいと思います。

今回は、データベースの空き容量情報を取得する、%SYS.DatabaseQueryクラスのFreeSpaceクエリを使用したサンプルとします。

C#.Net と VB.Net で作成してみました。


★C#.Net

using System;
using InterSystems.Data.IRISClient;
{
    class Program
    {
        static void Main(string[] args)
        {
            IRISConnection IRISConnect = new IRISConnection();
            IRISConnect.ConnectionString = "Server=localhost;Port=1972;Namespace=USER;User ID=_SYSTEM;Password=SYS";
            IRISConnect.Open();
            String queryString = "select * from %SYS.DatabaseQuery_FreeSpace(?
0
0 91
記事 Megumi Kakechi · 3月 25, 2025 6m read

以前公開している こちら の記事では、「OAuth 2.0 を利用して IRIS から Gmail を送信する」方法をご紹介しています。

本記事では、 %Net.POP3 クラスを使用してメールを受信するサンプルをご紹介します。


【事前準備(Gmailの場合)】

外部アプリからGmailを受信するには OAuth 2.0が必要となるため、こちらの手順 に従ってAccessToken を取得しておきます。
また、「2.【準備】IRIS で、SSLクライアントの設定をする : 手順(4)」の手順に従って、GMAILSSL(任意の名前)の構成を作成しておきます。


【サンプルの内容】

以下のサンプルでは、

1.Gmailの受信サーバ(servername = pop.gmail.com)に、ユーザ名(user = xxx@gmail.com)、パスワード(pass = パスワード)、AccessTokenを使用して接続し、

Set status=server.Connect(servername,user,pass,accesstoken)

2.メールボックスの情報を取得し、

Do ..ShowMailbox(server)

3.Fetch() メソッドを使用して、添付ファイルを含むメールの内容の取得し、
  (添付は server.AttachDir で指定したディレクトリに保存)

Do 
0
0 67
記事 Megumi Kakechi · 2月 26, 2025 2m read

これは InterSystems FAQ サイトの記事です。
埋め込みSQLの出力ホスト変数は、SQLCODE=0(埋め込みSQL正常終了)の場合のみ、正しい値が設定されていることが保証されます。

InterSystems製品のバージョンによっては、SQLCODEが0以外の場合(該当データがない100やエラー等)で値が設定される場合もありますが、その値は無効です。

特に、IRIS2021.1以降のバージョンでは、SQLCODE=100 の場合、INTO 節で指定された出力ホスト変数は NULL("") にクリアされますので注意が必要です。

Cacheや、IRIS2020.x 以前のバージョンでは、明示的な値のクリアを行っておりませんでしたが、こちらについても値は保証されるものではありません。

埋め込みSQLを使用する場合は、必ずSQLCODEを確認してエラーチェックを行うようにして下さい。
また、エラーチェック以外でも、SQLCODE = 0(データあり) の場合と SQLCODE = 100(データなし) の場合は処理を分けるようにし、SQLCODE = 100 の場合は出力ホスト変数を参照しないようご注意ください。


例)
誤った使用例:

  &sql( select name into :name from sample.
0
0 56
記事 Megumi Kakechi · 2月 17, 2025 3m read

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

1. 整合性チェックの目安の時間

整合性チェックの目安の時間は、環境により異なってきます。ディスク速度やDBサイズに大きく依存してきます。

同じディスク上に置かれた比較的サイズの小さなDATでまず実施して、サイズと経過時刻からおおよその時刻を推測してください。

また、整合性チェックの方法によって要する時間が変わってきます。

詳細は参考記事で紹介しております「整合性チェックの各方法の違いについて」をご覧ください。
 

2. 動作状況(正常に稼働しているか)を確認する方法

ターミナルで整合性チェックを実行していただく場合は、現在どのデータベース/グローバルのチェックを実行しているのかを出力ログ(画面またはファイル)にて確認することが可能です。

管理ポータルで実行する場合は、整合性チェックの実行プロセスID(※PIDの確認方法)を指定して、ターミナルで以下のコマンドを実行することにより確認することが可能です。
詳細については、ドキュメント をご覧ください。

%SYS>do Display^Integrity("^IRIS.TempIntegrityOutput(2596)")  // 整合性チェック実行プロセス(2596)の場合


対象プロセス(PID)のプロセス詳細より、グローバル参照や実行されたコマンドで、稼働しているかを確認することも可能です。

0
0 173
記事 Megumi Kakechi · 2月 4, 2025 4m read

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

整合性チェックを行う場合、管理ポータルやタスクマネージャーから行う方法と、ターミナルから ^Integrity ユーティリティを使用して行う方法があります。

こちらのトピックでは、それぞれの違いをご説明します。
 


管理ポータル、整合性チェックタスク、
および SYS.Database の IntegrityCheck メソッドから行う方法


こちらの方法は、選択した複数のデータベースや、1 つのデータベースに格納された選択可能な複数のグローバルを対象に整合性をチェックを行います。

管理ポータル
[システムオペレーション] > [データベース] 整合性チェック・ボタン
※チェックを行いたいネームスペース、必要に応じてグローバルを選択し、実行・ボタンをクリック

整合性チェックタスク
[システムオペレーション] > [タスクマネージャー] > [タスクスケジュール] 整合性チェック・タスク 


SYS.Database クラスの IntegrityCheck メソッド:

%SYS>do ##class(SYS.Database).IntegrityCheck($LB("c:\intersystems\iris\mgr\user\"))  // DB指定
%SYS>do ##class(SYS.Database).
0
0 215
InterSystems公式 Megumi Kakechi · 1月 29, 2025 1m read

インターシステムズは、InterSystems IRIS、InterSystems IRIS for Health、HealthShare Health Connect のメンテナンスバージョン 2024.1.3 をリリースしました。
 

✅ 2024.1.3

2024.1.3 は、最近発行された以下の警告の修正を含む、以前のリリース2024.1.x のバグフィックスを提供します。
警告:特定の $List 操作でデータベースとジャーナルファイルに不正なデータが作成される

詳細な情報は、以下のページをご参照ください(すべて英語版です):


キットの取得方法

本製品は、従来からのインストーラパッケージ形式と、コンテナイメージ形式をご用意しています。その一覧は、以下のサポートプラットフォームページ(英語)をご覧ください。
Supported Platforms webpage

インストーラパッケージは WRC Direct から入手できます。

0
0 71
記事 Megumi Kakechi · 1月 14, 2025 2m read

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

09/04/24-14:37:47:260 (2575554) 2 [Utility.Event] ISCLOG: SuperServer Super Server job slave failure ns=%SYS rtn=%SYS.SERVER
09/04/24-14:37:47:260 (2575554) 2 [Utility.Event] SuperServer failed to start slave server

メッセージログ(cconsole.log/messages.log)の上記のようなログは、スーパーサーバ/SuperServer(既定:1972ポート)に対して外部からリクエストがあったが、リクエストに対応する子プロセスの起動に失敗した場合に記録されます。

スーパーサーバへの新規接続に対してスーパーサーバがJOBコマンド(タイムアウトあり)を実行したが、タイムアウト時間内にJOBコマンドが完了しなかったケースなどが考えられます。


通常こちらは 、システムの負荷が非常に高くJOBコマンドによる子プロセスの生成に時間を要してしまったような、OS レベルの問題である可能性が高いです。

運用に支障がないようであれば、そのような状況は一時的であったと考えられます。

0
0 142