InterSystems公式 Megumi Kakechi · 11月 16, 2023 5m read

インターシステムズは InterSystems IRIS data platform、InterSystems IRIS for Health、InterSystems IRIS Studio のバージョン 2023.3 をリリースしました。


リリースハイライト

2023.3 は Continuous Delivery(CD)リリースです。
2023.3 には多くのアップデートや拡張機能が追加されています。


クラウドとオペレーションの強化

ジャーナルアーカイブ: このリリースから、システム管理者は完了したジャーナルファイルのアーカイブ先を設定できるようになりました。設定すると、ジャーナルファイルの切り替え後、完了したジャーナルファイルは自動的に圧縮 (Journal Compression機能を使用) された後、設定したアーカイブ先に移動されます。
アーカイブされたジャーナルファイルは、ローカルのジャーナルディレクトリから自動的に削除されるため、ジャーナルファイルの書き込みに使用される高性能ストレージ層の全体的な占有量を削減し、InterSystems IRIS の導入におけるトータルの所有コストを削減することができます。


アナリティクスとAIの強化

IntegratedMLでの時系列予測のサポート:InterSystems IRIS 2023.

0
0 169
記事 Megumi Kakechi · 11月 12, 2023 1m read

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

iris list などのコマンドで、IRISインスタンスの情報を表示すると、下記のように、stateが「warn」となっていることがあります。

Instance 'IRIS'   (default)
    directory:    /usr/irissys
    versionid:    2022.1.1.374.0
    datadir:      /usr/irissys
    conf file:    iris.cpf  (SuperServer port = 1972, WebServer = 52773)
    status:       running, since Wed Jan 25 15:05:32 2023
    state:        warn
    product:      InterSystems IRISHealth


これは、直近のシステムログ(messages.log/cconsole.log)にエラーが記録されたことによるもので、InterSystems製品を再起動した場合、もしくは、一定時間エラーが無ければ、「ok」になります。
※元になったエラーの原因については、messages.logを確認してください。

0
0 110
記事 Megumi Kakechi · 11月 10, 2023 4m read

SFTPサーバ側で公開鍵と秘密鍵を作成し、それをIRISサーバにコピーして、%Net.SSH.Session() の AuthenticateWithKeyPair() を使用してSFTP接続する一連の手順(サンプル)をご紹介します。


【環境】

SFTPサーバ:CentOS8
SFTPクライアント:Windows10 & IRIS2023.1.2
SFTP接続用ユーザ:mysftpuser


【手順】

(1) CentOSでSSHの公開鍵と秘密鍵を作成します (今回は、RSA方式、4096bit)

ssh mysftpuser@172.18.xx.xx でログインし、以下 mysftpuser として作業します。

$ ssh mysftpuser@172.18.xx.xx
password:<pass>

