Hi Clive, I tried that, and it didn't seem to help. The problem seems to be related to the size of my database. As my database grows larger, it seems to take longer to startup. My database consists of a single table with maybe a few thousand rows. Does Derby have a maximum table size? If not, is there a size where the performance begins to degrade?
Stephen -----Original Message----- From: Clive Borrageiro [mailto:[EMAIL PROTECTED] Sent: Monday, June 12, 2006 11:20 PM To: 'Derby Discussion' Subject: RE: Derby hogging CPU on startup Stephen, Try using DriverManager.getConnection("jdbc:derby:db;shutdown=true"); when exiting your application and see if that solves the CPU 100% spike on the next startup. Clive -----Original Message----- From: Mueller, Stephen Ng [mailto:[EMAIL PROTECTED] Sent: 13 June 2006 03:33 AM To: Derby Discussion Subject: RE: Derby hogging CPU on startup Andrew, Thanks for the reply. Sorry, connection.open() is a method I wrote myself. To start the database, I make the following call in my application: DriverManager.getConnection(derbyURL +";create=false", username_, password_); The function returns fairly quickly, but then after that, as I said, the CPU usage spikes to nearly 100% for a couple minutes, then goes back down to normal. Note this problem only occurs when the database already exists. When I make the previous call when the database doesn't exist yet with create=true, I don't see this problem at all. The following are my system specs: Pentium M 2.13GHZ 2 GB RAM Windows XP SP2 Java 1.4.2_08 Derby 10.1.2.1 Stephen -----Original Message----- From: Andrew McIntyre [mailto:[EMAIL PROTECTED] Sent: Friday, June 09, 2006 10:47 PM To: Derby Discussion Subject: Re: Derby hogging CPU on startup On 6/9/06, Mueller, Stephen Ng <[EMAIL PROTECTED]> wrote: > > I am using emdedded Derby for one of my applications. After calling > connection.open() on the database, the connection is returned promptly > with no problem. What API is the connection.open() method from? It's not a JDBC method. > However, after this, my CPU usage goes to nearly 100%, and my computer > slows down. I can perform inserts on the database while this is > happening, but they take a while. Is Derby going through some sort of > start up procedure? Derby start up, even on an underpowered desktop by today's standards (where underpowered = 400 Mhz P3 or 450 Mhz G4) Derby startup shouldn't take more than 10 seconds, even when creating a new database. > Should it be taking up this much CPU? It takes about a minute or so > before completing, and my CPU usage returns to normal. No, I don't think this is normal, and I have not experienced this behavior before. When starting Derby, there is usually an initial spike, though not even to 100% in most cases, and then CPU usage quickly returns to normal. What platform and JVM are you using? Perhaps there is something odd going on with the JVM here. How much RAM do you have? Perhaps the machine is running out of physical memory and there is an excessive amount of access to virtual memory? > Anyone know why this is happening and how/if I can alleviate the > problem? FYI, I am using Derby 10.1.2.1. Nothing recent rings a bell. I've seen CPU spikes in the past, but not recent past - back in the JDK 1.1-era. Any additional details concerning your setup and how you are accessing Derby might be useful in tracking down the problem. Thanks, andrew
