Тайм-аут пользовательского входа в БД - PullRequest
0 голосов
/ 29 августа 2018

В моем приложении есть реализация 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 минут? или как это устранить?

...