2010-07-31 28 views
5

Người quản lý thường có cần phải đóng cửa không? Bạn có thể chỉ giữ một lần mở và sử dụng lại nó mọi lúc, tức là chỉ cần lặp lại mẫu này:Giữ trình quản lý bền vững JDO còn sống thay vì đóng nó?

Transaction tx = pm.currentTransaction(); 
try { 
    tx.begin(); 
    // do stuff 
    tx.commit(); 
} finally { 
    if (tx.isActive()) tx.rollback(); 
} 

Nhược điểm của điều này là gì? Nó có vẻ có ý nghĩa như bạn sẽ không bao giờ cần phải 'detatch' đối tượng do người quản lý kiên trì bị đóng cửa?

Trả lời

4

Bạn có thể luôn mở nó nếu muốn. Vấn đề chính cần xem xét là khi bạn đang chạy các truy vấn 'cập nhật', bạn muốn thay đổi có hiệu lực nhanh đến mức nào. Đóng trình quản lý bền vững sẽ tiếp tục thay đổi ngay lập tức, trong khi không làm như vậy một cách rõ ràng sẽ dựa vào kho dữ liệu để duy trì các thay đổi của bạn một cách thuận tiện. Nếu bạn đang sử dụng các giao dịch, điều này là không liên quan. Bên cạnh đó, không có bất kỳ nhược điểm nào. Có một cpu + thời gian trên không lớn khi khởi tạo đầu tiên của PM (lần đầu tiên sử dụng sau khi bạn triển khai), nhưng sau đó mở/đóng PM về cơ bản là miễn phí.

+1

Có cách nào để buộc các pm để tồn tại dữ liệu, bên cạnh việc đóng nó hoặc cam kết một giao dịch? –

+0

Có, bạn cũng có thể làm một tuôn ra() Tôi nghĩ, tuy nhiên tại sao không chỉ sử dụng giao dịch? – Jacob

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