StanislavIsaev opened a new issue, #35693:
URL: https://github.com/apache/shardingsphere/issues/35693
## Bug Report
ShardingSphere-Proxy is used as a gateway for a multitenant system. It has
more than 100 tenants, so 100+ databases. It's a standard/expected situation
when the Client DB is unreachable at some point in time. But with the current
behavior, any autoscaling is not possible - a new Node can't start.
### Which version of ShardingSphere did you use?
5.5.2
### Which project did you use? ShardingSphere-JDBC or ShardingSphere-Proxy?
ShardingSphere-Proxy
### Expected behavior
ShardingSphere-Proxy starts successfully even when no access to the storage
units' databases
### Actual behavior
ShardingSphere-Proxy fails to start when no access to the Storage Unit DB
(was unable to connect).
### Reason analysis
When ShardingSphere-Proxy starts, it tries to determine
ShardingSphereDatabase protocol version. It uses DatabaseServerInfo class:
```
public DatabaseServerInfo(final DataSource dataSource) {
try (Connection connection = dataSource.getConnection()) {
DatabaseMetaData databaseMetaData = connection.getMetaData();
databaseType = databaseMetaData.getDatabaseProductName();
databaseVersion = databaseMetaData.getDatabaseProductVersion();
} catch (final SQLException ex) {
throw new DatabaseServerLoadingException(ex);
}
}
```
But if it can't obtain a connection to the storage unit datasource, it fails
to start.
### Steps to reproduce the behavior
1. Set frontent to posgresql in global.yaml
`proxy-frontend-database-protocol-type: PostgreSQL`
2. Add some dummy datasource with postgres db storage unit
3. Start ShardingSphere-Proxy
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail:
[email protected]
For queries about this service, please contact Infrastructure at:
[email protected]