首页 > 解决方案 > 由于无法创建 PoolableConnectionFactory 错误,无法从 JMeter 连接到启用了 TLS 的 Informix DB

问题描述

我正在尝试使用 JMeter 5.4.1 连接到 Informix 数据库(仅支持启用 TLS 的连接)。

我收到错误消息:无法创建 PoolableConnectionFactory(与服务器的套接字连接(DB_NAME@HOST:PORT)失败。请检查您的服务器是否可以从主机上的此客户端访问:指定的端口。)

能够使用 Server Studio 连接到同一个数据库。只有当我从 Jmeter 连接时才会出现问题。

到目前为止做了以下 -

  1. 下载 JDBC 驱动并放在 %JMETER_HOME%/lib 文件夹下
  2. 定义的 JDBC 连接配置如下 - jdbc:informix-sqli://DB_HOST_IP:PORT/DB_NAME:INFORMIXSERVER=DB_SERVER_NAME;sslConnection=true
  3. 更新了 system.properties 文件中的 SSL 配置属性以启用 SSL

只是为了确认我能够从接受非 TLS 连接的 Jmeter 连接到另一个 Informix DB。但是,JMeter 无法连接基于 TLS 的 Informix DB。

如果您遇到类似的问题,请提供帮助。

谢谢你。

标签: jdbcjmeterinformix

解决方案


参数可能SSLCONNECTION是区分大小写的,根据使用 SSL 连接 JDBC 应用程序的文章,它应该类似于:

jdbc:informix-sqli:localhost:9089/mydatabase:SSLCONNECTION=true 

您还可以在 URL 中指定信任库位置和密码:

jdbc:informix-sqli:localhost:9089/mydatabase:SSLCONNECTION=true;SSL_TRUSTSTORE=/opt/ids/.keystore;SSL_TRUSTSTORE_PASSWORD=password

如果上述步骤不起作用,您应该仍然可以使用JSR223 测试元素Groovy 语言建立连接

示例代码:

System.setProperty('javax.net.ssl.trustStore', '/opt/ids/.keystore')
System.setProperty('javax.net.ssl.trustStorePassword', 'password')
def cds = new com.informix.jdbcx.IfxConnectionPoolDataSource()
cds.setIfxIFXHOST('localhost',)
cds.setServerName('informix_server')
cds.setPortNumber(9089)
cds.setIfxSSLCONNECTION('true')
cds.setUser('informix')
cds.setPassword('password')
cds.setDatabaseName('stores_demo')
    
conn = cds.getPooledConnection().getConnection()

推荐阅读