- Siêu lớp và danh mục iOS/Objective-C
- object-c - -1001 lỗi khi NSURLSession vượt qua httpproxy và /etc/hosts
- java - Nhận địa chỉ url bằng lớp mạng
- ios - Âm thanh không phát trong thông báo đẩy
Tôi có một ứng dụng sử dụng JPA, Hibernate và ehcache cũng như các giao dịch khai báo của Spring. Tải trên cơ sở dữ liệu khá cao nên mọi thứ đều được lưu vào bộ nhớ đệm để tăng tốc mọi thứ, bao gồm cả các mục Bộ sưu tập. Giờ đây, việc các bộ sưu tập được lưu vào bộ nhớ đệm riêng biệt với thực thể sở hữu chúng không còn là bí mật nữa, vì vậy nếu tôi xóa một thực thể là một phần tử của lớp này khỏi bộ sưu tập được lưu trong bộ nhớ đệm, hãy duy trì một thực thể phải là một phần tử hoặc cập nhật một thực thể sao cho rằng nó chuyển từ một bộ sưu tập sang một bộ sưu tập khác, tôi phải thực hiện việc chế tạo trục xuất.
Vì vậy, tôi đã sử dụng trình xử lý sự kiện ngủ đông để theo dõi các thực thể được chèn, xóa hoặc cập nhật và lưu thông tin đó cho hành động của người quản lý giao dịch đồng bộ hóa giao dịch đã đăng ký trong Spring. Sau khi giao dịch đã được cam kết.
Vấn đề bây giờ làNhiều khi, một số giao dịch đồng thời khác tìm cách tìm thấy bộ sưu tập trong bộ đệm vừa bị xóa (các sự kiện này thường là một trong mười sự kiện theo nhật ký), tự nhiên khiến xảy ra EntityNotFoundException.
Làm cách nào để đồng bộ hóa chúng một cách chính xác?
Tôi đã thử loại bỏ từng phương thức trong số 4 phương thức Đồng bộ hóa giao dịch (được gọi tại các thời điểm khác nhau liên quan đến việc hoàn thành giao dịch) và điều đó không giúp ích gì.
câu trả lời hay nhất
Về cơ bản những gì bạn cần làm là buộc đọc từ cơ sở dữ liệu trong khi bộ sưu tập đang bị xóa hoặc vừa bị xóa. Một cách tiếp cận là đánh dấu bộ sưu tập là dirty ngay sau khi nhận được yêu cầu trục xuất nhưng trước khi thực hiện giao dịch để thay đổi nó. Bất kỳ giao dịch đồng thời nào xảy ra sẽ kiểm tra cờ bẩn và nếu nó được đặt thành đúng thì nó sẽ lấy dữ liệu từ cơ sở dữ liệu, nếu không nó có thể đọc từ bộ đệm. Bạn có thể cần thay đổi cài đặt giao dịch cơ sở dữ liệu để chặn các giao dịch đồng thời cho đến khi giao dịch cập nhật dữ liệu hoàn tất để dữ liệu chính xác được đọc từ cơ sở dữ liệu. Sau khi giao dịch hoàn tất, bạn có thể đặt lại cờ bẩn thành sai.
Bạn cũng có thể tạo khóa trên bộ sưu tập bộ nhớ đệm khi quá trình cập nhật, chèn hoặc xóa hết hạn miễn là quá trình trục xuất vẫn tiếp tục. Điều này sẽ đảm bảo rằng không có giao dịch nào khác có thể đọc/thay đổi bộ sưu tập được lưu trong bộ nhớ đệm cho đến khi quá trình loại bỏ hoàn tất.
Về java - hibernate/Ehcache : xóa các bộ sưu tập khỏi bộ đệm cấp 2 không được đồng bộ hóa với các lần đọc DB khác, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/1505940/
Đối với Lucene, chúng tôi có một hộp công cụ tốt như Luke để xem, chẩn đoán, chỉnh sửa, v.v. Chúng tôi có công cụ tương tự (ít nhất là được hiển thị) cho EhCache (khi chúng tôi bật diskPersistent) không? Câu trả lời hay nhất: Không biết có không
Tôi phải tích hợp spring và ehcache và cố gắng triển khai nó bằng cách sử dụng mẫu bộ đệm chặn. Có một tùy chọn để tự điền phạm vi bộ đệm cho phương thức và chia sẻ (mặc định) Bạn có thể giải thích sự khác biệt là gì không? Ngoài ra còn có chú thích @cacheable và cờ tự điền
Tôi có một ứng dụng Java lớn được định cấu hình để sử dụng JPA và Hibernate. Nó cũng được cho là được cấu hình để sử dụng ehcaching cho bộ nhớ đệm thực thể và truy vấn. Tuy nhiên, tôi đã bật tính năng ghi nhật ký sql và không có thực thể nào được lưu vào bộ nhớ đệm. Tất cả đều có thật
Như bạn có thể thấy trong tiêu đề, câu hỏi đã rõ ràng và sẽ rất tuyệt nếu được nghe suy nghĩ của bạn về adv./disadv. sự khác biệt giữa chúng. Cập nhật: Tôi quyết định sử dụng Hazelcast vì những ưu điểm của nó như cơ chế khóa/bộ nhớ đệm phân tán và khả năng thích ứng với ứng dụng của bạn
Tôi biết rằng thuộc tính "updateCheck" có thể được đặt thành "false" trong XML như sau: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xs
Tôi đã tạo hai phương thức trong các lớp khác nhau và chú thích chúng bằng chú thích @Cacheable và đặt cùng tên bộ đệm như sau: class MyClass{ @Cacheable(value="inSco
Tôi đang dùng thử phiên bản ehcache mới nhưng tôi nhận thấy rằng dường như không có API tìm kiếm. Điều này là bình thường hay tôi đang thiếu một cái gì đó? Tài liệu không nói điều này. Câu trả lời hay nhất Lý do chính là việc tìm kiếm trong bộ đệm có ngữ nghĩa rất lạ khi hết hạn và bị trục xuất. Do E
Trong Ehcache 2, bạn có thể sử dụng CalculateInMemorySize() để lấy kích thước trong bộ nhớ, ví dụ: CacheManager manager = CacheManager.create()
Nếu tôi có cấu hình sau: Giá trị của timeToIdleSeconds để lưu vào bộ đệm thử nghiệm là bao nhiêu? Nó sẽ được kế thừa từ bộ đệm mặc định, bằng 120 hay nó sẽ lấy giá trị mặc định được đưa ra trong hướng dẫn, là 0 (vô cùng) ? Thời gian trả lời tốt nhấtT
Tôi đang sử dụng ehcache để lưu các thực thể vào bộ nhớ đệm thông qua chế độ ngủ đông. Nhìn vào màn hình ehcache, mọi thứ dường như đang hoạt động tốt (làm mới đặt số lượng bộ đệm về 0, sau đó tải lại sẽ đặt số đếm trở lại một), nhưng nếu tôi thay đổi một số giá trị trực tiếp trên cơ sở dữ liệu và
ehcache là một con quái vật có cấu hình cao và các ví dụ khá phức tạp, thường liên quan đến nhiều lớp giao diện. Có ai gặp ví dụ đơn giản nhất chỉ lưu trữ một số trong bộ nhớ (không được phân phối, không có XML, càng ít java càng tốt
Có sự thay thế nào cho net.sf.ehcache.CacheManager.ALL_CACHE_MANAGERS không? tại org.ehcache ehcach
Sử dụng Ehcache 3.1, tôi có thể biết kích thước của các phần tử hiện được lưu trữ trong ehcache cũng như số lần truy cập và bỏ sót mà bộ đệm đã có cho đến nay. Tôi nghĩ 2.6 có .getStatistics() có chức năng tương tự, nhưng tôi ở phiên bản 3
Tôi là người mới bắt đầu sử dụng ehcache v/s ehcache-core trong Spring framework, pom.xml của tôi đang sử dụng ehcache phiên bản 1.5.0 net.sf.ehcache ehcach
Tôi đang chạy một ứng dụng web bằng Ehcache 3.4.0. Tôi có cấu hình bộ đệm xác định mặc định đơn giản gồm 1000 đối tượng trong bộ nhớ: java.lang.Object java.lang
Tôi muốn tìm một cách tốt để sử dụng tính năng tiêm phụ thuộc Spring (tiêm) trong lớp trang trí ehCache. Ehcache.xml của tôi có cấu hình bộ đệm sau: Tôi có cách triển khai trang trí sau: public cl
Tôi muốn tìm hiểu xem các phiên bản mới nhất của Ehcache (2.7.0, 2.7.1, 2.7.2, 2.7.4, 2.7.5, 2.8.0) thực sự có phiên bản mới của ehcache-core hay ehcache-core là phiên bản 2
Chúng tôi đang chạy ứng dụng web Spring 3.0.5 trên WebLogic Server 10.3.4 Solaris với Sun JVM 1.6.0_x 64bit bằng EhCache 2.
Ehcache 3.8.1 không còn tự động lấy cài đặt cấu hình từ tệp ehcache.xml trong thư mục gốc nguồn nữa phải không? Câu trả lời hay nhất Có, có vẻ như vậy, bây giờ việc định cấu hình Ca cần được thực hiện bằng tệp XML
http://ehcache.org/generated/2.9.0/html/ehc-all/#page/Ehcache_Documentation_Set%2Fco-use_supported_t
Tôi là một lập trình viên xuất sắc, rất giỏi!