В моем приложении есть реализация logback, использующая эту довольно простую конфигурацию XML:
#logback-mw.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
<appender name="DB"
class="com.sample.osgi.core.MyDBAppender">
<connectionSource
class="ch.qos.logback.core.db.DriverManagerConnectionSource">
<driverClass>com.microsoft.sqlserver.jdbc.SQLServerDriver
</driverClass>
<url>jdbc:sqlserver://mydbname:1401;databaseName=MWLOG;</url>
<user>Andrea</user>
<password>1234</password>
<sqlDialect class="ch.qos.logback.core.db.dialect.MsSQLDialect" />
</connectionSource>
<insertHeaders>true</insertHeaders>
</appender>
<root level="DEBUG">
<appender-ref ref="DB" />
</root>
</configuration>
Как видите, я работаю с экземпляром базы данных MS SQL Server (версия 2017).
это мой код, где я инициализирую регистратор:
private void initMWLogger() {
// Set up mwLogger using logback-mw.xml.
try {
JoranConfigurator jc = new JoranConfigurator();
LoggerContext loggerCtx = new LoggerContext();
jc.setContext(loggerCtx);
loggerCtx.reset();
InputStream configStream = MiddlewareConnectorService.class.getResourceAsStream(Constants.LOGGER_XML);
//EXECUTION ON BELOW LINE IS HANGING FOR 10 MINUTES!!!!
jc.doConfigure(configStream);
mwLogger = loggerCtx.getLogger(MiddlewareConnectorService.class);
} catch (JoranException e) {
mwLogger = null;
}
}
В некоторых средах данные днс для соединения с базой данных недоступны, поэтому бывает так, что при запуске мое приложение зависает на 10 минут.
Можно ли настроить таймаут на это? Я не хочу, чтобы мое приложение зависало для этого ... в худшем случае я хочу, чтобы только ведение журнала базы данных. выключен. Для записей, которые я уже пробовал с параметрами запроса * timeout, упомянутыми в , эта документация MS SQL Server .
Кроме того, кто-то может подсказать, откуда исходит этот тайм-аут по умолчанию в 10 минут? или как это устранить?