From 7972097cd192ef583520b3eede872b75dcbbc642 Mon Sep 17 00:00:00 2001 From: sunbufu Date: Wed, 17 Jul 2019 11:28:09 +0800 Subject: [PATCH] add readonly parameter for JDBC --- .../jdbc/datasource/JDBCRawBackendDataSourceFactory.java | 1 + .../shardingproxy/config/yaml/YamlDataSourceParameter.java | 2 ++ .../shardingsphere/shardingproxy/util/DataSourceConverter.java | 1 + 3 files changed, 4 insertions(+) diff --git a/sharding-proxy/sharding-proxy-backend/src/main/java/org/apache/shardingsphere/shardingproxy/backend/communication/jdbc/datasource/JDBCRawBackendDataSourceFactory.java b/sharding-proxy/sharding-proxy-backend/src/main/java/org/apache/shardingsphere/shardingproxy/backend/communication/jdbc/datasource/JDBCRawBackendDataSourceFactory.java index 17bac6f742e9b0..d00f390d11258d 100644 --- a/sharding-proxy/sharding-proxy-backend/src/main/java/org/apache/shardingsphere/shardingproxy/backend/communication/jdbc/datasource/JDBCRawBackendDataSourceFactory.java +++ b/sharding-proxy/sharding-proxy-backend/src/main/java/org/apache/shardingsphere/shardingproxy/backend/communication/jdbc/datasource/JDBCRawBackendDataSourceFactory.java @@ -61,6 +61,7 @@ public DataSource build(final String dataSourceName, final YamlDataSourceParamet config.setMaxLifetime(dataSourceParameter.getMaxLifetimeMilliseconds()); config.setMaximumPoolSize(dataSourceParameter.getMaxPoolSize()); config.setMinimumIdle(dataSourceParameter.getMinPoolSize()); + config.setReadOnly(dataSourceParameter.isReadonly()); config.addDataSourceProperty("useServerPrepStmts", Boolean.TRUE.toString()); config.addDataSourceProperty("cachePrepStmts", "true"); config.addDataSourceProperty("prepStmtCacheSize", 250); diff --git a/sharding-proxy/sharding-proxy-common/src/main/java/org/apache/shardingsphere/shardingproxy/config/yaml/YamlDataSourceParameter.java b/sharding-proxy/sharding-proxy-common/src/main/java/org/apache/shardingsphere/shardingproxy/config/yaml/YamlDataSourceParameter.java index 95ceca4ce393ce..b8f3d6fce40667 100644 --- a/sharding-proxy/sharding-proxy-common/src/main/java/org/apache/shardingsphere/shardingproxy/config/yaml/YamlDataSourceParameter.java +++ b/sharding-proxy/sharding-proxy-common/src/main/java/org/apache/shardingsphere/shardingproxy/config/yaml/YamlDataSourceParameter.java @@ -49,4 +49,6 @@ public final class YamlDataSourceParameter { private int minPoolSize = 1; private long maintenanceIntervalMilliseconds = 30 * 1000; + + private boolean readonly = false; } diff --git a/sharding-proxy/sharding-proxy-common/src/main/java/org/apache/shardingsphere/shardingproxy/util/DataSourceConverter.java b/sharding-proxy/sharding-proxy-common/src/main/java/org/apache/shardingsphere/shardingproxy/util/DataSourceConverter.java index 58fe8635efaee8..85c9646580722e 100644 --- a/sharding-proxy/sharding-proxy-common/src/main/java/org/apache/shardingsphere/shardingproxy/util/DataSourceConverter.java +++ b/sharding-proxy/sharding-proxy-common/src/main/java/org/apache/shardingsphere/shardingproxy/util/DataSourceConverter.java @@ -89,6 +89,7 @@ private static DataSourceConfiguration createDataSourceConfiguration(final YamlD result.getProperties().put("maxPoolSize", dataSourceParameter.getMaxPoolSize()); result.getProperties().put("minPoolSize", dataSourceParameter.getMinPoolSize()); result.getProperties().put("maintenanceIntervalMilliseconds", dataSourceParameter.getMaintenanceIntervalMilliseconds()); + result.getProperties().put("readonly", dataSourceParameter.isReadonly()); return result; } }