Return-Path: Delivered-To: apmail-openjpa-users-archive@minotaur.apache.org Received: (qmail 36370 invoked from network); 11 Nov 2009 00:57:10 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 11 Nov 2009 00:57:10 -0000 Received: (qmail 4772 invoked by uid 500); 11 Nov 2009 00:57:09 -0000 Delivered-To: apmail-openjpa-users-archive@openjpa.apache.org Received: (qmail 4687 invoked by uid 500); 11 Nov 2009 00:57:09 -0000 Mailing-List: contact users-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: users@openjpa.apache.org Delivered-To: mailing list users@openjpa.apache.org Received: (qmail 4677 invoked by uid 99); 11 Nov 2009 00:57:08 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 11 Nov 2009 00:57:08 +0000 X-ASF-Spam-Status: No, hits=-2.6 required=5.0 tests=BAYES_00,HTML_MESSAGE X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of catalina.wei@gmail.com designates 209.85.223.201 as permitted sender) Received: from [209.85.223.201] (HELO mail-iw0-f201.google.com) (209.85.223.201) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 11 Nov 2009 00:57:06 +0000 Received: by iwn39 with SMTP id 39so530390iwn.25 for ; Tue, 10 Nov 2009 16:56:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type; bh=Mp837zlZnh+sa4afffevRQSnmIdodcH35+M1XE67dD0=; b=H+RWr7HSga0fuiyva46uu7fdrT5ROwJ1bilxuQ3NQ65IMbj32F6gBFKzUpqEmFq+Iz 9kX8B++ImOmtIIs4jHd3Jkyn1yMeFRTD6OqhINoWlr+n52kSJoTgyhg6F3Pvi9L+Xaz5 EHUOG0UCAYoWyRUs6+x8beAzd+juzswavZrn4= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=dDBNshDk7DAToF2s4w/zdpDMgVVZ8dvTJVCsgBq5rdoXveOByS1Jve3tmhkGxe6saO FQZQoPZBYkh83nd72cYrboiVPFKqmWjtxrw7jh1asILzPOjY/5KSlj86JPfrQps753sM Uaml1OJzUR07aO/sjbylqWN7FJKyC4j3st9jI= MIME-Version: 1.0 Received: by 10.231.25.160 with SMTP id z32mr1434737ibb.5.1257901005545; Tue, 10 Nov 2009 16:56:45 -0800 (PST) In-Reply-To: <8b15158a0911032023k59ec8d6y9d214d8472539cb3@mail.gmail.com> References: <8b15158a0911021015x21b6fc4fkb438def9d4819935@mail.gmail.com> <8b15158a0911032023k59ec8d6y9d214d8472539cb3@mail.gmail.com> Date: Tue, 10 Nov 2009 16:56:45 -0800 Message-ID: Subject: Re: Query not getting evicted from QueryCache From: catalina wei To: users@openjpa.apache.org Content-Type: multipart/alternative; boundary=00151774041c9920bf04780de6ff --00151774041c9920bf04780de6ff Content-Type: text/plain; charset=ISO-8859-1 Hi Jeff, JIRA issue OPENJPA-1380 is open for this problem. Fix will be available soon. Catalina On Tue, Nov 3, 2009 at 8:23 PM, Jeff Awe wrote: > Catalina, > > 1. This is how I enabled DataCache and QueryCache: > > > 2. The same application that updates RelationshipInfo also issues the > query. > 3. This is how the Query is created: > > Query query = entityManager.createQuery(queryStmt); > > Here is the stacktrace: > > > org.apache.openjpa.kernel.QueryImpl.(org.apache.openjpa.kernel.Broker, > java.lang.String, org.apache.openjpa.kernel.StoreQuery) line: 132 > > org.apache.openjpa.kernel.FinalizingBrokerImpl(org.apache.openjpa.kernel.BrokerImpl).newQueryImpl(java.lang.String, > org.apache.openjpa.kernel.StoreQuery) line: 3519 > > org.apache.openjpa.kernel.FinalizingBrokerImpl(org.apache.openjpa.kernel.BrokerImpl).newQuery(java.lang.String, > java.lang.Object) line: 3496 > org.apache.openjpa.kernel.DelegatingBroker.newQuery(java.lang.String, > java.lang.Object) line: 1225 > > org.apache.openjpa.persistence.EntityManagerImpl.createQuery(java.lang.String, > java.lang.String) line: 870 > > org.apache.openjpa.persistence.EntityManagerImpl.createQuery(java.lang.String) > line: 865 > > org.apache.openjpa.persistence.EntityManagerImpl.createQuery(java.lang.String) > line: 1 > > queryStmt = > "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" > > Then parameters are set on the Query after it is created. > > Thanks, > > Jeff > > On Mon, Nov 2, 2009 at 2:01 PM, catalina wei > wrote: > > > 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 wrote: > > > > > I'm running on OpenJPA 1.2.1 > > > > > > The following query is added to the QueryCache: > > > > > > Query: org.apache.openjpa.kernel.QueryImpl@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 > > > > > > --00151774041c9920bf04780de6ff--