質問
· 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」の箇所は実際にはそれぞれ別の文言が記載されています。

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

Product version: IRIS 2025.2
$ZV: IRIS for Windows (x86-64) 2025.2 (Build 227U) Thu Jul 10 2025 11:01:07 EDT
ディスカッション (7)1
続けるにはログインするか新規登録を行ってください

@m.fuku さん、お試しいただきありがとうございます。

念のための確認なのですが、記載いただいた context.xml の url に記載の IRIS のポート番号(1972)ですが、管理ポータル の概要ページにある「スーパーサーバ・ポート」の番号と同じ番号が設定されていますでしょうか。

概要ページへは、管理ポータル画面右上の「概要」のリンクから移動できます。



その後、以下の画面が表示されます。

返信ありがとうございます。

> 記載いただいた context.xml の url に記載の IRIS のポート番号(1972)ですが、管理ポータル の概要ページにある「スーパーサーバ・ポート」の番号と同じ番号が設定されていますでしょうか。

はい。同じポート番号(1972)でした。

@m.fuku さん、ご確認ありがとうございます。

もう1点、JARファイルの置き換えをお試しいただけないでしょうか。

後方互換性があるものなのですが、念のため新しいJARに置き換えていただき、Tomcatを再起動して再度接続できるかどうかご確認をお願いします。

2025.2のJARは、<インストールディレクトリ>\dev\java\lib\1.8\intersystems-jdbc-3.10.3.jar  でした。

(同じexeでインストールできず、実物を確認できてないのですが、2024.2は、intersystems-jdbc-3.9.0.jar でしょうか。)

前回アップデート前もあわせて

2023.3.0.254.0

2024.2.0.247.0

2025.2.0.227.0

と3バージョンともJDBCドライバはいずれもintersystems-jdbc-3.2.0.jarのままです。

同ドライバは以下GitHubから入手しています。
https://github.com/intersystems-community/iris-driver-distribution?utm_s...
上記フォルダ構成から

JDK11->3.2.0

JDK18->3.6.1、3.7.1、3.8.0、3.8.4、3.9.0、3.10.0、3.10.1、3.10.2

がございました。

そこで確認があります。

1.3.10.3はどこから入手できるのでしょうか。

2.3.10.3はJDK11でも動作するのでしょうか(システム構成上JDK18にすることはできません)。

情報ありがとうございます。

1. の 3.10.3の入手方法ですが、WindowsにインストールされたIRISの以下ディレクトリにJARがありますので、対象ディレクトリにコピーしてご利用ください。

<インストールディレクトリ>\dev\java\lib\1.8\intersystems-jdbc-3.10.3.jar

2.についてですが、3.10.3はJDK11でも動作いたします。

ご参考:サポート対象Javaテクノロジ

JDBCドライバをintersystems-jdbc-3.10.3.jarに差し替えたところ

問題なくDB接続できるようになりました。

結論としてはIRISバージョンとそれに対応するJDBCドライバのバージョンの不一致だったということでしょうか。

いずれにせよ、ご対応ありがとうございました。

よかったです!!!

ご確認結果から、ドライバのバージョン不一致が原因のように見えますね。

可能であれば、IRISのバージョンとJDBCドライバのバージョンを合わせていただくことを推奨しておりますので、今後も接続できないエラーが出た場合にお試しいただければと思います。

いろいろお試しいただきありがとうございました!