Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法在带有SqlServer的PCF中使用Spring云连接器设置connectionProperties_Java_Sql Server_Spring Boot_Cloud Foundry_Spring Cloud Connectors - Fatal编程技术网

Java 无法在带有SqlServer的PCF中使用Spring云连接器设置connectionProperties

Java 无法在带有SqlServer的PCF中使用Spring云连接器设置connectionProperties,java,sql-server,spring-boot,cloud-foundry,spring-cloud-connectors,Java,Sql Server,Spring Boot,Cloud Foundry,Spring Cloud Connectors,我正在项目中设置已部署到PCF的数据源,并且sqlserver存在性能问题,因此我想添加属性:sendStringParametersAsUnicode=false来解决此问题,就像本地jdbcUrl设置:url:jdbc:sqlserver://localhost:1433;databaseName=localdatasource;sendStringParametersAsUnicode=false 但是我尝试了下面两个代码,似乎connectionConfig不起作用 代码1参考 代码2:

我正在项目中设置已部署到PCF的数据源,并且sqlserver存在性能问题,因此我想添加属性:sendStringParametersAsUnicode=false来解决此问题,就像本地jdbcUrl设置:
url:jdbc:sqlserver://localhost:1433;databaseName=localdatasource;sendStringParametersAsUnicode=false

但是我尝试了下面两个代码,似乎connectionConfig不起作用

代码1参考

代码2:遵循此处的建议:

@Primary
公共数据源数据源(){
PooledServiceConnectorConfig.PoolConfig PoolConfig=新的PooledServiceConnectorConfig.PoolConfig(dataSourceMinPoolSize、dataSourceMaxPoolSize、dataSourceMaxWaitTime);
Map connProperties=newhashmap();
put(“connectionProperties”,“sendStringParametersAsUnicode=false”);
DataSourceConfig dbConfig=新的DataSourceConfig(poolConfig,null,null,connProperties);
log.info(“===============================init dataSource connProperties{}”,dbConfig);
返回connectionFactory().dataSource(azureDatabase,dbConfig);
}
日志如下所示:

