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

永続クラス定義では、データを格納するグローバル変数名を初回クラスコンパイル時に決定しています。
グローバル変数名は、コンパイル後に表示されるストレージ定義(Storage)で確認できます。

例)

0 4
0 316

こちらの記事では、既存のユーザ設定をプログラムで変更する方法をご紹介します。

ユーザロールを追加/削除したい、有効期限設定を変更したい、等の場合にお役立てください。

なお、ユーザ設定をプログラムで新規作成する方法は こちら の記事で紹介しております。


1.ある特定ユーザの設定を参照+変更する方法

2.既存の全てのユーザの設定を参照する方法

3.おまけ(Webアプリケーション情報の参照+変更)



1.ある特定ユーザの設定を参照+変更する方法

0 0
0 13

REST/JSONを使ってデータを交換することが増えてきていると思いますが、POSTでIRISにデータを渡す場合に日本語が含まれる場合に皆さんどう処理していますか?

わざわざ自分でコード変換する処理を追加していませんか?

実は、あまり知られていないのですが、自動で変換する方法がありますので、紹介します。

CSPのメカニズムを使ってクライアントからデータをPOSTすると、それはCSPのRequestオブジェクトのContentプロパティに渡されます。

ContentプロパティのTypeは%CSP.Streamになっていて、このTypeのクラスリファレンスを読むと、Content-TypeがText/のときには、CharSetに基づいてコード変換が行われると示唆されています。

つまりContent-TypeがJSONの場合には、自動的な変換がされないということになります。

本当は、Content-TypeがJSONの時も変換してくれるのが一番良い(わかりやすい)のですが、残念ながらそうなっていません。

その代わりにパラメータが用意されています。

RESTのディスパッチクラスの定義に以下のパラメータを追加することで、自動コード変換を行なってくれます。

0 0
2 23

image

コミュニティの皆さん、こんにちは。

この記事では、iris-RAG-Gen という私のアプリケーションをご紹介します。

iris-RAG-Gen は、IRIS Vector Search の機能を使用して、Streamlit ウェブフレームワーク、LangChain、および OpenAI で ChatGPT をパーソナライズするジェネレーティブ AI 検索拡張生成(RAG: Retrieval-Augmented Generation)アプリケーションです。 このアプリケーションは IRIS をベクトルストアとして使用します。

アプリケーションの機能

  • ドキュメント(PDF または TXT)を IRIS に取り込む
  • 選択されたドキュメントの取り込みを使ってチャットする
  • ドキュメントの取り込みを削除する
  • OpenAI ChatGPT

0 0
0 23

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

これは、MS-ACCESSの制限事項です。

MS-ACCESSは、インデックスが32個より多いテーブルにはリンクできません。

この問題を回避する方法として、直接テーブル(クラス)をリンクするのではなく、VIEWを使用する方法があります。

0 0
0 19

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

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

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

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

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


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

1 4
0 402

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

インターシステムズは、特定のオペレーティングシステムのパッチやサービスパックに対して、製品の検証は実施しておりません。

これらの保証については、オペレーティングシステムベンダーが互換性を保証する限りにおいて、提供されます。
まれなケースで、インターシステムズの製品を稼動するために、特定のパッチやサービスパックを必要とするケースもあります。
その様な特別な状況の詳細は、サポートサーバプラットフォームに明記しています。以下ドキュメントをご参照ください。

サポートサーバプラットフォームについて

明記されていない場合には、オペレーティングシステムベンダーが互換性を保証する限りにおいて、パッチやサービスパックもサポート対象となります。

※2022.1以降のバージョンにおいては、OSのマイナーバージョンにおいても検証を実施しております。

0 0
0 25

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

ロックテーブルの1エントリは管理領域の固定512 bytesとロック文字列情報などの可変領域から構成されます。

可変領域はロック対象のグローバルノード名に関連する情報に必要な長さ(bytes)になります。

1つのLockコマンドにつき、上記で示した長さのデータが必要です。

そしてその可変領域に必要なデータ長は、ロック対象のグローバルノード名(^xxx(xxx,xxx)) の長さに見合う16,32,64,128,256,…bytesのバケットの長さになります。

例えばロック対象のグローバルノード名が^xxx(123,"data")とすると、 ^xxx(123,"data")にデータのロケーション等のデータが付加されたものがその可変領域となり、32byteまたは64bytes(データロケーションが相応に長い場合)のバケットを使用しますので、

1 0
0 41

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

messages.logまたはcconsole.log内に記録されるCSPGatewayLatencyのメッセージは、サーバが、パフォーマンス測定のため定期的に「CSPゲートウェイにリクエストを送信して応答をもらう」ことを行っており、応答を受け取るまで一定時間以上かかったときに出る警告(応答時間の閾値)です。

