내가로 MySQL에서 스키마에 의해 멀티 테넌시를 사용하고 배출, 연결 풀에서 연결이
class SchemaPerTenantConnectionProvider : MultiTenantConnectionProvider {
@Autowired
private lateinit var dataSource: DataSource
@Throws(SQLException::class)
override fun getAnyConnection() = this.dataSource.connection
@Throws(SQLException::class)
override fun releaseAnyConnection(connection: Connection) {
connection.close()
}
@Throws(SQLException::class)
override fun getConnection(tenantIdentifier: String): Connection {
val connection = this.anyConnection
try {
connection.createStatement().execute("USE $tenantIdentifier ")
} catch (e: SQLException) {
throw SQLException("Could not alter JDBC connection to schema [$tenantIdentifier]")
}
return connection
}
...
}
내 연결 풀 크기가, 지금은 유효하지 않은 tenantIdentifier
10 번 전달되는 경우, 10 10 응용 프로그램이 연결을 얻을 수 없으면 연결이 고갈됩니다.
시도한 던지는 Exception, HibernateException
시도했지만 도움이되지 않았습니다. default schema
과의 연결을 사용하면 잘못된 결과가 가져옵니다. 연결 제한을 고갈하지 않기 위해이 시나리오를 getConnection()
에 처리 할 수있는 방법이 있습니까?
난 당신이 또한 무시 희망'''공공 무효 releaseConnection (문자열 tenantIdentifier, 연결 연결)'''여기 당신의 대답에 대한 – Barath