記事 Toshihiko Minamoto · 3月 18, 2024 7m read

はじめに

InterSystems は先日、Visual Studio Code(VSC)IDE 用の拡張機能は InterSystems Studio に比べてより優れたエクスペリエンスを提供するという考えから、VSC IDE 用の拡張機能を独占的に開発するためにバージョン 2023.2 より InterSystems Studio のサポートを終了すると発表しました。それ以来、VSC に切り替えた開発者や、VSC を使用し始めた開発者が大勢います。 VSC には Studio のような出力パネルがなく、InterSystems が開発したプラグインをダウンロードする以外に IRIS ターミナルを開く統合機能もないため、多くの人は演算を実行する際にターミナルの開き方に迷ったことでしょう。

概要

  • はじめに 
  • 解決策
    • 少なくとも IRIS 2020.1 または IRIS 2021.1.2 を使用するユーザー: Web ターミナルを使用
    • 少なくとも least IRIS 2023.2 を使用するユーザー: WebSocket ターミナルを使用
    • Docker ベースの IRIS を使用するユーザー
    • ローカルマシンでバージョン 2023.2 より前の IRIS を使用するユーザー
    • SSH 接続を使ってリモートサーバーの IRIS でコーディングするユーザー

解決策

0
0 518
記事 Toshihiko Minamoto · 2月 29, 2024 6m read

コミュニティの皆さん、こんにちは!

この記事では、私の最新のアプリケーションである Journal File Indexer をご紹介します。 このアプリケーションの開発は、ポータルアイデアの DPI-I-270 に基づいています。

簡単に言えば、このアプリケーションではデータベースでログファイルを読み込んでインデックス作成できます。

製作理由

管理ポータルでログファイルの検索機能を使用したことがあるなら、タイムアウトエラーになったり、ページが空になったりしたことがあるのではないでしょうか。 この問題は通常、大規模なジャーナルファイルを検索する場合に発生します。 Journal File Indexer は、ファイルをデータベースに読み込んで、検索速度を大幅に高めることで、この問題を解決します。

復元プロセス中にはもう 1 つの問題が発生します。 ログファイルでグローバルエントリを検索し、古い値または新しい値を復元したくても、管理ポータルにはこの特定の機能がありません。 そのため、これを達成するにはルーチンをコーディングする必要があります。 Journal File Indexer を使うと、この復元機能を統合できます!

0
0 127
記事 Toshihiko Minamoto · 2月 26, 2024 10m read

   

Hello, community!

IrisApiTester アプリを作成した後、それにもっと可能性があることに気付き、いくつか調整することで強力なコラボレーションツールになるのではないかと考えました。

そこで、以下の事について検討してみました。

  • API コレクションをチーム全体で共有できるか?
  • ユニットテストの実行に使用できるか?
  • 統合テストにはメリットがあるか?
  • CI/CD 継続的インテグレーションレイヤーを追加するとどうなるか?

可能な答えを考えた末、試してみることにしました。 作業を終えると、すべての回答が(ある程度)肯定であることがわかりました。 最終的には、この記事を書いて、この経験を皆さんと共有することに決めました。 知識の交換に役立ち、できればアプリケーションを一緒に改善していければと思います。

この記事は役に立つと思います。 新しいアプリケーションを検討するきっかけになるかもしれませんし、アジャイルな方法で実行できることを知らなかったテストを、このヒントでやっと実行できるようになることに気付くでしょう。

簡潔にするために、この記事を複数のセクションに分けています。 そのため、直接必要な箇所を読むことも、全文を読むこともできるように構成されています。

0
0 123
記事 Toshihiko Minamoto · 2月 16, 2024 3m read

コミュニティの皆さん、こんにちは!

IrisApiTester の新しいバージョンを公開しました。以下のようないくつかの新機能が含まれています。

  • 外部リポジトリ: コレクションのファイルをウェブページに手動でドラッグする代わりに、リポジトリ(GitHub または Bitbucket)のコレクションを使用できる機能を追加しました。
  • プルして実行: リポジトリの変更を自動的にプルしてテストを実行する新しいエンドポイントを作成しました。
  • ユニットテスト / 統合テスト: ユニットテストと統合テストで IrisApiTester を使用する例を追加しました。
  • CI/CD: GitHub などのワークフローでコミットの完了ごとにコレクションのリポジトリの変更を自動的にプルし、テストを実行して Google Chat に結果を送信するための新しいエンドポイントを追加しました。

