查找

記事
· 2025年9月25日 8m read

ChatGPT を使って JSON レスポンスから ObjectScript クラスを生成する

REST レスポンスから IRIS データーベースに情報を保存する新しいプロジェクトがあります。 少なくとも 20 以上の個別の REST エンドポイントの情報を同期する必要があるため、それらのエンドポイントの結果を保存するために、ほぼ同じ数の ObjectScript クラスを作成しなければなりません。

ChatGPT を使って、それらのクラスを作成することはできますか? 答えは「できます」です。生成 AI を使って便利なものを作るのは初めてなので、素晴らしい機会だと思います。 スープを飲むキリンの写真を生成するのには飽きてきました…。

ディスカッション (0)0
続けるにはログインするか新規登録を行ってください
質問
· 2025年9月25日

Setting up MQTT connection

Hi,

My understanding that in IRIS  we create an Inbound Adapter that would act like a Broker (connecting to server X) then have an MQTT outbound adapter to receive those messages?

Is there a quick sample that we could user to show how to setup these two Adapters, I started with this but I couldn’t for example find EnsLib.MQTT.Adapter.Inbound

 


 

and I guess here where I can set Server X IP & port


 

Not familiar with MQTT, I appreciate if you could take through how to setup a MQTT inbound & outbound adaptes ?

 

Thanks

1 Comment
ディスカッション (1)2
続けるにはログインするか新規登録を行ってください
記事
· 2025年9月25日 1m read

Base64のエンコードに<ILLEGAL VALUE> エラーで失敗する

これは InterSystems FAQ サイトの記事です。
 

$System.Encryption.Base64Encodeに指定するデータは、UTF8にエンコードして渡す必要があります。

日本語が含まれるローカル変数をこのメソッドの引数として指定すると<ILLEGAL VALUE>エラーが返ります。

以下のようにUTF8に変換後引数として渡す必要があります。

 set wLineData=$ZCONVERT(wLineData, "O", "UTF8")

詳しくは以下をご参照ください。

ドキュメント: $System.Encryption.Base64Encodeの説明

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください
記事
· 2025年9月25日 2m read

GROUP BY や DISTINCT クエリで大文字で検索されてしまう場合の対処方法

これは InterSystems FAQ サイトの記事です。
 

何の設定も行なっていない場合、GROUP BYやDISTINCTで指定したフィールドは大文字小文字を区別せずに全て大文字として処理されます。

これはGROUP BYやDISTINCTのグループ化がフィールドに対して定義された照合タイプに基づいて行われ、その文字列照合の既定値がSQLUPPERになっているためです。

以下のドキュメントに説明がある通り、DISTINCT は、フィールドに対して定義された照合タイプに基づいて、文字列値をグループ化します。

大文字/小文字の区別と DISTINCT の最適化

これを変更する方法は、以下の3種類になっています。

(A) %SQLSTRING または %EXACT照合関数を使用する
(B) フィールドの文字列照合を SQLSTRINGに変更する
 また、フィールドにインデックスが設定されている場合には、インデックスの文字列照合も SQLSTRINGに変更する
(C) 管理ポータルで設定を変更する 

※(B)について補足
・文字列照合をEXACTに設定しても動作しますが、一般的にはSQLSTRINGの使用が推奨されています。
・フィールドの文字列照合とインデックスの文字列照合は、同じ設定にすることが推奨されています。

※(C)の設定手順

システム > 構成 > SQL  - (構成設定) 
GROUP BY と DISTINCT クエリでオリジナルの値を結果に返す にチェックを入れる

※この設定変更を有効にするためには、クエリキャッシュの削除が必要です。

 

詳細は、以下のドキュメントをご参照ください。

ドキュメント: GROUP BY

ドキュメント: DISTINCT

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください
質問
· 2025年9月24日

JDBC経由でのDB接続ができない

IRIS Communityの再インストールを行ったところ

tomcat上で動作するJavaのWEBアプリケーションから

JDBC経由でのDB接続ができなくなりました。

他のSQLクライアントツールからは問題なく接続できていますので

接続情報やDBの起動状態には問題ないと考えています。

解決策をご指導頂ければ幸いです。

 

■環境

IRISバージョン:IRIS_Community-2025.2.0.227.0-win_x64

JDKバージョン:11.0.28

JDBCドライバ:intersystems-jdbc-3.2.0.jar

 

■事前作業

ライセンス有効期限が切れてサービス起動できなくなったため、以下投稿と同様、再インストールを行っています。

https://jp.community.intersystems.com/post/iris%E3%82%A4%E3%83%B3%E3%82%...

ちなみに前回利用したバージョン(IRIS_Community-2024.2.0.247.0-win_x64)では

以下エラー(messages.log)となりサービス起動できなかったため

今回あらたに前述のバージョンをダウンロードし、インストールを行っています。

 

09/25/25-10:45:03:182 (15836) 3 [Utility.Event] Error: Invalid Community Edition license, may have exceeded core limit. - Shutting down the system : $zu(56,2)=$Id: //iris/2024.2.0/kernel/common/src/acmd.c#1 $ 4564 127

 

■tomcatログのエラー抜粋

 

Caused by: java.sql.SQLException: [InterSystems IRIS JDBC] Communication link failure: General error

    at com.intersystems.jdbc.IRISConnection.connect(IRISConnection.java:695)

    at com.intersystems.jdbc.IRISConnection.<init>(IRISConnection.java:156)

    at com.intersystems.jdbc.IRISDriver.connect(IRISDriver.java:47)

    at org.apache.tomcat.dbcp.dbcp2.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:52)

    at org.apache.tomcat.dbcp.dbcp2.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:414)

    at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:112)

    at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:628)

    ... 7 more

Caused by: java.sql.SQLException: General error

    at com.intersystems.jdbc.IRISConnection.getServerError(IRISConnection.java:907)

    at com.intersystems.jdbc.IRISConnection.processError(IRISConnection.java:1072)

    at com.intersystems.jdbc.InStream.readMessage(InStream.java:204)

    at com.intersystems.jdbc.InStream.readMessage(InStream.java:183)

    at com.intersystems.jdbc.IRISConnection.connect(IRISConnection.java:610)

    ... 13 more

 

■tomcatのcontext.xml内のデータソース設定

 

    <Resource

        name="jdbc_xxxxxx"

        auth="Container"

        type="javax.sql.DataSource"

        driverClassName="com.intersystems.jdbc.IRISDriver"

        url="jdbc:IRIS://192.168.0.xxxxxx:1972/xxxxxx"

        username="xxxxxx"

        password="xxxxxx"

        maxTotal="10"

        maxIdle="5"

        maxWaitMillis="180000"

        validationQuery="SELECT 1"

        testOnBorrow="true"

        testWhileIdle="true"

        removeAbandonedOnBorrow="true"

        removeAbandonedTimeout="3600"

        logAbandoned="true"

        lifo="false"

    />

 

※上記「xxxxxx」の箇所は実際にはそれぞれ別の文言が記載されています。

※再インストール前は上記接続情報で問題なく接続できています。

7 Comments
ディスカッション (7)1
続けるにはログインするか新規登録を行ってください