[ https://issues.apache.org/jira/browse/CAUSEWAY-2888?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Daniel Keir Haywood updated CAUSEWAY-2888: ------------------------------------------ Component/s: Core Persistence JPA Fix Version/s: (was: 2.1.0) Affects Version/s: 2.0.0-RC4 > [Performance] Use EclipseLink for caching of "findByUsername" and similar > security queries. > ------------------------------------------------------------------------------------------- > > Key: CAUSEWAY-2888 > URL: https://issues.apache.org/jira/browse/CAUSEWAY-2888 > Project: Causeway > Issue Type: Improvement > Components: Core, Persistence JPA > Affects Versions: 2.0.0-RC4 > Reporter: Daniel Keir Haywood > Priority: Minor > > observed numerous calls to findByUsername going to the database, > > Have tried various configuration settings to change EclipseLink cache > behaviour but they don’t seem to make a difference. > > One of them was trying to use QueryMonitor to log cache hits but couldn’t > make that output anything. Simple observation of the page showed by rough > count of time that page load didn’t vary with different configuration > settings. > > Perhaps @Cache is required on ApplicationUser? > > Earlier attempts to use QueryResultsCache didn’t work out either since hit > the issue with ObjectBulkLoader > (https://issues.apache.org/jira/browse/ISIS-2330); but think more important > is using EclipseLink caching. > Using that caching would be more likely to make a big difference and dealing > with clearing the cache can be done at a later date if we need to write > direct to the database. > > Any luck with settings to log output from EclipseLink’s QueryMonitor or > PerformanceMonitor? > ~~~ > addendum; things attempted: > > - various EclipseLink settings and did find with > eclipselink.profiler=QueryMonitor that I could reload the dashboard page and > see some output. > This showed that caching was happening for primary key based requests but not > others. > > - Using XML to configure the named queries gave an error about the class not > having an id and seemed to be to do with the inheritance and where things > were set - various combinations of which class used didn't help. > > - tried to no avail finding a way to have my own named queries so I could > set the hint on them. > > - tried again with wrapping the findByUsername with queryResultsCache but > that gave errors about not being in an interaction context when setting up > queryResultsCache bean. > > > Final solution that was hacked: rudimentary caching in overridden version of > AuthorizorSecman. -- This message was sent by Atlassian Jira (v8.20.10#820010)