記事 Megumi Kakechi · 2021年9月27日 1m read Windows Serverのリリースの違いは、サポートバージョンに影響しますか? これは InterSystems FAQ サイトの記事です。 インターシステムズは、特定のオペレーティングシステムのバージョンの特定リリースに対して、製品の検証は実施しておりません。 特定リリースとは、例えば、Windows Server 2003 R2やWindows Server 2008 R2などを指します。 これらの保証については、オペレーティングシステムベンダーが互換性を保証する限りにおいて、提供されます。 特別な状況の詳細は、下記弊社ホームページのサポート情報に明記しています。 最新プラットフォーム情報とリリースノート 明記されていない場合には、オペレーティングシステムベンダーが互換性を保証する限りにおいて、特定リリースもサポート対象となります。 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 175
記事 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 151
記事 Mihoko Iijima · 2021年9月24日 3m read 任意のSQL文の実行結果をプログラムでCSVに出力する方法 これは InterSystems FAQ サイトの記事です。 システムユーティリティクラスを利用したプログラムを作成することで出力できます。 【注意1】出力データの区切り文字がカンマではなくタブで出力されます点、ご注意ください。 【注意2】エクセルでタブ区切りのファイルを開くため、エクセルの開くメニューから出力したファイルを開いてください。 処理概要は以下の通りです。 1) %SYSTEM.SQL クラス(※)の Execute() メソッドを使用します。 第1引数:SQL文を指定します。 第2引数:内部日付が格納されている場合 yyyy-mm-dd で出力されるように表示モードを切り替えます。(1:odbcモード) 詳細は下記ドキュメントページおよびクラスリファレンスをご参照ください。 #SQL #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 707
記事 Toshihiko Minamoto · 2021年9月23日 10m read データジャングルの視覚化 -- パート1: グラフを作成しよう この記事は、視覚化ツールと時系列データの分析を説明する連載の最初の記事です。 当然ながら、Caché製品ファミリーから収集できるパフォーマンス関連のデータを見ることに焦点を当てますが、 説明の途中で、他の内容についても解説していきます。 まずは、Pythonとそのエコシステムで提供されているライブラリ/ツールを探りましょう。 この連載は、Murrayが投稿したCachéのパフォーマンスと監視に関する優れた連載(こちらから参照)、より具体的にはこちらの記事と密接に関係しています。 免責事項1: 確認しているデータの解釈について話すつもりですが、それを詳しく話すと実際の目標から外れてしまう可能性があります。 そのため、Murrayの連載を先に読んで、主題の基本的な理解を得ておくことを強くお勧めします。 #Python #オブジェクトデータモデル #ツール #ビッグデータ #視覚化 #Caché 1 0 0 92
記事 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 888
記事 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 151
記事 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 554
記事 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 251
記事 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 361
記事 Mihoko Iijima · 2021年9月16日 1m read InterSystems 製品のクライアント機能(VSCode/スタジオ、xDBC等)を使用するためにライセンスは必要ですか? これは InterSystems FAQ サイトの記事です。 答え:必要ありません。 InterSystems 製品では、クライアント機能用に特別なライセンスを設けておりません。 通常のサーバーライセンス(サブスクリプションを含む)を保有していれば、そのサーバーライセンスで許容しているキャパシティに応じて、複数のクライアントシステムにクライアント機能をインストールして利用することができます。 #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 114
記事 Mihoko Iijima · 2021年9月14日 1m read 管理ポータルから任意のSQL実行結果をCSVファイルに出力する方法 これは InterSystems FAQ サイトの記事です。 管理ポータルの SQL 画面(管理ポータル > システムエクスプローラ > SQL)で、任意の SQL を実行した後、結果の行数などが表示されいる行の右端にある「印刷」のリンクから、CSVファイル出力を選択できます。 「クエリ印刷」画面で「ファイルにエクスポート」をチェックすると「ファイル形式」の欄が表示されます。 形式に「CSV」を指定し、出力ファイル名を指定したあと「エクスポート」ボタンをクリックすると出力できます。 注意:古いバージョンでは正しくCSV出力が行えない場合もあります。新しいバージョンをぜひご利用ください。 #SQL #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 341
記事 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 289
記事 Megumi Kakechi · 2021年9月12日 2m read サイズの大きいグローバルに格納された文字列を検索する方法 特定文字列が含まれるグローバルを検索する時、どのように行われているでしょうか? 管理ポータルでグローバルを表示して Ctrl+F で検索することもできますが、サイズが大きなグローバルでは表示に時間がかかり難しい場合もあります。 もちろん、$ORDER や $QUERY 関数でループして含まれる文字列を検索することは可能です。 しかし、もっと簡単で便利な方法があります。 管理ポータルで行える、グローバル文字列検索機能 を使う方法です。 こちら、管理ポータルの [システムエクスプローラ] > [グローバル] :検索 から簡単に行えます 例えば、^%ISCLOGグローバルの中から「CSP error cleaning up after page」というエラーが含まれるグローバルを検索するときは以下のようになります。 #ヒントとコツ #管理ポータル #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 150
記事 Hiroshi Sato · 2021年9月9日 2m read グローバルマッピングをプログラミングで登録する方法 これは InterSystems FAQ サイトの記事です。 #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 220
記事 Hiroshi Sato · 2021年9月9日 2m read RESTでクロスドメイン制約を回避する方法 これは InterSystems FAQ サイトの記事です。 #REST API #セキュリティ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 445
記事 Mihoko Iijima · 2021年9月7日 3m read Windowsで InterSystems 製品をアンインストールするときの注意点 これは InterSystems FAQ サイトの記事です。 Windows システムにインストールされた InterSystems 製品を削除するには、コントロールパネルにあるプログラムの追加と削除(Windows 10の場合は、Windows の設定からアプリを選択)を使用します。 システムに変更を加えますので、管理者権限を持ったユーザでログインして作業を行う必要があります。 1) 管理者(Administrator)でシステムにログインします。 2) システムトレイから、アンインストールを行う InterSystems 製品インスタンスのランチャーを終了します(ランチャークリック → 終了)。 3)コントロールパネルにある プログラムの追加と削除 (Windows 10の場合は、Windows の設定からアプリを選択)で <InterSystems製品> instance [xxxx] ( xxxx にはインスタンス名が表示されています) を削除します。 #システム管理 #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 384
記事 Mihoko Iijima · 2021年9月5日 1m read 使用中のライセンス情報を取得する方法 これは InterSystems FAQ サイトの記事です。 %SYSTEM.License クラスのメソッド利用すると、ライセンス情報を取得できます(実行時は、$SYSTEM.License.メソッド名() と記述します)。 %SYSTEM.License クラスは、ライセンスユーティリティ用システムオブジェクトです。 #システム管理 #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 135
記事 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 263
記事 Hiroshi Sato · 2021年9月2日 2m read $ZF(-100)の使用方法 これは InterSystems FAQ サイトの記事です。 $ZF(-100) のコマンドは、以下のフォーマットで使用します。 $ZF(-100, フラグ, コマンド名, コマンドの引数) OSコマンドを実行する場合は、「/shell」フラグが必要です。例えば mkdir であれば、次のように使用します。 // mkdir C:\temp\newdir Write $ZF(-100, "/shell", "mkdir", "C:\temp\newdir") コマンドの引数が複数ある場合は、以下の例のように引数の数だけ二重引用符で括ってカンマ区切りで指定します。 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 422
記事 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 171
記事 Toshihiko Minamoto · 2021年8月31日 12m read Webをデバッグする - パート2 最初の記事では、Caché Webアプリケーションのテストとデバッグを外部ツールを用いて行うことについて説明しました。 2回目となるこの記事では、Cachéツールの使用について説明します。 以下について説明します。 CSP GatewayとWebappの構成 CSP Gatewayのロギング CSP Gatewayのトレース ISCLOG カスタムロギング セッションイベント デバイスへの出力 #デバッグ #フロントエンド #Caché 0 0 0 323
記事 Mihoko Iijima · 2021年8月30日 2m read クエリをチューニングする方法 これは InterSystems FAQ サイトの記事です。 InterSystems 製品には、テーブルのコンテンツに関する統計を収集し、クエリの最適化に役立てる「テーブルチューニング機能」があります。 設定方法は、以下のドキュメントをご参照ください。 テーブルのチューニングについて【IRIS】 テーブルのチューニングについて ターミナルでは次のコマンドを実行します。 Do $system.SQL.TuneTable("<テーブル名>",0,1) また、以下の資料もご参照ください。 1) パフォーマンス調査の基礎知識として必要なグローバル構造の解説やSQLの動作の仕組みからクエリプランの見方の解説 インターシステムズ・シンポジア2011の資料 2) パフォーマンスチューニングの例(P13~) インターシステムズ・シンポジア2012の資料 3) ビットマップ・インデックスの圧縮やオプティマイザ・ヒントなど、Caché SQLのパフォーマンスを最大限に引き出すための情報について インターシステムズ・シンポジア2014の資料 4) パフォーマンスに困ったときにどこに着目し、どのツールで調べていくか、お客様から日々ご相談をいただくカスタマーサポートから、解決に向かうアプローチの「イロハ」をご紹介するビデオ 動画:Performance 101 5) 開発者コミュティのパフォーマンス関連情報(performanceタグ) performanceタグ #SQL #パフォーマンス #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 258
記事 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 222
記事 Megumi Kakechi · 2021年8月26日 2m read クラス定義のコンパイルで、「エラー #5368:クラス名 のオブジェクトが、1プロセスでインスタンス化されています。」のエラーが出ます これは InterSystems FAQ サイトの記事です。 こちらは、コンパイル時に既にそのクラスのインスタンスを開いている場合に起こるエラーです。 対処方としては以下の2つの方法があります。 インスタンスを開いているプロセスまたはアプリケーションを終了する スタジオのビルドメニュのコンパイルオプション:コンパイルフラグ “使用中のクラスをコンパイル” をチェックしコンパイルを行う インスタンス化しているプロセスを特定したい場合は、以下のサンプルルーチンをお試しください。 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 133
記事 Toshihiko Minamoto · 2021年8月25日 7m read Webをデバッグする この記事では、Caché Webアプリケーション(主にREST)のテストとデバッグを外部ツールを用いて行うことについて説明します。 パート2では、Cachéツールの使用について説明します。 サーバー側のコードを作成したのでクライアントからテストしたい、またはすでにWebアプリケーションが存在するが機能していない― そういったときに使用できるのがデバッグです。 この記事では、最も使いやすいツール(ブラウザ)から最も包括的なツール(パケットアナライザー)までを説明しますが、まずは、最も一般的なエラーとその解決方法について少し説明します。 #CSP #REST API #SOAP #デバッグ #フロントエンド #Caché 0 0 0 1.3K
記事 Mihoko Iijima · 2021年8月23日 1m read 管理ポータルの InterSystems IRIS Business Intelligence 用メニュー:Analytics(または DeepSee)関連ページを開くとエラーになる場合の対処方法 これは InterSystems FAQ サイトの記事です。 InterSystems IRIS Business Intelligence 用メニューの Analytics(または DeepSee)を使用するためには、使用するネームスペース用ウェブアプリケーションパスを Analytics(またはDeepSee)に対応するように設定変更する必要があります。 詳細については以下のドキュメントをご参照ください。 【IRIS】InterSystems IRIS Business Intelligence の Web アプリケーション設定について 【2015.1~2018.1】DeepSee の Web アプリケーション設定について 【~2014.1】%CSPページへのアプリケーション・アクセスの制御について/特殊なケース: DeepSee #ヒントとコツ #分析 #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 114
記事 Mihoko Iijima · 2021年8月23日 4m read データベースファイルのサイズを圧縮する方法 これは InterSystems FAQ サイトの記事です。 ※データベースファイルとは、IRIS.DAT、および、CACHE.DATのことを指します。 Caché/Ensemble 2018.1.4、IRIS 2019.1.2/2020.1.0 以降のバージョンより、データベースファイル のサイズの縮小に、データベースの「圧縮」と「未使用領域の削除」機能をあわせて使用できます。 #システム管理 #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 852
記事 Toshihiko Minamoto · 2021年8月18日 13m read InterSystems IRISで階層型データを使用するためのPHPモジュール PHP はその公開当初から、多くのライブラリや市場に出回っているほぼすべてのデータベースとの統合をサポートしていることでよく知られています(またそのことで批判を受けてもいます)。 にもかかわらず、何らかの不可解な理由により、グローバル変数については階層型データベースをサポートしませんでした。 グローバル変数は階層情報を格納するための構造です。 Key-Value型データベースにある程度似ていますが、キーを次のようにマルチレベルにできるという点で異なっています。 #API #Code Snippet #SOAP #キーバリュー #クラウド #Caché #InterSystems IRIS #InterSystems IRIS for Health #Open Exchange #その他 Open Exchange app 0 0 0 140
記事 Toshihiko Minamoto · 2021年8月16日 22m read XSLT を使った docx の解析 Office ドキュメント(docx ドキュメント、xlsx 表計算、pptx プレゼンテーション)を処理するタスクは非常に複雑です。 この記事では、XSLT と ZIP のみを使用してドキュメントを解析、作成、および編集する方法を紹介します。 このトピックを記事にしたのは、 docx が最も一般的に使用されているドキュメント形式であり、この形式を生成して解析する機能は必ず役に立つからです。 「既製ライブラリ」によるソリューションでは、次の理由により面倒になる可能性があります。 ライブラリが存在しない プロジェクトに別のブラックボックスは必要ない ライブラリの制限: プラットフォーム、機能など ライセンス 処理速度 この記事では、基本ツールのみを使用して、docx ドキュメントを操作します。 #XML #Caché 0 0 0 1.3K
記事 Mihoko Iijima · 2021年8月11日 3m read パフォーマンス低下時の情報収集ツールについて これは InterSystems FAQ サイトの記事です。 以下のような情報収集ツールがあります。 1) 性能評価の為のツール GLOSTAT グローバルアクセスのカウンター情報 mgstat グローバルアクセスのカウンター情報を連続してファイルに記録する JOBEXAM 問題のあるプロセスをモニターする SystemCheck または Buttons 内部情報の収集 使用方法詳細は以下の記事もご参照ください。 #パフォーマンス #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 2 0 0 238