記事 Megumi Kakechi · 2021年8月25日 2m read リレーションシップの処理中に大量メモリが使用されてしまう場合の対処法について これは InterSystems FAQ サイトの記事です。 リレーションシップが設定されており 1対n の n が多量の場合、そのリレーションシップの順次処理などで大量のメモリ消費となるケースがあります。 プログラムの中で多側オブジェクトを参照し内部的にスウィズル処理した後には、そのOREFを含む変数の解放(削除、他の値の設定など)だけでは、その多側オブジェクトとリレーションシップオブジェクトが解放されないことが原因です。 それらを完全にメモリから解放するためには、OREF変数の解放とRelationshipオブジェクトの%UnSwizzleAt<%Library.RelationshipObject >メソッドの実行による明示的なメモリ解放が必要です。 - 使用例 - #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 6 0 280
記事 Mihoko Iijima · 2023年3月13日 3m read 永続クラス定義のデータが格納されるグローバル変数名について これは InterSystems FAQ サイトの記事です。 永続クラス定義では、データを格納するグローバル変数名を初回クラスコンパイル時に決定しています。グローバル変数名は、コンパイル後に表示されるストレージ定義(Storage)で確認できます。 例) #オブジェクトデータモデル #データベース #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 4 0 325
記事 Hiroshi Sato · 2021年10月7日 3m read ジャーナルファイルの内容を管理ポータル以外で参照する方法 これは InterSystems FAQ サイトの記事です。ジャーナルファイルのサイズが大きすぎて、管理ポータルで検索やフィルタリング等できない場合、以下の2つの方法で参照することができます。 ① ^JRNDUMP ユーティリティを使用する方法② プログラムで参照する方法 ============================================================ ① ^JRNDUMP ユーティリティを使用する方法 例えば、グローバル参照 ^ABC を含むジャーナルファイルのすべてのレコードを選択する場合は、以下のようになります。 ※以下、すべてのコマンドは %SYS ネームスペースで実行してください。 #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 4 0 405
記事 Hiroshi Sato · 2020年6月29日 2m read ターミナルやAPIを使用してネームスペースやデータベースを作成する方法 Config.Configurationクラス、SYS.Databaseクラスのメソッドを使用して、ネームスペース・データベースの作成及び登録をターミナルから実行することができます。以下はデータベースファル/CacheDB/AAA/cache.datを作成し、構成ファイル(cache.cpf)にデータベース AAA、及び、ネームスペースAAAの登録を行う一連の実行例です。 *実行は、%SYSネームスペースで行って下さい。* #API #ObjectScript #システム管理 #ターミナル #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 1 3 0 654
記事 Megumi Kakechi · 2020年9月16日 4m read HTMLからRESTを使って画像ファイルをアップロードする方法 これはInterSystems FAQ サイトの記事です。 HTMLからRESTを使って画像ファイルをアップロードする方法をご紹介します。 1.はじめに、以下のようなhtmlとクラスを作成してください。 *UploadTest.html #CSP #REST API #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 2 3 1 3.2K
記事 Mihoko Iijima · 2021年3月9日 1m read ダイナミックオブジェクトの JSON 変換で MAXSTRING エラーが出る場合の対処方法 これは InterSystems FAQ サイトの記事です。 ダイナミックオブジェクトから JSON 文字列を生成するときに使用する %ToJSON() の引数にストリームオブジェクトを指定することでエラーを回避できます。 コード例は以下の通りです。 USER>set temp=##class(%Stream.TmpCharacter).%New() USER>set jsonobj={} USER>set jsonobj.pro1=["a","b","c","d"] USER>set jsonobj.pro2=["あ","い","う","え"] USER>do jsonobj.%ToJSON(temp) USER>write temp.Size 51 USER>write temp.Read() {"pro1":["a","b","c","d"],"pro2":["あ","い","う","え"]} 詳細はドキュメントもご参照下さい。 #JSON #ObjectScript #オブジェクトデータモデル #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 1 3 0 462
記事 Mihoko Iijima · 2021年2月19日 4m read VSCode:プロセスにアタッチしてデバッグする方法 開発者の皆さん、こんにちは! VSCode の ObjectScript エクステンションで、プロセスにアタッチしてデバッグする方法についてご紹介します。 ObjectScript エクステンションの基本的な操作方法については、こちらの記事をぜひご参照ください。 解説ビデオ(4分ちょっと)もあります。ぜひご参照ください。 https://www.youtube.com/embed/NBITqPlMf1M[これは埋め込みリンクですが、あなたはサイト上の埋め込みコンテンツへのアクセスに必要な Cookie を拒否しているため、それを直接表示することはできません。埋め込みコンテンツを表示するには、Cookie 設定ですべての Cookie を受け入れる必要があります。] #ObjectScript #VSCode #デバッグ #ビデオ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 2 2 0 13.8K
質問 Yuji Ohata · 2022年3月6日 Interoperabilityのスケジュール起動について。 こんにちは、皆さま。業務でIRISを用いて開発を行っている者です。 現在複数のJob実行の仕組みをInteroperabilityの機能を使って実現しておりますが、特定のビジネスサービスは、xx:xx~yy:yyの間実行させたくない、という仕組みを実現させる必要が出てきました。 https://docs.intersystems.com/iris20201/csp/docbookj/DocBook.UI.Page.cls... ここに「スケジュール指定の定義」というものがあり、まさにこれが利用できるのかと思ったのですが、文献を見る限りだと、プロダクションそのものを停止するような仕組みに見えており、また実際に定義を作ってみたのですが、それをどうやってプロダクションへ反映させるかもわかりませんでした。 #Ensemble 0 2 0 227
記事 Megumi Kakechi · 2024年8月15日 2m read IRISでエクスポートしたクラスやルーチンをCacheにインポートする方法 通常、Caché でエクスポートしたクラスやルーチンをIRISにインポートすることは可能ですが、IRISよりエクスポートしたクラスやルーチンを Caché にインポートすることはできません。 Caché にインポートしようとすると、以下のようなエラーになります。 #ObjectScript #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 2 0 96
質問 Yuji Ohata · 2022年2月17日 マニフェストを利用したNMSPの作成について。 こんにちは、皆さま。業務でIRISを用いて開発を行っている者です。 現在、共通のIRIS環境を複数個所に用意するため、インストール・マニフェストを利用した環境構築の仕組みを作成しております。https://docs.intersystems.com/iris20211/csp/docbookj/DocBook.UI.Page.cls... #相互運用性 #Ensemble #InterSystems IRIS 0 2 0 178
記事 Mihoko Iijima · 2024年2月29日 5m read インデックス再構築が終わるまで新しく定義したインデックスを使用させない方法 これは InterSystems FAQ サイトの記事です。 新しいインデックスを定義した後、インデックスの再構築が完了する前にクエリを実行するとデータが存在しているにもかかわらず「検索結果0件」や検索結果数が徐々に増えるような状況が発生します。 インデックスを永続クラス定義(またはテーブル定義)に追加しコンパイルすることで今まで使用していたクエリ実行経路が削除され、再度同じクエリを実行するタイミングで新しいインデックス定義を含めた実行経路が作成されるためです。(この時にインデックス再構築が完了していないとインデックスデータが存在しない、または不完全であるため0件や徐々に検索結果数が増えるような状況を起こします。) これを起こさなために、新しいインデックスの再構築が終了するまでクエリオプティマイザにインデックスを使用させないように指定する方法が用意されています。 ※ 2024/8/2: 2024.1以降から利用できる方法を追加しました。 #SQL #インデックス付け #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 1 0 205
記事 Hiroshi Sato · 2020年10月19日 5m read LinuxでのKernelパラメータ値の設定 これはInterSystems FAQ サイトの記事です。 一部のKernelパラメータはInterSystems製品を稼働するためには、不適切な値となっているため、調整する必要があります。 1. kernel.shmmax (共有メモリセグメントの最大値) 通常既定値で問題ありません。 設定する場合は、共有メモリにあわせたshmmaxの値は以下の a)~ f) の合計値になります。 a) データベースバッファ globals(Mbytes) x 1.075 globals b) ルーチンバッファ routines(Mbytes) x 1.02 #Red Hat Enterprise Linux (RHEL) #Ubuntu #Caché #Ensemble #InterSystems IRIS 0 1 0 4.6K
記事 Mihoko Iijima · 2022年12月7日 1m read ObjectScript クックブック 開発者の皆さん、こんにちは! InterSystems全製品のサーバ側コードで利用できる「ObjectScript」の基本の使い方から、困ったときのヒント集、エラーの読み方など、日本語ドキュメントの逆引きになるようなページを目指して、「ObjectScriptクックブック」を作成しました! - ObjectScriptの基本の「き」 Hello Worldの出力から始めたい方に最適です。 2024/3/25更新:8. デバッグ方法 を追加しました。ぜひご参照ください。 - CookBook(こんなときどうする?集) ObjectScriptの記述に困ったときに読んでいただけるヒント集です。コミュニティに寄せられたご質問をどんどん掲載していきます。 - ObjectScriptでエラーが発生したら ObjectScriptのプログラムでエラーが発生したときのエラーメッセージの読み方から、エラー情報の取得方法などを解説しています。 #ObjectScript #ヒントとコツ #初心者 #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 4 1 0 324
記事 Megumi Kakechi · 2023年2月6日 4m read ファイル操作関連のTips ファイルとディレクトリの操作に使用できる API 、%Library.File クラス (%File が省略形) の便利なサンプルコードをご紹介します。 こちらのAPIを使用して、ディレクトリやファイルの中身をのぞいたり、作成・書込み・読込みを行ってみます。 ★ディレクトリ内のファイル一覧をリストする 以下のサンプルは、C:\temp フォルダ内の *.txt ファイルをリストします(ファイルパス_サイズ_作成日)。 #ObjectScript #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 2 1 0 569
記事 Megumi Kakechi · 2021年3月2日 2m read $ZF(-100) で実行したコマンドの出力を取得する方法 これは InterSystems FAQ サイトの記事です。※記事後半に、「2>&1」で 標準エラー出力(2) を 標準出力(1) にリダイレクトする方法を追記しました。 $ZF(-100) では実行したコマンドの出力を取得することはできませんが、代わりにコマンド・パイプ デバイスを使用する方法があります。 詳細は、以下ドキュメントをご参照ください。 コマンド・パイプ デバイスを使用する方法について こちらを %File クラスで使用した例が以下になります。 #ObjectScript #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 1 0 479
InterSystems公式 Toshihiko Minamoto · 2021年12月14日 2021年12月13日 - 勧告: Apache Log4j2ライブラリの脆弱性がインターシステムズ製品に与える影響 2021年12月13日 - 勧告: Apache Log4j2ライブラリの脆弱性がインターシステムズ製品に与える影響 インターシステムズは現在、Apache Log4j2に関するセキュリティ脆弱性の影響を調査しています。 #アラート #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health #InterSystems公式 1 1 0 160
記事 Megumi Kakechi · 2023年4月3日 3m read 現在の一般メモリヒープ(gmheap)と取得可能なロックテーブル(locksiz)最大サイズについて これは InterSystems FAQ サイトの記事です。 データ取込み処理の性能・エラー(Lock Table Full)対策として、一般メモリヒープ(gmheap)や ロックテーブルサイズ(locksiz)のパラメータチューニングを行う場合があると思います。 実際に、現在どのくらいの一般メモリヒープが確保できているのかは、ターミナルと管理ポータルで確認することができます。 ★ターミナルの場合 #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 1 1 170
InterSystems公式 Yoichi Miyashita · 2021年6月18日 勧告: 非推奨および廃止されたテクノロジーと機能について InterSystems は、より新しく優れたオプションが利用可能になったときに従来のテクノロジーの開発を中止することがあります。ただし、それら機能は最小サポートバージョン以後の製品であれば他の機能と同等にサポートします。 #CSP #ZEN #Caché #Ensemble #InterSystems公式 0 1 0 334
記事 Megumi Kakechi · 2020年9月30日 2m read コンソールログに出力される [SYSTEM MONITOR] DBLatency... の警告について これはInterSystems FAQ サイトの記事です。 DBLatency の Warning メッセージは、ヘルス・モニタプロセスが定期的にデータベースからのランダム読み取りが完了するまでに要した時間(ミリ秒)を計測していて、設定されている閾値(1000 msec)を超えた場合に出力されます。 mm/dd/yy-18:31:15:060 (2932) 1 [SYSTEM MONITOR] DBLatency(c:\xxx\) Warning: DBLatency = 1510 ( Warnvalue is 1000). 上記例では、C:\xxx\IRIS.DAT(または C:\xxx\CACHE.DAT)へのディスク読み取り I/O に 1510 msec かかったことを示していて、メッセージ出力時のディスク I/O 応答速度が遅いことが考えられます。 ディスク I/O 応答速度が遅い原因としては、ディスク I/O 負荷が高いことが考えられます。 #システム管理 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 393
記事 Mihoko Iijima · 2020年11月12日 3m read オンラインバックアップでのバックアップサイズを見積もる方法 これはInterSystems FAQ サイトの記事です。 システムルーチン ^DBSIZE を利用するとバックアップファイルサイズを見積もることができます(メモ1もご参照ください)。 ^DBSIZE は、データベース・バックアップ・リストに選択されたデータベースを対象に、フルバックアップ/累積バックアップ/差分バックアップそれぞれのファイルサイズを見積もります。 なお、データベース・バックアップ・リストは、管理ポータルの [システム管理] > [構成] > [データベースバックアップ] > [データベース・バックアップ・リスト] から作成します。 詳細については、下記ドキュメントもご参照ください。 #バックアップ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 285
記事 Mihoko Iijima · 2020年12月20日 1m read データベース以外のファイルをミラーリングで同期する方法があるのかどうか これは InterSystems FAQ サイトの記事です ミラーリングが同期の対象とするのはデータベースファイルのみです。 アプリケーションに必要なその他のファイル(CSPファイル、画像ファイル、ドキュメントファイルなど)をミラーセットを構成する二台のサーバー間で同期させるには、 NASなどを導入して共有ディスク上にそれらのファイルを配置する方法 または同期ソフトを導入して二台のサーバー間のファイルを同期させる方法 などの方法が考えられます。 また、2の方法では Windows 上では RoboCopy、Linuxの場合には rsync という同期ソフトを使った実例があります。 #Mirroring #システム管理 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 87
記事 Megumi Kakechi · 2021年2月8日 1m read 平常時のシステムパフォーマンスを収集する方法 これは InterSystems FAQ サイトの記事です。 システムのパフォーマンスが低下した場合、OSやインターシステムズ製品の様々なツールを使用して情報収集を行い ”通常時と比較して、どこがどの程度変わっているか”を確認することで、問題のある箇所を特定できます。(逆に、通常時の状況が不明な場合、パフォーマンス問題点の切り分けが非常に困難となる場合もあります。) いざ という時に備え、通常時のパフォーマンスを確認することは、大変重要な情報となります。 収集情報詳細は、以下のドキュメントをご参照ください。 #システム管理 #パフォーマンス #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 146
記事 Hiroshi Sato · 2021年12月20日 1m read <EXTERNAL INTERRUPT>エラーの原因と対処法 これは、InterSystems FAQサイトの記事です。 CSPアプリケーションでは、リクエスト処理時間がサーバー応答タイムアウト値(CSPゲートウェイ管理ページで設定、既定値60 sec)を経過すると、CSPゲートウェイからクライアントブラウザにタイムアウトを通知し、処理を続けているデータプラットフォームサーバプロセスにエラーを発生させます。 エラーが発生している処理を確認して頂き、処理遅延の改善、例えばタイムアウトが発生しないように処理内容を見直して応答時間を短くすることや必要に応じてサーバ応答タイムアウト値を大きくすることで対処可能です。 #CSP #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 2 0 0 389
記事 Hiroshi Sato · 2021年10月13日 3m read System routine buffer (# KB) shortage is detected.... のメッセージの意味と対処方法 これはInterSystems FAQ サイトの記事です。コンソールログファイル (※1) に、以下のメッセージが表示されることがあります。 05/14/19-09:32:14:056 (6888) 0 System routine buffer (64 KB) shortage is detected, 430 routine buffers configured, adjusted per process cached rtn to 71 (※1)コンソールログファイルは、[管理ポータル] > [システムオペレーション] > [システムログ] > [コンソール・ログ] から参照できます。または、以下ファイルを直接参照することもできます。 <インストールディレクトリ>\mgr\cconsole.log 上記メッセージでは、ルーチンバッファサイズのうちの 64KB バッファの不足が検出されています。 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 199
記事 Mihoko Iijima · 2021年4月9日 1m read 関数・メソッドの引数に可変長引数を渡すことができるかどうか これは InterSystems FAQ サイトの記事です。 引数名の後ろに ... をつけることで可変の引数を渡すことができます。 ObjectScript では、配列を使って任意の数の引数を渡すことができます。 例文は以下の通りです。例文では、メソッド実行後に確認しやすいように、グローバル変数(=データベースに格納される変数)に引数の情報を設定しています。 Class TEST.ARGTEST1 Extends %RegisteredObject { ClassMethod NewMethod1(Arg... As %String) As %Boolean { kill ^a merge ^a = Arg } } ターミナルで実行した結果は以下の通りです。 #ObjectScript #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 309
記事 Mihoko Iijima · 2021年6月1日 6m read REST/JSON の簡単なサンプルご紹介 これは InterSystems FAQ サイトの記事です。 InterSystems 製品を利用した REST/JSON の操作方法を、簡単なサンプルを利用して解説します。 サンプルでは、REST クライアント、HTML、ターミナルからデータ(JSON)を送信し、サーバ(InterSystems製品)で JSON 形式のデータを返す REST ディスパッチクラスを使った簡単な流れになっています。 サンプルは、https://github.com/Intersystems-jp/FAQ-REST-SimpleSample からダウンロードいただけます。 #HTML #JavaScript #REST API #ヒントとコツ #初心者 #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 7.5K
記事 Mihoko Iijima · 2021年6月22日 1m read 複数のバージョンをインストールした環境で ODBC ドライバを切り替える方法 これは InterSystems FAQ サイトの記事です。 同一システムに InterSystems 製品を複数インストールした場合、ドライバマネージャに登録される InterSystems 用の ODBCドライバは、インストールされた製品の中で最新バージョンのドライバが登録されたままとなります。 以下のレジストリエントリを変更することで、任意のドライバへ変更できます。 なお、RegFiles.bat 実行では ODBCドライバは切り替わらないのでご注意ください。 レジストリエントリは、以下の通りです。 #ODBC #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 799
記事 Mihoko Iijima · 2021年7月28日 1m read プラットフォーム別利用状況について これは InterSystems FAQ サイトの記事です。 プラットフォーム別導入状況(組織ベース)は、以下の通りです。(2020年時点) Windows : 86% Linux : 10% AIX : 4% UNIX : 1%未満 OpenVMS : 1%未満 Oracle Solaris : 1%未満 #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 98
記事 Megumi Kakechi · 2021年9月21日 3m read Windows のシャットダウン時にInterSystems製品を自動停止することはできますか? これは InterSystems FAQ サイトの記事です。 Windowsのグループセキュリティポリシーに停止コマンドを記述したバッチファイルを登録する事により可能です。 手順は以下のとおりです。 1.Windowsのローカルコンピュータ・ポリシーのシャットダウンスクリプトに停止コマンドを登録します。 停止コマンドを含んだbatファイルを作成します。 CacheStop.bat ※InterSystems Caché の場合 c:\intersystems\cache\bin\ccontrol stop CACHE IRISStop.bat ※InterSystems IRIS の場合 #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 717
記事 Megumi Kakechi · 2021年11月15日 1m read Webゲートウェイ/CSPゲートウェイの設定についての注意点(Apache) これは InterSystems FAQ サイトの記事です。 SELinuxの機能が有効になっているとファイルアクセス時にセキュリティコンテキストのチェックで permission エラーになります。 CSP のページについても同様に permission エラーになっているため、Apache にて 403 Forbidden エラーになります。 以下の設定でSELinuxの機能を無効にすることで回避できます。 設定ファイル /etc/selinux/config の SELINUX=disableに設定し、OS の再起動を行います。 例: #セキュリティ #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 334