記事 Hiroshi Sato · 2021年10月27日 1m read ターミナルでSQLを実行する方法 これは、InterSystems FAQサイトの記事です。$system.SQL.Shell() を使用します。 以下にサンプルを示しますので参考にしてください。 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 529
記事 Hiroshi Sato · 2021年10月26日 1m read %付きWebページを開くとエラーになる場合の対処法。 これは、InterSystems FAQサイトの記事です。InterSystems 製品の管理ツールやWebページのセキュリティ強化のため、%付きのWebページ(例:管理ポータル上のユニットテストポータル、Webサービスクラスのテスト画面)に対するアクセスがより効率的に制御できるよう、新しいルールが追加されました。 これによりデフォルトで参照可能なページ以外については、明示的に参照許可を設定する必要があり、設定しない場合参照エラーとなります。 以下のドキュメントをご参照いただき、必要に応じて参照許可を設定するようにしてください。 %CSP ページへのアプリケーション・アクセスの制御について Webサービスクラスのテスト画面の場合は、以下をご覧ください。 #CSP #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 114
記事 Hiroshi Sato · 2021年10月21日 2m read システム日付を変更して行うテストについての注意点 これは、InterSystems FAQサイトの記事です。システム日付の変更をすると、InterSystems Data Platform(以下IRIS)が正常に開始しなくなる場合があります。 IRISは開始時にジャーナルファイル削除処理を行いますが、システム日付を変更すると不正な日付のジャーナルファイルが作成されます。 ジャーナルファイル削除処理では、ジャーナルファイル内部に記録された前後のファイルの情報も参照し処理を進めます。 システム日付けの変更によりジャーナルファイルの繋がりに矛盾が生じると、削除処理でループ状態となり、IRISの開始処理が完了しなくなることがありますので、ご注意ください。 システム日付を変更することはIRISに限らず、OSやミドルウェア、その上で動作するアプリケーションの依存性など様々な影響の可能性が考えられます。 テスト・検証などの関係で、どうしてもシステム日付を変更しなければならない場合には、IRISのアンインストールや再インストールが自由に行える環境(仮想環境など)でテストされることを推奨致します。 #システム管理 #ヒントとコツ #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 579
記事 Hiroshi Sato · 2021年10月20日 1m read IRISに含まれるアダプタについて これは、InterSystems FAQサイトの記事です。 InterSystems IRIS Data Platformにはシステム接続に良く使われる一般的な電子メール、ファイル、FTP、HTTP、ウェブサービス、REST、SQL、TCPアダプタなどが標準で含まれています。 特定アプリケーション向けに IBM WebSphere MQ アダプタや SAP Java Connector アダプタも提供します。 そしてJavaアプリケーションを呼び出すためや .Net アプリケーションを呼び出すための PEX(Production EXtension)というフレームワーク もあります。 そのほか、IRIS for HealthにはHL7 FHIR、HL7 V2、HL7 V3、CDA、DICOM、X12、ASTM,EDIFACT などのアダプタもあります。 さらに標準で用意していないカスタムアプリケーション用にはカスタムアダプタを作成することもできます。 #相互運用性 #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 245
記事 Hiroshi Sato · 2021年10月19日 2m read システムを個別に繋ぐ方法とIRISで接続する方法で何が違うのですか? これはInterSystems FAQ サイトの記事です。 2つのシステムをつなぐだけだったら、わざわざInterSystems IRIS Data Platform(以下IRISと表記)のようなものを仲介させるのは無駄に思えるかもしれません。 ですが、システムの接続は複数システム間に跨るのが一般的です。 そしてシステムの数が増えるにつれ、その接続は複雑になっていき、接続のタイミング、接続プロジェクトの進行管理などが重荷になっていきます。 また各接続は時が経つにつれ変化するのが一般的で、そういうことが起こると双方のシステムにその都度修正が必要になります。 相互依存性が高まるわけです。 また時が経つにつれ各システムが本来持っている機能と接続に関わる処理が混在するケースが多く、変更の影響範囲が多岐に渡ってしまい、 ちょっとした修正でも影響範囲の特定が困難となり、修正作業が膨大になるケースがあります。 #相互運用性 #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 136
記事 Hiroshi Sato · 2021年10月18日 1m read テーブル名(クラス名)やカラム名(プロパティ名)の命名規約について これはInterSystems FAQ サイトの記事です。命名規約については、それぞれ下記のドキュメントページをご確認ください。 テーブル名(クラス名)について 識別子のルールとガイドライン - クラス カラム名(プロパティ名)について 識別子のルールとガイドライン - クラス・メンバ #コーディングのガイドライン #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 568
記事 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 355
記事 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 166
記事 Hiroshi Sato · 2021年10月12日 1m read DBリストア手順 これはInterSystems FAQ サイトの記事です。^BACKUP ユーティリティを使用して、DBリストアする方法をご紹介します。 添付のドキュメントでは、オンラインバックアップ と レガシー並行外部バックアップ の2種類のバックアップからのリストア処理の方法を紹介しています。 リストア処理の詳細は、下記ドキュメントページを参照してください。 #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 199
記事 Hiroshi Sato · 2021年10月12日 2m read %Net.FtpSession クラスを使用してファイルサイズを取得する方法 これはInterSystems FAQ サイトの記事です。ファイルサイズを取得する専用メソッドはありませんが、%Net.FtpSession クラスの sendCommand() メソッドを通してFTPのSIZEコマンドを呼び出し、サイズを取得できます。 簡単な利用例をご紹介します。 まず、以下の様なクラスを定義します。 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 223
記事 Hiroshi Sato · 2021年10月7日 2m read ジャーナルファイルの内容を管理ポータル以外で参照する方法 これは InterSystems FAQ サイトの記事です。ジャーナルファイルのサイズが大きすぎて、管理ポータルで検索やフィルタリング等できない場合、以下の2つの方法で参照することができます。 ① ^JRNDUMP ユーティリティを使用する方法② プログラムで参照する方法 ============================================================ ① ^JRNDUMP ユーティリティを使用する方法 例えば、グローバル参照 ^ABC を含むジャーナルファイルのすべてのレコードを選択する場合は、以下のようになります。 ※以下、すべてのコマンドは %SYS ネームスペースで実行してください。 DO SELECT^JRNDUMP("C:\MyCache\mgr\journal\YYYYMMDD.001","","","^ABC",1) #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 275
記事 Hiroshi Sato · 2021年10月7日 1m read ジャーナルレコード中の「時間」の値について これは InterSystems FAQ サイトの記事です。ジャーナルレコードの「時間」には、ジャーナルバッファを初期化したときの時間が登録されています。 ジャーナルレコードの時間は、ジャーナルバッファ毎に記録されているため、同じジャーナルバッファ内のジャーナルレコードはすべて同じ時間になります。 なお、ジャーナルバッファは、64KBのサイズで255個存在していて、1つのジャーナルバッファが満杯になった場合、次のジャーナルバッファへレコードを追加するように順番に使用されます。 ジャーナルレコードの時間は、次のバッファへレコードを追加する前に行われる初期化の時間が記録される仕組みになっています。 #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 106
記事 Hiroshi Sato · 2021年10月5日 2m read Webゲートウェイ/CSPゲートウェイの設定管理ページにどのクライアントからもアクセスできるようにする これは InterSystems FAQ サイトの記事です。Web/CSPゲートウェイ管理ページは、通常クライアントマシンからアクセスできないように構成されています。 任意のクライアントからアクセスするためには以下の操作を行います。 Web/CSPゲートウェイ管理ページにアクセス可能なシステムからブラウザを起動し、管理ポータルにアクセスします。管理ポータル>システム管理>構成>の所でCSPゲートウェイ管理をクリックします。表示されるページの左ペインに表示されるデフォルトパラメータをクリックします。 システム管理マシンの所に*.*.*.*と入力し、設定を保存ボタンを押下げます。 しかしながら任意のクライアントから管理ページにアクセスできるようにするのはセキュリティの観点からはあまりお勧めできません。アクセスできるクライアントはなるべく限定することをお勧めします。クライアントアドレスの指定方法としては、以下のような指定形式があります。 #CSP #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 283
記事 Hiroshi Sato · 2021年9月30日 1m read データベースファイルのタイムスタンプ(更新日時)の更新タイミング これは InterSystems FAQ サイトの記事です。IRIS.DAT/CACHE.DATのタイムスタンプ更新は、データベースの内容の更新後のディスマウント時 (明示的なディスマウント処理または停止処理の際、 または、 データベースファイルのサイズ拡張時に発生します。 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 137
記事 Hiroshi Sato · 2021年9月29日 2m read プログラミングでタスクスケジュールを登録・参照する方法 これは InterSystems FAQ サイトの記事です。こちらでは、タスクスケジュールを登録・参照するサンプルコードをご紹介します。 ①タスクスケジュール登録のサンプル ※毎日 am1:00に do ^TEST を実行するタスクを作成します。 #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 225
記事 Hiroshi Sato · 2021年9月26日 3m read リストコレクションを定義したプロパティに対するSQLアクセス方法 これは InterSystems FAQ サイトの記事です。リストコレクション(Property XXX As list of %String;)で定義したプロパティは、SQL関数: $LISTBUILD() 、$LISTFROMSTRING() を使用して操作できます。 各SQL関数については、下記ドキュメントページをご参照ください。 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 148
記事 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年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 847
記事 Hiroshi Sato · 2021年9月23日 2m read アプリケーション使用中にインデックス再構築を複数プロセスで実行する方法 これは InterSystems FAQ サイトの記事です。%IndexBuilder クラスを使用して、複数プロセスを利用してインデックス再構築を行うことができます。 Sample.Person の Home_State(連絡先住所の州情報)カラムに対して標準インデックス HomeStateIdx を定義する目的での例で記載します。 手順は以下の通りです。 1、追加/再構築予定のインデックス名をクエリオプティマイザから隠します。 >write $system.SQL.SetMapSelectability("Sample.Person","HomeStateIdx",0)1 2、新インデックスを定義するクラス定義のスーパークラスに %IndexBuilder を一番右端に追加します。 #ヒントとコツ #Caché #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 148
記事 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 351