db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Clive Borrageiro" <cli...@cibecs.com>
Subject RE: Derby hogging CPU on startup
Date Tue, 13 Jun 2006 06:20:09 GMT
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:snmuell@sandia.gov] 
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:mcintyre.a@gmail.com] 
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 <snmuell@sandia.gov> 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




Mime
View raw message