Description
The Memory usage limits are shared for a filependingmessagecursor and a queue. To have the cursor limit kick in first the usage portion needs to be reduced to below 70% as in: policy.setCursorMemoryHighWaterMark(50); for the destination.
This causes message references to be flushed to disk when the memory utilization reaches 50% ensuring that the memory usage limit for the queue of 70% is not met.
However, expiry processing with no consumers, needs to go directly to the cursor to examine messages (as none are paged in for dispatch) and this contract is problematic at the moment as there is no way to manage the message reference count via the cursor api for this use case. PageInList is promising but not complete.