2012-01-11 24 views
11

Tôi đã đọc tất cả các bài đăng "Tài nguyên hệ thống đã vượt quá", nhưng không có gì giống như chúng. Tôi đã dành 3 giờ cuối cùng để tìm kiếm giải pháp. Tôi không có nhiều kết nối/báo cáo/kết quả và tôi luôn đóng tất cả chúng. Mã của tôi được sử dụng để làm việc nhưng bây giờ tôi nhận được ngoại lệ "Tài nguyên hệ thống đã vượt quá", không phải trong quá trình truy vấn, nhưng KHI NÀO ĐỂ KẾT NỐI KẾT NỐI. Tôi không thay đổi gì từ mã của mình, tuy nhiên nó không hoạt động vào lúc này, ngoại trừ 1 trong 10 lần tôi thử nó. Tôi đã cố gắng thay đổi một số thứ trong đó nhưng không có sự khác biệt. Các tệp Truy cập của tôi là 15 - 50 MB. Mã của tôi là:"Tài nguyên hệ thống bị vượt quá" trong khi kết nối với tệp Truy cập thông qua Java jdbc odbc

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; 
} 

Điều gì khác với những lúc khác? Các tệp Truy cập có giữ các kết nối trước mở không? Điều gì có thể sai ở đây?

+1

Bạn đã thử khởi động lại Hệ điều hành chưa? Có thể là một số tài nguyên liên quan đến kết nối không bao giờ bị phân phối do, có lẽ, các chương trình bị gián đoạn của chương trình không bao giờ được quản lý để đóng kết nối của chúng. –

+0

Tôi đã thử khởi động lại rồi. Đó là suy nghĩ đầu tiên của tôi. Tôi tìm thấy nó rất lạ rằng sau khi khởi động lại mới, tôi nhận được ngoại lệ trong lần thử kết nối đầu tiên. Thật điên rồ ... Tôi cũng nhận được cùng một ngoại lệ cho các tệp Access khác nhau –

+1

Wow, thật kì quái. Điều tiếp theo cần thử: bạn có thể truy cập các tệp này từ C# hoặc VB bằng ADO không? –

Trả lời

6

OK, tôi đã tìm thấy giải pháp. Lúc đầu, tôi bắt đầu một dự án java mới và sao chép các dòng mã tương tự ở đó. Tôi đã kết nối thành công với tệp của mình mỗi khi tôi thử nó trong dự án mới của mình. Vì vậy, nó đánh tôi. Tôi đã xem cài đặt VM của mình. Trong chương trình ban đầu của tôi Tôi đã gán bộ nhớ quá nhiều vào máy ảo do đó không còn bộ nhớ nào cho một kết nối duy nhất cho các tệp.

Cài đặt của tôi là -> VM Options: -Xmx1536m -Xms768m (một chút quá mức)

tôi đã thay đổi nó để -> VM Options: -Xmx512m -Xms256m

Và nó làm việc. Cảm ơn bạn đã bình luận của bạn. Tôi hy vọng điều này sẽ giúp người khác, bởi vì tôi dành nhiều giờ để tìm thấy nó.

Các vấn đề liên quan