«Превышен системный ресурс» при подключении к файлу доступа через Java jdbc odbc - PullRequest
11 голосов
/ 11 января 2012

Я прочитал все сообщения "Превышен системный ресурс", но это не похоже на них.Я провел последние 3 часа в поисках решения.У меня не так много соединений / заявлений / наборов результатов, и я всегда закрываю их все.Мой код работал, но теперь я получаю исключение «Превышен системный ресурс», но не во время запросов, а КОГДА Я ПЫТАЮСЬ ПОДКЛЮЧИТЬ .Я ничего не изменил из своего кода, однако в данный момент он не работает, за исключением того, что я пробую 1 из 10 раз.Я пытался изменить некоторые вещи, но без разницы.Файлы моего доступа имеют размер 15 - 50 МБ.Мой код:

private String accessFilePath;
private Connection myConnection;
public boolean connectToAccess(String myAccessFilePath) {
    accessFilePath = myAccessFilePath;
    //Get connection to database
    try {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        // set properties for unicode
        Properties myProperties = new Properties();
        myProperties.put("charSet", "windows-1253");
        myConnection = DriverManager.getConnection("jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=" + accessFilePath, myProperties); // I get the exception here
    } catch (Exception ex) {
        System.out.println("Failed to connect to " + accessFilePath + " database\n" + ex.getMessage());
        return false;
    }
    return true;
}

Чем сейчас отличается от других времен?Сохраняют ли файлы Access открытые предыдущие подключения?Что тут может быть не так?

1 Ответ

6 голосов
/ 13 января 2012

ОК, я нашел решение. Сначала я запустил новый проект Java и скопировал туда те же самые строки кода. Я успешно подключился к своим файлам каждый раз, когда я пробовал это в моем новом проекте. Так меня это поразило. Я посмотрел на настройки моей виртуальной машины. В моей исходной программе я назначил слишком много памяти виртуальной машине , чтобы не было памяти даже для одного соединения с файлами.

Мои настройки были -> Параметры виртуальной машины: -Xmx1536m -Xms768m (немного чрезмерно)

Я изменил его на -> Параметры виртуальной машины: -Xmx512m -Xms256m

И это сработало. Спасибо за ваши Коментарии. Я надеюсь, что это помогает другим людям, потому что я трачу много часов, чтобы найти его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...