2020-05-26T20:13:48.724+08:00 [APP/PROC/WEB/0] [OUT] DEBUG . [26-05-2020 20:13:48.724+0800] [main] [springAppName_IS_UNDEFINED,,,] [c.z.h.HikariConfig] HikariPool-1 - configuration:
2020-05-26T20:13:48.727+08:00 [APP/PROC/WEB/0] [OUT] DEBUG . [26-05-2020 20:13:48.727+0800] [main] [springAppName_IS_UNDEFINED,,,] [c.z.h.HikariConfig] connectionTestQuery............."SELECT 1"
2020-05-26T20:13:48.727+08:00 [APP/PROC/WEB/0] [OUT] DEBUG . [26-05-2020 20:13:48.727+0800] [main] [springAppName_IS_UNDEFINED,,,] [c.z.h.HikariConfig] connectionTimeout...............30000
2020-05-26T20:13:48.728+08:00 [APP/PROC/WEB/0] [OUT] DEBUG . [26-05-2020 20:13:48.728+0800] [main] [springAppName_IS_UNDEFINED,,,] [c.z.h.HikariConfig] driverClassName................."com.microsoft.sqlserver.jdbc.SQLServerDriver"
2020-05-26T20:13:48.729+08:00 [APP/PROC/WEB/0] [OUT] DEBUG . [26-05-2020 20:13:48.729+0800] [main] [springAppName_IS_UNDEFINED,,,] [c.z.h.HikariConfig] jdbc4ConnectionTest.............false
2020-05-26T20:13:48.729+08:00 [APP/PROC/WEB/0] [OUT] DEBUG . [26-05-2020 20:13:48.729+0800] [main] [springAppName_IS_UNDEFINED,,,] [c.z.h.HikariConfig] jdbcUrl.........................**jdbc:sqlserver://myIp:1433;database=devDb;user=u4a1780c36;password=<masked>;Encrypt=true;TrustServerCertificate=false;HostNameInCertificate=*.database.windows.net;loginTimeout=30;**
2020-05-26T20:13:48.729+08:00 [APP/PROC/WEB/0] [OUT] DEBUG . [26-05-2020 20:13:48.729+0800] [main] [springAppName_IS_UNDEFINED,,,] [c.z.h.HikariConfig] leakDetectionThreshold..........0
2020-05-26T20:13:48.730+08:00 [APP/PROC/WEB/0] [OUT] DEBUG . [26-05-2020 20:13:48.729+0800] [main] [springAppName_IS_UNDEFINED,,,] [c.z.h.HikariConfig] maxLifetime.....................1800000
2020-05-26T20:13:48.730+08:00 [APP/PROC/WEB/0] [OUT] DEBUG . [26-05-2020 20:13:48.730+0800] [main] [springAppName_IS_UNDEFINED,,,] [c.z.h.HikariConfig] maximumPoolSize.................100
2020-05-26T20:13:48.730+08:00 [APP/PROC/WEB/0] [OUT] DEBUG . [26-05-2020 20:13:48.730+0800] [main] [springAppName_IS_UNDEFINED,,,] [c.z.h.HikariConfig] metricRegistry..................none
2020-05-26T20:13:48.730+08:00 [APP/PROC/WEB/0] [OUT] DEBUG . [26-05-2020 20:13:48.730+0800] [main] [springAppName_IS_UNDEFINED,,,] [c.z.h.HikariConfig] metricsTrackerFactory...........com.zaxxer.hikari.metrics.micrometer.MicrometerMetricsTrackerFactory@75add13c
2020-05-26T20:13:48.730+08:00 [APP/PROC/WEB/0] [OUT] DEBUG . [26-05-2020 20:13:48.730+0800] [main] [springAppName_IS_UNDEFINED,,,] [c.z.h.HikariConfig] minimumIdle.....................20
2020-05-26T20:13:48.730+08:00 [APP/PROC/WEB/0] [OUT] DEBUG . [26-05-2020 20:13:48.730+0800] [main] [springAppName_IS_UNDEFINED,,,] [c.z.h.HikariConfig] password........................<masked>
2020-05-26T20:13:48.730+08:00 [APP/PROC/WEB/0] [OUT] DEBUG . [26-05-2020 20:13:48.730+0800] [main] [springAppName_IS_UNDEFINED,,,] [c.z.h.HikariConfig] poolName........................"HikariPool-1"
2020-05-26T20:13:48.724+08:00[APP/PROC/WEB/0][OUT]调试。[26-05-2020 20:13:48.724+0800][main][springAppName_未定义,,,][c.z.h.HikariConfig]hikaripol-1-配置:
2020-05-26T20:13:48.727+08:00[APP/PROC/WEB/0][OUT]调试。[26-05-2020 20:13:48.727+0800][main][springAppName_未定义,,,][c.z.h.HikariConfig]连接测试查询………“选择1”
2020-05-26T20:13:48.727+08:00[APP/PROC/WEB/0][OUT]调试。[26-05-2020 20:13:48.727+0800][main][springAppName_未定义,,,][c.z.h.HikariConfig]连接超时
2020-05-26T20:13:48.728+08:00[APP/PROC/WEB/0][OUT]调试。[26-05-2020 20:13:48.728+0800][main][springAppName_未定义,,,,][c.z.h.HikariConfig]driverClassName………..“com.microsoft.sqlserver.jdbc.SQLServerDriver”
2020-05-26T20:13:48.729+08:00[APP/PROC/WEB/0][OUT]调试。[26-05-2020 20:13:48.729+0800][main][springAppName_未定义,,,][c.z.h.HikariConfig]jdbc4连接测试…………错误
2020-05-26T20:13:48.729+08:00[APP/PROC/WEB/0][OUT]调试。[26-05-2020 20:13:48.729+0800][main][springAppName_未定义,,,][c.z.h.HikariConfig]jdbcUrlsqlserver://myIp:1433;数据库=devDb;用户=u4a1780c36;密码=;加密=真;TrustServerCertificate=false;HostNameInCertificate=*.database.windows.net;loginTimeout=30**
2020-05-26T20:13:48.729+08:00[APP/PROC/WEB/0][OUT]调试。[26-05-2020 20:13:48.729+0800][main][springAppName_未定义,,,][c.z.h.HikariConfig]泄漏检测阈值……….0
2020-05-26T20:13:48.730+08:00[APP/PROC/WEB/0][OUT]调试。[26-05-2020 20:13:48.729+0800][main][springAppName_未定义,,,][c.z.h.HikariConfig]最大寿命1800000
2020-05-26T20:13:48.730+08:00[APP/PROC/WEB/0][OUT]调试。[26-05-2020 20:13:48.730+0800][main][springAppName_未定义,,,][c.z.h.HikariConfig]maximumPoolSize.100
2020-05-26T20:13:48.730+08:00[APP/PROC/WEB/0][OUT]调试。[26-05-2020 20:13:48.730+0800][main][springAppName_未定义,,,][c.z.h.HikariConfig]metricRegistry……….无
2020-05-26T20:13:48.730+08:00[APP/PROC/WEB/0][OUT]调试。[26-05-2020 20:13:48.730+0800][main][springAppName_未定义,,,][c.z.h.HikariConfig]metricsTrackerFactory……….com.zaxxer.hikari.metrics.Millimer。MicrometerMetricsTrackerFactory@75add13c
2020-05-26T20:13:48.730+08:00[APP/PROC/WEB/0][OUT]调试。[26-05-2020 20:13:48.730+0800][main][springAppName_未定义,,,][c.z.h.HikariConfig]minimumIdle
2020-05-26T20:13:48.730+08:00[APP/PROC/WEB/0][OUT]调试。[26-05-2020 20:13:48.730+0800][main][springAppName_未定义,,,][c.z.h.HikariConfig]密码。。。。。。。。。。。。。。。。。。。。。。。。
2020-05-26T20:13:48.730+08:00[APP/PROC/WEB/0][OUT]调试。[26-05-2020 20:13:48.730+0800][main][springAppName_未定义,,,][c.z.h.HikariConfig]poolName.“HikariPool-1”
从日志中,我发现PoolConfig[MinimumMidle=20,maximumPoolSize=100]已更新,但ConnectionConfig被忽略,我不知道发生了什么,也不知道我的代码有什么问题。
谢谢。

