From dev-return-15874-apmail-openjpa-dev-archive=openjpa.apache.org@openjpa.apache.org Mon Mar 22 22:35:51 2010 Return-Path: Delivered-To: apmail-openjpa-dev-archive@www.apache.org Received: (qmail 78681 invoked from network); 22 Mar 2010 22:35:51 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 22 Mar 2010 22:35:51 -0000 Received: (qmail 50660 invoked by uid 500); 22 Mar 2010 22:35:51 -0000 Delivered-To: apmail-openjpa-dev-archive@openjpa.apache.org Received: (qmail 50633 invoked by uid 500); 22 Mar 2010 22:35:51 -0000 Mailing-List: contact dev-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list dev@openjpa.apache.org Received: (qmail 50625 invoked by uid 99); 22 Mar 2010 22:35:51 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 22 Mar 2010 22:35:51 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 22 Mar 2010 22:35:49 +0000 Received: from brutus.apache.org (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id B3D54234C1F0 for ; Mon, 22 Mar 2010 22:35:27 +0000 (UTC) Message-ID: <479014141.417351269297327735.JavaMail.jira@brutus.apache.org> Date: Mon, 22 Mar 2010 22:35:27 +0000 (UTC) From: "Catalina Wei (JIRA)" To: dev@openjpa.apache.org Subject: [jira] Updated: (OPENJPA-1585) Additional trace to relate SQL pushdowns with entity action or JPQL query In-Reply-To: <796206152.356221268967087210.JavaMail.jira@brutus.apache.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/OPENJPA-1585?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Catalina Wei updated OPENJPA-1585: ---------------------------------- Attachment: ecblank.gif graycol.gif Hi Pinaki, Thanks for your comment. Yes, it would be nice to introduce another level of tracing (openjpa.jdbc.SQL=DIAG level), but that involves changing the Log interface, and I found that the com.ibm.ws.jpa.management.TraceLogChannel implements Log interface. I was afraid of any build/compile breaks at this time since we are about to cut 2.0.0 branch. I will take another shot at this after we have that done and work on it at trunk code. as far as message ids, there are lots of trace messages that we logged were non-localized messages. It seems that if trace messages is providing information that user need to take some action, then a message id should be used. Because messages will get translated into different languages and users other than US-speakings would know what actions to take. The diagnostic trace that I added are mostly informational, no actions were given to users. So I think it should be OK with non-localized messages. Thanks again. Regards, Catalina Department: DMQA e-mail: fancy@us.ibm.com Tie: 543-3290 From: "Pinaki Poddar (JIRA)" To: Catalina Wei/Silicon Valley/IBM@IBMUS Date: 03/22/2010 07:57 AM Subject: [jira] Commented: (OPENJPA-1585) Additional trace to relate SQL pushdowns with entity action or JPQL query [ https://issues.apache.org/jira/browse/OPENJPA-1585?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12848152#action_12848152 ] Pinaki Poddar commented on OPENJPA-1585: ---------------------------------------- 1. How about adding these useful trace statements to SQL=TRACE level itself instead of having an extra channel. 2. The trace messages use non-localized hard coded Strings. Generally that is not done for other parts of the code base. actions with SQL pushdowns: eager relations for the generated SQL is very helpful. requests. CascadeB s [test.entities.CascadeB.entitya] executing prepstmnt 25862088 SELECT t0.id, t1.id, t1.name, t0.name FROM CascadeB t0 LEFT OUTER JOIN CascadeA t1 ON t0.ENTITYA_ID = t1.id org.apache.openjpa.kernel.PNewState for oid=1 (age,id,name) VALUES (?,?,?) [1,1,name1] oid=1 class test.entities.BasicB test.entities.BasicA oid=1 class test.entities.BasicA executing prepstmnt 28008463 SELECT t0.name FROM BasicA t0 WHERE t0.id = ? optimize for 1 row [params=(int) 1] -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. > Additional trace to relate SQL pushdowns with entity action or JPQL query > ------------------------------------------------------------------------- > > Key: OPENJPA-1585 > URL: https://issues.apache.org/jira/browse/OPENJPA-1585 > Project: OpenJPA > Issue Type: Improvement > Affects Versions: 2.0.0 > Reporter: Catalina Wei > Assignee: Catalina Wei > Priority: Trivial > Fix For: 2.0.0 > > Attachments: ecblank.gif, graycol.gif, OPENJPA-1585.patch > > > Additional trace can help users understand and relate query or entity actions with SQL pushdowns: > 1. why SQL pushdown has JOINs that are generated, a trace dumping out eager relations for the generated SQL is very helpful. > 2. a JPQL or a simple em.find() generated caused more than one SQL requests. > 3. entity instance actions (INSERT, UPDATE, DELETE) generated SQL > Examples: > 1. JOIN is generated because of the eager relation 'entitya': > 4891 p1 TRACE [main] openjpa.Query - Executing query: select s from CascadeB s > 4906 p1 TRACE [main] openjpa.jdbc.Extra - Eager relations: [test.entities.CascadeB.entitya] > 5141 p1 TRACE [main] openjpa.jdbc.SQL - executing prepstmnt 25862088 SELECT t0.id, t1.id, t1.name, t0.name FROM CascadeB t0 LEFT OUTER JOIN CascadeA t1 ON t0.ENTITYA_ID = t1.id > 2. flush for new instance of entity action: > 7250 p1 TRACE [main] openjpa.jdbc.Extra - flush: org.apache.openjpa.kernel.PNewState for oid=1 > 7250 p1 TRACE [main] openjpa.jdbc.SQL -: INSERT INTO BasicA (age,id,name) VALUES (?,?,?) [1,1,name1] > 2: loading relation 'entitya': > 7734 p1 TRACE [main] openjpa.jdbc.Extra - load field: 'entitya' for oid=1 class test.entities.BasicB > 7734 p1 TRACE [main] openjpa.jdbc.Extra - find: oid=1 class test.entities.BasicA > 7734 p1 TRACE [main] openjpa.jdbc.Extra - getInitializeStateResult: oid=1 class test.entities.BasicA > 7969 pdq1 TRACE [main] openjpa.jdbc.SQL - executing prepstmnt 28008463 SELECT t0.name FROM BasicA t0 WHERE t0.id = ? optimize for 1 row [params=(int) 1] -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.