2011-02-08 30 views
5

Chúng tôi có một ứng dụng Java trên máy tính để bàn truy cập cơ sở dữ liệu Derby nằm trên một ổ đĩa được chia sẻ trên mạng chứ không phải cục bộ.Những cạm bẫy của kết nối được nhúng vào Derby qua mạng là gì?

Trong khi nhiều phiên bản của ứng dụng chia sẻ cơ sở dữ liệu, chỉ một cá thể có kết nối trực tiếp.

Điều này đã hoạt động khá tốt trong hơn hai năm nay nhưng đôi khi chúng tôi gặp sự cố tham nhũng cơ sở dữ liệu mà chúng tôi không thể xác định là kết quả của lỗi phần mềm hoặc do mạng giữa ứng dụng và cơ sở dữ liệu từ xa.

Chúng tôi nhận thấy tài liệu Derby cho rằng cơ sở dữ liệu nhúng chỉ được sử dụng cho sự kiên trì cục bộ, nhưng ai cũng có thể gợi ý một số cạm bẫy cụ thể mà chúng ta có thể gặp phải thông qua cấu hình này?

Cảm ơn trước!

Jim

+4

có vẻ như bạn đã gặp phải một sự cố lớn - tham nhũng cơ sở dữ liệu. –

Trả lời

2

Cụ thể liên quan đến tham nhũng cơ sở dữ liệu, tôi tin rằng có ít nhất hai vấn đề cơ bản khi có cơ sở dữ liệu trên lưu trữ chia sẻ mạng: (1) khi Derby cố gắng phân bổ không gian bằng cách phát triển tệp, hệ thống tệp có thể báo cáo phân bổ thành công mặc dù trên thực tế đĩa đã đầy; (2) khi Derby đang cố gắng đảm bảo rằng một đĩa ghi trên thực tế được ghi đầy đủ vào đĩa, hệ thống tệp có thể báo cáo dữ liệu được ghi vào đĩa mặc dù trên thực tế nó vẫn chỉ được ghi vào bộ nhớ.

Một trong những vấn đề trên, nếu chúng xảy ra vào đúng thời điểm, có thể gây hỏng cơ sở dữ liệu.

+0

(2) <- điều này. hầu hết các hệ thống tập tin mạng giả mạo các cuộc gọi fsync. và hầu hết các cơ sở dữ liệu dựa trên tệp yêu cầu fsync để đảm bảo tính toàn vẹn của dữ liệu. – jtahlborn

1

Chúng tôi nhận thấy tình trạng tài liệu Derby rằng cơ sở dữ liệu nhúng nên được sử dụng cho chỉ kiên trì địa phương, nhưng ai cũng có thể đề xuất một số cạm bẫy cụ thể chúng ta có thể mong đợi để gặp qua cấu hình này?

Tôi muốn nói rằng bạn nên chú ý đến những gì tài liệu nói. Những người phát triển Derby không có khả năng đưa ra lời khuyên giới hạn khả năng ứng dụng của Derby mà không có lý do chính đáng.

(Và tôi có thể hiểu tại sao nhiều trường hợp ứng dụng chia sẻ một Derby Derby được nhúng sẽ là vấn đề. Derby cho rằng nó không cần phải lo lắng về nhiều trường hợp đọc và cập nhật, và không thể xóa dữ liệu theo thứ tự cần thiết cho phép điều này để làm việc một cách an toàn. Như vậy xả nước không nên cần thiết ... trừ khi bạn đang sử dụng Derby theo cách mà bạn không được phép.)

Bên cạnh đó, tại sao bạn không sử dụng phương pháp Network Server phiên bản của Derby?

+0

@Marcos Vandel - có vẻ như các yêu cầu kinh doanh đã thay đổi ... nếu mọi người đang cố gắng chia sẻ cơ sở dữ liệu nhúng. Bạn cần phải nói với họ để "ngừng làm điều đó", hoặc bạn cần phải chuyển đổi sản phẩm của bạn để sử dụng phiên bản máy khách/máy chủ của Derby. –

+0

Không có gì "kỹ thuật" ngăn chúng tôi sử dụng phiên bản máy khách/máy chủ của Derby. Cấu hình hiện tại của chúng tôi đã được thực hiện để đáp ứng các yêu cầu kinh doanh cho ngành công nghiệp của chúng tôi mục tiêu phần mềm của chúng tôi và môi trường nó hoạt động. –

+0

Stephen, có lẽ bạn nên đọc bài viết gốc một chút cẩn thận hơn. Tôi không hỏi liệu mọi người có nghĩ rằng cấu hình này là "ý tưởng hay" hay không mà là những vấn đề ** cụ thể ** mà chúng ta có thể mong đợi bằng cách sử dụng Derby trong thời trang này. Và không, yêu cầu kinh doanh chắc chắn nhất đã không thay đổi. –

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