記事 Megumi Kakechi · 2022年9月21日 2m read SQL ゲートウェイを使用した外部データベースへのアクセス方法について SQL ゲートウェイ接続を使用した、外部データベースへのアクセス方法についてご説明します。 手順は以下になります。 1. 外部ソースへの SQL ゲートウェイ接続の作成を行います ※こちらの例では、IRISの別インスタンスへの接続を試しています。 ※ODBCを使用される場合は、事前にシステムDSN(64bit)の準備が必要です。管理ポータルより [システム管理] > [構成] > [接続性] > [SQLゲートウェイ接続] の 新規接続作成 ボタンをクリックします。 接続の種類を選択し、必要項目を設定します。以下のサンプルは、ODBC接続(別IRISインスタンスのDSN設定)を行っています。 #JDBC #ODBC #SQL #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 311
記事 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 61
記事 Seisuke Nakahashi · 2024年1月12日 6m read ^mypButtons を利用して InterSystems IRIS パフォーマンスをチェックしてみましょう [背景] InterSystems IRIS 製品には、便利なツール ^SystemPerformance (Caché / Ensemble 時代は ^pButtons と呼ばれていました) があり、データベースのパフォーマンス情報を HTML 形式で出力してくれます。 IRIS for Windows で ^SystemPerformance を実行すると、 InterSystems 独自のパフォーマンスログ mgstat と Windows パフォーマンスログの両方を含んだ HTML が生成されます。 #システム管理 #パフォーマンス #ヒントとコツ #Caché #InterSystems IRIS Open Exchange app 2 0 0 49
記事 Toshihiko Minamoto · 2020年4月21日 28m read Caché Mirroring 101:簡単なガイドとよくある質問 Mirroring 101 Cachéミラーリングは、CachéおよびEnsembleベースのアプリケーションに適した信頼性が高く、安価で実装しやすい高可用性および災害復旧ソリューションです。 ミラーリングは幅広い計画停止シナリオや計画外停止シナリオで自動フェイルオーバーを提供するもので、通常はアプリケーションの回復時間を数秒に抑制します。 論理的にデータが複製されるため、単一障害点およびデータ破損の原因となるストレージが排除されます。 ほとんど、またはダウンタイムなしでアップグレードを実行できます。 #Mirroring #ヒントとコツ #システム管理 #データベース #フェイルオーバー #高可用性 #Caché #Ensemble #InterSystems IRIS 2 0 0 787
記事 Shintaro Kaminaka · 2020年7月3日 17m read InterSystems IRIS Open Authorization Framework(OAuth 2.0)の実装 - パート1 この記事と後続の2つの連載記事は、InterSystems製品ベースのアプリケーションでOAuth 2.0フレームワーク(簡略化のためにOAUTHとも呼ばれます)を使用する必要のある開発者またはシステム管理者向けのユーザーガイドを対象としています。 作成者:Daniel Kutac(InterSystemsシニアセールスエンジニア) #OAuth2 #セキュリティ #アクセス制御 #認証 #Caché #InterSystems IRIS 0 0 0 678
記事 Shintaro Kaminaka · 2020年8月26日 23m read InterSystems IRIS Open Authorization Framework(OAuth 2.0)の実装 - パート3 作成者:Daniel Kutac(InterSystems セールスエンジニア) パート 3. 付録 InterSystems IRIS OAUTH クラスの説明 この連載の前のパートでは、InterSystems IRIS を OAUTH クライアントおよび認可/認証サーバー(OpenID Connect を使用)として機能するように構成する方法について学びました。 この連載の最後のパートでは、InterSystems IRIS OAuth 2.0 フレームワークを実装するクラスについて説明します。 また、一部の API クラスのメソッドの使用例についても説明します。 OAuth 2.0 を実装する API クラスは、目的に応じて 3 種類のグループに分けることができます。 すべてのクラスは %SYS ネームスペースで実装されています。 これらの一部は(% package 経由で)公開されていますが、一部は非公開になっており、開発者が直接呼び出すことはできません。 #OAuth2 #セキュリティ #アクセス制御 #認証 #Caché #Ensemble #InterSystems IRIS 0 0 0 273
記事 Toshihiko Minamoto · 2020年11月10日 8m read Caché ObjectScript でパフォーマンスの良い loop を書く方法について 最近行われたディスカッションの中で、Caché ObjectScript における for/while loop のパフォーマンンスが話に出ましたので、意見やベストプラクティスをコミュニティの皆さんと共有したいと思います。 これ自体が基本的なトピックではありますが、他の点では合理的と言える方法のパフォーマンスが意味する内容を見逃してしまうことがよくあります。 つまり、$ListNext を使って$ListBuild リストをイテレートするループ、または $Order を使ってローカル配列をイテレートするループが最も高速な選択肢ということです。 #Code Snippet #ObjectScript #コーディングのガイドライン #ヒントとコツ #Caché 1 0 0 355
記事 Hiroshi Sato · 2020年10月15日 1m read カウンタとして時間経過を正確に計測する方法 これはInterSystems FAQ サイトの記事です。 $ZHorologを使用します。 $ZHorologシステム変数はInterSystems製品を起動してからの経過時間(秒)を保持しています。 2点間の$ZHorolog値の差を取るだけで正確な経過時間を取得する事が出来ます。 詳しくは以下、ドキュメントをご参照ください。 $ZHorologについて【IRIS】 $ZHorologについて この他、秒の小数部を含む時間の日付と時間の取得には $NOW, $ZTimeStamp が使用できます。 #ObjectScript #Caché #Ensemble #InterSystems IRIS 1 0 0 136
記事 Mihoko Iijima · 2020年11月6日 4m read 外れ値について これはInterSystems FAQ サイトの記事です。 テーブルチューニングを行った際に、フィールドに値がほとんど登録されていない(Null)場合や、特定の値がほとんどを占める場合、その値を [外れ値] として除外して選択性計算を行います。 また、外れ値が全レコードの何 % を占めているかの値は [外れ値の選択性] として記録されます。 InterSystems 製品のクエリオプティマイザは、選択性数値とエクステントサイズを使用してクエリの経路を決定しますが、クラスクエリ、埋め込み SQL に使用しているクエリに外れ値が含まれる場合は、外れ値の選択性が自動的に考慮され、インデックスの使用有無を決定しています。 #SQL #インデックス付け #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 402
記事 Mihoko Iijima · 2020年12月1日 2m read データベースに格納されているStreamデータをファイルに出力する方法 これは、InterSystems FAQサイトの記事です。 以下の例では Test.Class2 クラスの Images プロパティに画像ファイルが保存できるように定義しています。input() メソッドを利用して画像ファイルを Images プロパティに登録し、データベースに保存したとします。 #ObjectScript #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 360
記事 Hiroshi Sato · 2021年1月27日 4m read クラス定義のプロパティ表示順と、プロパティに対応したグローバル変数の格納順 これは InterSystems FAQ サイトの記事です。 クラス定義のプロパティの表示順は、スタジオのプロパティウィザードを利用して登録した場合は、末尾に追記されます。 また、エディタ上の任意の場所でプロパティ定義文を記述する場合は、その場所に追記され、クラス定義が登録されます。 つまり、定義者が記述した順番に登録されます。 (スタジオが並び換えを行ったりはしません。) 作成したクラス定義が、PersistentやSerialのようにデータベースに格納する属性を持ったクラス定義である場合、”初回のコンパイル”で クラス定義に対応するグローバル変数の定義情報=ストレージ定義を作成します。 初回コンパイル以降に、プロパティ定義の追加が行われれば、そのプロパティに対応するグローバル変数のスロット番号を、末尾に追加し、ストレージ定義を更新します。 以下の例は、クラス定義に対応するストレージ定義の例です。 (初回コンパイル時の状態) #スタジオ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 119
記事 Megumi Kakechi · 2021年2月15日 7m read データベースキャッシュおよびルーチンキャッシュの最適値の設定方法 これは InterSystems FAQ サイトの記事です。 データベースキャッシュおよびルーチンキャッシュをモニターし、最適値を調べる方法をご紹介します。 (1) データベースキャッシュ 現状の設定値で問題ないかは、^GLOSTAT ユーティリティ のCache Efficency値(キャッシュ効率)でモニターします。 Cache Efficiency 値は大きければ大きいほど良いですが、目安として100 以上であれば、設定サイズは問題ありません。 実行例) #システム管理 #パフォーマンス #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 348
記事 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 139
記事 Hiroshi Sato · 2021年10月18日 1m read テーブル名(クラス名)やカラム名(プロパティ名)の命名規約について これはInterSystems FAQ サイトの記事です。命名規約については、それぞれ下記のドキュメントページをご確認ください。 テーブル名(クラス名)について 識別子のルールとガイドライン - クラス カラム名(プロパティ名)について 識別子のルールとガイドライン - クラス・メンバ #コーディングのガイドライン #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 568
記事 Mihoko Iijima · 2021年4月2日 2m read コンソールログに "Failed to allocate xxxMB shared memory using large pages..." のエラーメッセージが出ているとき これは InterSystems FAQ サイトの記事です。 MM/DD-hh:mm:ss:938 ( 0) 1 Failed to allocate xxxMB shared memory using large pages. Switching to small pages.MM/DD-hh:mm:ss:938 ( 0) 0 Allocated xxxMB shared memory: yyyMB global buffers, zzzMB routine buffers コンソールログ(cconsole.log/messages.log)に上記のようなメッセージがある場合は、Large Page でのメモリ確保に失敗して、Small Page でメモリを確保したことを示しています。 Allocated xxxMB が設定サイズと同じ場合、Small Pageでメモリ確保ができていますので、設定サイズを減らす必要はありません。 #Microsoft Windows #システム管理 #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 1.5K
記事 Toshihiko Minamoto · 2021年4月19日 12m read 仮想IPアドレスを使用しないデータベースミラーリング ++更新日:2018年8月1日 Cachéデータベースミラーリングに組み込まれているInterSystems仮想IP(VIP)アドレスの使用には、特定の制限があります。 具体的に言うと、ミラーメンバーが同じネットワークサブネットに存在する場合にのみ使用できるというところです。 複数のデータセンターを使用した場合は、ネットワークの複雑さが増すため、ネットワークサブネットが物理的なデータセンターを越えて「延伸」されることはさほどありません(より詳細な説明はこちらです)。 同様の理由で、データベースがクラウドでホストされている場合、仮想IPは使用できないことがよくあります。 ロードバランサー(物理的または仮想)などのネットワークトラフィック管理のアプライアンスを使用して、クライアントアプリケーションやデバイスに単一のアドレスを提示することで、同レベルの透過性を実現できます。 ネットワークトラフィックマネージャは、クライアントを現在のミラープライマリの実際のIPアドレスに自動的にリダイレクトします。 この自動化は、災害後のHAフェイルオーバーとDRプロモーションの両方のニーズを満たすことを目的としています。 #Mirroring #インターシステムズビジネスソリューションとアーキテクチャ #クラウド #システム管理 #フェイルオーバー #高可用性 #Caché 0 0 0 332
記事 Hiroshi Sato · 2021年9月9日 2m read RESTでクロスドメイン制約を回避する方法 これは InterSystems FAQ サイトの記事です。 #REST API #セキュリティ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 435
記事 Hiroshi Sato · 2021年7月27日 1m read ODBCドライバーの単独入手 これは InterSystems FAQ サイトの記事です。 ご希望の場合は、カスタマーサポートセンターまでお問い合わせください。 #ODBC #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 245
記事 Toshihiko Minamoto · 2021年9月14日 10m read リレーショナルデータベースにおけるEntity-Attribute-Valueモデル。 グローバル変数はテーブルでエミュレートする必要がありますか? パート2. より産業向けのグローバルストレージスキーム この連載の第1回では、リレーショナルデータベースにおけるEAV(Entity-Attribute-Value)モデルを取り上げ、テーブルにエンティティ、属性、および値を保存することのメリットとデメリットについて確認しました。 このアプローチには柔軟性という点でメリットがあるにもかかわらず、特にデータの論理構造と物理ストレージの基本的な不一致などによりさまざまな問題が引き起こされるという深刻なデメリットがあります。 こういった問題を解決するために、階層情報の保存向けに最適化されたグローバル変数を、EAVアプローチが通常処理するタスクに使用できるかどうかを確認することにしました。 パート1では、オンラインストア向けのカタログをテーブルを使って作成し、その後で1つのグローバル変数のみで作成しました。 それでは、複数のグローバル変数で同じ構造を実装してみることにしましょう。 #SQL #グローバル #データベース #パフォーマンス #ヒントとコツ #リレーショナルテーブル #非構造化データ #Caché #InterSystems IRIS #InterSystems IRIS for Health Open Exchange app 0 0 0 286
記事 Megumi Kakechi · 2021年9月3日 2m read 文字列の中から数値だけを抜き出す方法 これは InterSystems FAQ サイトの記事です。 $ZSTRIPコマンドは、指定された文字列から文字のタイプと文字を削除します。このコマンドを使用することで文字列から数値部分のみを抽出することが可能です。 $ZSTRIP(string,action,remchar,keepchar) 第1引数(string) :対象文字列第2引数(action) :string から削除する対象。アクションコードとマスクコードで構成。第3引数(remchar) :削除する特定の文字を指定。第2引数のマスクコードに含まれない文字も指定可能。【オプション】第4引数(keepchar):削除しない特定の文字を指定。【オプション】 以下はその例です。 #ObjectScript #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 256
記事 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 262
記事 Megumi Kakechi · 2022年2月23日 1m read ジャーナルファイルの使用量をチェックする方法 これは、InterSystems FAQサイトの記事です。現ジャーナルファイル名の取得は、ジャーナリング API を利用します。 ##class(%SYS.Journal.System).GetCurrentFileName() 現ジャーナルファイルの使用量bytesの取得は、ジャーナリング API を利用します。 ##class(%SYS.Journal.System).GetCurrentFileOffset() 実行例は以下の通りです。 #ジャーナリング #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 121
記事 Mihoko Iijima · 2022年5月29日 2m read プログラムでCSVファイルをテーブルにインポート/テーブルからCSVファイルにエクスポートする方法 これは InterSystems FAQ サイトの記事です。 InterSystems IRIS/Caché の管理ポータルメニュー:SQLデータインポートウィザードの処理で行うようなCSVファイルをテーブルへインポート、テーブルからファイルにエクスポートする方法をプログラムで実行することができます。 ※ サンプルはバージョン 2017.1以降で動作確認しています。 ※ バージョン 2016.2.3以前でお試しいただく場合は、SQL.Utilsクラス の20行目をコメント化してからご利用ください。 #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 469
記事 Megumi Kakechi · 2022年10月3日 1m read InterSystems IRIS は 2フェーズコミットをサポートしていますか? これは InterSystems FAQ サイトの記事です。 Question: InterSystems IRIS は 2フェーズコミットをサポートしていますか? Answer: サポートしていません。 2フェーズコミットはデータベースシステムがサポートしているだけでは十分ではなく、アプリケーションサーバ等の各実装が定めている2フェーズコミットのプロトコルを駆使して、アプリケーションを構築する必要があります。 また関連するシステムの全てのコンポーネントが対応している必要がある、ロングトランザクションには向いていないなど、現実に実装する局面では様々な制約事項があります。 2フェーズコミットは、技術面、設計および実装面、コスト面、性能面などハードルが非常に高いため、実際には限られた領域での利用に留まっています。 #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 76
記事 Megumi Kakechi · 2023年3月8日 2m read 2つのグローバルの内容を比較する方法 これは InterSystems FAQ サイトの記事です。 ^%GCMP ユーティリティにて2つのグローバルの内容を比較することができます。 例としてUSERとSAMPLESネームスペースにある、^testと^testを比較する場合は以下のようになります。※以下の例では、2つのネームスペースに全く同じグローバルを700個作り、その中の一つの中身を変えて検出対象としています。 #ObjectScript #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 73
記事 Mihoko Iijima · 2024年1月18日 5m read Webサーバ(IISやApache)を利用してVSCodeからInterSystemsサーバに接続するときの注意点(バージョン2023.1以下) 開発者の皆さん、こんにちは! VSCodeのObjectScriptエクステンションを利用してInterSystems製品に接続するときに「プライベートWebサーバ (*1)」ではなく、「Webサーバ(IISやApache)」を利用される場合、接続時に使用するREST用パスが通るようにWebサーバに仮想パスを追加する必要があります。 (*1) プライベートWebサーバとは、バージョン2023.1以前のInterSystems製品をインストールすると自動でインストールされる簡易的なApacheで、52773番ポートで管理ポータルやWebアクセスのテストにご利用いただけるWebサーバです。(本番運用環境には適さない簡易的なWebサーバです) 対象バージョン:2023.1以下のInterSystems製品 追加が必要なパス: /api #ObjectScript #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health #VSCode 0 0 0 137
記事 Mihoko Iijima · 2020年7月6日 18m read %InstallerでInterSystems Cachéにアプリケーションをデプロイする InterSystemsのテクノロジースタックを使用して独自のアプリを開発し、顧客側で複数のデプロイを実行したいとします。 開発プロセスでは、クラスをインポートするだけでなく、必要に応じて環境を微調整する必要があるため、アプリケーションの詳細なインストールガイドを作成しました。この特定のタスクに対処するために、インターシステムズは、%Installer(Caché/Ensemble)という特別なツールを作成しました 。 続きを読んでその使用方法を学んでください。 %Installer このツールを使用すると、インストール手順ではなく、目的のCaché構成を記述するインストールマニフェストを定義できます。作成したい Caché 構成を記述します。必要な内容を記述するだけで、環境を変更するために必要なコードが自動的に生成されます。したがって、マニフェストのみを配布する必要がありますが、インストール・コードはすべてコンパイル時に特定の Caché サーバ用に生成されます。 #システム管理 #ツール #デプロイ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 359
記事 Shintaro Kaminaka · 2020年8月20日 23m read InterSystems IRIS Open Authorization Framework(OAuth 2.0)の実装 - パート2 作成者:Daniel Kutac(InterSystems セールスエンジニア) 注意: _使用されている URL に戸惑っている方のために。元の連載記事では、dk-gs2016 と呼ばれるマシンの画面を使用していました。 新しいスクリーンショットは別のマシンから取得されています。 *WIN-U9J96QBJSAG という URL は dk-gs2016*_ であると見なしても構いません。 #OAuth2 #セキュリティ #アクセス制御 #認証 #Caché #Ensemble #InterSystems IRIS 0 0 0 357
記事 Toshihiko Minamoto · 2020年11月3日 123m read Caché における正規表現の使用について 1.本記事の内容 Caché パターンマッチングと同様に、Caché では正規表現を使ってテキストデータのパターンを特定することができますが、後者の場合はより高い表現力を利用できます。 本記事では正規表現を簡単に紹介し、Caché での活用方法について解説します。 本記事の情報は、主に Jeffrey Friedl 氏著作の「Mastering Regular Expressions (詳説 正規表現)」に加え、もちろん Caché のオンラインドキュメンテーションなど、様々なリソースを基に提供しています。 本記事は正規表現のあらゆる可能性や詳細について解説することを意図したものではありません。 更なる詳細にご興味のある方は、チャプター 5 に記載のソースを参照してください。 オフラインで読む場合は、PDF バージョンをダウンロードしていただけます。 #ObjectScript #チュートリアル #Caché #InterSystems IRIS 0 0 1 571
記事 Mihoko Iijima · 2020年10月15日 5m read サーバ側ロジック(ObjectScript)で SQL を実行するときの DATE 型や TIME 型カラムの操作方法 これはInterSystems FAQ サイトの記事です。 DATE 型は InterSystems 製品のデータ型の %Date に、TIME 型は %Time に対応しています。 %Date は内部日付(特殊変数 $Horolog のカンマ区切り1番目)、%Time は内部時刻($Horolog のカンマ区切り2番目)を登録するタイプであるため、サーバ側ロジックでは表示モードを切り替えない限り、内部(論理)形式の値が使用されます。サーバ側ロジックで内部日付・時刻の表示形式を変更する方法は、操作方法により異なります。 以降の実行例では、Sample.Person テーブルを使用して解説します。(コマンド実行例は SELECT 文で記載していますが、更新文に対しても同様に記述できます。) #ObjectScript #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 2 0 0 560