I've posted this as bug #28495. In org.apache.cocoon.acting.modular.DatabaseAction, the implemented query caching is inoperative.
In the processTable() method a new LookUpKey is created for every request, and since the equals/hashKey methods are not overriden in LookUpKey, this means that the getQuery() method will be called for all requests and no caching is used, since the HashMap get will always return null. Found this trying to hunt down a nasty concurrency bug (manifesting in 2.1.4) where the data being written to the database seems to be using another sessions values intermittently. Andrzej Jan Taramina Chaeron Corporation: Enterprise System Solutions http://www.chaeron.com