Daniel Skiles wrote:

Hi Daniel -

It would be helpful to have the complete output from the derby sysinfo

command along with the JVM information supplied by 'java -version'. In

case you are not familiar with the sysinfo command it is:
java org.apache.derby.tools.sysinfo

------------------ Java Information ------------------
Java Version:    1.5.0_03
Java Vendor:     Sun Microsystems Inc.
Java home:       c:\Program Files\Java\jre1.5.0_03
Java classpath:  derby.jar
OS name:         Windows XP
OS architecture: x86
OS version:      5.1
Java user name:  dskiles
Java user home:  C:\Documents and Settings\dskiles
Java user dir:   C:\Documents and Settings\dskiles\Desktop\orphan\derby
java.specification.name: Java Platform API Specification
java.specification.version: 1.5
--------- Derby Information --------
JRE - JDBC: J2SE 5.0 - JDBC 3.0
[C:\Documents and Settings\dskiles\Desktop\orphan\derby\derby.jar]
10.1.1.0 - (208786)
------------------------------------------------------
----------------- Locale Information -----------------
------------------------------------------------------

java version "1.5.0_03"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_03-b07)
Java HotSpot(TM) Client VM (build 1.5.0_03-b07, mixed mode, sharing)


Is there any additional information in the derby.log file?
Where does the derby.log file end up?


org.apache.derby.impl.sql.execute.UnionResultSet.openCore(Unknown
Source)

As far as I can tell, it does


Lastly, if you were to perform one test with the logStatementText TRUE

('derby.language.logStatementText=true') then post the derby.log we would know what SQL statement Derby was chewing on when this problem happens (the derby.log will get large so I would unset it after the
test).
NOTE: It is also helpful to set the following properties while
debugging
if they are not already being used:
derby.infolog.append=true
derby.stream.error.logSeverityLevel=0

How do I set these properties?

Thanks for the help.

Hi Daniel -

The derby.log file is created in the default output directory for derby which is either the value of the parameter derby.system.home or the current working directory of the process that starts the JVM. You can place the three debug parameters in a file named derby.properties - this needs to be in derby.system.home directory (e.g. next to the derby.log file). If it seems manageable locate the derby.log then you can create the derby.properties file in the same place - include the three settings listed. If you prefer a more deterministic method you can declare all the parameters on the java command line you use to start your application - it would look like this:

java -Dderby.system.home=<logDir> -Dderby.language.logStatementText=true -Dderby.infolog.append=true
-Dderby.stream.error.logSeverityLevel=0 <myApplication>

Where, of course, you replace <logDir> with the location where you wish the derby.log file to be written and
where you replace <myApplicaiton> with the application classfile name.
NOTE: if your application connection URL does not specify the full path to the database then setting derby.system.home might cause the database not to be found. All DBs referenced with a relative path on the URL are looked for relative to the setting of derby.system.home.

Hope this helps.

Reply via email to