Jeff,
Could you provide more info :
1. in persistence.xml, show us how you enable DataCache and QueryCache.
2. the updates to RelationshipInfo, is that done by the same application
that issued the query ? or some other application ?
3. Could you show the code fragment that issues em.createQuery ?

Thanks.
Catalina

On Mon, Nov 2, 2009 at 10:15 AM, Jeff Awe <[email protected]> wrote:

> I'm running on OpenJPA 1.2.1
>
> The following query is added to the QueryCache:
>
> Query: org.apache.openjpa.kernel.queryi...@3afe3afe;
> candidate class: class com.ibm.usmi.datamodel.system.OperatingSystem;
> query: SELECT distinct
>
> OPERATINGSYSTEM1.OID,OPERATINGSYSTEM1.Guid,OPERATINGSYSTEM1.ObjectType,OPERATINGSYSTEM1.Name,REMOTESERVICEACCESSPOINT1.OID,REMOTESERVICEACCESSPOINT1.Guid,REMOTESERVICEACCESSPOINT1.ObjectType,REMOTESERVICEACCESSPOINT1.Name
> FROM OperatingSystem
> OPERATINGSYSTEM1,System_accessedVia_RemoteServiceAccessPoint
> SYSTEM_ACCESSEDVIA_REMOTESERVICEACCESSPOINT1,RemoteServiceAccessPoint
> REMOTESERVICEACCESSPOINT1,RelationshipInfo RELATIONSHIPINFO1 WHERE
> OPERATINGSYSTEM1.OID =
> SYSTEM_ACCESSEDVIA_REMOTESERVICEACCESSPOINT1.sourceId
> AND REMOTESERVICEACCESSPOINT1.OID =
> SYSTEM_ACCESSEDVIA_REMOTESERVICEACCESSPOINT1.targetId AND
> (OPERATINGSYSTEM1.Guid = ?1) AND (OPERATINGSYSTEM1.OID = ?2) AND
> ((OPERATINGSYSTEM1.BuildNumber = ?3)) AND (REMOTESERVICEACCESSPOINT1.Guid =
> ?4) AND (REMOTESERVICEACCESSPOINT1.OID = ?5) AND
> ((REMOTESERVICEACCESSPOINT1.Port = ?6)) AND RELATIONSHIPINFO1.changedDate >
> ?7 and RELATIONSHIPINFO1.sourceOID=OPERATINGSYSTEM1.OID and
> RELATIONSHIPINFO1.relationshipType = ?8 and
> RELATIONSHIPINFO1.targetOID=REMOTESERVICEACCESSPOINT1.OID
>
> Later on, a record in RelationshipInfo is changed, which changes what
> should
> be returned from this query.  I'd expect this to cause the cached query to
> get evicted from the QueryCache, but it is not.  If I get the
> QueryResultCache, and evictAll RelationshipInfo.class, it still doesn't get
> removed.  This seems to be because the AccessPath only contains
> OperatingSystem.  I'd expect this to contain all entities that this query
> deals with:
>                 {OperatingSystem,
> System_accessedVia_RemoteServiceAccessPoint, RemoteServiceAccessPoint,
> RelationshipInfo}
> But the AccessPath only seems to contain the entity of what is returned
> from
> the query.
>
> What do I need to do so this query gets evicted like I'd expect.
>
> Thanks - Jeff
>

Reply via email to