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.