記事 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 361
記事 Mihoko Iijima · 2021年3月9日 3m read アプリケーションエラー(^ERRORS)をコマンドで取得する方法 これは InterSystems FAQ サイトの記事です。 SYS.ApplicationError クラスの ErrorList クエリを使用します。 注意1:%SYS ネームスペースで実行します。 #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 95
お知らせ Mihoko Iijima · 2021年3月8日 ★受賞者発表!★第10回 InterSystems グランプリ・プログラミングコンテスト 開発者の皆さんこんにちは! 第10回 InterSystems グランプリ・プログラミングコンテスト への応募、投票が全て終了しました。コンテストへのご参加、またご興味をお持ちいただきありがとうございました。 今回のお知らせでは、見事受賞されたアプリケーションと開発者の方々を発表します! 🏆 Experts Nomination - 特別に選ばれた審査員から最も多くの票を獲得したアプリケーションに贈られます。 #コンテスト #InterSystems IRIS #InterSystems IRIS for Health 0 1 0 62
記事 Mihoko Iijima · 2021年3月5日 1m read ID を指定してインデックスを再構築する方法 これは InterSystems FAQ サイトの記事です。 永続クラス(=テーブル)定義に提供される %BuildIndices() メソッドの引数に、インデックスを再構築したい ID の開始値と終了値を指定することにより、その範囲内のインデックスのみが再構築できます。 例えば、Sample.Person クラスにある NameIDX インデックスと ZipCode インデックスを ID=10~20 のみ再構築する場合は、以下のように実行します(ID の範囲は、第5引数、第6引数に指定してます)。 #SQL #インデックス付け #オブジェクトデータモデル #ヒントとコツ #リレーショナルテーブル #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 260
記事 Mihoko Iijima · 2021年3月5日 2m read 累積バックアップと差分バックアップの違いについて これは InterSystems FAQ サイトの記事です。 ※ ここで説明するバックアップ方法は、外部バックアップ(##class(Backup.General).ExternalFreeze()を使用する方法)ではご利用いただけません。 その1(差分) 毎週日曜日1時にフルバックアップ、月曜日~土曜日の1時に差分バックアップを取得しているとします。 差分バックアップは、前日の1時に取得したバックアップからの更新ブロックが含まれるバックアップです。 #システム管理 #バックアップ #ヒントとコツ #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 458
質問 Mitsuru Amano · 2021年3月3日 VSCODEのCSPの編集について こんにちは、皆さま IRISとVSCODE環境を日頃から愛用しています。 普段は使用しませんが、実験的にCSPファイル(*.CSP)をVSCODEで編集してみようと思い試みましたが上手く行きませんでした。 VSCODEの拡張は、「InterSystems ObjectScript Extension Pack」を使用しています。 具体的は2つの方法を試しました。 1.DBからworkspaceにExportして編集+Import&Compile ObjectScriptのソースTree-コンテキストメニューにExportが無いため動作を確認できず。 clsのExprot cspのExportが…ない #CSP #VSCode #InterSystems IRIS #Open Exchange 0 4 0 384
記事 Hiroshi Sato · 2021年3月3日 5m read 稼働中のインスタンスを停止せずにバックアップを行う方法 これは InterSystems FAQ サイトの記事です。 InterSystems製品を停止しないバックアップ方法は、3種類あります。 ① 外部バックアップ② オンライバックアップ③ レガシー並行外部バックアップ 各詳細については、以下ドキュメントをご参照ください。 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 669
記事 Hiroshi Sato · 2021年3月3日 3m read SQLのUPDATEやDELETEで、ある程度の数のレコードを一括更新するとSQLエラー -110 が発生します。 これは InterSystems FAQ サイトの記事です。 通常SQLCODE -110(Locking conflict in filing)のエラーはロックが競合した場合に発生します。 大量レコードが一度に更新された場合、その件数がロック閾値を超えてロックエスカレーションを起こしてテーブルロックとなる可能性があり、そのためにロックの競合が起きやすくなっていることが考えられます。 このロック閾値を上げることにより、この競合を回避できる可能性もあります。 しかしこの閾値を上げることにより、システムが必要とするロック管理用のメモリが増えるという副作用がありますので、慎重な検討が必要です。 あるいはテーブルロックになる可能性を排除できずに、更新タイミング等アプリケーションの仕様を見直す必要があるかもしれません。 またSQLCODE -110はロックテーブルの空き容量が不足した場合にも発生する可能性があります。 #SQL #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 967
記事 Hiroshi Sato · 2021年3月3日 2m read チーム開発を行う際に必要なソース管理の仕組みについて これは InterSystems FAQ サイトの記事です。 InterSystems Data Platform自身には、ソース管理を行う機能はありません。 2016.2以降のバージョンをご使用の場合、統合開発環境として VSCode をご利用いただくことで、VSCode でご利用いただけるソース管理機能をご使用いただけます。 VSCode で ObjectScriptの操作を行うためには、専用エクステンションのインストールが必要です。 使用方法については、コミュニティの記事「VSCode を使ってみよう!」をご参照ください。 また、「VSCodeでのソースコード管理について」についても併せてご参照ください。 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 357
記事 Megumi Kakechi · 2021年3月2日 2m read データベースの空き容量をプログラムで取得する方法 これは InterSystems FAQ サイトの記事です。 管理ポータル:システムオペレーション > データベース にあるオプションボタン(ラジオボタン)「空き容量ビュー」で表示される内容は、システムクラス SYS.Database のFreeSpace クエリで取得可能です。 次のようなコードでクエリを実行します。 例:(%SYSネームスペースにて作成、実行します) #システム管理 #ツール #データベース #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 204
記事 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 381
記事 Toshihiko Minamoto · 2021年3月1日 6m read IRISのInteroperability機能を使ったWindows共有フォルダでのファイル連携 開発者の皆さんこんにちは。Windows共有しているリモートサーバに出力されたファイルでデータ連携する際、セキュリティ上、資格情報が必要となるケースが良くあるかと思います。いままでCachéで連携していた時には%ZSTARTルーチンや常駐プロセスのルーチンにて「net useコマンド」を実行されていたかと思いますが、IRISではInteroperability機能が使用できますので、前回の記事で作成したビジネスサービスクラスを元に、資格情報を使ってWindows共有フォルダにアクセスできる機能を追加したいと思います。 仕組み ビジネスサービスが起動、停止する際に呼び出されるOnInit()、OnTearDown()メソッドにnet useコマンドを埋め込み、指定されている資格情報を使ってnet useコマンドで共有フォルダへの接続、切断を行います。 #Microsoft Windows #ObjectScript #相互運用性 #InterSystems IRIS 1 0 0 388
お知らせ Mihoko Iijima · 2021年3月1日 ★投票開始!★第10回 InterSystems グランプリ・プログラミングコンテスト 開発者のみなさん、こんにちは! 第10回 InterSystems グランプリ・プログラミングコンテストの投票が開始されました! 🔥 これだ!と思う一押し作品に投票お願いします! 🔥 投票期間:3月1日~7日 (1週間) #コンテスト #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 66
記事 Mihoko Iijima · 2021年2月26日 2m read プロセス一覧をプログラムで取得する方法 これは InterSystems FAQ サイトの記事です。 %SYS.ProcessQuery クラスの AllFields クエリを使用すると取得できます。 #システム管理 #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 178
記事 Mihoko Iijima · 2021年2月25日 1m read 【IRISベース】トラブル発生時の情報収集方法(IRIS / IRIS for Health / UCR 編) これは InterSystems FAQ サイトの記事です。 復旧を優先される場合を除き 【トラブル発生状態のまま】弊社サポートセンターまでご連絡ください。 その際、専用ツールを利用して情報収集いただくことで(所要時間約 5分)、サポートセンターによる状況確認がスムーズに行えます。 ツール使用方法については、PDF または以下ビデオでご紹介しています。 #システム管理 #ツール #ビデオ #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 255
記事 Mitsuru Amano · 2021年2月25日 2m read VSCODEの統合ターミナルにIRISターミナルを追加する はじめまして、皆さん。windows telnetを使えば、VSCODEの統合ターミナルでIRISターミナルを使うことも出来ますが、ストレス無く使えるとは言い難い状態でした。 色々調べた結果、telnetよりは快適にIRISターミナルをVSCODEで使う設定が出来たので投稿します。 (※大量のキー連打や、大量表示で文字欠落がたまにあるけど、普通に使うなら大丈夫な感じです) 具体的には、powershellターミナルを文字コード:UTF-8に変更しIrisdb.exeを起動する様に設定するだけでOKです。 1.VSCODEの設定を開く 2.setting.jsonを開く 3.setting.jsonの最後に設定を追加する。 #VSCode #InterSystems IRIS 4 2 0 970
記事 Hiroshi Sato · 2021年2月24日 3m read ECPはどのように使うのが正しい? 以下のドキュメントでご紹介しています通り、ECPは分散キャッシュ用のアプリケーションサーバーを並列に増設することで、処理量に応じてスケールアウトすることを主目的として設計されています。 ECP機能紹介 従ってインターシステムズデータプラットフォーム上で稼働する複数のアプリケーション間の簡便なデータ交換手段としてECPをご使用いただくことは推奨していません。 以下その理由についてご説明します。 データ量の増加、処理量の増加に伴いスケーラビリティに関する要件も今後益々厳しくなる中、将来にわたってより良いスケーラビリティ性能を得られるようインターシステムズの開発部門は、より良いアルゴリズムの開発や処理のチューニングをECPに対して継続的に行っております。 その成果は順次最新バージョンに反映していきます。 #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 308
記事 Toshihiko Minamoto · 2021年2月23日 6m read Java Business Host から PEX への移行 Java Business Host から PEX への移行 InterSystems IRIS 2020.1 および InterSystems IRIS for Health 2020.1 で PEX がリリースされ、Java Business Host を使うよりも優れたかたちで Java プログラムをプロダクション環境に取り込めるようになりました。 PEX は、相互運用性のコンポーネントを構築するための API をすべて提供するほか、Java と .NET の両方で使用できます。 Java Business Host は非推奨となり、今後のリリースで廃止される予定です。 PEX を使うメリット #.NET #Java #相互運用性 #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 168
質問 Seiji Hirose · 2021年2月23日 Excel(VBA)でのIRISアクセスについて 弊社では、Cacheの時からExcel(VBA)を使用して、Cache側のクラス定義を抽出して画面に表示する、という開発サポートツールを作成して使用していました。 今回、IRISベースでの開発に移行するにあたって、このExcel(VBA)の動作確認をしました。 実施したことは、VBAのエディタ画面にあるメニューから「ツール」→「参照設定」へと進み、表示される選択リストの「CacheActiveX3.0[IRIS] Type Library」を選択しなおすことで、VBAのコードを変更することなく動作する事が確認できました。 このようなExcel(VBA)への対応はカットされたのではないかと不安がありましたが、流石ですね、ちゃんとカバーされていました。 なお、Type Libraryの名称が「CacheActiveX」で始まっていたのはご愛嬌でしょうか?Cache経験者であれば、問題ないと思いましたが、IRISから使い始めた方にとっては、少々困惑されるかも、と感じました。 Excel(VBA)でIRISに接続する事例がどの程度存在するのかは不明ですが、Excel(VBA)でIRISに接続できると便利だと感じています。今時ですから、ODBC を使った方が分かりやすいかも知れませんね。 #InterSystems IRIS 1 8 0 601
質問 Seiji Hirose · 2021年2月22日 新規ネームスペース画面でのメッセージについて 本件、すでに改修済みである場合にはご容赦願います。 IRIS2020.1のテストをしています。 新規ネームスペース画面に「相互運用プロダクション用にネームスペースを有効化」というチェックボックスがあります。デフォルトでチェックされていましたので、試しにチェックを外してみました。下記のようなメッセージが表示されるのですが、日本語のメッセージになると有り難いなぁ、と感じました。 (メッセージ) Are you sure you do not want this to be 運用相互プロダクションのために有効? #InterSystems IRIS 0 2 0 146
記事 Toshihiko Minamoto · 2021年2月22日 4m read IRIS Interoperability機能を使ったファイル連携 皆さん、こんにちは。他のシステムとファイル連携を行う場合、Cachéでは、Jobコマンドを使った常駐プロセスやタスクを作成し、特定のディレクトリにあるファイルを定期的に監視、データを取り込むといった機能を手作りされていたかと思います。これにはファイルの監視や、常駐プロセスの監視、プロセスの制御(起動、停止)を行う機能を用意する必要がありましたが、IRISではInteroperability機能が使えますので、そのようなプログラムを省略することが可能です。 今回は、既にファイル読込処理を行うルーチンが存在し、ルーチン呼出時の引数にファイル名があるという前提で、その処理をInteroperability機能を使ってどのように呼び出すかについて説明したいと思います。 手順 作業手順は以下の通りとなります。 #ObjectScript #相互運用性 #InterSystems IRIS 0 3 0 329
記事 Mihoko Iijima · 2021年2月21日 3m read VSCode:SQLTools で IRIS に接続する方法 皆さんこんにちは! VSCode の SQLTools エクステンションを使うと、VSCode から SQLTools に対応しているデータベースへ接続/クエリ実行が行えるようです。 1 つの IDE で 各種言語を操作でき、さらにクエリも発行できるなんて VSCode って便利ですね!👏👏 実は、まだプレビュー機能ではありますが、InterSystem IRIS も接続できます!🎊🎊 正式リリース前なのですが、どんな感じでご利用いただけるかをご紹介したいと思います。 解説ビデオ(4分ちょっと)もあります。ぜひご参照ください。 #SQL #VSCode #ビデオ #InterSystems IRIS #InterSystems IRIS for Health 1 2 0 1.1K
記事 Mihoko Iijima · 2021年2月19日 2m read InterSystems のガベージコレクション機能について(Java のガベージコレクションとの違い) これは InterSystems FAQ サイトの記事です。 Java のガベージコレクションは、使用しなくなったメモリ上のオブジェクトを自動開放するしくみですが、InterSystems data platform(以下IRISと表記)のガベージコレクションは、意味が異なります。 IRIS では、ディスク上の大量のデータノードを 1 コマンド(killコマンド)で削除する機能があります。 通常、データ容量が増えれば、それに伴い、削除に必要な時間が増加しますが、そうすると、そのkillコマンドを発行したプロセスが、削除が終わるのを待つ時間が増加することになってしまいます。 その様な事象の発生を避けるため、IRIS では、ユーザプロセスが大量のデータを削除する kill コマンドを発行した際に、その場で削除に必要な全ての処理を行うのではなく、削除が必要な開始の場所だけを示して、次の処理に進むようになっています。 #Java #システム管理 #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 85
記事 Mihoko Iijima · 2021年2月19日 1m read 仮想化ソフトのサポートについて これは InterSystems FAQ サイトの記事です。 インターシステムズは、個々の仮想化ソフトウェアに対して、弊社製品の動作検証は行なっておりません。 インターシステムズでは、弊社製品がサポートするプラットフォームをサーバプラットフォームという単位で定義しています。 サーバプラットフォームは、オペレーティングシステムとそのバージョン、およびそのオペレーティングシステムが動作するプロセッサタイプの 3 つの要素で定義されます。 従いまして、ある仮想ソフト上で InterSystems 製品がサポートしているサーバプラットフォームが稼動し、その上で InterSystems 製品が動作している限りにおいて、製品のサポートを提供します。 #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 72
記事 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 11.8K
記事 Megumi Kakechi · 2021年2月18日 2m read jQueryを使用してIRISからJSONデータを取得する方法 jQuery($.getJSON と $.ajax)を使用した InterSystems IRIS データのJSON形式での取得方法をご紹介します。 以下にサンプルをご用意しました。 https://github.com/Intersystems-jp/REST_JSON_sample サンプルには、次の内容が含まれます。 ・REST + JSON・REST + CORS ※それぞれ、$.getJSON と $.ajax で取得する方法を記載しています。 #JavaScript #JSON #REST API #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 424
お知らせ Makiko Kokubun · 2021年2月18日 【オンデマンド配信のお知らせ】(Webセミナー)InterSystems Japan Virtual Summit 2021 開発者のみなさん、こんにちは! 2/16-2/18に開催しましたインターシステムズの年次カンファレンス「InterSystems Japan Virtual Summit 2021」のオンデマンド配信を開始しました。3/19(金)までご視聴いただけます。 ⚡️ ご視聴はこちらから ⚡️ テーマは「データプラットフォーム最前線 ニューノーマル時代に求められるアジリティとレジリエンス」です。InterSystems IRIS 、IRIS for Health の最新技術情報を多くのセッションを通してお届け致します。ぜひご視聴ください。*本セミナーは日本語での開催となります。 #FHIR #Webセミナー #イベント #InterSystems IRIS 0 0 0 104
InterSystems公式 Toshihiko Minamoto · 2021年2月18日 IAM 1.5.0.9 がリリースされました InterSystems API Manager(IAM) バージョン1.5がリリースされました #API #InterSystems API Manager (IAM) #REST API #SOAP #InterSystems IRIS #InterSystems公式 0 0 0 113
記事 Tomohiro Iwamoto · 2021年2月16日 19m read InterSystems IRIS デプロイガイド - AWS CloudFormation テンプレート - Windows編 目的 CloudFormationの記事は、Linux系のものが多いですが、Windowsでも自動化したいという需要がありそうですので、オリジナル記事を元に、CloudFormationを使用してミラークラスターをWindowsサーバにデプロイする例を実装してみました。また、簡単な実行例も追加しました。 ソースコード一式はこちらのGitレポジトリにあります。 更新: 2021年3月1日 ワンライナーで踏み台ホスト経由でWindowsに公開鍵認証する方法を追記しました 更新: 2022年11月29日 QuickStartの形式に合わせて大幅に変更しました。以前の内容はこちらに保存してあります。 更新: 2022年12月21日 踏み台ホストの使用を止め、代わりにAWS System Manager(SSM)を有効化しました。プライベートサブネット上のインスタンスへのアクセスが簡素化されます。以前の内容はこちらに保存してあります。 #AWS #Mirroring #クラウド #デプロイ #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 640
記事 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 345