What can be the reason?
ADF creates/reuses application module (AM) instance for each user request. It is passivated (saved) after each HTTP request (if configured accordingly). When in application there are used some queries with view criteria, filter variables are passivated for according AM as well. During the next HTTP request of the same user it is recalled and used in processing.
But... There are couple important AM parameters:
- Idle Instance Timeout (s) = 600 (default)
- Pool Polling Interval (s) = 600 (default)
In my case I've got JBO-25058 error when trying to re-execute query with view criteria after 600s. Simply my referenced AM module with view criteria variable was purged before...
So the fix was simple - just increased mentioned AM parameters to 1800s. I've choosed such period because session timeout in my app is the same. That means user will not experience such error because session simply ends before.