外部リポジトリ:

Postman のコレクションテストが格納される外部リポジトリを構成できるようになりました。

- プルして実行:
リポジトリの最新バージョンをプルし、テストを通過させてブラウザにレポートを表示します(ファイルをドラッグすなどの手動操作は不要です):
http://localhost:52773/pull_and_run_tests

-ユニットテスト / 統合テスト

0
0 93
記事 Toshihiko Minamoto · 2月 7, 2024 2m read

コミュニティの皆さん、こんにちは!

私の IRIS Api Tester というアプリで使用する Postman コレクションのテストを作成する方法を説明します。

Newman とは?

Newman は、Postman コレクションを拡張可能な方法で自動的に実行できるコマンドラインツールです。 Newman でテストを作成することで、API エンドポイントの信頼性と正確性を確実にすることができます。 この記事では、Postman で Newman のテストを作成する方法と開始に役立つ実用的な例を紹介します。

Postman コレクションを作成したら:

テストスクリプトを書き始めることができます。

Postman のテストは、Postman スクリプトサンドボックスを使って JavaScript で記述します。 テストスクリプトを作成するには、リクエストを開いて「Test」タブに移動します。 ここで、API レスポンスを評価してその正確さを検証するカスタム JavaScript コードを作成できます。

例 1: レスポンスのステータスコードを確認する:

pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

 

例 2: レスポンスの特定のフィールドの有無を検証する:

0
0 471
記事 Toshihiko Minamoto · 1月 31, 2024 3m read

コミュニティの皆さん、こんにちは!!

Open Exchange に最新の「IRIS Api Tester」アプリケーションをアップロードしました。

InterSystems IRIS と Newman を使用した Docker プロジェクトで、素早く簡単に Postman コレクションをテストできます。

リポジトリをクローンするだけで、初期状態で使用できるようになっています: https://github.com/daniel-aguilar-garcia/irisapitester

docker-compose ファイルを実行します。

この URL をブラウザで開きます。

http://localhost:52773/csp/user/index.html

テストを Postman コレクションに追加します。

この例では、テストをコレクションの Test セクションに追加することでコレクションのすべてのエントリにグローバルテストを追加していますが、個別のテストを項目ごとに追加することもできます。

ここでは、リクエストのステータスコードが 200 になることをテストしています。ステータスコードが 200 でない場合には、レポートにエラーとして表示されます。

テストを追加したら、コレクションを JSON 形式でエクスポートします。

0
0 90
記事 Toshihiko Minamoto · 1月 18, 2024 3m read

はじめに

InterSystems は、最新の CPU 命令セット拡張機能を活用するために、IRIS を最適化したいと考えています。製品のパフォーマンスに対しては素晴らしいことですが、CPU が新しい IRIS ビルドにサポートされるかを知るにはどうすればよいでしょうか。ここでは、CPU のマイクロアーキテクチャファミリと CPU の特定の命令セット拡張機能を知る方法について説明します。

0
0 220
記事 Toshihiko Minamoto · 1月 11, 2024 3m read

DeepSee で階層を設計する場合、子メンバーに 1 つの親しか指定できません。 子が 2 つの親に対応する場合には、信頼性のない結果が得られることになります。 類似する 2 つのメンバーが存在する場合、そのキーがそれぞれ一意になるように変更する必要があります。 これが起きる場合とそれを回避する方法について、2 つの例を見ながら説明します。

例 1

(アメリカには)Boston と言う都市がある州がたくさんあります。 私のサンプルデータでは、Boston, MA(マサチューセッツ州ボストン)と Boston, NY(ニューヨーク州ボストン)のレコードがあります。 次元は次のように定義されています。

