You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@oozie.apache.org by "Attila Sasvari (JIRA)" <ji...@apache.org> on 2017/10/03 15:28:00 UTC

[jira] [Created] (OOZIE-3076) Allow logging OpenJPA SQL queries for debugging

Attila Sasvari created OOZIE-3076:
-------------------------------------

             Summary: Allow logging OpenJPA SQL queries for debugging
                 Key: OOZIE-3076
                 URL: https://issues.apache.org/jira/browse/OOZIE-3076
             Project: Oozie
          Issue Type: Improvement
            Reporter: Attila Sasvari


If you are curious about the exact SQL that OpenJPA issues to the datastore, you can set the following in {{persistence.xml}} in the {{oozie-core jar}}
{code}
<property name="openjpa.Log" value="SQL=TRACE"/>
<property name="openjpa.ConnectionFactoryProperties"/>
{code}
( more info https://openjpa.apache.org/builds/2.4.0/apache-openjpa/docs/ref_guide_logging.html )

To have effect on OpenJPA logging, you need to update oozie core jar and restart oozie.   

Under the hood, {{org.apache.openjpa.conf.OpenJPAConfigurationImpl}} handles [this part|https://github.com/apache/openjpa/blob/49c1478cf3f107d9f7069bf2102d8cf0b6ca2b12/openjpa-kernel/src/main/java/org/apache/openjpa/conf/OpenJPAConfigurationImpl.java#L393]. From Oozie, it is called from the {{JPAService}}'s {{init()}} method when [the factory |https://github.com/apache/oozie/blob/7bda357849e1006f2cc6df58320f8905da2bd3b8/core/src/main/java/org/apache/oozie/service/JPAService.java#L230] is created:
{code}
factory = Persistence.createEntityManagerFactory(persistentUnit, props);
{code} 

It shall be possible to control OpenJPA logging programatically via. A hard-coded example:
{code}
((EntityManagerFactoryImpl) factory).getBrokerFactory().getConfiguration().setLog("SQL=TRACE")
((EntityManagerFactoryImpl) factory).getBrokerFactory().getConfiguration().setConnectionFactoryProperties("PrintParameters=true")
{code}
After this openjpa related information will appear in the Oozie logs:
{code}
132816  oozie-derby  TRACE  [Scheduler-8] openjpa.jdbc.SQL - <t 211361417, conn 1310049886> executing prepstmnt 1558515073 SELECT t0.id, t0.job_id, t0.status, t0.external_id, t0.push_missing_dependencies FROM COORD_ACTIONS t0 WHERE ((t0.status = ? OR t0.status = ?) AND t0.last_modified_time <= ?) [params=(String) WAITING, (String) SUBMITTED, (Timestamp) 2017-10-03 17:02:16.986]
132816  oozie-derby  TRACE  [Scheduler-8] openjpa.jdbc.SQL - <t 211361417, conn 1310049886> [0 ms] spent
{code}
- To make it easily configurable, a new element should be added to {{oozie-default.xml}}.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)