記事 Megumi Kakechi · 2023年5月15日 2m read グローバルの kill で <SLMSPAN> エラーとなる原因と対処方法 これは InterSystems FAQ サイトの記事です。 サブスクリプトレベルマッピングされたグローバルを、トップノードから全体をkillする場合、<SLMSPAN>エラーとなり削除ができません。 これは、サブスクリプトレベルマッピングされたグローバルについては、マッピングを跨いだサブスクリプト範囲の kill コマンドは行えないためです。 #ObjectScript #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 59
記事 Mihoko Iijima · 2023年6月29日 3m read CSVファイルをテーブルにインポートする方法(LOAD DATA編) これは InterSystems FAQ サイトの記事です。 LOAD DATAは、バージョン2022.1から追加されたSQLコマンドで、CSVファイルやJDBCソースからデータをテーブルにロードするコマンドです。データが存在するテーブルにLOAD DATAを実行した場合、データは追記されます。 ※ バージョン2022.1をご利用いただく場合は、バージョン2022.1.3 をご利用ください。(2022.1.0~2022.1.2は、使用するJARファイルの不備により動作しません。) #SQL #ヒントとコツ #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 496
記事 Megumi Kakechi · 2023年11月12日 1m read Linux系OS上でインスタンスのstateがwarnになる理由 これは InterSystems FAQ サイトの記事です。 iris list などのコマンドで、IRISインスタンスの情報を表示すると、下記のように、stateが「warn」となっていることがあります。 #システム管理 #ヒントとコツ #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 48
記事 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 60
記事 Mihoko Iijima · 2020年11月6日 4m read 外れ値について これはInterSystems FAQ サイトの記事です。 テーブルチューニングを行った際に、フィールドに値がほとんど登録されていない(Null)場合や、特定の値がほとんどを占める場合、その値を [外れ値] として除外して選択性計算を行います。 また、外れ値が全レコードの何 % を占めているかの値は [外れ値の選択性] として記録されます。 InterSystems 製品のクエリオプティマイザは、選択性数値とエクステントサイズを使用してクエリの経路を決定しますが、クラスクエリ、埋め込み SQL に使用しているクエリに外れ値が含まれる場合は、外れ値の選択性が自動的に考慮され、インデックスの使用有無を決定しています。 #SQL #インデックス付け #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 400
記事 Mihoko Iijima · 2021年1月15日 2m read 文字列の前後の半角スペース及び全角スペースを取り除く方法 これは InterSystems FAQ サイトの記事です。 $ZSTRIP() 関数を使用します。 この関数を使用すると、指定文字列から、文字のタイプと文字を削除できます。 下記の例のように、第2引数で、"<"、">"、"<>"を指定することにより、SQLのLTRIM、RTRIM、TRIM関数と同等の処理が可能になります。 #ObjectScript #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 695
記事 Mihoko Iijima · 2021年4月15日 2m read プログラムから、クラス定義に記述されたプロパティ定義を取得する方法 これは InterSystems FAQ サイトの記事です。 クラスに定義されたプロパティの情報については、以下システムクラスを利用して情報を取得できます。 %Dictionary.ClassDefinetion #ObjectScript #オブジェクトデータモデル #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 234
記事 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 7K
記事 Mihoko Iijima · 2021年7月5日 1m read Extent クエリの結果が ID 順にならないわけ これは InterSystems FAQ サイトの記事です。 %Persistent クラスに既定で生成される Extent クエリは、ID 順に結果セットを出力することを意図していませんので、これは、仕様通りの動きとなります。 並び順は、設定されているインデックスにより、変わることがあります。 #SQL #ヒントとコツ #Caché #Ensemble #HealthShare #iKnow #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 90
記事 Mihoko Iijima · 2021年8月31日 5m read ジャーナルファイルが長時間消されずに残ってしまう原因 これは InterSystems FAQ サイトの記事です。 24時間停止しないシステムの場合、「ジャーナルファイルの削除設定」に合わせて 0時30分 に古いジャーナルファイルを削除します。 「ジャーナルファイルの削除設定」より古いジャーナルファイルが残っている原因として、オープンされたままのトランザクションが存在していることが考えられます。 その場合、トランザクション実行中プロセスを探し、トランザクションを確定させることでジャーナルファイルを削除できるようになります。 以下のサンプルは、オープンされたままのトランザクションの存在確認と、存在する場合は対象ファイル名とジャーナルレコード情報が出力されます。 (サンプルは、https://github.com/Intersystems-jp/CheckOpenTransaction からダウンロードできます) #システム管理 #ジャーナリング #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 159
記事 Hiroshi Sato · 2021年9月23日 2m read タスクスケジュールを別環境にコピーする方法 これは InterSystems FAQ サイトの記事です。 タスクスケジュールを別環境にコピー(エクスポート/インポート)するには、以下の2つの方法があります。 個別にエクスポート/インポートする場合(管理ポータルで行う方法) 複数のタスクスケジュールをエクスポート/インポートする場合(%SYS.TaskSuperクラスを使用する方法) 1.個別にエクスポート/インポートする場合 管理ポータルから行うことが可能です。 個別のスケジュールを開くと、エクスポートボタンがあるので、そちらからエクスポートしてください。 インポートも同じく管理ポータルから行えます。 2.複数のタスクスケジュールをエクスポート/インポートする場合 タスクスケジュールのエクスポートには、%SYS.TaskSuper クラスの ExportTasks() メソッドをお使いいただけます。 実行例は以下のようになります。 #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 826
記事 Hiroshi Sato · 2021年10月14日 2m read 文字コードを変換するときに利用できる変換テーブル名を取得する これはInterSystems FAQ サイトの記事です。文字コードの変換に利用できる変換テーブル名は、以下のシステム関数で取得できます。 Write $$GetIONames^%SYS.NLS() 現在のロケールにおいて各デバイス(ファイル、ターミナル等)のデフォルトの変換テーブル名を取得するには、%SYS.NLS.Table クラスを使用します。 確認方法は以下の通りです。 (1) システムデフォルト設定を取得するため、%SYS.NLS.Table のインスタンスを生成します。(引数に、"System" を指定します。) set obj=##class(%SYS.NLS.Table).%New("System") (2) GetIOTable() メソッドを使用して、確認したいデバイスの現在の変換テーブル名を取得します。 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 350
記事 Hiroshi Sato · 2021年12月28日 2m read コンパイルフラグについて これは InterSystems FAQ サイトの記事です。 コンパイル時のフラグや修飾子の記号と意味については、以下ドキュメントをご参照ください。 コンパイルフラグについて【IRIS】 コンパイルフラグについて なお、開発環境のスタジオやVisual Studio Codeでは、開発環境の設定画面でフラグを変更できます。 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 532
記事 Megumi Kakechi · 2022年5月6日 1m read InterSystems IRIS Data Platformはリレーショナルデータベースと何が違うのか これは、InterSystems FAQサイトの記事です。InterSystems IRIS Data Platform(以下IRISと表記)はSQLのサポートをはじめ、リレーショナルデータベースとの高い互換性を有します。 さらに、IRISは多次元データエンジンをベースにしており、通常のリレーショナルデータベースシステムに比べて柔軟なデータ構造を持つことができ、一般的にパフォーマンス、スケーラビリティ、データ保守性に優れています。 また完全なオブジェクト指向をサポートしており、Javaなどのオブジェクト指向開発環境との親和性という点でも優れています。 #ヒントとコツ #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 223
記事 Mihoko Iijima · 2022年8月25日 1m read データベース xxxENSTEMP、xxxSECONDARY について これは InterSystems FAQ サイトの記事です。 メモ:xxx にはネームスペース名が入ります。 xxxENSTEMPは、プロダクション実行中に作成される一時データが保存されるデータベースです。^IRIS.Temp.Ens* のグローバルがこのデータベースにマッピングされています。なお、xxxENSTEMPはジャーナルにかかれない設定のデータベースです。 xxxSECONDARYは、プロダクションで使用される資格情報を保存するデータベースです。^Ens.SecondaryData* のグローバルがこのデータベースにマッピングされています。 注意:InterSystems IRIS for Health、HealthShare ではこれらデータベースは作成されません 詳細は以下ドキュメントをご覧下さい。 #データベース #ヒントとコツ #相互運用性 #Ensemble #InterSystems IRIS 0 0 0 82
記事 Megumi Kakechi · 2022年11月3日 1m read IRISという製品名を選んだのはなぜですか? これは InterSystems FAQ サイトの記事です。 Question: IRISという製品名を選んだのはなぜですか? Answer: IRISは、インターシステムズの製品開発者がソフトウェアを開発する際に常に念頭に置くべき以下の4つの原則の先頭文字を表しています。 #ヒントとコツ #InterSystems IRIS #InterSystems IRIS for Health 0 0 1 137
記事 Mihoko Iijima · 2023年3月2日 1m read InterSystems IRIS/InterSystems IRIS for Health コミュニティ版と製品版の違いについて これは InterSystems FAQ サイトの記事です。 コミュニティ版は1インスタンスでの利用を想定しているため、2インスタンス以上で設定する構成は利用できません。 製品版と異なる点は以下の通りです。 #システム管理 #ヒントとコツ #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 303
記事 Megumi Kakechi · 2023年5月21日 2m read ストレージ情報をエクスポートしない方法 すべての永続クラス (%Persistent) およびシリアルクラス(%SerialObject) をコンパイルすると、ストレージ定義 が展開されます。ストレージ定義には、オブジェクト保存と検索用のグローバル構造情報、ストレージインタフェースによって使用される追加のパラメータや、ストレージクラスを定義する一連のキーワードや値などが含まれます。 スタジオや ObjectScript コマンドを使用して永続クラスをエクスポートする場合、既定では以下のようなストレージ情報が付与された状態でエクスポートされます。 #スタジオ #ヒントとコツ #InterSystems IRIS #InterSystems IRIS for Health 2 0 0 76
記事 Megumi Kakechi · 2023年7月11日 3m read エラーのステータス値を表示する方法 クラスメソッドの多くは、%Status データ型を使用して、成功 または 失敗 の情報を返します。成功の場合は 1 が返り、失敗の場合はエラーステータス および 1 つ以上のエラーコードとテキストメッセージを含むエンコードされた文字列が返ります。このようなメソッドでは、戻り値を必ず取得して確認するようにしてください。 こちらの記事では、失敗の場合の具体的なエラー情報を確認する方法をご紹介します。 #ObjectScript #ヒントとコツ #InterSystems IRIS #InterSystems IRIS for Health 1 0 1 99
記事 Toshihiko Minamoto · 2024年1月11日 3m read DeepSee で有効な階層を設計 DeepSee で階層を設計する場合、子メンバーに 1 つの親しか指定できません。 子が 2 つの親に対応する場合には、信頼性のない結果が得られることになります。 類似する 2 つのメンバーが存在する場合、そのキーがそれぞれ一意になるように変更する必要があります。 これが起きる場合とそれを回避する方法について、2 つの例を見ながら説明します。 例 1 (アメリカには)Boston と言う都市がある州がたくさんあります。 私のサンプルデータでは、Boston, MA(マサチューセッツ州ボストン)と Boston, NY(ニューヨーク州ボストン)のレコードがあります。 次元は次のように定義されています。 #IRIS Analytics Architect #キューブ #データモデル #ヒントとコツ #ベストプラクティス #分析 #Caché #InterSystems IRIS #InterSystems IRIS BI (DeepSee) 0 0 0 25
記事 Megumi Kakechi · 2020年11月9日 3m read Linuxでシステム開始/停止時に、インターシステムズ製品を自動起動/停止することはできますか? これはInterSystems FAQ サイトの記事です。 IRISのサービスを /usr/lib/systemd/system/iris.service に作成し systemctl ユーティリティにて設定を行います。 手順は以下になります。 ※ 作業は root ユーザまたは root 権限を持つユーザで行ってください。 1. IRISの自動起動・自動停止のスクリプトファイル「irisstartstop」を作成します。 irisstartstop #システム管理 #ヒントとコツ #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 500
記事 Toshihiko Minamoto · 2021年1月19日 7m read バグ退治を促進する開発を行うためのヒント デバッガーは使わないという人はいますか? 最後に使ったのはいつだったか、記憶にないですね。 それは、嫌いだからではなくて、単に必要ないからなんです。 その一番の理由は、ある種の開発手法を使っているおかげで、バグの発生を少なく抑えたり、単体テストのレベルで発見したり、バグをとても簡単に追跡できたりするからです。 以下にいくつかヒントを紹介します... 1. 独自の COS チートシートを作成する。 これは主に COS の初心者が対象になります。 バグを引き起こす大きな原因の一つとして、特定のコマンドや関数の動作を理解していないということがあります。 時間をかけて言語を学び、そのすべてのバリエーションを試すことをおすすめします。 それから独自のチートシートを作成することで、知識が固まり、さっと使えるレビューツールも出来上がります。 生産性アップにつながるほか、避けられるはずのバグをうっかり書いてしまう頻度を確実に減らすことができます。 2. スタジオで「変数の追跡」をオンにする #ヒントとコツ #Caché 0 0 0 136
記事 Mihoko Iijima · 2021年3月9日 1m read 指定テーブルの全フィールドをSQLで取得する方法 これは InterSystems FAQ サイトの記事です。 INFORMATION_SCHEMA スキーマを使用して取得できます。 INFORMATION_SCHEMA はシステム用スキーマのため、デフォルトでは管理ポータルの SQL メニューに表示されません。 表示させる方法は以下の通りです。 管理ポータル→システムエクスプローラ→SQL メニューを開きます。 スキーマのプルダウン左にある「システム」をチェックします。 スキーマのプルダウンから INFORMATION_SCHEMA を選択します。 #SQL #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 162
記事 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 540
記事 Megumi Kakechi · 2021年6月3日 5m read Javaから配列のような複数項目のデータを渡す方法 これは InterSystems FAQ サイトの記事です。 Java のプログラムで $List 構造のデータを扱うには、InterSystems 製品が提供する IRISList クラスを使用することが可能です。 こちらは、IRIS Native と同様に JDBCドライバの拡張機能の一部として提供しております。 Native API for Java Quick Reference(英語のみ) こちらでは、InterSystems 製品上に $List 構造を扱うクラスメソッドを作成し、それをストアドプロシージャとして公開し Java から呼び出すサンプルをご紹介します。 【使用可能バージョン】 #Java #JDBC #ヒントとコツ #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 1.1K
記事 Mihoko Iijima · 2021年7月5日 1m read データベースの暗号化の仕組み これは InterSystems FAQ サイトの記事です。 バージョン5.1以降、データベース単位に暗号化する仕組みが用意されています。 InterSystems data platform のデータベース暗号化は物理ブロックレベルの暗号化ですので、暗号化のオーバヘッドが非常に少なく、性能への影響が極小化されており、暗号化されている項目のインデックス化に制限等がありません。 関連記事もご参照ください。 データベースの暗号化手順について #ヒントとコツ #暗号化 #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 85
記事 Megumi Kakechi · 2021年9月1日 1m read SQL文ではなくユーザコードでクラスクエリを記述する方法 これは InterSystems FAQ サイトの記事です。 InterSystems製品のクラスクエリにはSQL文を利用する方法と、ユーザコードによる記述が選択できます。 スタジオメニューの [クラス] >[追加] > [クエリ] を選択すると、クエリウィザードが起動します。 画面に、「実装」を選択する項目があり、「このクエリはユーザコードで定義されている」を選択すると SQL文ではなく、ユーザコードによりクエリ定義が行えます。 #SQL #ヒントとコツ #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 315
記事 Hiroshi Sato · 2021年9月23日 1m read レコードマップで何ができるか? これは InterSystems FAQ サイトの記事です。レコード・マップは、区切り文字付きのレコードや固定幅のレコードを含むファイルをInteroperability機能で使用するメッセージクラスへマッピングしたり、Interoperability機能のメッセージクラスからテキストファイルへマッピングする作業を効率的に行うための機能です。 レコードマップのマッピング定義は管理ポータルで作成でき、CSVファイルを読み込ませながら定義するCSVレコードウィザードも提供しています。 プロダクションでレコードマップを利用する場合は、レコードマップ用ビジネス・サービス、またはビジネス・オペレーションを追加し、作成したレコードマップ定義クラスを指定すれば完成です。 使用例は、以下から取得できます。 レコードマップサンプル #ヒントとコツ #相互運用性 #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 258
記事 Hiroshi Sato · 2021年10月18日 1m read テーブル名(クラス名)やカラム名(プロパティ名)の命名規約について これはInterSystems FAQ サイトの記事です。命名規約については、それぞれ下記のドキュメントページをご確認ください。 テーブル名(クラス名)について 識別子のルールとガイドライン - クラス カラム名(プロパティ名)について 識別子のルールとガイドライン - クラス・メンバ #コーディングのガイドライン #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 559
記事 Megumi Kakechi · 2022年1月12日 5m read ミラージャーナルファイルの削除のタイミングと要件 これは、InterSystems FAQサイトの記事です。ミラージャーナルファイルの削除(パージ)のタイミングは以下のようになります。 ・プライマリ・フェイルオーバー・メンバ #Mirroring #システム管理 #ジャーナリング #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 183