InterSystems IRISは総合データプラットフォームです
InterSystems IRISは、企業にとって最も価値のある資産(データ)の取得、共有、理解、そしてデータに基づく行動のために必要なすべてのものを提供します。
完全なプラットフォームである InterSystems IRIS は、複数の開発技術を統合する必要がありません。より少ないコードで開発が可能で、そのアプリケーションは、システムリソース、メンテナンスなども少なくて済みます。
InterSystems IRISは総合データプラットフォームです
InterSystems IRISは、企業にとって最も価値のある資産(データ)の取得、共有、理解、そしてデータに基づく行動のために必要なすべてのものを提供します。
完全なプラットフォームである InterSystems IRIS は、複数の開発技術を統合する必要がありません。より少ないコードで開発が可能で、そのアプリケーションは、システムリソース、メンテナンスなども少なくて済みます。
開発者の皆さん、こんにちは!
これは、InterSystems FAQサイトの記事です。
InterSystemsでは、以前は、OSの特定リリースに対して製品の検証は実施しておりませんでしたが、
バージョン2022.1以降においては、OSのマイナーバージョンに対する検証を実施しております。
最新のサポートプラットフォームの情報については、下記の記事をご確認ください。
※2024年12月現在の最新情報
InterSystems サポートプラットフォーム最新情報 Q4-2024
★最新情報は開発者コミュニティにて随時発信いたしますので、以降の状況については、上記記事の継続記事をご確認ください。
(ご参考)
以前の状況についてはこちら
Windowsのサービスパックの適用に対する製品サポートについて
Windows Serverのリリースの違いは、サポートバージョンに影響しますか?
これは、InterSystems FAQサイトの記事です。
インターシステムズは、特定のオペレーティングシステムのパッチやサービスパックに対して、製品の検証は実施しておりません。
これらの保証については、オペレーティングシステムベンダーが互換性を保証する限りにおいて、提供されます。
まれなケースで、インターシステムズの製品を稼動するために、特定のパッチやサービスパックを必要とするケースもあります。
その様な特別な状況の詳細は、サポートサーバプラットフォームに明記しています。以下ドキュメントをご参照ください。
明記されていない場合には、オペレーティングシステムベンダーが互換性を保証する限りにおいて、パッチやサービスパックもサポート対象となります。
※2022.1以降のバージョンにおいては、OSのマイナーバージョンにおいても検証を実施しております。
InterSystems IRIS、InterSystems IRIS for Health、HealthShare Health Connect の2つのメンテナンスリリースがリリースされました。
✅ 2023.1.5
リリース 2023.1.5 は、以前のリリース 2023.1.x のバグフィックスを提供します。
詳細な変更リストとアップグレード・チェックリストは、以下のページにあります :
✅ 2024.1.2
リリース 2024.1.2 は、以前のリリース 2024.1.x のバグフィックスを提供します。
CI/CD シリーズの新しい章へようこそ。ここでは、InterSystems テクノロジーと GitLab を使用したソフトウェア開発の様々な可能なアプローチを取り上げています。 今回も相互運用性について説明を続けますが、特に相互運用性デプロイの監視に焦点を当てます。 まだアラートをすべての相互運用性プロダクションにセットアップしていない場合は、それをセットアップしてエラーとプロダクションの状態についての一般的なアラートを取得できるようにしてください。
非活動タイムアウトは、すべての相互運用性ビジネスホストに共通する設定です。 ビジネスホストは、「Inactivity Timeout(非活動タイムアウト)」フィールドに指定された秒数以内にメッセージを受信しない場合に非アクティブステータスになります。 プロダクションの監視サービスはプロダクション内のビジネスサービスとビジネスオペレーションのステータスを定期的に確認し、非活動タイムアウト期間内にアクティビティがない場合にその項目を「非アクティブ」にマークします。
デフォルト値は 0(ゼロ)です。 この設定が 0 である場合、ビジネスホストはアイドル状態がどれほど続いても Inactive にマークされることはありません。
これはアラートを生成し、構成されたアラートと合わせてプロダクションの問題に関するリアルタイム通知を可能にするため、非常に便利な設定です。 ビジネスホストがアイドル状態である場合、プロダクション、統合、またはネットワーク接続に調べる価値のある問題がある可能性があります。 ただし、ビジネスホストには一定時間の非活動タイムアウトを 1 つしか設定できないため、夜間、週末、休日などのトラフィックの少ない既知の期間中に不要なアラートを生成する可能性があります。 この記事では、動的な非活動タイムアウトを実装するためのいくつかのアプローチを説明します。 機能する例(現在ある顧客サイトの本番環境で実行しているもの)を紹介していはいますが、この記事は独自の動的な非活動タイムアウトの実装を構築するためのガイドラインを紹介することを目的としているため、ここに提案するソリューションを唯一の代替手法と見なさないようにしてください。
開発者の皆さん、こんにちは!
11月8日(金)は開発者コミュニティのミートアップ開催日です。申し込みはお済でしょうか??
昨年、大阪で初回ミートアップを開催した際、コミュニティメンバー同士での交流をとても楽しみにしてくださる方が多かった印象を受けました。
そこで、今年はメンバー同士の結束をより高められたら・・と思い、ミートアップ2024Tシャツを作成しました!
開発者の皆さん、こんにちは!
🖋 InterSystems Japan 技術文書ライティングコンテスト2024:IRISに関連した記事 🖋の応募受付期間が終了し、残るは投票のみとなりました!
第2回目のコンテストは✨6作品✨の応募がありました!
コミュニティメンバーは「イイネ」
をクリックすることで投票できます。2024年10月31日(木)23時59分59秒 まで投票受付中です。
素晴らしい6作品のなかから、🔥これだ!🔥と思う記事の「イイネ」をクリックしてください。
以下、投票方法についてご案内します。
(1) 開発者コミュニティにログインする。
ログインアカウントをお持ちでない方は、コミュニティページ上部の
(下図赤枠)をクリックし、アカウント登録を行って下さい。
クリックした後の流れは「アカウント作成方法」の記事をご参照ください。
(2) 投稿記事一覧ページに移動します。
投稿記事を👀じっくり読みます👀
(3) 「いいね」をクリックします。
投稿記事一覧ページ上でクリックする場合はそれぞれの投稿画面左下にある
のマークをクリックします。クリック前はグレーの表示ですがクリック後
に変わります。
各記事を参照している状態で「いいね」をクリックする場合は、画面左側にアイコン一覧が縦に並んでいますので
のマークをクリックします。
.png)
良い記事が見つかったら
をクリックして作者を応援しましょう!📣
開発者の皆さん、こんにちは!
昨年初めて開催した日本の InterSystems 開発者コミュニティのコンテストですが、📣今年も開催します!📣
テーマは昨年と同じで InterSystems IRIS/InterSystems IRIS for Health に関連した内容であればどのような内容でもご応募いただけます。
🖋 InterSystems Japan 技術文書ライティングコンテスト2024:IRISに関連した記事 🖋
🎁 参加賞:投稿いただいた方全員に👚開発者コミュニティ特製Tシャツ👕をプレゼントいたします!
🏆 特別賞:選ばれた3作品に特別賞があります。
8/30更新:賞品情報追加しました!ぜひご確認ください!👇
開発者の皆様はじめまして。 私からはIRISのソースコントロール機能を用いたソースの自動チェック機能のご紹介をしたいと思います。 チーム開発では、ソースの可読性や実装方法等がある程度統一されるようにコーディング規約を作成すると思います。 しかし、メンバーの入れ替わりでコーディング規約の説明をしていても徹底されないことが起こることも少なくありません。 なので、ソースコントロールを使用してコンパイル時に自動的にチェックするようにしました。 IRIS内で完結させるメリットとして、エラーチェックだけでなくチェック後にエラーがなければコンパイルまで自動で行えること、 %Dictionary.ClassDefinition(クラス定義)を使用できるので、チェッククラスを作成しやすいこと等があげられます。
目次
1.ソースコントロールについて まず、ソースコントロールについて簡単に記載します。 ソースコントロールとは、一般的にコードに対する変更を追跡し管理することを表します。 IRISのソースコントロール機能には様々なメソッドが用意されています。 今回はそれを使用することでソースの自動チェック機能を実現していきます。
CI/CD シリーズの新しい章へようこそ。ここでは、InterSystems テクノロジーと GitLab を使用したソフトウェア開発の様々な可能なアプローチを取り上げています。
今回は、相互運用性についてご紹介しましょう。
アクティブな相互運用性プロダクションがある場合、2 つの個別のプロセスフローが存在します。メッセージを処理する稼動中のプロダクションと、コード、プロダクションの構成、およびシステムデフォルト設定を更新する CI/CD プロセスフローです。
明らかに、CI/CD プロセスは相互運用性に影響しますが、 本題は次にあります。
生成AIを活用したアプリケーション開発は、Python、JavaScriptなどのメジャー言語による体験記事がよく見られます。一方、IRISのObjectScriptの開発に言及された記事は比較的少ないのが現状です。そこで、本記事では生成AIがObjectScriptの開発にどこまで活用できるのかを検証しました。
特にDevOpsのプロセスにおいて、生成AIは様々なシーンでの活用が期待できます。今回は開発工程に注目し、以下の観点から生成AIの有効性を調査しました。
本記事の検証は以下の環境で行いました。
開発環境
開発ツール IRISの開発にはStudioやVSCodeなどが利用可能ですが、今回は生成AIの活用に特化したエディタ「Cursor」を使用しました。
Cursorを選定した理由 Cursorは、生成AIによる支援機能に特化したコードエディタで、以下の特徴があります:
生成AIの支援:コードの自動生成や提案、バグの検出、修正提案を行います。また、外部のドキュメントや複数のソースを指定し、生成内容に反映させる簡易なRAG機能も搭載されています。
約 4 年のギャップを経て、私の CI/CD シリーズが帰ってきました! 長年にわたり、InterSystems の数社のお客様と連携し、様々なユースケースに対応する CI/CD パイプラインを開発してきました。 この記事で紹介する情報が誰かのお役に立てられれば幸いです。
この連載記事では、InterSystems テクノロジーと GitLab を使用したソフトウェア開発の様々な可能なアプローチを取り上げています。
取り上げたいトピックは広範にありますが、今回は、コードを超えた内容についてお話ししましょう。構成とデータについてです。
前回はコードの昇格について話しました。ある意味ステートレスで、常に、(おそらく)空のインスタンスから完全なコードベースへと進めます。 ただし、時にはデータまたは状態を提供することも必要です。 データには様々なタイプがあります。
これらすべてのデータタイプについて、およびソース管理にコミットしてからデプロイする方法について説明します。
開発者のみなさん、こんにちは!
今年も開発者コミュニティミートアップを東京にて開催いたします!(10月1日:お申込みサイトオープンいたしました!)
日 時:2024年11月8日(金)13時半~19時
場 所:AP東京八重洲 13階
<JR各線をご利用の場合>「東京駅」八重洲中央口より徒歩6分
<東京メトロ銀座線をご利用の場合>「日本橋駅」徒歩約5分/「京橋駅」徒歩約4分
<都営浅草線をご利用の場合>「宝町駅」徒歩約4分
※ヤエチカ24番出口から出るとわかりやすいです。
参加費:無料
定 員:50名
※定員に達した際は調整をお願いすることもございます。予めご了承下さい。
申 込:(申込受付終了しました)
IRISはPythonの豊富なライブラリや既存のPythonプログラムをそのまま利用する事も、COS内でネイティブにコーディングする事も可能となりました。 しかし開発において、いくつかの問題点があります。
Pythonを使ったプロジェクトを構築していると、バージョンの問題にあたる時があります。 古いバージョンで開発していたところに、使いたいライブラリが対応していなかった等です。 しかし、IRISのEmbedded Pythonを利用する場合には、Pythonランタイムのバージョンに影響される為、プロジェクトで使用するバージョンは、プロジェクト単位はなく、IRISのバージョン単位で決まってしまいます。 また、現時点ではこのPythonランタイムをアップグレードする事はできません。
私は既に開発済みのPythonプログラムをそのまま活用したいと思い、外部Pythonファイルを読み込んで利用する方法を取りました。 IRISでは外部Pythonファイルを特定の場所に配置する事で、そのファイルをimportする事が出来ます。 デフォルトは{インストールパス}/lib/python です。
InterSystems IRIS の新バージョンに、 Hierarchical Navigable Small World (HNSW) インデックス・アルゴリズムに基づく新しい近似最近傍探索 (ANN) インデックスが搭載されました。こちらは、ベクトル検索 早期アクセスプログラム で入手いただけます。これにより、大規模なベクトルデータセットに対して非常に効率の良い近似最近傍探索が可能となり、クエリパフォーマンスとスケーラビリティが大幅に向上しました。
HNSW アルゴリズムは、グラフベース構造を利用して高次元データのベクトル検索を最適化するよう設計されており、大規模なベクトル集合における近似近傍探索を高速化します。HNSW によって、レコメンデーションシステム、自然言語処理、その他の機会学習アプリケーションなどすべてにおいて検索時間が大幅に短縮します。
HNSWの主な利点:
• データセットサイズ増加後も、より高速な検索が可能
• 高精度をたもちながら、メモリ使用量を削減
• 既存の IRIS ベクトル検索とのシームレスな統合
最新バージョンは、ベクトル検索 早期アクセスプログラム に参加いただくことで入手いただけます。ご興味のある方は、プログラムページから登録し、新バージョンをダウンロードしてお試しください。
開発者の皆さん、こんにちは! InterSystems IRIS(以下、IRIS)を使用したアプリケーション開発において、皆さんは環境設定をどうされていますか? 私は最近になって、「インストールマニフェスト」という機能があることを知りました。 これは、管理ポータルでポチポチしていた作業をコード化・自動化できる強力なツールです! 最初こそとっつきづらかったものの良いところがたくさんあるなと思ったので、簡単にではありますが皆さんにその良さと始め方をご紹介したいと思います。
なお、私が使用しているIRISバージョンは以下です。
2022.1
バージョンが異なる場合、違う書き方になっているもの等が存在する場合がありますので、 公式ドキュメント等を参照し適宜読み替えていただければと思います。
Git を使用してIRIS でソリューションを構築することは、素晴らしいことです! 単にローカルの git リポジトリにVSCodeを使用し、サーバーに変更をプッシュする... それは非常に簡単です。
でも、次の場合はどうでしょうか。
このような状況では、あまり簡単なオペレーションとは言えませんでし
これは InterSystems FAQ サイトの記事です。
ロックテーブルの1エントリは管理領域の固定512 bytesとロック文字列情報などの可変領域から構成されます。
可変領域はロック対象のグローバルノード名に関連する情報に必要な長さ(bytes)になります。
1つのLockコマンドにつき、上記で示した長さのデータが必要です。
そしてその可変領域に必要なデータ長は、ロック対象のグローバルノード名(^xxx(xxx,xxx)) の長さに見合う16,32,64,128,256,…bytesのバケットの長さになります。
例えばロック対象のグローバルノード名が^xxx(123,"data")とすると、 ^xxx(123,"data")にデータのロケーション等のデータが付加されたものがその可変領域となり、32byteまたは64bytes(データロケーションが相応に長い場合)のバケットを使用しますので、
このロックで使用するデータサイズが、64byteのバケットを使用すると仮定すると、
512(固定領域)+ 64 (可変領域)= 576 bytes
となります。
これは InterSystems FAQ サイトの記事です。
IRIS2023.1から導入されたgmheapとlocksizの新しいデフォルト値について紹介します。
gmheap=0は、特別な設定の必要性がないほとんどのシステム(実運用システムを含む)に適切なように設計された新しいデフォルト値です。
0に設定することで、システムがシステム全体のサイズを推測し、妥当な値を算出してくれます。
gmheap=0 に設定した場合、システムは、グローバルバッファ用に設定されたメモリの合計に3%を乗じた値を基準に、300MBの下限と2GBの上限の範囲内でgmheap値を設定します。
0以外の値はそれをそのまま使用し、2GBよりはるかに大きく、あるいは300MBよりはるかに小さく設定することができます。
(ただし、小さな値を設定した場合、メモリを必要とする機能の利用が失敗する可能性があります。 同様に極端に大きな値を設定することでシステムに悪影響を与える可能性があります)
さらにこの変更以前は、.cpfファイルのgmheap設定に加えて、CPUスレッド数 に2MBを掛けた値をシステムが内部的に追加していました。
このため、異なるシステムに構成を移動するときや、物理メモリの使用量を理解しようとするときに混乱を招くことがありました。
これは InterSystems FAQ サイトの記事です。
PythonからObjectScriptのルーチンを直接呼び出すことはできませんが、クラスメソッドを経由して間接的に呼び出すことができます。
しかし、Pythonの変数とObjectScriptのローカル変数は内部構造が異なるため、情報の交換には少し工夫が必要です。
簡単なサンプルでその方法について説明します。
まず、2つの変数を足し算する簡単なルーチン ^testを作ります。
TEST ;
set sum = a + b
次にこの^testを呼び出すPythonのメソッドを含んだUser.testというクラスを作ります。
そしてpyという名前のPythonのメソッドを作成します。
先述の通りPythonからObjectScriptのルーチンを直接呼び出すことはできないので、ルーチンを間接的に呼び出すObjectScriptのメソッドを作成する必要があり、そのメソッドをPythonメソッドから呼び出すようにします。
渡したいデータが複数個ある場合、その数分引数を用意するのは面倒なため、Pythonの場合、情報をまとめて交換する際にdictionary(辞書)やlistという構造を使用することができます。
ここでは、dictionaryを使用する例を紹介します。
これは InterSystems FAQ サイトの記事です。
messages.logまたはcconsole.log内に記録されるCSPGatewayLatencyのメッセージは、サーバが、パフォーマンス測定のため定期的に「CSPゲートウェイにリクエストを送信して応答をもらう」ことを行っており、応答を受け取るまで一定時間以上かかったときに出る警告(応答時間の閾値)です。
その既定値は1000ミリ秒です。
WebGateway(CSPGateway)が稼働する Web サーバの負荷が高い場合に出力する場合がありますが、実際のCSPアプリケーションやREST APIの動作や応答速度に影響が見られなければ、特に問題はありません。
またこのメッセージの出力頻度を下げるためにこの閾値を変更する方法もあります。
変更方法は以下を参照ください
これは InterSystems FAQ サイトの記事です。
404エラーが返される場合に、以下の対応でエラーが解消されることがわかっています。
(1) binの接続を許可
/cspの構成エディタ>セクションで以下選択
system.webServer > security > requestFiltering
> hiddenSegmets 選択 > (コレクション)の右欄(Count=xx)の右端 [...] クリック
> segment欄に binの行があったので、選択して削除
> 画面戻って、右上の [適用] クリック
または、IISの構成ファイルを直接編集することでも対応可能です。
C:\Windows\System32\inetsrv\config\applicationHost.config
そのファイルから以下のような記述部分を探し、<add segment="bin"
これは InterSystems FAQ サイトの記事です。
以下のようなベンチマーク関連の情報が公開されています。
Intel社と共同で実施したパフォーマンス(レイテンシー)とスケーラビリティ(スループット)を計測するベンチマーク結果
ESG社によるIRISと他社データベースとの性能比較に関するレポート
ウルシステムズ社が実施したAWS AuroraとIRISの性能評価結果
オープンソースのベンチマークプログラム
WinterCorp社のベンチマークレポート
様々なハードウェア上で実施したベンチマーク結果を公表
開発生産性の評価に関連するレポート
お世話になっております。
ご好評をいただいております弊社主催の開発者向けウェビナー、第18回となる10月は、以下の日時・内容で開催いたします。
【概要】
ITを取り巻く環境は常に進化を続け、ITリソースの需要はいつも強く求められています。それゆえ、社内開発からお客様へのサービス展開まで、システム環境構築の自動化戦略は、いまや欠かせないものになりました。
このウェビナーでは、Red Hat社の構成自動化ツール Ansible をご紹介するとともに、InterSystems IRIS のインストールから構成設定、アプリ導入までを Ansible で簡単に自動化する手順を、デモを通じてご覧いただきます。
【こんな方にお勧め】
ご多用中とは存じますが、皆様のご参加をお待ち申し上げております。
これは InterSystems FAQ サイトの記事です。
HTTPレスポンスヘッダ情報を取得したい場合、以下のような方法があります。
開発中などに、送られてきたヘッダの項目名、そのデータを確認したい場合に、是非ご活用ください。
set var=""for {
set var=$order(%request.CgiEnvs(var))
if var=""quitset val=$get(%request.CgiEnvs(var))
write var_": "_val,"<BR>"
}
%Net.HttpRequest クラスの Head メソッドを使用します。
set http = ##class(%Net.HttpRequest).%New()
set http.Server = "localhost"set http.Port = 80do http.Head("/csp/user/menu.csp") // ヘッダ情報をリクエストするURLdo http.HttpResponse.開発者の皆さん、こんにちは!
この記事は、2024年7月に開催された「InterSystems Pythonプログラミングコンテスト2024」でエキスパート投票、コミュニティ投票の両方で1位を獲得された @Henry Pereira さん @José Pereira さん @Henrique Dias Dias さんが開発された sqlzilla について、アプリを動かしてみた感想と、中の構造について @José Pereira さんが投稿された「Text to IRIS with LangChain」の翻訳をご紹介します。
第2回 InterSystems Japan 技術文書ライティングコンテスト 開催! では、生成AIに関連する記事を投稿いただくと、ボーナスポイントを4点獲得できます📢 @José Pereira さんの記事を💡ヒント💡に皆様の操作体験談、アイデアなどを共有いただければと思います。
開発されたアプリSQLzilla についての概要ですが、Open Exchange の sqlzilla のREADMEに以下のように紹介されています。
「SQLzilla は、Python と AI のパワーを活用して、自然言語の SQL クエリ生成を通じてデータ アクセスを簡素化し、複雑なデータ クエリとプログラミング経験の少ないユーザーとの間のギャップを埋めます。」
通常、Caché でエクスポートしたクラスやルーチンをIRISにインポートすることは可能ですが、IRISよりエクスポートしたクラスやルーチンを Caché にインポートすることはできません。
Caché にインポートしようとすると、以下のようなエラーになります。
USER>do$system.OBJ.Load("C:\temp\test.xml")
ロード開始 07/23/202416:50:42
ファイル C:\temp\test.xml を xml としてロード中
ERROR #6301 行: 2 オフセット: 117 これはCacheエクスポートファイルではありません。インポートできません。
読込時に 1 個のエラーを検出しました。
どうしても、古いバージョンにインポートする必要がある場合、「/exportversion」というエクスポート修飾子を使用することが可能です。
使用方法は以下のようになります。/exportversion には、エクスポートしたルーチンをインポートしたい環境のCacheバージョンを指定します。
USER>write$SYSTEM.OBJ.Export("test.mac","c:\temp\test2.xml","/exportversion=cache2018.開発者の皆さんこんにちは!
9月2日から、🖋第2回 InterSystems Japan 技術文書ライティングコンテスト🖋 が始まります!応募の準備はばっちりでしょうか?👀
この記事では、昨年開催したコンテストに応募いただいた作品を審査員コメントを添えてご紹介します。
(審査員コメントは昨年11月に開催したミートアップ内で行ったコンテスト表彰式で紹介した内容です)
✅ @Akio Hashimoto さんが投稿された DockerにIRISを構築する簡単なチュートリアル
審査員コメント:
✅ @Junichi Sakata さんが投稿された Embedded Pythonの使い所は?
審査員コメント:
✅ @Yuji Ohata さんが投稿された AWS環境を用いたCI/CDの仕組みの紹介。
審査員コメント:
これは InterSystems FAQ サイトの記事です。
messages.logに「Updates may become suspended due to low available buffers」のエラーが出ている場合、このインスタンスのバッファ利用可能サイズが低下していることが考えられます。
上記メッセージが頻繁に出力するようであれば以下の対処をご検討ください。
メッセージの意味は以下のようになります。