您正在使用HikariCP连接池库,我认为您不可能使用HikariCP和Spring云连接器

    DataSourceConfig.ConnectionConfig connConfig = new DataSourceConfig.ConnectionConfig("sendStringParametersAsUnicode=false");
    DataSourceConfig dbConfig = new DataSourceConfig(poolConfig, connConfig);
使用此配置时,连接器将尝试在检测到的
数据源
实现上调用名为
setConnectionProperties
的setter方法
HikariDataSource
不像其他受支持的连接池库那样具有
setConnectionProperties
方法,因此此配置将无效。基于
Map
的配置选项也是如此,因为
HikariDataSource
不公开允许设置此类属性的任何其他方法

为了让它工作,你需要切换到另一个


请注意,Spring云连接器。请考虑切换到java CFENV。JavaCFENV在以下方面更加灵活(根据需要进行修改)或允许使用Spring引导属性覆盖连接细节

您从哪里获取连接URL?它是来自绑定服务吗?如果是这样的话,它是由代理创建的,还是由用户提供的服务?还是来自其他地方?如果可能,最简单的选择就是编辑JDBCURL并附加选项。这些应该通过。连接URL是从PCF上的绑定服务获取的,因此我无法直接编辑jdbc URL。@Angle.Bracket您能帮忙吗?我看到一个
2020-05-26T20:13:48.724+08:00 [APP/PROC/WEB/0] [OUT] DEBUG . [26-05-2020 20:13:48.724+0800] [main] [springAppName_IS_UNDEFINED,,,] [c.z.h.HikariConfig] HikariPool-1 - configuration:
2020-05-26T20:13:48.727+08:00 [APP/PROC/WEB/0] [OUT] DEBUG . [26-05-2020 20:13:48.727+0800] [main] [springAppName_IS_UNDEFINED,,,] [c.z.h.HikariConfig] connectionTestQuery............."SELECT 1"
2020-05-26T20:13:48.727+08:00 [APP/PROC/WEB/0] [OUT] DEBUG . [26-05-2020 20:13:48.727+0800] [main] [springAppName_IS_UNDEFINED,,,] [c.z.h.HikariConfig] connectionTimeout...............30000
2020-05-26T20:13:48.728+08:00 [APP/PROC/WEB/0] [OUT] DEBUG . [26-05-2020 20:13:48.728+0800] [main] [springAppName_IS_UNDEFINED,,,] [c.z.h.HikariConfig] driverClassName................."com.microsoft.sqlserver.jdbc.SQLServerDriver"
2020-05-26T20:13:48.729+08:00 [APP/PROC/WEB/0] [OUT] DEBUG . [26-05-2020 20:13:48.729+0800] [main] [springAppName_IS_UNDEFINED,,,] [c.z.h.HikariConfig] jdbc4ConnectionTest.............false
2020-05-26T20:13:48.729+08:00 [APP/PROC/WEB/0] [OUT] DEBUG . [26-05-2020 20:13:48.729+0800] [main] [springAppName_IS_UNDEFINED,,,] [c.z.h.HikariConfig] jdbcUrl.........................**jdbc:sqlserver://myIp:1433;database=devDb;user=u4a1780c36;password=<masked>;Encrypt=true;TrustServerCertificate=false;HostNameInCertificate=*.database.windows.net;loginTimeout=30;**
2020-05-26T20:13:48.729+08:00 [APP/PROC/WEB/0] [OUT] DEBUG . [26-05-2020 20:13:48.729+0800] [main] [springAppName_IS_UNDEFINED,,,] [c.z.h.HikariConfig] leakDetectionThreshold..........0
2020-05-26T20:13:48.730+08:00 [APP/PROC/WEB/0] [OUT] DEBUG . [26-05-2020 20:13:48.729+0800] [main] [springAppName_IS_UNDEFINED,,,] [c.z.h.HikariConfig] maxLifetime.....................1800000
2020-05-26T20:13:48.730+08:00 [APP/PROC/WEB/0] [OUT] DEBUG . [26-05-2020 20:13:48.730+0800] [main] [springAppName_IS_UNDEFINED,,,] [c.z.h.HikariConfig] maximumPoolSize.................100
2020-05-26T20:13:48.730+08:00 [APP/PROC/WEB/0] [OUT] DEBUG . [26-05-2020 20:13:48.730+0800] [main] [springAppName_IS_UNDEFINED,,,] [c.z.h.HikariConfig] metricRegistry..................none
2020-05-26T20:13:48.730+08:00 [APP/PROC/WEB/0] [OUT] DEBUG . [26-05-2020 20:13:48.730+0800] [main] [springAppName_IS_UNDEFINED,,,] [c.z.h.HikariConfig] metricsTrackerFactory...........com.zaxxer.hikari.metrics.micrometer.MicrometerMetricsTrackerFactory@75add13c
2020-05-26T20:13:48.730+08:00 [APP/PROC/WEB/0] [OUT] DEBUG . [26-05-2020 20:13:48.730+0800] [main] [springAppName_IS_UNDEFINED,,,] [c.z.h.HikariConfig] minimumIdle.....................20
2020-05-26T20:13:48.730+08:00 [APP/PROC/WEB/0] [OUT] DEBUG . [26-05-2020 20:13:48.730+0800] [main] [springAppName_IS_UNDEFINED,,,] [c.z.h.HikariConfig] password........................<masked>
2020-05-26T20:13:48.730+08:00 [APP/PROC/WEB/0] [OUT] DEBUG . [26-05-2020 20:13:48.730+0800] [main] [springAppName_IS_UNDEFINED,,,] [c.z.h.HikariConfig] poolName........................"HikariPool-1"
    DataSourceConfig.ConnectionConfig connConfig = new DataSourceConfig.ConnectionConfig("sendStringParametersAsUnicode=false");
    DataSourceConfig dbConfig = new DataSourceConfig(poolConfig, connConfig);