jdbc - 由于无法创建 PoolableConnectionFactory 错误,无法从 JMeter 连接到启用了 TLS 的 Informix DB
问题描述
我正在尝试使用 JMeter 5.4.1 连接到 Informix 数据库(仅支持启用 TLS 的连接)。
我收到错误消息:无法创建 PoolableConnectionFactory(与服务器的套接字连接(DB_NAME@HOST:PORT)失败。请检查您的服务器是否可以从主机上的此客户端访问:指定的端口。)
能够使用 Server Studio 连接到同一个数据库。只有当我从 Jmeter 连接时才会出现问题。
到目前为止做了以下 -
- 下载 JDBC 驱动并放在 %JMETER_HOME%/lib 文件夹下
- 定义的 JDBC 连接配置如下 - jdbc:informix-sqli://DB_HOST_IP:PORT/DB_NAME:INFORMIXSERVER=DB_SERVER_NAME;sslConnection=true
- 更新了 system.properties 文件中的 SSL 配置属性以启用 SSL
只是为了确认我能够从接受非 TLS 连接的 Jmeter 连接到另一个 Informix DB。但是,JMeter 无法连接基于 TLS 的 Informix DB。
如果您遇到类似的问题,请提供帮助。
谢谢你。
解决方案
参数可能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()
推荐阅读
- php - How do I get the serialized inventory item by the inventory id in NetSuite api with PHP?
- javascript - How can I create toggle action that only toggles once?
- ios - Reverse scrollview height controlled by stack view in storyboard
- node.js - 使用 s3 api 删除 gcp 存储桶对象
- python - 以子列表中的每个项目为键的列表列表
- azure-functions - Visual Studio 中的 Azure Functions - 记录文件的路径?
- python - AttributeError:模块“tensorflow.python.training.experimental.mixed_precision”没有属性“_register_wrapper_optimizer_cls”
- c# - 在 node.js 中解码signedcms
- flutter - 为弹出菜单按钮颤动添加边距
- html - 将图标与文本大小对齐