Сценарий использования: тестирование соединения RDBMS с использованием Java JDBC.
Сценарий: На сервере 'A
' открыто 2 порта, скажем,
3306
для MySQL DB
27017
для Mongo DB
.
Для проверки соединения, когда детали MySQLесли задано правильно, за исключением порта как '27017
', соединение не происходит, и оно собирается бесконечный цикл вроде вещи.
Попробовал ниже варианты:
?useSSL=false&connectTimeout=3
DriverManager.setLoginTimeout(3);
public boolean validateRdbmsConnection(String driverClassName, String url,
String userName, String userPswrd) {
if (StringUtils.isNoneBlank(driverClassName, url, userName, userPswrd)) {
try {
Class.forName(driverClassName);
try (Connection conn = DriverManager.getConnection(url,
userName, userPswrd)) {
if (conn != null) {
DatabaseMetaData dm = conn.getMetaData();
System.out.printf("\nDatabase Metadata
information:\n\tDriver name: %s\n\tDriver version: %s\n\tProduct name:
%s\n\tProduct version: %s", dm.getDriverName(), dm.getDriverVersion(),
dm.getDatabaseProductName(), dm.getDatabaseProductVersion());
System.out.println("Inside ConnectionServiceImpl.validateRdbmsConnection()... END");
return true;
}
}
} catch (ClassNotFoundException | SQLException ex) {
System.out.printf("Database Connection is NOT SUCCESSFUL. Exception occurred while trying to connect to the specified Database. Exception: %s", ex.getMessage());
}
}
return false;
}
Ожидается: исключение типа «Тайм-аут соединения» или «Нет базы данных».
Факт: попытка установить соединение, переход в бесконечный цикл.