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」の箇所は実際にはそれぞれ別の文言が記載されています。
※再インストール前は上記接続情報で問題なく接続できています。
Comments
@m.fuku さん、お試しいただきありがとうございます。
念のための確認なのですが、記載いただいた context.xml の url に記載の IRIS のポート番号(1972)ですが、管理ポータル の概要ページにある「スーパーサーバ・ポート」の番号と同じ番号が設定されていますでしょうか。
概要ページへは、管理ポータル画面右上の「概要」のリンクから移動できます。.png)
その後、以下の画面が表示されます。
.png)
返信ありがとうございます。
> 記載いただいた context.xml の url に記載の IRIS のポート番号(1972)ですが、管理ポータル の概要ページにある「スーパーサーバ・ポート」の番号と同じ番号が設定されていますでしょうか。
はい。同じポート番号(1972)でした。

前回アップデート前もあわせて
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_…
上記フォルダ構成から
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ドライバのバージョンを合わせていただくことを推奨しておりますので、今後も接続できないエラーが出た場合にお試しいただければと思います。
いろいろお試しいただきありがとうございました!