私の場合、City(都市)と State(州)は単純な文字列です。 キューブにビルドすると、"MA" と "NY" の2 つの州メンバー、"Boston" と "Boston" の 2 つの都市メンバーが得られます。 Boston が 1 つではなく 2 つあるのはなぜでしょうか。 メンバーには 2 つの親メンバーを指定できないため、親ごとに異なるメンバーを作成する必要があります。 残念ながら、1 つのキーが 2 つの異なるメンバーを持っているため、この時点で「不適切な階層」状態になっています。

0
0 119
記事 Toshihiko Minamoto · 12月 28, 2023 35m read

はじめに {#Webinar:ImplementingIntegrationswith.NetorJava-Introduction}

InterSystems IRIS 2020.1 には、Java または .NET で記述されたコンポーネントで IRIS 相互運用性プロダクションの開発を容易にする PEX(プロダクション拡張フレームワーク)が含まれています。

この PEX により、Java または .NET の知識を備える統合開発者は、InterSystems IRIS 相互運用性フレームワークの力、スケーラビリティ、および堅牢性を利用し、すぐに生産性を高めることができます。

IRIS 相互運用性フレームワークエキスパートに対し、PEX は既存の Java 言語または .NET 言語の外部コンポーネントとの統合を簡単にリッチ化することができます。

このチュートリアルでは、PEX を詳しく見ながら、.NET 開発者による PEX のはじめての使用を説明します。 コードは、https://github.com/es-comunidad-intersystems/webinar-PE にあります。

0
0 161
記事 Toshihiko Minamoto · 12月 20, 2023 15m read

開発者の皆さん、こんにちは!

多くの方が、Open Exchange と GitHub で InterSystems ObjectScript ライブラリを公開しています。

でも、開発者がプロジェクトの使用とコラボレーションを簡単に行えるようにするにはどうしていますか?

この記事では、ファイルの標準セットをリポジトリにコピーするだけで、ObjectScript プロジェクトを簡単に起動して作業する方法をご紹介します。

では始めましょう!

0
0 162
記事 Toshihiko Minamoto · 12月 14, 2023 4m read

IRIS コンテナに VSCode を追加する

繰り返し利用できる開発環境をセットアップするには、環境用のコンテナを起動するのが最も簡単な方法の 1 つです。 素早く繰り返す際には、自分の開発コンテナ内に vscode インスタンスをホストするのが非常に便利なことが分かりました。 そこで、ブラウザベースの vscode を IRIS コンテナに追加するための簡易コンテナスクリプトを作成しました。 これは、ほとんどの 2021.1+ のコンテナで動作するはずです。 私のコードリポジトリはこちらにあります

vscode を含み事前に接続された InterSystems IRIS コンテナ

認証情報
ユーザー_SYSTEM
パスワードSYS

概要

このプロジェクトでは、ホストされた(Web ベース)バージョンの vscode を同じコンテナ内で利用できる IRIS コンテナを作成します。 これには、以下が含まれます。

  • 同じコンテナコードの編集
  • コンテナの IRIS インスタンスへの事前接続
  • 管理ポータルからのリンク
  • コンテナによる IDE の自動起動

クイックスタート

0
0 215
記事 Toshihiko Minamoto · 12月 5, 2023 4m read

質問:

特定のフォルダ/ディレクトリにあるファイルをワイルドカード/フィルターによってリスト表示するにはどうすればよいか。

例えば、'C:\Temp' 内にあるすべての '*.txt' をリスト表示する場合です。

回答:

CACHE :

%Library.File の FileSet クラスクエリを使用できます。

以下に、これを使用したサンプルコードを示します(添付されています)。

run(pDir,pFileSpec)

      Set tRS=##class(%ResultSet).%New("%Library.File:FileSet")
      Set tSC=tRS.Execute(pDir,pFileSpec)

      Write "Name",?30,"Date Modified",?53,"Type",!
      Write "--------------------------------------------------------------------------",!

      While tRS.Next() {
            Write tRS.Get("Name"),?30,tRS.Get("DateModified"),?53,tRS.Get("Type"),!

      }

以下は、これを実行した例です。

0
0 162
記事 Toshihiko Minamoto · 11月 15, 2023 9m read

前の記事 - AI による臨床文書の保管、取得、検索の単純化

この記事では、AI を使用した文字起こしと要約によってヘルスケアに変革を起こす OpenAI の高度な言語モデルの可能性を探ります。 OpenAPI の最先端 API を活用して、録音データを文字起こしし、自然言語処理アルゴリズムを使って簡潔な要約を生成するための重要なインサイトを抽出するプロセスを掘り下げていきます。

似たような機能は Amazon Medical Transcibe や Medvoice などの既存のソリューションでも提供されていますが、この記事では、OpenAI テクノロジーを使用してこれらの強力な機能を InterSystems FHIR に実装することに焦点を当てています。

Vue.js の録音データ

Vue.js アプリのボイスレコーダーは、完全にネイティブであり、Mediarecorder インターフェースを使って JavaScript で記述されています。 これは、アプリケーションを軽量に維持しながら、録音オプションを完全に制御できるようにすることを目的としています。 以下は、録音入力の開始と停止を行うスニペットです。

0
1 296
記事 Toshihiko Minamoto · 11月 8, 2023 2m read

この記事では、EC2(ubuntu)に IAM をデプロイする手順を説明します。

IAM とは?

IAM は InterSystems API Manager です。
IAM の詳細については、以下のリンクをご覧ください。

https://docs.intersystems.com/components/csp/docbook/Doc.View.cls?KEY=PAGE_apimgr

IAM をデプロイする前に

API ホストのライセンスを確認する

 

ユーザー IAM を有効にする

IAM をデプロイする

参考情報 

https://community.intersystems.com/post/introducing-intersystems-api-manager

以下のリンクからイメージをダウンロードする

https://wrc.intersystems.com/wrc/coDistGen.csp

以下のバージョンを PC にダウンロードしました。

イメージを EC2 にアップロードする

コマンド scp を使用して、イメージをクラウドにアップロードしています。

 

Docker と Docker Compose がインストールされていることを確認する

インストールされていない場合は、以下のリンクを参照してください。

0
0 120
お知らせ Toshihiko Minamoto · 11月 7, 2023

開発者の皆さん
こんにちは。

この度、アイデアポータルで皆様から寄せられたアイデアの実施例を紹介する、全く新しいアナウンスを開始することになり、大変嬉しく思っております。このシリーズでは、現実世界のソリューションに生まれ変わった素晴らしいアイデアにスポットライトを当てます。

 

0
0 98
記事 Toshihiko Minamoto · 10月 26, 2023 4m read

問題

あわただしい臨床環境では迅速な意思決定が重要であるため、文書保管とシステムへのアクセスが合理化されていなければいくつもの障害を生み出します。 文書の保管ソリューションは存在しますが(FHIR など)、それらの文書内で特定の患者データに有意にアクセスして効果的に検索するのは、重大な課題となる可能性があります。

動機

AI により、文書の検索が非常に強力になりました。 ChromaLangchain のようなオープンソースツールを使用して、ベクトル埋め込みを保存して使用し、生成 AI API 全体でクエリを実行することで、ドキュメント上での質疑応答がかつてないほど簡単になっています。 より献身的に取り組む組織は、既存のドキュメントにインデックスを作成し、エンタープライズ用に微調整されたバージョンの GPT を構築しています。 GPT の現状に関する Andrej Karpathy の講演では、このトピックに関する素晴らしい概要が提供されています。

このプロジェクトは、医療関係者が文書を操作するあらゆるタッチポイントにおいて発生する摩擦を緩和する試みです。 医療関係者が情報を保管し、必要な情報を難なく検索できるように、入力と処理から保管と検索まで、IRIS FHIR と AI を活用しました。

ソリューション

0
0 168
記事 Toshihiko Minamoto · 10月 18, 2023 7m read

コミュニティの皆さん、こんにちは。

パート 1 では、すべてのパッケージ、使用されているライブラリ、および REST サービスについて説明しました。

次は、コンバーターサービスとバリデーターサービスについて詳しく説明したいと思います。

OpenAPI-Suite はデフォルトで、仕様バージョンが 3.0 未満である場合に HTTP リクエストを converter.swagger.io に送信し、別の HTTP リクエストを validator.swagger.io に送信して仕様ドキュメントの構造を単純化します。  

オンラインユーティリティの使用は便利ではありますが、場合によっては独自のコンバーターとバリデーターのインスタンスを使用する方が便利な場合もあります。  たとえば、OpenAPI-Suite が ObjectScript 開発者向けに組織のサーバーに提供されている場合、外部サービスへのリクエストを回避する方が好ましいことがあります(プライバシーやリクエストレートの制限を回避するため)。 

以下を実行してください。 

docker run -d -p 8085:8080 --name swagger-converter swaggerapi/swagger-converter:latest
docker run -d -p 8086:8080 --name swagger-validator-v2 swaggerapi/swagger-validator-v2:latest
0
0 69
お知らせ Toshihiko Minamoto · 10月 10, 2023

コミュニティの皆さん、こんにちは!

InterSystems アイデアニュース第8号へようこそ!ここでは以下の内容が掲載されています。

Welcome to the 8th edition of the InterSystems Ideas news bulletin! Here's what you can expect from it:

​​​​✓ アイデアポータルの全ページを説明する新たなビデオ   

✓ 前回のニュース以降に実装されたアイデア

⏯ビデオ: 殿堂入り

0
0 89
記事 Toshihiko Minamoto · 10月 5, 2023 4m read

コミュニティの皆さん、こんにちは!

DeepSee Web についてのパート 2 では、DSW のカスタマイズオプションについて説明します。  

カスタマイズには、ウィジェットのカスタマイズとダッシュボードパネルのカスタマイズの 2 種類があります。

開発者コミュニティ分析におけるダッシュボードのカスタマイズ例。

0
0 161
記事 Toshihiko Minamoto · 9月 28, 2023 22m read

コミュニティの皆さん、こんにちは。

私が作成した OpenAPI-Suite という最新のパッケージをご紹介します。これは、OpenAPI 仕様バージョン 3.0 から ObjectScript コードを生成するツールセットです。  簡単に言うと、これらのパッケージでは以下を行うことができます。

  • サーバーサイドクラスの生成。  ^%REST による生成コードに非常に似ていますが、バージョン 3.0 がサポートされていることに付加価値があります。
  • HTTP クライアントクラスの生成。
  • クライアントプロダクション(ビジネスサービス、ビジネスオペレーション、ビジネスプロセス、Ens.Request、Ens.Response)クラスの生成。
  • コードの生成とダウンロードまたはサーバーでの直接コンパイルを行う Web インターフェース。
  • バージョン 1.x からバージョン 3.0 への仕様の変換。
  • 0
    0 117
    記事 Toshihiko Minamoto · 9月 15, 2023 5m read

    DeepSee BI ソリューションのユーザーインターフェース(UI)を配布するにはいくつかのオプションがあります。 最も一般的には以下の手法があります。

    • ネイティブの DeepSee ダッシュボードを使用し、Zen で Web UI を取得して、Web アプリに配布する。
    • DeepSee REST API を使用して、独自の UI ウィジェットとダッシュボードを取得・構築する。

    最初の手法はコーディングを行わずに比較的素早く BI ダッシュボードを構築できるためお勧めですが、事前設定のウィジェットライブラリに限られます。これを拡張することはできますが、大きな開発の手間がかかります。

    2 つ目の手法には、任意の総合 js フレームワーク(D3,Highcharts など)を使用して DeepSee データを可視化する手段がありますが、ウィジェットとダッシュボードを独自にコーディングする必要があります。

    今日は、上の 2 つを組み合わせて Angular ベースの DeepSee ダッシュボード用 Web UI を提供するもう 1 つの手法をご紹介します。DeepSee Web ライブラリです。

    0
    0 147
    記事 Toshihiko Minamoto · 9月 5, 2023 10m read

    Caché と InterSystems IRIS データベースの整合性は、システム障害から完全に保護されてはいますが、物理ストレージデバイスが保管しているデータは、デバイスの障害によって破損してしまいます。  そのため、多くのサイトでは、データベースの整合性チェックを定期的に実行するように選択しており、特に特定のバックアップが災害時に信頼できるかどうかを検証するためにバックアップが行われています。  システム管理者がストレージの破損を伴う災害に対応するために、整合性チェックも緊急に必要となる場合もあります。  整合性チェックはチェックされているグローバルの各ブロック(すでにバッファーにない場合)を、グローバル構造で指示された順序で読み取る必要があります。 これには膨大な時間がかかりますが、整合性チェックは、ストレージサブシステムが維持できる限り高速に読み取ることができます。  一部の状況においては、できる限り迅速に結果を取得するために、そのように実行することが望ましい場合がありますが、  他の状況においては、ストレージサブシステムの帯域幅の過剰な消費を避けるために、整合性チェックをより保守的に行う必要があります。 

    攻撃への対応計画

    0
    0 304
    記事 Toshihiko Minamoto · 9月 1, 2023 2m read

    以下は、InterSystems IRIS で使用するデータベース、ネームスペース、および Web アプリケーションを作成できる ObjectScript スニペットです。

        set currentNS = $namespace
    
        zn "%SYS"
    
        write "Create DB ...",!
        set dbName="testDB"
        set dbProperties("Directory") = "/InterSystems/IRIS/mgr/testDB"
        set status=##Class(Config.Databases).Create(dbName,.dbProperties)
        write:'status $system.Status.DisplayError(status)
        write "DB """_dbName_""" was created!",!!
    
    
        write "Create namespace ...",!
        set nsName="testNS"
        //グローバルの DB
        set nsProperties("Globals") = dbName
        //ルーチンの DB
        set nsProperties("Routines") = dbName
        set status=##Class(Config.Namespaces).Create(nsName,.nsProperties)
        write:'status $system.Status.DisplayError(status)
        write "Namespace """_nsName_""" was created!",!!
    
    
        write "Create web application ...",!
        set webName = "/csp/testApplication"
        set webProperties("NameSpace") = nsName
        set webProperties("Enabled") = $$$YES
        set webProperties("IsNameSpaceDefault") = $$$YES
        set webProperties("CSPZENEnabled") = $$$YES
        set webProperties("DeepSeeEnabled") = $$$YES
        set webProperties("AutheEnabled") = $$$AutheCache
        set status = ##class(Security.Applications).Create(webName, .webProperties)
        write:'status $system.Status.DisplayError(status)
        write "Web application """webName""" was created!",!
    
        zn currentNS
    
    0
    0 156
    記事 Toshihiko Minamoto · 8月 30, 2023 2m read

    cAdvisorContainer Advisor)は、実行中のコンテナのリソースの使用率とパフォーマンスデータを分析して公開します。 cAdvisor は初期設定のままで Prometheus メトリクスを公開します。 

    https://prometheus.io/docs/guides/cadvisor/

    Prometheus は SAM に統合されています。 このため、cAdvisor メトリクスと利用して Prometheus と Grafana で公開することが可能です。

    cAdvisor はポート 8080 でリッスンしますが、これは Nginx のポートと競合するため、それに対応するように Nginx ポートを変更することができます。

    構成手順:

    1. nginx ポートを変更します。

    nghix.conf を変更します。

        server {
            listen 9991; 

    これにより、http://server:8080/ 経由で多数のサンプルダッシュボードが含まれる cAdvisor UI にアクセスできるようになります。

    1. cAdvisor コンテナを追加するように docker-compose を構成します。

    docker-compose.yml に以下を追加します。

    0
    0 565
    記事 Toshihiko Minamoto · 8月 23, 2023 7m read

    この「DeepSee トラブルシューティングガイド」は、DeepSee プロジェクトの問題を追跡して修正する支援を提供することを目的としています。

    このガイドラインに従って問題を修正できない場合でも、少なくとも DeepSee サポートに WRC の問題を提出し、すべての証拠を提供するのに十分な情報を得ることができます。この情報によって、一緒に調査を続け、より迅速に解決することが可能となります。

    ご注意ください: 特定のアクションやコマンドによってどのような結果がもたらされるかがよくわからない場合は、実行しないでください。本番システムに影響を与える可能性があります。  この場合は、サポートセンターにお問い合わせください。 

    左から右の操作列に進むと、このガイドを最も簡単に活用できます。

    0
    0 121
    記事 Toshihiko Minamoto · 8月 15, 2023 9m read

    Docker による Apache Web ゲートウェイ

    コミュニティの皆さん、こんにちは。

    この記事では、以下を使用して、Docker でプログラムによって Apache Web ゲートウェイを構成します。

    • HTTPS プロトコル
    • Web ゲートウェイと IRIS インスタンス間の安全な通信を確保する TLS/SSL

    イメージには、Web ゲートウェイ用と IRIS インスタンス用の 2 つを使用します。

    すべての必要なファイルは、こちらの GitHub リポジトリで入手可能です。

    では、git clone から始めましょう。

    git clone https://github.com/lscalese/docker-webgateway-sample.git
    cd docker-webgateway-sample
    

    システムの準備

    権限に関する問題を回避するために、システムにユーザーとグループが必要です。

    • www-data
    • irisowner

    コンテナと証明書ファイルの共有に必要です。 これらがシステムに存在しない場合は、以下を実行します。

    sudo useradd --uid 51773 --user-group irisowner
    sudo groupmod --gid 51773 irisowner
    sudo useradd –user-group www-data
    

    証明書の生成

    0
    0 307
    記事 Toshihiko Minamoto · 8月 7, 2023 7m read

    この記事では、.Net/Java ゲートウェイを簡単にコンテナ化する方法を説明します。

    この例では、Apache Kafka との統合を開発します。

    Java/.Net と相互運用するために、PEX を使用しています。

    アーキテクチャ

    このソリューションは完全に docker で実行し、以下のように構成されます。

    Java ゲートウェイ

    まず、メッセージを Kafka に送信する Java オペレーションを開発しましょう。 このコードはお好きな IDE で書くことができ、こちらのようになります。

    要約すると:

    • 新しい PEX ビジネスオペレーションを開発するには、抽象型の com.intersystems.enslib.pex.BusinessOperation クラスを実装する必要があります。
    • public プロパティはビジネスホスト設定です。
    • OnInit メソッドは Kafka への接続を初期化し、InterSystems IRIS へのポインターを取得するために使用されます。
    • OnTearDown は、(プロセスのシャットダウン時に)Kafka から切断するために使用されます。
    • OnMessagedc.KafkaRequest メッセージを受け取って、Kafka に送信します。

    では、これを Docker にパックしましょう!

    これがこの例の dockerfile です。

    0
    0 175
    記事 Toshihiko Minamoto · 7月 28, 2023 1m read

    ターミナルにライセンス期限切れの警告メッセージ(「*\* Warning: This Cache license will expire in 3 days **」)が表示されており、そのメッセージを表示したくない場合は、以下のコマンドを実行すると、メッセージの表示を無効(または有効)にできます。

    Do ExpirationMessageOff^%SYS.LICENSE - Disable

    Do ExpirationMessageOn^%SYS.LICENSE - Enable

     

    0
    0 140
    記事 Toshihiko Minamoto · 7月 24, 2023 8m read

    Python は世界で最も使用されているプログラミング言語になり(出典: https://www.tiobe.com/tiobe-index/)、SQL はデータベース言語としての道をリードし続けています。 Python と SQL が連携して、SQL だけでは不可能であった新しい機能を提供できれば、素晴らしいと思いませんか? 結局のところ、Python には 380,000 を超える公開ライブラリがあり(出典: https://pypi.org/)、Python 内で SQL クエリを拡張できる興味深い機能が提供されています。 この記事では、Embedded Python を使用して、InterSystems IRIS データベースに新しい SQL ストアドプロシージャを作成する方法を詳しく説明します。

    サンプルとして使用する Python ライブラリ

    この記事では、IRIS で SQL を扱う人にとって非常に便利な GeoPy と Chronyk という 2 つのライブラリを使用します。 

    Geopy は、ジオコーディング(住所と地理座標の修飾)を住所データに適用するために使用するライブラリです。 これを使用すると、通りの名前から郵便番号と完全な住所を郵便局の形式で取得することができます。 多くのレコードには住所が含まれるため、非常に便利です。

    0
    0 355