記事 Mihoko Iijima · 2021年2月12日 5m read XMLファイルの内容をデータベースに登録する方法 これは InterSystems FAQ サイトの記事です。 XMLファイルの内容を格納する永続クラス定義を作成し、%XML.Adaptor を追加で継承します。 例は以下の通りです(右端の %XML.Adaptorクラスを追加で継承します)。 Class ISJ.Class1 Extends (%Persistent, %Populate, %XML.Adaptor) #ObjectScript #XML #オブジェクトデータモデル #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 2 0 0 1.5K
記事 Hiroshi Sato · 2021年11月29日 2m read イメージファイルをFTPサーバからアップロード/ダウンロードする方法 これは、InterSystems FAQサイトの記事です。 FTPサーバから、アップロード/ダウンロードする方法は以下の通りです。 1. FTPサーバにイメージファイルをアップロードする #ObjectScript #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 128
記事 Mihoko Iijima · 2021年3月26日 2m read Linux のシェルスクリプトでルーチンやメソッドの戻り値を取得する方法 これは InterSystems FAQ サイトの記事です。 Linux で シェルスクリプト(shell script) からルーチンやメソッドを実行し戻り値を取得するには、iris コマンドを使用します。 詳細はドキュメント「インスタンスの接続について」 をご参照ください。 コマンド記述例は以下の通りです。 iris session インスタンス名 -U ネームスペース名 "実行ルーチン・メソッド" #システム管理 #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 993
記事 Mihoko Iijima · 2021年4月15日 2m read アプリケーションでロックタイムアウトエラーが発生する理由 これは InterSystems FAQ サイトの記事です。 このエラーが発生する原因としては、アプリケーションの中で既に他のプロセスからロック対象リソースがロックされていて、何らかの理由でそのロックが解放されていないケースが考えられます。 他のプロセスがロックしている兆候がない場合は、ロックテーブルの空き領域が不足しているケースが想定されます。その場合は、メッセージログ(コンソールログ)に LOCK TABLE FULL のメッセージが出力されます。 トランザクション処理を行なっている場合には、ロック解放の延期が影響しているケースも考えられます。トランザクションとロック解放の延期については、以下のドキュメントをご参照下さい。 #SQL #システム管理 #データベース #データベースのトランザクション処理 #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 521
記事 Mihoko Iijima · 2021年5月27日 2m read HL7 プロダクションでサイズの大きなグローバルがある場合の削除方法について これは InterSystems FAQ サイトの記事です。 HL7 メッセージの送受信を行うプロダクションでは、以下3個のグローバルが非常に大きくなることがあります。 グローバルの大きさを確認する場合は、^%GSIZEユーティリティを利用します。詳細は関連トピック/記事をご参照ください。 ^EnsHL7.Segment^EnsLib.H.MessageD^EnsLib.H.MessageI HL7メッセージは EnsLib.HL7.Message.cls で定義されます。^EnsLib.H.MessageD はデータを保存するグローバル、^EnsLib.H.MessageI はインデックスを保存するグローバルです。 また、HL7メッセージは多数のセグメントで構成されており、メッセージデータを含むそれらのセグメントは ^EnsHL7.Segment に保存されます。 #HL7 #グローバル #システム管理 #ヒントとコツ #相互運用性 #Ensemble #HealthShare #InterSystems IRIS for Health 0 0 0 115
記事 Hiroshi Sato · 2021年7月27日 1m read InterSystems製品のサポート期間について これは InterSystems FAQ サイトの記事です。 InterSystemsでサポートを保証するバージョンは、最小サポートバージョン(ミニマムサポートバージョン)となります。最小サポートバージョンは、通常リリース後 2 年以内のバージョンになります。保守契約のあるお客様には、最小サポートバージョンより前のバージョンに対しても技術的なご質問や障害時の対応は可能な限りさせていたいただきますが、その保守対応はベストエフォートとなり、深刻な問題に対してもそのバージョンに対応したワークアラウンドや修正(パッチ)のご提供が難しくなります。 そのような場合には、最新バージョンへのバージョンアップをお勧めいたします。 最小サポートバージョンについては、以下のドキュメントをご覧ください。 最小サポートバージョン #システム管理 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 266
記事 Megumi Kakechi · 2022年1月12日 5m read ミラージャーナルファイルの削除のタイミングと要件 これは、InterSystems FAQサイトの記事です。ミラージャーナルファイルの削除(パージ)のタイミングは以下のようになります。 ・プライマリ・フェイルオーバー・メンバ #Mirroring #システム管理 #ジャーナリング #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 170
記事 Tomoko Furuzono · 2021年12月26日 1m read メッセージ・ログ(messages.log)/コンソール・ログ(cconsole.log) に出力される「Purging Application Error Logs」のメッセージとは これは、InterSystems FAQサイトの記事です。 MM/DD/YY-hh:mm:ss:fff ( ) 0 [Utility.Event] Purging old application errors こちらのメッセージは、エラーではなく、アプリケーションのエラーログを記録した古い ^ERRORSグローバルのパージ処理が実行された際に出力されるメッセージになります。ログを削除した旨のみを伝えるメッセージであり、出力されていても特に問題はありません。また、このログは、^ERRORSグローバルのパージ処理がタスク実行される毎日01:00 に出力されます。 #システム管理 #管理ポータル #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 2 0 0 131
記事 Mihoko Iijima · 2022年3月29日 3m read SSL/TLS を使用しているメールサーバへメールを送信するコードサンプルご紹介 これは、InterSystems FAQサイトの記事です。 メール送付のコードを記述する前に、管理ポータルで SSL/TLS 構成を作成します。 管理ポータル > システム管理 > セキュリティ > SSL/TLS 構成 メール送付までの流れは以下の通りです。 #ObjectScript #SSL #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 322
記事 Toshihiko Minamoto · 2022年8月11日 1m read VSCode のヒントとコツ - 名前でクラスを開く Studio では、クラスを直接その名前で開くことができます。何度もクリックしながら目的のクラスに到達するまでパッケージツリー内を移動する必要はありません。 Ctrl + O(またはファイル -> 開く)を押せば、以下のようにクラス名を入力するだけです。 Enter を押すと、クラスが開きます。 VSCode ではこれをどのようにして行えるでしょうか? #ヒントとコツ #開発環境 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 232
記事 Tomoko Furuzono · 2023年5月8日 1m read <ROLLFAIL>エラーについて これは、InterSystems FAQサイトの記事です。<ROLLFAIL>エラーは、ロールバック処理中に何らかのエラーが発生した場合に発生するエラーです。 トランザクション・ロールバックのロギング よくあるケースはロールバック時点でシステム全体のジャーナリング機能が無効になっていた場合です。ジャーナル機能が無効になるのは、ジャーナルを無効にする設定を行うかジャーナル格納ディレクトリのディスクが満杯のためにシステムがジャーナルを無効にした場合などです。 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 76
記事 Megumi Kakechi · 2024年3月11日 2m read SQLのINSERT/UPDATE文でデータ更新時にインデックスを作成しない方法 これは InterSystems FAQ サイトの記事です。 SQLのINSERT/UPDATE/DELETE文で大量のデータを更新する際に、高速化する方法をご紹介します。以下の2つの手順を実行することで、更新処理のパフォーマンスを向上させることが可能です。 1.INSERT/UPDATE/DELETE時にインデックスを作成せず、あとでまとめて作成する 2.INSERT/UPDATE/DELETE時にジャーナルをOFFにする 1は、%NOINDEX キーワードを指定してインデックスの生成を後でまとめて行うことで、インデックスの構築を抑制しパフォーマンスを向上させる方法です。 クエリ実行例は、以下のようになります。 #ObjectScript #SQL #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 29
記事 Toshihiko Minamoto · 2020年4月21日 28m read Caché Mirroring 101:簡単なガイドとよくある質問 Mirroring 101 Cachéミラーリングは、CachéおよびEnsembleベースのアプリケーションに適した信頼性が高く、安価で実装しやすい高可用性および災害復旧ソリューションです。 ミラーリングは幅広い計画停止シナリオや計画外停止シナリオで自動フェイルオーバーを提供するもので、通常はアプリケーションの回復時間を数秒に抑制します。 論理的にデータが複製されるため、単一障害点およびデータ破損の原因となるストレージが排除されます。 ほとんど、またはダウンタイムなしでアップグレードを実行できます。 #Mirroring #ヒントとコツ #システム管理 #データベース #フェイルオーバー #高可用性 #Caché #Ensemble #InterSystems IRIS 2 0 0 762
記事 Hiroshi Sato · 2020年10月19日 3m read クラス定義に基づき作成されたデータを別システムに移行する方法 これはInterSystems FAQ サイトの記事です。 2つのステップにて作業します。 クラス定義の移行 クラス定義を別システムへ移行するため、XML形式またはUDL形式(拡張子.cls)のファイルにエクスポートします。 スタジオでのエクスポート手順は以下の通りです。 [ツール] > [エクスポート] > [追加]ボタンで移行したいクラスを複数選択 > [ローカルファイルにエクスポート]にチェック > ファイルの種類がXMLであることを確認し、ファイル名を入力し、[OK] この後、別システム上のスタジオで、エクスポートしたXML、UDLファイルをインポートします。 この手順で、クラス定義は移行できます。 スタジオでのインポート手順は以下の通りです。 [ツール] > [ローカルからインポート] > 上記手順で出力したXML、UDLファイルを指定します。 #システム管理 #Caché #Ensemble #InterSystems IRIS 0 0 0 259
記事 Hiroshi Sato · 2020年11月23日 1m read 変数等命名規約について これはInterSystems FAQ サイトの記事です。 変数等命名規約に関して、InterSystems自体が定めている規則の様なものはありません。 しかし、チームで開発を行う際には、何らかの命名規約を作ることをお勧めします。 一般的には、変数名から使用目的が容易に想像できる様な名前付けが好ましいです。 名前の長短で、実行性能には有意な差はないと考えて結構ですので、一目見て内容が理解しやすく、他の名前と明確な区別ができるよう、ある程度の長さを持った命名を心がけることをお勧めします。 また、先頭のアルファベットを大文字にする、単語の先頭は大文字にするというのが一般的です。しかし、昨今は、Javaで良く使われる、先頭は小文字で初めて、途中の単語の始まりを大文字にするという命名規約を使う開発者も増えてきました。 さらに変数のタイプ(一時変数、パラメータなど)がわかるように、先頭の文字で表現する方法もよく使われます。(例: tSC,pLengthなど) #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 124
記事 Hiroshi Sato · 2021年2月1日 1m read ローカル変数の値がOREFであるかどうかの判定法 これは InterSystems FAQ サイトの記事です。 $IsObject()を使用して判別できます。 調べたい変数をvとすると、 $IsObject(v)=1 // vはOREF$IsObject(v)=0 // vはOREFではない$IsObject(v)=-1 // vはOREFだが、有効なオブジェクトを指していない となります。 vが未定義の場合は、$IsObject(v)はUNDEFINEDエラーとなりますので、ご注意ください。 UNDEFINEDエラーを防止するには、次のように$Getを使用することをお勧めします。 #ObjectScript #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 143
記事 Mihoko Iijima · 2021年2月12日 3m read SQL から ObjectScript で記述したプログラムを実行して値を返す方法 これは InterSystems FAQ サイトの記事です。 以下例のクラスメソッド getLatestID() のように ObjectScript のクラスメソッドを用意します。返したい値を戻り値に指定し、SQLストアドプロシージャ(SqlProc)キーワードを指定するだけで値が返せます。 ClassMethod getLatestID() As %Integer [ SqlName = getLatestID, SqlProc ] { set latestID=$Order(^ISJ.TestClass1D(""),-1) quit latestID } 操作を試す場合は、以下のクラス定義をご準備ください。 #ObjectScript #SQL #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 222
記事 Hiroshi Sato · 2021年11月24日 1m read InterSystems製品開始時に特定の処理を実行する方法 これは InterSystems FAQ サイトの記事です。 InterSystems製品開始時に、OSの実行ファイルやコマンド、InterSystems製品内に作成したプログラムを実行したい場合は SYSTEM^%ZSTART ルーチンに処理を記述します。 (%ZSTARTルーチンは%SYSネームスペースで作成します) SYSTEM^%ZSTART に記述する処理は、事前にあらゆる条件下でうまく動作することを確認してください。 ^%ZSTART ルーチンの記述ミスや、記述は正しくとも起動時にコマンドが応答を返さなかったり処理でエラーが起こった場合、InterSystems製品が起動できなくなることがあります。 詳しくは、以下ドキュメントをご参照ください。 #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 170
記事 Hiroshi Sato · 2022年3月27日 2m read .Net Gateway(オブジェクトゲートウェイ)で外部DLLを使用する方法 これはInterSystems FAQ サイトの記事です。 まず予め Visual Studioを使用して、呼び出したい内容のクラスライブラリを作成します。 そのプロジェクトをコンパイルし、DLLを作成します。 管理ポータルでオブジェクトゲートウェイを作成します。 システム管理 > 構成 > 接続性 > オブジェクトゲートウェイ ゲートウェイ名 : testGateway サーバ名 / IPアドレス : 127.0.0.1 ポート : 55000 (後はデフォルト) testGateway を開始します。 ※管理ポータルから、もしくはコマンドから開始できます。 do ##class(%Net.Remote.Service).StartGateway(gateway.Name) #ヒントとコツ #相互運用性 #Caché #Ensemble 0 0 0 283
記事 Megumi Kakechi · 2021年4月16日 4m read エラー解消後もジャーナル切り替えタスクの状態が Suspend Leave になっている場合の対処方法 これは InterSystems FAQ サイトの記事です。 ジャーナル切り替えのタスクが実行時にエラー(例:FILEFULL)となり、その原因となるエラーを解消後も一時停止(Suspend Leave)状態となっているのであれば、以下の操作により復旧可能です。 管理ポータル: [システムオペレーション] > [タスクマネージャ] > [タスクスケジュール表示] より、以下の操作を行います。 ジャーナル切り替え(Switch Journal) "詳細" をクリック "一時停止" をクリック タスク実行が一時停止された場合にタスクを再スケジュールしますか? はい "すぐに実行する" をクリック "再開" をクリック "すぐに実行する" タスク詳細にて "一時停止:"が空欄になり、"次回スケジュール時刻:" が再開後の次のスケジュール(例えば2021-04-17 00:00) になっていれば、復旧完了です。 #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 206
記事 Hiroshi Sato · 2021年9月17日 2m read スタジオ、ターミナル、管理ポータルのライセンス消費ユーザをまとめる方法 これは InterSystems FAQ サイトの記事です。※ IRIS Data Platformのサーバーライセンス(プロセッサーコア単位の課金)では以下の内容は適用されませんので、ご注意お願いします。 2012.1以降のバージョンより、ライセンス管理が厳格化されたために、管理ポータルでもライセンスを消費するようになりました。 デフォルトでは、管理ポータルは独立したID(CSPセッション)単位でライセンスを消費するために同一ユーザが複数ライセンスを消費するようになります。 スタジオ、ターミナル、管理ポータル全ての消費ライセンスをに同一ユーザにまとめる方法は以下になります。 (1) スタジオ、ターミナル、管理ポータルに共通ユーザでログイン 管理ポータル: [システム管理] > [セキュリティ] > [サービス] 以下3つを「パスワード」認証のみに変更 #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 1 341
記事 Hiroshi Sato · 2021年7月27日 1m read ODBCドライバーの単独入手 これは InterSystems FAQ サイトの記事です。 ご希望の場合は、カスタマーサポートセンターまでお問い合わせください。 #ODBC #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 230
記事 Megumi Kakechi · 2021年8月26日 2m read クラス定義のコンパイルで、「エラー #5368:クラス名 のオブジェクトが、1プロセスでインスタンス化されています。」のエラーが出ます これは InterSystems FAQ サイトの記事です。 こちらは、コンパイル時に既にそのクラスのインスタンスを開いている場合に起こるエラーです。 対処方としては以下の2つの方法があります。 インスタンスを開いているプロセスまたはアプリケーションを終了する スタジオのビルドメニュのコンパイルオプション:コンパイルフラグ “使用中のクラスをコンパイル” をチェックしコンパイルを行う インスタンス化しているプロセスを特定したい場合は、以下のサンプルルーチンをお試しください。 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 117
記事 Mihoko Iijima · 2021年9月21日 3m read Excel から InterSystems 製品にアクセスする方法 これは InterSystems FAQ サイトの記事です。 Excelのマクロ機能を使ってVBAからREST/JSON経由でアクセスすることが可能です。 REST/JSONを使用したInterSystems製品との連携の簡単なサンプルを以下のGitHubサイトから入手できます。 VBAマクロサンプル マクロサンプルは Solution/activityreport.xlsm をご覧ください。 サンプルは、コンテナを利用しています。READMEに記載の方法でコンテナを開始し、Solution/activityreport.xlsm の「データ取得」ボタンをクリックすると以下の結果が得られます。 #JSON #REST API #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 235
記事 Tomoko Furuzono · 2021年12月7日 2m read メッセージ・ログ(messages.log)/コンソール・ログ(cconsole.log) に出力される「Skipping SET(KILL) global ^xxxx during transaction rollback...」のメッセージとは これは、InterSystems FAQサイトの記事です。このメッセージが出力される要因は以下の2つになります。 同じデータに対して適切に排他を行わずに、別々のプロセスから更新が行われている ロールバックが発生している 詳細は以下の通りです。 メッセージログ/コンソールログに、以下のようなメッセージがある場合、これはロールバック処理にて出力されています。※バージョンによってメッセージは多少異なります。 #システム管理 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 69
記事 Mihoko Iijima · 2022年4月8日 4m read SYS.Database クラスの FreeSpace クエリを使用してデータベースのあるディスクの空き容量を確認する方法 これは、InterSystems FAQサイトの記事です。 システムユーティリティクラス:SYS.Database のクエリ:FreeSpace を利用してディスクの空き容量を任意のタイミングで確認することができます。 #システム管理 #データベース #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 135
記事 Toshihiko Minamoto · 2022年9月14日 2m read VSCode のTips & Tricks - Web ターミナル VSCode から直接 Web ターミナルにアクセスしたいと思いませんか? #ヒントとコツ #開発環境 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 1 179
記事 Megumi Kakechi · 2023年2月23日 3m read IRIS SQLクエリで取得した結果セットのランキング(順位)を算出する方法 弊社サポートセンターに、「IRIS SQLに Oracle の RANK() 関数のようものはありませんか?」というお問い合わせいただくことがあります。 IRIS2021.1以降のバージョンであれば、RANK() や ROW_NUMBER() などの ウィンドウ関数 がサポートされるようになりましたので、以下のように使用することができます。 #SQL #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 157
InterSystems公式 Megumi Kakechi · 2023年4月28日 2m read 2023 年 4 月 27 日 - 警告:暗号化使用時にデータベースおよびジャーナルが破損する インターシステムズは、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 ソリューション - すべてのバージョン #セキュリティ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health #InterSystems公式 0 0 0 92
記事 Megumi Kakechi · 2024年3月24日 2m read テーブル統計情報をエクスポートして別環境にインポートする方法 これは InterSystems FAQ サイトの記事です。 クエリパフォーマンスを左右するクエリプランは、テーブルチューニングを行った結果の統計情報を元に生成されます。 ある環境で期待したプランになったけれど、他の環境では意図したプランにならない場合、(期待したプランとなる)既存環境からテーブル統計情報をエクスポートして別の環境にインポートし、同じ統計情報をもとにしたクエリプランで実行することができます。 #SQL #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 13