Tôi có bộ nhớ đệm được sao chép chạy trên một số nút weblogic cũng đang chạy OSB. Bộ nhớ đệm được bắt đầu với máy chủ như là một lớp khởi động. Nó có một bộ nhớ cache rất đơn giản của các đối tượng mà chỉ đơn giản là theo dõi cho dù họ đang sử dụng hay không với một thuộc tính boolean "có sẵn".Oracle Coherence: Làm thế nào để thiết lập thời gian chờ trên một cuộc gọi invoke trong một bộ nhớ cache nhân rộng?
Từ OSB Tôi đang tạo chú dẫn java cho cùng một lớp, gọi là "gọi" trên bộ nhớ cache với bộ xử lý đánh dấu đối tượng là không khả dụng và sau đó chạy Thread.sleep (31000). Đây là trình giữ chỗ cho một số xử lý kéo dài mà tôi muốn thêm sau.
Điều tôi muốn xảy ra, là nếu cuộc gọi invoke() mất quá nhiều thời gian, quá trình sẽ hết thời gian chờ và trả lại hoặc ném một ngoại lệ. Vì vậy, tôi đã cố gắng để cấu hình một thời gian chờ yêu cầu của 30000 mili giây để kiểm tra này. Thật không may tôi không thể tìm ra cách để làm cho thời gian chờ này xảy ra.
Tôi đã thử:
Bao bì các bộ xử lý trong một PriorityProcessor và gọi setRequestTimeout (30000) trước invoke()
Thêm
<request-timeout
> 30000</request-timeout
> đến<replicated-scheme/
> phần tử trong bộ nhớ cache configThêm
<tasktimeout
> 30000</tasktimeout
> vào<replicated-scheme/
> e lement trong cấu hình bộ nhớ cacheThêm
<guardian-timeout
> 30000</guardian-timeout
> đến<replicated-scheme/
> yếu tố trong cấu hình bộ nhớ cacheTạo một Tangosol-gắn kết-override.xml và thêm một người giám hộ-timeout
<init-param
> để một<service
> phần tử "loại" khớp với tên "dịch vụ" khớp với cấu hình bộ nhớ cacheThay đổi lệnh sleep() thành Thread.sleep (310000) để xem liệu bất kỳ cài đặt mặc định nào sẽ khởi động sau 5 phút.
Không có kết quả nào trong bất kỳ loại thời gian chờ nào, bộ vi xử lý chỉ đơn giản là ngủ nhưng tôi đã nói và không trả lại lỗi.
Có ai đã làm điều gì đó tương tự trước đây và có thể cho tôi một số lời khuyên không? Nó sẽ được rất nhiều đánh giá cao.
Cảm ơn
James