解决超时错误

解决与数据库建立连接时发生的超时错误。

故障现象

Cloud Pak for Data上浏览 Db2 Data Management Console 时,可能会显示以下错误消息:
Timeout getting a transport object from pool.
      ERRORCODE=-4210, SQLSTATE=57033

原因

在 JCC 客户机端使用 securityMechanism=9 属性来连接到使用 SRVCON_AUTH = SERVER_ENCRYPT 配置的数据库时,建立连接的过程需要比通常时间更长的时间。 有时,在您重新启动数据库服务器后首次尝试连接时可能需要数十秒时间。 如果建立与数据库的连接所花费的时间超过了 connectionTimeout 限制,那么可能会导致 -4210 错误。

解决问题

loginTimeout 的缺省值为 30 秒, connectionTImeout 为 0。 可以定制 loginTimeoutconnectionTImeout 值。 如果 connectionTImeout 设置为正值,那么该值将覆盖在连接上设置的任何其他超时值,例如 loginTimeout。 因此,要解决此问题,请执行以下步骤以将 connectionTImeout 设置为正值。

  1. 获取实例标识:
    oc get dmc -n ${PROJECT_CPD_INST_OPERANDS}
  2. 编辑 configmap ${DB2INSTANCDID}
    oc edit cm ${DB2INSTANCDID}
  3. 50001/BLUDB之后添加 :connectionTImeout=40 。 下面提供了 configmap 的概要文件示例。
    profile: '{"DB_IDENTITY_HASH":"-88665374","URL":"jdbc:db2://c-db2oltp-1635255394239239-db2u-engn-svc:50001/BLUDB:connectionTimeout=40","_PROFILE_INIT_":"true","collectionCred":{"isCollectionCred":"true","password":"changeit","refreshToken":"","securityMechanism":"9","user":"db2inst1"},"dataServerExternalType":"DASHDBTX","dataServerType":"DB2LUW","databaseName":"BLUDB","databaseVersion":"11.5.0","databaseVersion_VRMF":"11.5.6.0","dbUUID":"a3046c10-9ce1-4d1a-9fcd-7a82b16049cc","host":"c-db2oltp-1635255394239239-db2u-engn-svc","isInstPartitionable":"false","lastUpdatedTimeStamp":"1635256696467","name":"db2oltp-1635255394239239","namespace":"","plan":"smp","port":"50001","sslCertLocation":"/opt/ibm-datasrvrmgr/Config/cpd-internal-tls/ca.crt","sslConnection":"true","timeZone":"0","timeZoneDiff":"0"}'
      profileName: db2oltp-1635255394239239
        
  4. 将更改保存到 configmap

如果问题仍然存在,请调整 connectionTimeout的值。