前提
DBクライアントとDBサーバー間のSSL/TLS通信においては、クライアント、サーバー双方の使用可能なSSL/TLSのバージョンのうち、最もセキュアな(新しい)ものが使われます。
Db2の場合、クライアントの種別は様々ありますが、非Java(ODBC,CLI,組み込みSQL,.NET等)とJava(JDBC)クライアントとで、構成方法やデフォルトで利用されるSSL/TLSバージョンが違うようでした。
この記事では、Java(JDBC)からDb2へのSSL/TLS接続について確認したメモを残します。
Db2 for LUW におけるSSL/TLS対応バージョンの変遷
Db2 11.5以降のSSL/TLS関連の変更点として、マニュアルで確認できる情報は以下の通り。
Db2 Version (Modレベル) |
変更内容 |
---|---|
V11.5 GA |
|
V11.5.8 |
|
V11.5.9 |
|
V12.1.0(GA) |
|
Db2 バージョン11.5 GA時点のマニュアル記述はオンラインマニュアルでは確認できないため、2020年時点のPDF版英語マニュアルより引用しています。引用の通り、V11.5 GA時点のDb2サーバーでは、デフォルトでTLS 1.0, 1.1のみ利用可能でした。(明示指定すればTLS v1.2も利用可能)
しかしDb2 12.1ではTLS 1.0, 1.1サポートが廃止されたことから、SSLバージョン無指定の古いクライアント(TLS 1.0,1.1限定利用)からDb2 V12.1へ接続しようとすると、エラーとなります。
Db2へのSSL/TLS接続時のJDBCプロパティ(最低限)
JDBCクライアントからのSSL/TLS接続構成として、色々なJDBCプロパティが提供されますが、必要最低限のプロパティとしては以下のものがあげられます。
プロパティ名 | 必須 | デフォルト値 | 補足 |
---|---|---|---|
sslConnection | 〇 | false |
|
sslTrustStoreLocation | 〇 | ー |
|
sslTrustStorePassword | 〇 | ー |
|
sslVersion | ー | Null → JREに依存(後述) |
|
参考:Db2マニュアル:サポートされるすべてのデータベース製品に共通の IBM Data Server Driver for JDBC and SQLJ プロパティー
このうち、sslVersionについてはデフォルト値がはっきりわからないため、一度追いかけておこうと思いました。
Db2 JDBCクライアントでサポートされるSSL/TLSバージョン
Db2クライアントがJava/JDBCアプリの場合、マニュアルによるとクライアント側の利用するSSL/TLSバージョンは以下の順に決まります。
- JDBCプロパティ sslVersion が明示的に設定されていれば、その値が採用される
- sslVersionが指定されていない場合、利用するJREのデフォルトSSL/TLSバージョンが採用される
sslVersion
sslVersion のデフォルト値は null (設定しない) です。
Connection または DataSource オブジェクトで sslVersion が定義されていない場合は、Java ランタイム環境のデフォルトの TLS レベルまたは SSL バージョンが SSL 接続に適用されます。
では、利用するJRE(Java実行環境、Javaランタイム)のデフォルトSSL/TLSレベルはどうやって確認したらよいか?
JREのドキュメントを読みます。
JREのサポートするSSL/TLSバージョンを確認する
例えば、IBM Semeru RuntimesがサポートするSSL/TLSバージョンはどれか?
こちらに情報があります。
IBM Semeru Runtimes security migration guide
IBM SDK, Java Technology Edition, version 8 contains the IBM security implementation. However, version 11 of the IBM Semeru Runtime™ Open Edition and IBM Semeru Runtime™ Certified Edition contain the OpenJDK security implementation. Differences between these implementations might require code changes to your applications.
OpenJDK contains a Java cryptographic implementation that includes TLS v1.3 since JDK11.
Java8と11以降とで仕切りが違いそうです。
今回想定するのはJava21です。
Java11以降はOpenJDKのセキュリティ実装が包含されているようなので、OpenJDKのドキュメントを見ます。
8 Java Secure Socket Extension (JSSE)リファレンス・ガイド
JSSE APIでは、次のセキュリティ・プロトコルがサポートされています。
DTLS: バージョン1.0および1.2
TLS: バージョン1.0、1.1、1.2および1.3
SSL (Secure Socket Layer): バージョン3.0
JDK 11およびJDK 12のセキュリティ更新
JDK 11およびJDK 12では、次のセキュリティ・アップデートが行われました:
JDK 11リリースには、TLS (Transport Layer Security) 1.3仕様(RFC 8446)の実装が含められました。
(以下略)
Java21を使う前提であればTLS 1.0,1.1,1.2,1.3が利用可能で、TLS1.3サポート開始のタイミングはJava11ということでした。
検証:Db2 11.5.x JDBCクライアント - Db2 12.1 サーバー
Db2 12.1サーバーではデフォルトで、TLSv1.2,1.3が利用可能です。
V11.5.x Db2 JDBCクライアントからDb2 12.1サーバーに接続した結果は以下の通り。
- Java Runtime Environment: Java 21
- Db2 サーバーバージョン: V12.1.1
Db2 JDBCドライバ バージョン |
11.5.4 (4.27.25) |
11.5.5.1 (4.28.11) |
11.5.6 (4.29.24) |
11.5.7 (4.31.10) |
11.5.8 (4.32.28) |
11.5.9 (4.33.31) |
---|---|---|---|---|---|---|
sslVersion 指定なし |
x | x | x | x | 〇 | 〇 |
sslVersion= "TLSv1.2" |
〇 | 〇 | 〇 | 〇 | 〇 | 〇 |
sslVersion= "TLSv1.3" |
〇 | 〇 | 〇 | 〇 | 〇 | 〇 |
sslVersionを明示的に指定しておけば、どのMod(Fix)レベルのDb2 11.5のJDBCドライバーからもDb2 12.1へ接続可能でした。
JDBCプロパティとしてsslVersionを指定していない場合も、Java21上で動くJDBCアプリなのですから暗黙的にTLSv1.3またはTLSv1.2を利用してDb2 12.1と暗号化通信が確立されるではと期待しましたが、そのような結果とはなりませんでした。
補足:SSL/TLS通信時のLiberty server.xmlサンプル
<server description="liberty1">
<!-- Enable features -->
<featureManager>
<feature>webProfile-8.0</feature>
</featureManager>
<!-- To access this server from a remote client add a host attribute to the following element, e.g. host="*" -->
<httpEndpoint host="*" httpPort="19080" httpsPort="19443" id="defaultHttpEndpoint"/>
<!-- Automatically expand WAR files and EAR files -->
<applicationManager autoExpand="true"/>
<!-- DataSource Conig(Db2) -->
<library id="DB2JCC4Lib">
<fileset dir="${shared.resource.dir}/db2" includes="db2jcc4.jar"/>
</library>
<!-- Declare the runtime database -->
<dataSource id="Db2-DS1" jndiName="jdbc/sample">
<jdbcDriver libraryRef="DB2JCC4Lib"/>
<properties.db2.jcc
databaseName="nocon"
driverType="4"
serverName="db2.myssl-test.com"
portNumber="25123"
user="my1211"
password="xxxxxxxx"
sslConnection="true"
sslTrustStoreLocation="${shared.resource.dir}/db2/myTrustStore.jks"
sslTrustStorePassword="xxxxxxxx"/>
</dataSource>
<!-- Declare the application -->
<application id="JDBCSample" location="JDBCSampleEAR.ear" name="JDBCSample" type="ear"/>
</server>
補足:TLS1.2を明示しないJDBCクライアントからDb2 12.1への接続時エラーメッセージ
SSLバージョンを明示的に指定しなかった場合のエラーメッセージはこちら。
ERRORCODE=-4499、NoSuchAlgorithmException、SQLNonTransientException などのキーワードが出力されています。
ある暗号アルゴリズムが要求されたにもかかわらず、現在の環境では使用可能でない場合にスローされます。
※ 右方向スクロールしないとメッセージ本体が見えないかもしれません
[2025/04/30 18:38:25:224 JST] 00000058 com.ibm.ws.logging.internal.impl.IncidentImpl I FFDC1015I: FFDC 発生事象が作成されました: "com.ibm.ws.rsadapter.exceptions.DataStoreAdapterException: DSRA8100E: DataSource から PooledConnection を取得できません。 with SQL State : 08001 SQL Code : -4499 com.ibm.ejs.j2c.poolmanager.FreePool.createManagedConnectionWithMCWrapper 199" ロケーション: ffdc_25.04.30_18.38.25.0.log
[2025/04/30 18:38:25:230 JST] 00000058 com.ibm.ws.logging.internal.impl.IncidentImpl I FFDC1015I: FFDC 発生事象が作成されました: "javax.resource.spi.ResourceAllocationException: DSRA8100E: DataSource から PooledConnection を取得できません。 with SQL State : 08001 SQL Code : -4499 com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection 299" ロケーション: ffdc_25.04.30_18.38.25.1.log
[2025/04/30 18:38:25:231 JST] 00000058 SystemOut O *** SQLException !! ***
[2025/04/30 18:38:25:231 JST] 00000058 SystemOut O ++ ErrorCode: -4499
[2025/04/30 18:38:25:231 JST] 00000058 SystemOut O ++ SQLState : 08001
[2025/04/30 18:38:25:231 JST] 00000058 SystemOut O ++ Message : [jcc][t4][2043][11550][4.31.10] 例外 com.ibm.db2.jcc.am.SqlException: サーバー db2.myssl-test.com/10.44.51.139 へのソケットのオープンでエラーが発生しました。ポート: 25,123 メッセージ: [jcc][t4][20133][12451][4.31.10] SSL 接続中に NoSuchAlgorithmException をキャッチしました。 詳しくは、添付の Throwable を参照してください。 ERRORCODE=-4499, SQLSTATE=null ERRORCODE=-4499, SQLSTATE=08001 DSRA0010E: SQL 状態 = 08001、エラー・コード = -4,499
[2025/04/30 18:38:25:231 JST] 00000058 SystemOut O ++ String : java.sql.SQLNonTransientException: [jcc][t4][2043][11550][4.31.10] 例外 com.ibm.db2.jcc.am.SqlException: サーバー db2.myssl-test.com/10.44.51.139 へのソケットのオープンでエラーが発生しました。ポート: 25,123 メッセージ: [jcc][t4][20133][12451][4.31.10] SSL 接続中に NoSuchAlgorithmException をキャッチしました。 詳しくは、添付の Throwable を参照してください。 ERRORCODE=-4499, SQLSTATE=null ERRORCODE=-4499, SQLSTATE=08001 DSRA0010E: SQL 状態 = 08001、エラー・コード = -4,499
[2025/04/30 18:38:25:231 JST] 00000058 SystemErr R java.sql.SQLNonTransientException: [jcc][t4][2043][11550][4.31.10] 例外 com.ibm.db2.jcc.am.SqlException: サーバー db2.myssl-test.com/10.44.51.139 へのソケットのオープンでエラーが発生しました。ポート: 25,123 メッセージ: [jcc][t4][20133][12451][4.31.10] SSL 接続中に NoSuchAlgorithmException をキャッチしました。 詳しくは、添付の Throwable を参照してください。 ERRORCODE=-4499, SQLSTATE=null ERRORCODE=-4499, SQLSTATE=08001 DSRA0010E: SQL 状態 = 08001、エラー・コード = -4,499
[2025/04/30 18:38:25:231 JST] 00000058 SystemErr R at com.ibm.db2.jcc.am.b7.a(b7.java:338)
[2025/04/30 18:38:25:283 JST] 00000058 SystemErr R at com.ibm.db2.jcc.am.b7.a(b7.java:435)
[2025/04/30 18:38:25:283 JST] 00000058 SystemErr R at com.ibm.db2.jcc.t4.a0.a(a0.java:462)
[2025/04/30 18:38:25:283 JST] 00000058 SystemErr R at com.ibm.db2.jcc.t4.a0.<init>(a0.java:97)
[2025/04/30 18:38:25:283 JST] 00000058 SystemErr R at com.ibm.db2.jcc.t4.a.b(a.java:367)
[2025/04/30 18:38:25:283 JST] 00000058 SystemErr R at com.ibm.db2.jcc.t4.b.newAgent_(b.java:2251)
[2025/04/30 18:38:25:283 JST] 00000058 SystemErr R at com.ibm.db2.jcc.am.Connection.initConnection(Connection.java:855)
[2025/04/30 18:38:25:284 JST] 00000058 SystemErr R at com.ibm.db2.jcc.am.Connection.<init>(Connection.java:800)
[2025/04/30 18:38:25:284 JST] 00000058 SystemErr R at com.ibm.db2.jcc.t4.b.<init>(b.java:364)
[2025/04/30 18:38:25:284 JST] 00000058 SystemErr R at com.ibm.db2.jcc.DB2PooledConnection.<init>(DB2PooledConnection.java:83)
[2025/04/30 18:38:25:284 JST] 00000058 SystemErr R at com.ibm.db2.jcc.DB2ConnectionPoolDataSource.getPooledConnectionX(DB2ConnectionPoolDataSource.java:348)
[2025/04/30 18:38:25:284 JST] 00000058 SystemErr R at com.ibm.db2.jcc.DB2ConnectionPoolDataSource.getPooledConnection(DB2ConnectionPoolDataSource.java:131)
[2025/04/30 18:38:25:284 JST] 00000058 SystemErr R at com.ibm.ws.rsadapter.impl.DatabaseHelper$1.run(DatabaseHelper.java:1516)
[2025/04/30 18:38:25:284 JST] 00000058 SystemErr R at com.ibm.ws.rsadapter.impl.DatabaseHelper$1.run(DatabaseHelper.java:1502)
[2025/04/30 18:38:25:284 JST] 00000058 SystemErr R at java.base/java.security.AccessController.doPrivileged(AccessController.java:784)
[2025/04/30 18:38:25:284 JST] 00000058 SystemErr R at java.base/java.security.AccessController.doPrivilegedWithCombiner(AccessController.java:840)
[2025/04/30 18:38:25:284 JST] 00000058 SystemErr R at com.ibm.ws.rsadapter.impl.DatabaseHelper.getPooledConnection(DatabaseHelper.java:1502)
[2025/04/30 18:38:25:284 JST] 00000058 SystemErr R at com.ibm.ws.rsadapter.impl.DB2JCCHelper.getPooledConnection(DB2JCCHelper.java:705)
[2025/04/30 18:38:25:284 JST] 00000058 SystemErr R at com.ibm.ws.rsadapter.impl.WSManagedConnectionFactoryImpl.getConnection(WSManagedConnectionFactoryImpl.java:857)
[2025/04/30 18:38:25:284 JST] 00000058 SystemErr R at com.ibm.ws.rsadapter.impl.WSManagedConnectionFactoryImpl.createManagedConnection(WSManagedConnectionFactoryImpl.java:698)
[2025/04/30 18:38:25:284 JST] 00000058 SystemErr R at com.ibm.ejs.j2c.FreePool.createManagedConnectionWithMCWrapper(FreePool.java:1389)
[2025/04/30 18:38:25:284 JST] 00000058 SystemErr R at com.ibm.ejs.j2c.FreePool.createOrWaitForConnection(FreePool.java:1263)
[2025/04/30 18:38:25:285 JST] 00000058 SystemErr R at com.ibm.ejs.j2c.PoolManager.reserve(PoolManager.java:1471)
[2025/04/30 18:38:25:285 JST] 00000058 SystemErr R at com.ibm.ejs.j2c.ConnectionManager.allocateMCWrapper(ConnectionManager.java:576)
[2025/04/30 18:38:25:285 JST] 00000058 SystemErr R at com.ibm.ejs.j2c.ConnectionManager.allocateConnection(ConnectionManager.java:308)
[2025/04/30 18:38:25:285 JST] 00000058 SystemErr R at com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcDataSource.java:143)
[2025/04/30 18:38:25:285 JST] 00000058 SystemErr R at com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcDataSource.java:117)
[2025/04/30 18:38:25:285 JST] 00000058 SystemErr R at sample.test.JDBCAccessBean.setIsoTest(JDBCAccessBean.java:685)
[2025/04/30 18:38:25:285 JST] 00000058 SystemErr R at sample.test.SampleJDBCServlet.performTask(SampleJDBCServlet.java:58)
[2025/04/30 18:38:25:285 JST] 00000058 SystemErr R at sample.test.SampleJDBCServlet.doPost(SampleJDBCServlet.java:38)
[2025/04/30 18:38:25:285 JST] 00000058 SystemErr R at javax.servlet.http.HttpServlet.service(HttpServlet.java:706)
[2025/04/30 18:38:25:285 JST] 00000058 SystemErr R at javax.servlet.http.HttpServlet.service(HttpServlet.java:791)
[2025/04/30 18:38:25:285 JST] 00000058 SystemErr R at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1266)
[2025/04/30 18:38:25:285 JST] 00000058 SystemErr R at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:754)
[2025/04/30 18:38:25:285 JST] 00000058 SystemErr R at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:451)
[2025/04/30 18:38:25:285 JST] 00000058 SystemErr R at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:197)
[2025/04/30 18:38:25:285 JST] 00000058 SystemErr R at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:100)
[2025/04/30 18:38:25:285 JST] 00000058 SystemErr R at io.openliberty.http.monitor.ServletFilter.doFilter(ServletFilter.java:76)
[2025/04/30 18:38:25:285 JST] 00000058 SystemErr R at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:203)
[2025/04/30 18:38:25:286 JST] 00000058 SystemErr R at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:93)
[2025/04/30 18:38:25:286 JST] 00000058 SystemErr R at com.ibm.ws.security.jaspi.JaspiServletFilter.doFilter(JaspiServletFilter.java:58)
[2025/04/30 18:38:25:286 JST] 00000058 SystemErr R at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:203)
[2025/04/30 18:38:25:286 JST] 00000058 SystemErr R at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:93)
[2025/04/30 18:38:25:286 JST] 00000058 SystemErr R at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:1069)
[2025/04/30 18:38:25:286 JST] 00000058 SystemErr R at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1260)
[2025/04/30 18:38:25:286 JST] 00000058 SystemErr R at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:5096)
[2025/04/30 18:38:25:286 JST] 00000058 SystemErr R at com.ibm.ws.webcontainer.osgi.DynamicVirtualHost$2.handleRequest(DynamicVirtualHost.java:328)
[2025/04/30 18:38:25:287 JST] 00000058 SystemErr R at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1047)
[2025/04/30 18:38:25:287 JST] 00000058 SystemErr R at com.ibm.ws.webcontainer.osgi.DynamicVirtualHost$2.run(DynamicVirtualHost.java:293)
[2025/04/30 18:38:25:287 JST] 00000058 SystemErr R at com.ibm.ws.http.dispatcher.internal.channel.HttpDispatcherLink$TaskWrapper.run(HttpDispatcherLink.java:1284)
[2025/04/30 18:38:25:287 JST] 00000058 SystemErr R at com.ibm.ws.http.dispatcher.internal.channel.HttpDispatcherLink.wrapHandlerAndExecute(HttpDispatcherLink.java:500)
[2025/04/30 18:38:25:287 JST] 00000058 SystemErr R at com.ibm.ws.http.dispatcher.internal.channel.HttpDispatcherLink.ready(HttpDispatcherLink.java:459)
[2025/04/30 18:38:25:287 JST] 00000058 SystemErr R at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:569)
[2025/04/30 18:38:25:287 JST] 00000058 SystemErr R at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.handleNewRequest(HttpInboundLink.java:503)
[2025/04/30 18:38:25:287 JST] 00000058 SystemErr R at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.processRequest(HttpInboundLink.java:363)
[2025/04/30 18:38:25:287 JST] 00000058 SystemErr R at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.ready(HttpInboundLink.java:330)
[2025/04/30 18:38:25:287 JST] 00000058 SystemErr R at com.ibm.ws.tcpchannel.internal.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:169)
[2025/04/30 18:38:25:287 JST] 00000058 SystemErr R at com.ibm.ws.tcpchannel.internal.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:77)
[2025/04/30 18:38:25:287 JST] 00000058 SystemErr R at com.ibm.ws.tcpchannel.internal.WorkQueueManager.requestComplete(WorkQueueManager.java:516)
[2025/04/30 18:38:25:287 JST] 00000058 SystemErr R at com.ibm.ws.tcpchannel.internal.WorkQueueManager.attemptIO(WorkQueueManager.java:586)
[2025/04/30 18:38:25:287 JST] 00000058 SystemErr R at com.ibm.ws.tcpchannel.internal.WorkQueueManager.workerRun(WorkQueueManager.java:970)
[2025/04/30 18:38:25:287 JST] 00000058 SystemErr R at com.ibm.ws.tcpchannel.internal.WorkQueueManager$Worker.run(WorkQueueManager.java:1059)
[2025/04/30 18:38:25:287 JST] 00000058 SystemErr R at com.ibm.ws.threading.internal.ExecutorServiceImpl$RunnableWrapper.run(ExecutorServiceImpl.java:298)
[2025/04/30 18:38:25:288 JST] 00000058 SystemErr R at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
[2025/04/30 18:38:25:288 JST] 00000058 SystemErr R at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
[2025/04/30 18:38:25:288 JST] 00000058 SystemErr R at java.base/java.lang.Thread.run(Thread.java:1595)
[2025/04/30 18:38:25:288 JST] 00000058 SystemErr R Caused by:
[2025/04/30 18:38:25:288 JST] 00000058 SystemErr R com.ibm.db2.jcc.am.SqlException: [jcc][t4][20133][12451][4.31.10] SSL 接続中に NoSuchAlgorithmException をキャッチしました。 詳しくは、添付の Throwable を参照してください。 ERRORCODE=-4499, SQLSTATE=null
[2025/04/30 18:38:25:288 JST] 00000058 SystemErr R at com.ibm.db2.jcc.am.b7.a(b7.java:794)
[2025/04/30 18:38:25:288 JST] 00000058 SystemErr R at com.ibm.db2.jcc.am.b7.a(b7.java:66)
[2025/04/30 18:38:25:288 JST] 00000058 SystemErr R at com.ibm.db2.jcc.am.b7.a(b7.java:98)
[2025/04/30 18:38:25:288 JST] 00000058 SystemErr R at com.ibm.db2.jcc.t4.w.run(w.java:287)
[2025/04/30 18:38:25:288 JST] 00000058 SystemErr R at java.base/java.security.AccessController.doPrivileged(AccessController.java:748)
[2025/04/30 18:38:25:288 JST] 00000058 SystemErr R at com.ibm.db2.jcc.t4.a0.a(a0.java:435)
[2025/04/30 18:38:25:288 JST] 00000058 SystemErr R ... 63 more
[2025/04/30 18:38:25:288 JST] 00000058 SystemErr R Caused by:
[2025/04/30 18:38:25:288 JST] 00000058 SystemErr R java.security.NoSuchAlgorithmException: SSL_TLSv2 SSLContext not available
[2025/04/30 18:38:25:288 JST] 00000058 SystemErr R at java.base/sun.security.jca.GetInstance.getInstance(GetInstance.java:159)
[2025/04/30 18:38:25:288 JST] 00000058 SystemErr R at java.base/javax.net.ssl.SSLContext.getInstance(SSLContext.java:185)
[2025/04/30 18:38:25:289 JST] 00000058 SystemErr R at com.ibm.db2.jcc.t4.w.run(w.java:141)
[2025/04/30 18:38:25:289 JST] 00000058 SystemErr R ... 65 more
[2025/04/30 18:38:25:289 JST] 00000058 SystemOut O ***********************************