jta wrote: > 1) What version of derby is being used? Posting the output > from this command would be the most helpful: > java org.apache.derby.tools.sysinfo
$ java -classpath derby.jar org.apache.derby.tools.sysinfo ------------------ Java Information ------------------ Java Version: 1.4.2_09 Java Vendor: Sun Microsystems Inc. Java home: /usr/java/j2sdk1.4.2_09/jre Java classpath: derby.jar OS name: Linux OS architecture: i386 OS version: 2.6.9-22.0.1.EL Java user name: noel Java user home: /home/noel Java user dir: /home/noel/ASF/james/server/trunk/lib java.specification.name: Java Platform API Specification java.specification.version: 1.4 --------- Derby Information -------- JRE - JDBC: J2SE 1.4.2 - JDBC 3.0 [/home/noel/ASF/james/server/trunk/lib/derby.jar] 10.1.1.0 - (208786) ------------------------------------------------------ ----------------- Locale Information ----------------- ------------------------------------------------------ I have also tested this on other versions of linux, but that's the one on which I had generated the problem. > 2) Which jdbc driver is being used? See our config file. The only entry is: <driver>org.apache.derby.jdbc.EmbeddedDriver</driver> I assume that answers the question, and that we are using the embedded driver version of Derby. Should we be doing things differently? How do we ensure that Derby gets shutdown cleanly, or at least can do what it needs to do to ensure that the database does not get corrupted by some other program failure? The problem is documented here: http://mail-archives.apache.org/mod_mbox/james-server-dev/200511.mbox/%3cN [EMAIL PROTECTED] djd wrote: > It may be that the Derby page cache is too big for this memory size. Looking at our setup, the default for JAMES doesn't specify memory parameters when starting the JVM, although users can specify them if they want. Therefore: public class props { static public void main(String[] args) { System.out.println("Free Memory: " + Runtime.getRuntime().freeMemory()); System.out.println("Total Memory: " + Runtime.getRuntime().totalMemory()); System.out.println("Max Memory: " + Runtime.getRuntime().maxMemory()); } } yields: Free Memory: 1899704 Total Memory: 2031616 Max Memory: 66387968 in our default configuration. That's been fine for JAMES, even in production on my servers (we limit messages to 5MB maximum). So how much more need to allot due to Derby being embedded? > By default the page cache is 1000 pages, and the default page size is 4k. > However I would guess with James that the default page size is 32k, as > it increases for tables with BLOBs/CLOBs or long rows. Thus the page > cache is much bigger when using BLOBs etc. > > You can try bumping the page cache size down, > > derby.storage.pageCacheSize=100 > > http://db.apache.org/derby/docs/10.1/tuning/rtunproper81359.html So just -D it when launching JAMES? --- Noel --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]