$ ssh-keygen -t rsa -b 4096      # ssh-keygenコマンドは、SSHで利用する認証用の鍵を生成・管理・変換するコマンドです
Generating public/private rsa key pair.
Enter file in which to save the key (/home/mysftpuser/.
0
0 1280
記事 Megumi Kakechi · 10月 10, 2023 6m read

弊社FAQサイトや開発者コミュニティには、ライセンスに関する記事を数多く掲載しています。

こちらの記事では、上記記事でご紹介している様々な機能をTipsとして使い、実際にライセンス使用量の推移を調査する方法をご紹介します。

1.ライセンス使用状況をスポットで確認する方法(今現在の使用状況)

2.ある一定期間のライセンス使用状況を継続して監視する方法
 

1.ライセンス使用状況をスポットで確認する方法(今現在の使用状況)

現在のライセンス使用量は管理ポータルで確認できます。
[システムオペレーション] > [ライセンス使用量] 

 

※各項目の意味は以下の記事を参照してください。
管理ポータルのライセンス使用量のページに表示される値の意味
 

具体的にどのようなユーザがライセンスを消費しているのかは、「ユーザ毎の使用」で見られますが、こちらはローカルのサーバのインスタンスのみの情報となります。
リモート接続しているインスタンスへのユーザ毎の使用情報は、リモートのサーバ上のインスタンスで確認する必要があります。

また、現在のライセンス使用状況は ライセンスユーティリティ(%SYSTEM.License クラスのメソッド)を使用してコマンドでファイル出力することも可能です。

以下の記事の添付ファイルに、使用例を掲載しております。

0
1 289
記事 Megumi Kakechi · 9月 24, 2023 4m read

IRISアップグレードやインストールがうまくいかない場合、初めに以下の4点をご確認ください。

  1. インストーラーに問題はないか?
  2. 対象バージョンの最新インストーラー(キット)を使用しているか?
  3. サポート対象プラットフォームへのインストールを行っているか?  
  4. インストールディレクトリパスに日本語を含んでいないか?   

 

★1について
インストーラーのダウンロードに問題があったなどで、インストーラー自体に問題があり、インストールできないというケースがあります。
その場合は、インストーラーのハッシュ値(md5 checksum)を比較してファイルの同一性を確認するか、再ダウンロードしてインストールをお試しください。

 

インストーラーのハッシュ値は、WRCDirectのダウンロードページ にて対象の製品を選択してご確認いただけます。

例:

 


お持ちのインストーラーのハッシュ値は、以下のように確認します(Windowsの場合)。

c:\downloads\kits>CertUtil -hashfile IRIS-2023.1.1.380.0-win_x64.exe MD5
MD5 ハッシュ (対象 IRIS-2023.1.1.380.0-win_x64.
0
0 555
InterSystems公式 Megumi Kakechi · 9月 19, 2023 2m read

インターシステムズは、接続性に関する 2 つの問題を修正しました。これらの不具合とその修正はそれぞれ独立しています。

この警告は、2つの問題の修正を含む ポイントリリース があるため、両方に対処する内容になります。

どちらの問題も、以下の製品のバージョン2019.1.42020.1.4のみに影響します:

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

HealthShare Unified Care Record®、Information Exchange、Health Insight、Patient Index、Provider Directory、Care Community、Personal Community、またはHealthcare Action Engine については、いずれのリリースバージョンにも影響はありません。

1つ目の問題は、ログインに失敗した際に復帰するまでに60秒間ハングするという問題です。今回の修正で、ハングする時間が2秒に短縮され、通知メッセージも改善されました。この修正は DP-421918 です。

2 つ目の問題は、/csp/sys/oauth2/OAuth2.JWTServer.

0
0 110
InterSystems公式 Megumi Kakechi · 9月 19, 2023 2m read

インターシステムズは、いくつかの問題を修正するためにリリースを再作成する必要がある場合があります。このプロセスにより、「ポイントリリース」と呼ばれる新しいキットが生成されます。

ポイントリリースは、メンテナンスリリースやメジャーリリースとは異なります。 これは緊急の問題に対して、迅速かつ的確に対応するために行われます。


ポイントリリースの確認方法

InterSystems Data Platform 製品は以下のリリース規則に従います:

<インターシステムズ製品>  <年>.<メジャー>.<メンテナンス>.<ビルド#>.<ポイント>

例:InterSystems IRIS 2022.1.4.204.1

ポイントリリースの確認方法は簡単で、製品キットの下1桁が0でなければ、ポイントリリースを使用していることになります。
 

現在使用中のソフトウェアを入れ替えるべきかの判断は?

インターシステムズでは、ポイントリリースがアナウンスされるたびに、そのリリースをお客様にお知らせし、そのリリー スで解決される問題を説明します。 アナウンスは、開発者コミュニティ (https://jp.community.intersystems.com/tags/intersystems-official) や製品アラートを通じて行われます。

0
0 132
記事 Megumi Kakechi · 9月 6, 2023 1m read

Windows環境にWebGatewayのみをインストールした場合に、「Service Unavailable / HTTP Error 503. The service is unavailable.」エラーとなりWebアプリケーションに接続できない場合があります。

 

こちらは、Visual C++ 再頒布可能パッケージ がインストールされていない環境に、Webゲートウェイをインストールした場合に見られる事象です。

Microsoft社のホームページより、Visual C++ 再頒布可能パッケージ(X64)をダウンロードしてインストールしてください。

インストール後IISを再起動し、以下のリンクよりWebゲートウェイ管理ページに接続できることをご確認ください。
 

Webゲートウェイ管理ページ:
http://localhost/csp/bin/Systems/Module.cxw

 
 


エラーが解消されない場合は、IISのアプリケーションプールが起動しているかをご確認ください。


【ご参考】
Microsoft Visual C++ Redistributable latest supported downloads

0
0 393
記事 Megumi Kakechi · 9月 4, 2023 3m read

こちらの記事では、RESTやCSPなどの「Webアプリケーションのトラブルシューティング」のヒントをご紹介します。

何かしらのトラブルと思われる事象が発生した場合、確認したいのがログファイルになります。
各コンポーネント間のやり取りで、どこでどのようなトラブルが発生しているかを、それぞれログを取得して確認することができます。

① クライアント ⇔ Webサーバ間では、「Webサーバログ(IISやApacheのアクセスログなど)」、
② Webサーバ ⇔ Webゲートウェイ間では、「イベントログ」・「HTTPトレース」、
③ Webゲートウェイ ⇔ IRISサーバ間では、「ISCLOG」・「監査ログ」・「messages.log」などがあります。

 

こちらの記事では、IRISで取得できるログとして で取得可能なログの取得方法をご紹介します。
 

② Web サーバと Webゲートウェイ間のアクセスに関連するログ情報


◆ イベントログ

1) Webゲートウェイ管理ページ(http://<IPアドレス>:<ポート>/csp/bin/Systems/Module.cxw)に接続します。

2) イベントログを削除します。
 [イベントログを参照] > ログをクリア をクリック

3) イベントログレベルを設定します。

0
1 517
記事 Megumi Kakechi · 8月 31, 2023 4m read

 IRISをアップグレードすると、SQLクエリオプティマイザの機能向上により、旧バージョンとは異なるクエリプランによるクエリ実行コード(クエリキャッシュ)が作成される場合があります。
ほとんどの場合はパフォーマンスが向上するのですが、稀にパフォーマンスが低下するケースもあります。

・アップグレードによりオプティマイザが改善しているとはいえ、中には遅くなるクエリがあるのではないか?
・予期しないSQLの問題が起きるのではないか?
・アップグレード後に全てのクエリパターンをテストするには時間と労力がかかりすぎる

このように、機能向上よりも安定性を優先して「今までのプランのまま実行したい」というご要望もあることでしょう。
こちらの記事では、そのようなお客様への解決策をご案内します。


解決策 = 凍結プラン(Frozen Plan)を使用する:

Cache2016.2以降(IRISはすべてのバージョン)で、クエリプランの凍結機能 が実装されました。
この機能により、IRISを新しいバージョンにアップグレードする際、既存のクエリプランは自動的に凍結されます。
これにより、アップグレードによる既存のクエリのパフォーマンスの低下の可能性を防げます(古いバージョンと同じプランが使用されるため)。
新しいクエリについてはもちろん、アップグレード後のクエリオプティマイザによるプランが使用されます。

0
0 198
記事 Megumi Kakechi · 8月 1, 2023 2m read

あるメソッドやルーチンを実行してエラーとなった場合、エラー発生個所はエラーメッセージより取得することができますが、処理の呼び出し履歴(スタックトレース)はエラーメッセージのみではわかりません。
また、.Net や Python など IRIS 外からの呼び出しの場合に、エラー情報の詳細がクライアントに返らない場合などもあるかと思います。

/// 例:エラーメッセージだけでは、エラーが発生した処理の呼び出し履歴まではわからない。
USER>d ##class(User.Test).TestMethod1()
 
 write a
 ^
<UNDEFINED>TestMethod3+1^User.Test3.1 *a
USER 4e1>


そんなときは、エラー処理にて Do BACK^%ETN を実施することで、IRIS側で強制的にスタック情報を記録することができます。
スタック情報を記録することで、どのような処理がどの順番で呼び出されたかや、エラー時の内部変数情報を知ることができます。

BACK^%ETN は、エラー発生後に $ZError($ZE) 変数に値が set されている場合、アプリケーションエラーログ(^ERRORS)に情報が記録されます。
上のエラーの場合の $ZE は、以下のように確認できます。

0
1 191
記事 Megumi Kakechi · 7月 11, 2023 3m read

クラスメソッドの多くは、%Status データ型を使用して、成功 または 失敗 の情報を返します。
成功の場合は 1 が返り、失敗の場合はエラーステータス および 1 つ以上のエラーコードとテキストメッセージを含むエンコードされた文字列が返ります。
このようなメソッドでは、戻り値を必ず取得して確認するようにしてください。

こちらの記事では、失敗の場合の具体的なエラー情報を確認する方法をご紹介します。

USER>set file=##class(%File).%New("C:\test\text.txt")
 
USER>set st=file.Open("R")
 
USER>write st
・・C:\test\text.txt.USER%e^Open+5^%Library.File.1^4e^^^0    // 何のエラーかわからない


エンコードされたエラーの文字列より、具体的なメッセージを表示したい場合、%SYSTEM.Status クラスのメソッドを使用します。

// 以下のようなステータスコードが返る場合
USER>write st
・・C:\test\text.txt.USER%e^Open+5^%Library.File.1^4e^^^0
// 次のようにして具体的なエラーの詳細メッセージを表示できます
USER>do $SYSTEMStatus.
0
1 255
記事 Megumi Kakechi · 6月 27, 2023 1m read

Apache経由でREST通信する場合、ApacheでRESTを動かす場合の設定方法 (含:Webゲートウェイのインストール手順) の方法 で設定を行います。

この際、Apachの構成ファイル(httpd.conf)にRESTを動かすための設定を入れるのですが、設定後のシンタックスチェックで以下の警告が出る場合があります。

※httpd -t 実行時
Apache Configuration: CSP directive 'csp' detected in VirtualHost, only supported at default server level


こちらは、<VirtualHost> ~ </VirtualHost>  内に、CSP ディレクティブ の内容を設定している場合に出力されます。

 CSP on
 CSPFileTypes *

などの IRIS にアクセスをするための設定は、<VirtualHost>  ディレクティブの外に設定するようにしてください。

詳細は以下のドキュメントをご覧ください。
追加ファイル・タイプを渡すための Apache の構成 (すべてのプラットフォーム)

0
0 172
記事 Megumi Kakechi · 6月 22, 2023 2m read

プロセスの単位の詳細情報(使用メモリサイズ、ユーザ名、実行ルーチンなど)は管理ポータルで確認できますが、それらをコマンドで取得する方法をご紹介します。 

管理ポータル:
[システムオペレーション] > [プロセス]  (プロセス毎の)詳細リンク 

%SYS.ProcessQuery クラスを使用して、以下のように行います。

USER>set x=##class(%SYS.ProcessQuery).%OpenId(<PID>)   // 自プロセスの場合は <PID> = $JOB
USER>write x.MemoryUsed
188
USER>write x.UserName
UnknownUser
USER>write x.ClientIPAddress
127.0.0.1
USER>zwrite x    // 全てのプロパティを確認したいとき


Embedded Python で呼び出したい場合は以下のようにします。

# 以下のサンプルは自プロセスの情報を取得する方法
import iris
import os
x=iris.cls('%SYS.ProcessQuery')._OpenId(os.getpid())   # iris.cls('%SYS.ProcessQuery')._OpenId(<PID>)
print(str(x.
0
0 241
InterSystems公式 Megumi Kakechi · 6月 11, 2023 2m read

インターシステムズは、InterSystems Supply Chain OrchestratorInterSystems IRIS for Supply Chain の2023.1リリースを一般提供開始(GA)したことを発表しました。

InterSystems Supply Chain Orchestratorは、InterSystems IRIS上に構築されており、スマートデータファブリックアーキテクチャを実現し、データとアプリケーションサイロを接続する高性能な機械学習対応アプリケーションの構築と展開を容易にする完全クラウドファーストデータプラットフォームです。
InterSystems IRISとサプライチェーンに特化したアクセラレータやフレームワークのパワーを結集し、サプライチェーンのオーケストレーション、需要の検知と予測、フルフィルメント、動きの速い消費財の再梱包に最適化したソリューションを提供しています。

InterSystems Supply Chain Orchestratorの主要コンポーネントであるInterSystems IRIS for Supply Chainは、InterSystems IRISが提供するスマートデータファブリックアーキテクチャをサプライチェーンのユースケースに近づけ、価値実現までの時間を短縮するための支援を行います。


0
0 281
記事 Megumi Kakechi · 6月 6, 2023 4m read

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

こちらでは、InterSystems Container Registry(ICR) より入手可能なDockerコンテナイメージを使用する方法をご案内します。

WRCDirectのダウンロードサイト より入手可能なイメージを使用する場合も同じようにできます。
 その際、Name:Web でフィルタリングしていただくと、Web Gateway の Docker イメージが見つけやすくなります。
※インターシステムズが提供する webgateway コンテナイメージには、Web ゲートウェイと Apache Web サーバの両方が含まれています。


【手順】

1. ブラウザより https://containers.intersystems.com/ にアクセスし、インターシステムズWRC認証情報でログインします。

2. Dockerログイントークンかログインコマンドを取得します。


3. 取得した認証情報を使い、Dockerインターフェース(PowerShellウインドウやLinuxコマンドラインなど)でICRへの認証を行います。
    以下の例のように、表示されるDocker ログインコマンドをコピー、ペーストすることで認証できます。

0
0 367
記事 Megumi Kakechi · 5月 30, 2023 3m read

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

Apache環境でRESTを動かすための設定方法は以下のとおりです。


1. Webゲートウェイをインストールします

添付(Webゲートウェイインストール手順.pdf)の手順に従い、Webゲートウェイをインストールします。
Webゲートウェイをインストールする前に、Apacheを停止してください。


2. Apache 構成ファイルの設定を行います

/etc/httpd/conf/httpd.conf の末尾に以下を追加します。
追加後、Apacheを再起動してください。

<Location />
    CSP On
    SetHandler csp-handler-sa
</Location>


こちらの設定では、Apacheに対するすべてのリクエストをWebゲートウェイに渡す設定になります。
 <Location />ではなく、<Location /rest> にすると、/rest のみWebゲートウェイに渡すようになります。
 (既に他の目的でApacheを使用している場合、<Location /> の設定にするとそちらが動かなくなりますのでご注意ください)

Apacheの再起動:

# systemctl stop httpd.
0
0 711
記事 Megumi Kakechi · 5月 21, 2023 2m read

すべての永続クラス (%Persistent) およびシリアルクラス(%SerialObject) をコンパイルすると、ストレージ定義 が展開されます。
ストレージ定義には、オブジェクト保存と検索用のグローバル構造情報、ストレージインタフェースによって使用される追加のパラメータや、ストレージクラスを定義する一連のキーワードや値などが含まれます。

スタジオや ObjectScript コマンドを使用して永続クラスをエクスポートする場合、既定では以下のようなストレージ情報が付与された状態でエクスポートされます。

Storage Default
{
<Data name="PersonDefaultData">
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>Name</Value>
</Value
:


こちらの記事では、このストレージ定義を除いた状態でクラスをエクスポートする方法をご紹介します。
 

/skipstorage」というエクスポート修飾子を指定すると、クラスのストレージ情報なしでエクスポートすることが可能です。

コマンドで使用する方法は以下のようになります。

do $System.OBJ.Export("Sample.Person.
0
0 147
記事 Megumi Kakechi · 5月 15, 2023 2m read

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

サブスクリプトレベルマッピングされたグローバルを、トップノードから全体をkillする場合、<SLMSPAN>エラーとなり削除ができません。

これは、サブスクリプトレベルマッピングされたグローバルについては、マッピングを跨いだサブスクリプト範囲の kill コマンドは行えないためです。

// 以下のように、別々のデータベースにサブスクリプトマッピンググローバルが存在する場合:
^TEST(A*~K*) -> database A
^TEST(L*~Z*) -> database B

// Topレベルから Kill しようとすると、<SLMSPAN>エラーとなる
NAMESPACE>Kill ^TEST
<SLMSPAN> <- このエラーが出力


現ネームスペース(データベース)のグローバルのみ削除するには、次のように指定して下さい。

NAMESPACE>Kill ^["^^."]TEST

サブスクリプトレベルでマッピングしているグローバルは、データベースに移動して直接Killする必要があります。
データベースに移動する場合は以下のようにします。

0
0 137
記事 Megumi Kakechi · 5月 12, 2023 2m read

こちらの記事 では、ヘルスモニタのセンサー値を ^%SYSMONMGR ユーティリティを使用して変更する方法をご紹介しました。
今回は、ヘルスモニターセンサー値を コマンド(プログラム)で変更する方法をご紹介します。


ヘルスモニタは、CPUUsage(CPU使用率)、DBLatency(DBからのランダム読取に要する時間)、DiskPercentFull(DBのディスク使用率)などの該当しきい値を超えた場合に、通知を生成します。
ヘルスモニタのセンサー値(閾値)について

センサーのしきい値を超えると、IRISのシステムログ(messages.log)に以下のようなメッセージが記録されます。

[SYSTEM MONITOR] CPUusage Warning: CPUusage = 81 ( Warnvalue is 75).
[SYSTEM MONITOR] DBLatency(c:\xxx\) Warning: DBLatency = 1092.228 ( Warnvalue is 1000).
[SYSTEM MONITOR] DiskPercentFull(/hs-connect/sys/mgr/) Alert: DiskPercentFull = 99.00, 99.02, 99.03 (Max value is 99).
0
0 232
記事 Megumi Kakechi · 5月 8, 2023 4m read

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

InterSystems IRIS では、柔軟でユーザ拡張可能な監視ツールである「システムモニタ」をお使いいただくことが可能です。

システムモニタには、以下の3つのインスタンス監視ツールがあります。

  • システムモニタ:システムの状態およびリソースを監視・固定パラメータに基づいて通知 (アラートおよび警告) を生成
  • ヘルスモニタ:主要なシステムメトリックおよびユーザ定義メトリックをサンプリング&ユーザ変更可能パラメータおよび規定の通常値と比較し、該当しきい値を超えた場合に通知を生成
    ※ヘルスモニタは既定では無効となっています。
     起動するには、^%SYSMONMGR を使用してヘルスモニタを有効にする必要があります。
     ただし、システムモニタのサブスクライバクラスは、ヘルスモニタが有効でなくても動作します。
  • アプリケーションモニタ:重要なシステムメトリックをサンプリング&ユーザが作成したアラート定義を使用して評価

messages.logに、以下のようなログが記録される場合があります。

[SYSTEM MONITOR] DBLatency(c:\xxx\) Warning: DBLatency = 1510 ( Warnvalue is 1000).
※このメッセージの意味については こちらの記事 をご覧ください。

0
0 301
記事 Megumi Kakechi · 5月 1, 2023 6m read

IRISTEMPというデータベースをご存じでしょうか?

特定の処理に対してデータを無期限に保存する必要がなく、「同一プロセス内でのみ使用したい場合」や「IRISが起動中のみ使用したい場合」に、IRISTEMPデータベースに保存されるグローバルを使用できます。
IRISTEMPデータベースに保存されるグローバルに対する操作は ”一切ジャーナルされない” ため、効率性を最大限にしたい作業に使用できます。

IRISTEMPデータベースに保存されるグローバル(データ)には、以下の種類があります。

------------------------------------------------------------------------------------------------------------------------------------------------------------------
1.    システムテンポラリグローバル(IRISが起動中は全ネームスペース&プロセスからアクセス可能)
2.    プロセスプライベートグローバル(同一プロセス内でのみ、全ネームスペースからアクセス可能)
3.    GLOBAL TEMPORARY テーブル(テーブルは全ネームスペース、データは各プロセスでアクセス可能)
4.

0
1 324
InterSystems公式 Megumi Kakechi · 4月 28, 2023 2m read

インターシステムズは、IBM POWER8 以降の POWER プロセッサを搭載した AIX システムで、データベースおよびジャーナルファイルが破損する可能性がある問題を修正しました。
この問題は、データベースまたはジャーナルの暗号化が使用されている場合にのみ発生する可能性があります。


対象バージョン:
 InterSystems IRIS                      - 2022.1.3、2023.1 を除く全てのバージョン
 InterSystems IRIS for Health   - 2022.1.3、2023.1 を除く全てのバージョン
 HealthShare Health Connect   - 2022.1.3、2023.1 を除く全てのバージョン
 HealthShare ソリューション   - すべてのバージョン

 ※HealthShareソリューションはデータ要素の暗号化機能を使用していない為、
     本不具合が直接影響することはありません。ただし、HealthShare環境にて
     上記のようなデータ要素の暗号化機能を使用するカスタマイズがある場合は
     本アラートに記載されている回避方法に従う必要があります。

 InterSystems Cache および Ensemble - 2015.

0
0 146
記事 Megumi Kakechi · 4月 24, 2023 2m read

クラウド環境で Windows 英語版に日本語言語パックをインストールして日本語化している場合、設定に注意が必要です。

以下のようにランチャー(キューブ)メニューの一部が文字化けするのは、言語設定が足りていないのが原因と考えられます。


以下の設定をご確認ください。

Windows設定 > 時刻と言語 > 言語:管理用の言語設定
「Unicode 対応でないプログラムの現在の言語」が、日本語以外の言語 (例:英語(米国)) になっていないでしょうか?


この場合、システムロケールの変更 ボタンで現在のシステムロケールを「日本語(日本)」 に変更することで、文字化けが解消します。

※この変更を反映させるにはWindowsの再起動が必要です。
 

***

【注意】

システムロケールが「英語(米国)」のように日本語以外の言語になっている環境にIRISをインストールしている場合、IRISのデフォルトの ロケール定義 が日本語以外に設定されています。

この場合、例えばファイル入出力も日本語の言語対応がされないため、日本語を含むCSPなどのファイルインポートで文字化けが発生してしまいます。

その際には、OSのシステムロケールの変更に加えて、IRISのロケール定義も変更するようにしてください。

0
0 538
記事 Megumi Kakechi · 4月 11, 2023 4m read

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

Question:

TIMESTAMP型の項目に対して、TO_CHAR() や TO_DATE() を用いた SELECT を実行すると以下のエラーになります。

実行SQL:

select 
  TO_CHAR(xxxDateTime,'YYYY-MM-DD')
from
  Test

エラー:
  [SQLCODE: <-400>:<深刻なエラーが発生しました>]
  [%msg: <Unexpected error occurred: <ZCHAR>IllegalValuePassedToTOCHAR^%qarfunc>]

エラーの原因を教えてください。


Answer:

こちらは、IRIS2022.1以降のバージョンで CREATE TABLE (DDL) の TIMESTAMP 型が IRIS側クラスで %Library.PosixTime にマッピングするように変更されているためです。
(アップグレードした環境の場合は、従来のままの %Library.TimeStamp にマッピングされています)

%TimeStamp は、データを人が読める文字列(yyyy-mm-dd hh:mm:ss.ffff)として保存します。

0
0 1602
記事 Megumi Kakechi · 4月 3, 2023 3m read

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


データ取込み処理の性能・エラー(Lock Table Full)対策として、一般メモリヒープ(gmheap)や ロックテーブルサイズ(locksiz)のパラメータチューニングを行う場合があると思います。

実際に、現在どのくらいの一般メモリヒープが確保できているのかは、ターミナルと管理ポータルで確認することができます。


★ターミナルの場合

// 一般メモリヒープサマリ
USER>w $system.Config.SharedMemoryHeap.GetUsageSummary()
4992226,6029312,59441152

一般メモリヒープサマリは、使用量,アロケート量,構成量(bytes) で戻り値が表示されます。

使用量は、アロケートされたロックテーブルやプロセステーブルなどで実際に使用されている量になります。
アロケート量は、gmheapの領域でロックテーブルやプロセステーブルなどでアロケートされている量になります。
構成量は、gmheap(KB) +IRISシステム追加領域 で、これが現在の最大利用可能な量(実際の一般メモリヒープの領域の値)になります。
 

上で述べたように、構成量は構成パラメータの gmheap の単体の値と一致していません。

1
1 238
記事 Megumi Kakechi · 3月 28, 2023 3m read

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

テーブル名/カラム名/インデックス名を変更したい場合、以下のケース別に変更方法をご案内します。

A. テーブル名・カラム名の変更
B. インデックス名の変更
 

-------------------------------------------------------------------------
A. テーブル名・カラム名の変更する方法
-------------------------------------------------------------------------

テーブル(クラス)名とカラム(プロパティ)名は基本的には変えないようにしてください。

もし「SQLアクセス時の名前だけ変更したい」場合は、以下のように新しい名前を SqlTableName(テーブル名)、SqlFieldName(カラム名) として指定することができます。

Class User.test Extends %Persistent [ SqlTableName = test2 ] {
    Property p1 As %Integer [ SqlFieldName = xx ];
    ....


以後 "SELECT xx from test2"

0
1 242
記事 Megumi Kakechi · 3月 19, 2023 2m read

Visual Studio Code 用のエクステンション(拡張機能)には、その動作を構成するための多くの設定が用意されています。

設定可能な項目一覧は、こちらの VS Codeドキュメント でご紹介しています(英語のみ)。

 

今回は、これらの設定の中で「コンパイルフラグを変更したい場合」の例で、設定の変更方法をご案内します。
※コンパイルフラグの詳細については こちらの記事 をご覧ください。


~ VS Code でコンパイルフラグを変更する方法 ~


① メニューから File(ファイル) > Preferences(ユーザ設定) > Settings(設定) (macOS では Code > Preferences > Settings) を選択し、設定エディタを開きます。


② 検索欄に、objectscript と入力して設定を絞り込み、今回は検索欄の下にある [Workspace(ワークスペース)] (※)を選択します。
※ユーザー:PCのユーザーごとに設定したい場合や、ワークスペースを作っていない時に利用する設定
 ワークスペース:ワークスペースを作成して作業するときに、ワークスペース全体に適用して利用する設定


③ 表示されている設定項目の中から変更したい項目を見つけます。

  今回は、コンパイルフラグを変更したいので「objectscript.compileFlags」になります。

0
0 767
記事 Megumi Kakechi · 3月 9, 2023 2m read

Windowsクライアント環境に、スタンドアロンの IRIS ODBC ドライバをインストールする際、

 Error 1918. Error installing ODBC driver InterSystems
 IRIS ODBC.35, ODBC error 13: システム エラーコード
 126: 指定されたモジュールが見つかりません。

のエラーとなりインストールに失敗する場合の対処法をご案内します。

※インストール時に以下のようなエラーが出る場合です。


***

こちらのエラーは、Windowsクライアント環境に必要なバージョンの Microsoft VC++ ランタイム ライブラリがインストールされていない場合に出力されます。

この場合、ODBCドライバをインストールする前に、必要なバージョンの「Visual C++ 再頒布可能パッケージ」をインストールする必要があります。

以下のマイクロソフト社のページより、VC++ 再頒布可能パッケージ をダウンロードしてインストールしてください。

https://docs.microsoft.com/ja-jp/cpp/windows/latest-supported-vc-redist?view=msvc-170

> Visual Studio 2015、2017、2019、および 2022


なお、IRIS 2022.

0
0 701
記事 Megumi Kakechi · 3月 8, 2023 2m read

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

^%GCMP ユーティリティにて2つのグローバルの内容を比較することができます。

例としてUSERとSAMPLESネームスペースにある、^testと^testを比較する場合は以下のようになります。
※以下の例では、2つのネームスペースに全く同じグローバルを700個作り、その中の一つの中身を変えて検出対象としています。

0
0 155