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


質問:

データベースファイルが存在するフォルダ全体をコピーしたとき、コピーしたデータベースファイルをマウントできません。なぜですか?

回答:

コピーした データベースファイル(iris.dat / cache.dat)のあるフォルダに、拡張子lck(iris.lck / cache.lck)のファイルが存在していないでしょうか?

InterSystems製品を停止せずに(もしくは、ディスマウントせずに)データベースファイルをコピーした場合、コピー前の情報を保持したままの lckファイルが残ってしまい、コピー後にマウントできない状況になります。
また、InterSystems製品を停止せずにコピーしたデータベースファイルは正しい状態ではないので、問題が生じる可能性があります。
コピー元のInterSystems製品を停止(もしくはディスマウント)した後、再度データベースファイルををコピーし直してください。

0 0
0 9

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

何らかの理由でサーバー移行が必要になった際に、移行前の環境から移行後の環境に設定情報をコピーすることで設定作業を軽減できます。

以下の設定情報を移行できます。

  • cache.cpf
  • SQLゲートウェイ設定
  • CSPゲートウェイ設定 *注1
  • CAHCESYSデータベースに保存しているユーザー作成ルーチンなど *注2
  • セキュリティ設定
  • タスク設定

注1 パスワードを設定している場合には、パスワードのみ手動で再設定が必要です。
注2 ^%ZSTART, ^ZMIRRORルーチンなど 優先接続サーバー設定に関しても、物理的には移行可能ですが、Windowsのレジストリー情報をコピーする必要があります。
レジストリー情報をコピーして他システムに移行する方法は通常推奨される方法ではありません。

0 0
0 9

これは 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コマンドが完了しなかったケースなどが考えられます。

0 0
0 17

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

InterSystems製品では、システム開始時に任意の処理を追加できます。

データベースミラーリングを構成していない環境では、%ZSTARTルーチンのSYSTEMラベルを作成することで任意の処理を実装できますが、データベースミラーリングを構成している環境では、このルーチンでは動作しない処理があります。

ご参考:^%ZSTART ルーチンと ^%ZSTOP ルーチンによる開始動作と停止動作のカスタマイズ

理由として、ミラーリング構成の場合、ミラーデータベースへのアクセスはミラーリングサービスが開始されプライマリメンバとなるまでReadOnlyとなります。

0 0
0 24

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


質問:

データ容量を見積もる計算式はありますか?


回答:

正確に見積もるための計算式は残念ながらありません。

InterSystems IRIS Data Platformの場合、データ部に関してはデータを全て可変長で格納しますので、各フィールドの平均がどのくらいであるかという目安の数字で平均レコード長を求め、キー部分も同様の計算を行い、必要な容量の推測値を求める必要があります。

インデックス部に関してはキー圧縮されますので、データと同じような上記の計算を行った推測値よりは少なくなることが期待できます。 ただしその圧縮率はデータの特性に大きく影響されますので、どの程度少なくなるかは一概には言えません。

実データのサンプル(例えば、1万件のデータ)をロードし、その時点でのサイズを確認して想定される件数分のデータ容量を推測するというのが現実的な方法となります。

0 0
0 18

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

こちらの記事では、タスク履歴の結果内容に、「タスクは 10 Apr 20xx 12:00:00AM 19 Aug 20xx 12:00:00AM から継続中 に有効期限切れになりました」のようなログがある場合、その意味と対処方法について説明します。


このログは、実行予定のタスクをチェックした際に、時間が対象タスクの有効期限を過ぎてしまったために、表示しているログになります。
有効期限を指定していない場合(※)は、次回タスク予定時刻が有効期限になります。
※有効期限の設定は、^TASKMGRユーティリティから行うことができます。

0 0
0 16

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

POST要求で受信したBodyのJSON文字列を、REST ディスパッチクラス内メソッドでダイナミックオブジェクト(%DyamicObject)に変換する際、以下エラーが発生する場合があります。

0 0
0 30

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

ジャーナルファイルの中身を参照したい場合、通常は管理ポータルで参照します。

管理ポータル:
[システムオペレーション] > [ジャーナル] : (該当ジャーナルの名前)参照 リンクをクリック


こちらのページで、外部に保存したジャーナルファイルも参照することができることをご存じでしょうか?

以下のように、ID= の後ろにジャーナルのファイルパスを指定することで、ジャーナルファイルの中身を管理ポータルで参照することが可能です。

http://localhost/iris/csp/sys/op/UtilSysJournal.csp?$ID1=C:\temp\20240826.002z

0 0
0 16

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

方法は2種類あります。

1) 同一サーバにIISとCachéがインストールされている環境をそのままアップグレードする場合は、IRIS(※)インストールキットを起動し「CACHE(CONVERSION)」からCSPゲートウェイとCaché両方をアップグレードします。

2) IISがIRISとは異なるサーバにインストールされている場合は、IRIS用Webゲートウェイキットを利用します。

(※)InterSystems IRISまたはIRIS for Health

それぞれの方法は以下の通りです。

1)同一サーバにIISとCachéがインストールされている環境の「CACHE(CONVERSION)」でのアップグレード方法

a) インストーラーを起動します。

b) CACHE(CONVERSION)を選択します。

0 0
0 21

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

イベントログの削除には、Ens.Util.LogクラスのPurge()メソッドを使用します。実行時以下の引数を指定します。

第1引数:削除数(参照渡し)

第2引数:保持日数(デフォルト7)

メッセージの削除には、2種類の方法があります。

1) 2022.1.2以降の導入されたマルチプロセスで削除する方法

0 0
0 20

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

試していたWebAPIでは、POST要求時クエリパラメータとボディの両方を送る必要がありましたので、HTTPアウトバウンドアダプタが提供するメソッド:Post()/PostFormDataArray()/PostURL() 辺りをドキュメントで確認していたのですが、残念ながら両方を渡せるように作成された丁度良いメソッドがありませんでした。

ドキュメント:HTTPアウトバウンドアダプタが提供するメソッド

では、どのように送ったかというと、SendFormDataArray()の第3引数を利用して両方の情報を送付してみました。

1 0
0 22

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

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

例)

0 4
0 328

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

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

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


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

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

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



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

0 0
0 26

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

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

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

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

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


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

1 4
0 409

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

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

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

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

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

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

0 0
0 31

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

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

0 2
0 97

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

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

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

《例》

(グローバル全体)

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

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

0 0
0 58

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

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

0 0
0 44

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

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

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

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

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

0 1
0 213

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

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

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

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

0 0
0 77

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

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

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

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

事前準備

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

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

1 0
0 96

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 58

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

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

1 0
0 66

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

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

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

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

1 0
0 70

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

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

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

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

1 0
0 88