その既定値は1000ミリ秒です。

WebGateway(CSPGateway)が稼働する Web サーバの負荷が高い場合に出力する場合がありますが、実際のCSPアプリケーションやREST APIの動作や応答速度に影響が見られなければ、特に問題はありません。

またこのメッセージの出力頻度を下げるためにこの閾値を変更する方法もあります。

変更方法は以下を参照ください

1 0
0 42

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

404エラーが返される場合に、以下の対応でエラーが解消されることがわかっています。


(1) binの接続を許可

/cspの構成エディタ>セクションで以下選択

system.webServer > security > requestFiltering

> hiddenSegmets 選択 > (コレクション)の右欄(Count=xx)の右端 [...] クリック

> segment欄に binの行があったので、選択して削除

> 画面戻って、右上の [適用] クリック

または、IISの構成ファイルを直接編集することでも対応可能です。

C:\Windows\System32\inetsrv\config\applicationHost.config

1 0
0 86

通常、Caché でエクスポートしたクラスやルーチンをIRISにインポートすることは可能ですが、IRISよりエクスポートしたクラスやルーチンを Caché にインポートすることはできません。

Caché にインポートしようとすると、以下のようなエラーになります。

0 2
0 91

%UnitTest framework を使用してユニットテストを構築したことがある場合、またはこれから構築しようとお考えの場合は、InterSystems Testing Manager をご覧ください。

VS Code を離れることなく、ユニットテストの閲覧、実行またはデバッグ、過去の実行結果の表示が可能になりました。

0 0
0 34

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

管理ポータルのグローバル変数表示ページでは、サブスクリプトレベルの範囲を指定して表示することが可能です。

各サブスクリプトレベルで、 <開始値>:<終了値> のように指定します。
開始値を省略すると先頭から終了値まで、終了値を省略すると指定値から最後までのグローバル変数を表示します。

《例》

(グローバル全体)

(第2サブスクリプトが"b"のデータだけを表示)

(第3サブスクリプトが300以上のデータを表示)

0 0
0 53

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

区切り識別子は、区切り文字で囲まれた一意の識別子です。
InterSystems SQL は、その区切り文字として二重引用符 「"」 をサポートしています。
一方、リテラル値を区切る場合は、一重引用符「'」を使用します。
例えば、下記のSQLにおいて、
①は、Nameの値が「AAA」という文字列である、という検索条件と解釈されますが、
②は、Name列 = AAA列、という結合条件と解釈されます。※実際にAAA列が無ければエラーとなります。

0 0
0 42

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

新しいインデックスを定義した後、インデックスの再構築が完了する前にクエリを実行するとデータが存在しているにもかかわらず「検索結果0件」や検索結果数が徐々に増えるような状況が発生します。

インデックスを永続クラス定義(またはテーブル定義)に追加しコンパイルすることで今まで使用していたクエリ実行経路が削除され、再度同じクエリを実行するタイミングで新しいインデックス定義を含めた実行経路が作成されるためです。(この時にインデックス再構築が完了していないとインデックスデータが存在しない、または不完全であるため0件や徐々に検索結果数が増えるような状況を起こします。)

これを起こさなために、新しいインデックスの再構築が終了するまでクエリオプティマイザにインデックスを使用させないように指定する方法が用意されています。

※ 2024/8/2: 2024.1以降から利用できる方法を追加しました。

0 1
0 187

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

通常SQLCODE -114(一致する行が既に別のユーザにロックされています)のエラーはロックが競合した場合に発生します。

こちらはレコードロック競合があったり、ロック閾値を超える更新を行いテーブルロックに昇格した際に、そのテーブルレコードに対して別のプロセスよりSelectを行い共有ロックを取ろうとして失敗した(ロック待ちがタイムアウトとなった)場合に発生します。

Selectで共有ロックを取る場合というのは、IRIS の ISOLATION LEVEL がREAD COMMITTED(デフォルトはREAD UNCOMMITTED)で、Selectを行った場合です。

0 0
0 63

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

管理ポータル > [システム管理] > [セキュリティ] 以下の設定は、%SYSネームスペースにあるSecurityパッケージ以下クラスが提供するメソッドを利用することでプログラムから作成することができます。

以下シナリオに合わせたセキュリティ設定例をご紹介します。

シナリオ:RESTアプリケーション用設定を作成する

事前準備

シナリオの中で使用するソースを2種類インポートします。

アプリケーション用RESTディスパッチクラスをインポートします。

1 0
0 75

2024年10月15日をもって、MacOS での Caché および Ensemble のサポートが非推奨となります。

Caché および Ensemble 2018.1.9 のサポートは続きますが、MacOS 向けのメンテナンスバージョンは今後リリースされません。つまり、MacOS 向け製品としては、Caché および Ensemble 2018.1.9 が最後のバージョンとなる予定です。

