i have program updates tables in database using prepared statements, , i'm trying see output of sql statements implemented.
my research suggested p6spy looked great, downloaded it, added p6spy.jar dependency in library, modified spy.properties file connect use oracle driver realdriver, added spy.properties classpath, , changed driver "com.p6spy.engine.spy.p6spydriver" in code.
it works, spy.log file generated not contain sql statements. instead, output in spy.log file :
1374244954573|-1||debug||com.p6spy.engine.common.p6spyoptions reloading properties 1374244954578|-1||info||using properties file: c:\users\gboss\logging\spy.properties 1374244954579|-1||info||no value in environment for: getstacktrace, using: false 1374244954579|-1||info||no value in environment for: getderegisterdrivers, using: false 1374244954579|-1||info||no value in environment for: getuseprefix, using: false 1374244954579|-1||info||no value in environment for: getexecutionthreshold, using: 0 1374244954579|-1||info||no value in environment for: getautoflush, using: true 1374244954579|-1||info||no value in environment for: getexclude, using: 1374244954579|-1||info||no value in environment for: getexcludecategories, using: info,debug,result,batch 1374244954579|-1||info||no value in environment for: getfilter, using: true 1374244954579|-1||info||no value in environment for: getinclude, using: 1374244954579|-1||info||no value in environment for: getincludecategories, using: 1374244954579|-1||info||no value in environment for: getlogfile, using: c:/spy.log 1374244954579|-1||info||no value in environment for: getappender, using: com.p6spy.engine.logging.appender.filelogger 1374244954579|-1||info||no value in environment for: getrealdriver, using: oracle.jdbc.driver.oracledriver 1374244954579|-1||info||no value in environment for: getrealdriver2, using: 1374244954580|-1||info||no value in environment for: getrealdriver3, using: 1374244954580|-1||info||no value in environment for: getappend, using: true 1374244954580|-1||info||no value in environment for: getspydriver, using: com.p6spy.engine.spy.p6spydriver 1374244954580|-1||info||no value in environment for: getdateformat, using: 1374244954580|-1||info||no value in environment for: getdateformatter, using: null 1374244954580|-1||info||no value in environment for: getstringmatcher, using: com.p6spy.engine.common.substringmatcher 1374244954580|-1||info||no value in environment for: getstringmatcherengine, using: com.p6spy.engine.common.substringmatcher@13aaa14a 1374244954580|-1||info||no value in environment for: getstacktraceclass, using: 1374244954580|-1||info||no value in environment for: getsqlexpression, using: null 1374244954580|-1||info||no value in environment for: getreloadproperties, using: false 1374244954580|-1||info||no value in environment for: getreloadpropertiesinterval, using: 60 1374244954580|-1||info||no value in environment for: getjndicontextfactory, using: null 1374244954580|-1||info||no value in environment for: getjndicontextproviderurl, using: null 1374244954580|-1||info||no value in environment for: getjndicontextcustom, using: null 1374244954580|-1||info||no value in environment for: getrealdatasource, using: null 1374244954580|-1||info||no value in environment for: getrealdatasourceclass, using: null 1374244954580|-1||info||no value in environment for: getrealdatasourceproperties, using: null does have experience using p6spy , know issue is? i've read spy.log supposed generate sql statements after doing things did , running program, i'm pretty confused here
edit -- database updated way, sql statements did go through , update database
this typically caused p6spydriver being registered drivermanager after real jdbc driver registered. p6spy 1.3 did not require change jdbc url. when application code (or app server) tries suitable driver drivermanager, cycles through registered drivers find first 1 handles url. if p6spydriver not registered before real driver, not used.
there 2 ways fix problem:
- set 'deregisterdrivers=true' in spy.properties.
this cause p6spy unregister real driver , reregister it. cause drivermanager use p6spydriver. however, java 6+ must make sure driver class have listed real driver matches 1 autoregistered. can class name meta-inf/services/java.sql.driver. if file not exist in jar file jdbc driver, not support auto registeration.
- set 'useprefix=true' in spy.properties , modify jdbc url add 'p6spy:' prefix.
this ensure p6spydriver used regardless of order in drivers loaded. reliable way...
see http://p6spy.github.io/p6spy/1.3/configandusage.html various configuration options available 1.3.
Comments
Post a Comment