あらためてのお知らせですが、その他のプラットフォームにおいても、Caché および Ensemble のメンテナンスバージョンは 2027年3月31日をもってリリース終了となる予定です。詳細は昨年発表の記事をご参照ください

1 0
0 52

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

管理ポータル > [システム管理] > [セキュリティ] 以下の設定は、%SYSネームスペースにあるSecurityパッケージ以下クラスが提供するメソッドを利用することでプログラムから作成することができます。

1 0
0 62

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

メッセージログ(messages.log)/コンソールログ(cconsole.log) に以下のようなメッセージが表示される場合があります。

03/22/18-14:27:34:624 (1851) 2 [SYSTEM MONITOR] WriteDaemon Alert: Write Daemon still on pass 320186

このメッセージ出力は、ライトデーモンのデータベースファイルへの書き込み処理の遅延を示しています。
その原因としては、ディスクI/O負荷が高く、そのI/O要求量に対してディスク処理性能が不足していることが考えられます。

ディスクI/O負荷の原因としては以下が考えられます。

1 0
0 47

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

監査ログはシステムDB内テーブル(%SYS.Audit)に記録されていますので、そのテーブルに対するクエリを実行して抽出したり、%SYS.Auditテーブルに用意されていストアドプロシージャを利用して情報を取得しファイル出力するようにプログラムを用意することもできます。

以下にご紹介する内容は「監査ログをプログラムで出力(ユーザやイベント指定など)する方法」に関連した内容で、監査ログのファイル出力を管理ポータルの機能を利用した例とプログラムを利用した例でご紹介します。

1 0
0 55

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

InterSystems製品のサーバサイドでファイル入出力を行うと、文字列はシステムで設定されたファイル入出力用文字コードに自動変換され、文字単位でREADします。

ファイルから入力する文字をバイト単位で操作するためには、自動変換を行わない無変換の状態でファイル入力を行い指定バイトずつ読みながら読んだ分だけUnicodeに手動で変換していく必要があります。

変換には$ZCONVERT()関数を使用します。($ZCONVERT()には省略形があり$ZCVT()でも同様の操作が行えます。)

1 0
0 75

InterSystems製品のバックアップ方法の中の4つの目方法は「コールドバックアップ」です。

InterSystems製品を停止できるときに利用できるバックアップ方法です。別サーバに環境を移植するときや、コミュニティエディションから製品版キットのインストール環境にデータベースを移植する場合などにもお使いいただけます。

バックアップ手順

1. InterSystems製品を停止する

2. バックアップしたいデータベースを退避する

3. InterSystems製品を開始する

既存環境から新環境へ移植する場合などの手順

1. 既存環境のInterSystems製品を停止する。

0 0
0 53

InterSystems製品のバックアップ方法の中の3つの目方法は、「並行外部バックアップ」についてです。

この方法は外部バックアップと異なり、スナップショットなどのストレージ機能がない環境に向いている方法でオンラインバックアップよりも高速にバックアップできます。(古いバージョンのInterSystems製品でも利用できるバックアップ方法です。)

ただし、バックアップやリストア手順が複雑になります。

並行外部バックアップの利用を検討される際は、事前にリストア手順についてもテスト環境などでご確認いただくことを推奨します。

0 0
0 91

この記事は、「インターシステムズ製品をバックアップする前に確認したいこと」に続く記事で、InterSystems製品のバックアップの手法の中の「オンラインバックアップ」の仕組みと、バックアップ・リストア手順について解説します。

オンラインバックアップは、InterSystems製品が用意するバックアップ機能を利用する方法で、バックアップ対象に設定した全データベースの使用済ブロックをバックアップする方法です。

InterSystems製品のデータベースには、サーバ側で記述したコード、テーブル定義/クラス定義、データ(レコード、永続オブジェクト、グローバル)が格納されていますので、これらすべてが1つのファイルにバックアップされます。

1 0
0 155

開発者の皆さん、こんにちは。

この記事は、「インターシステムズ製品をバックアップする前に確認したいこと」に続く記事で、InterSystems製品のバックアップの手法の中の「外部バックアップ」の仕組みと、バックアップ・リストア手順について解説します。

まず、「外部バックアップ」とは、InterSystems製品の専用ルーチン使用せず、InterSystems製品以外のバックアップソリューションを使用してデータベースをバックアップする方法で、現時点の推奨されるバックアップ方法です。

1 0
0 103

開発者の皆さん、こんにちは。

この記事では、InterSystems製品のバックアップ方法(4種類)のご紹介と、バックアップを行う前に確認しておきたい内容について解説します。

また、この記事に続くシリーズ記事では、それぞれのバックアップの仕組みと操作例を交えたバックアップとリストア手順を解説していきます。

0 0
0 70