db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paul J DeCoursey <p...@decoursey.net>
Subject Re: Embedded in Servlet on Tomcat?
Date Fri, 21 Jul 2006 20:20:51 GMT
Stanley Bradbury wrote:
> Paul J DeCoursey wrote:
>> Stanley Bradbury wrote:
>>> Stanczak Group wrote:
>>>> How does one get Derby embedded in a servlet under Tomcat. In my 
>>>> development environment I'm using Netbeans and Tomcat. Tomcat 
>>>> install is under root so I can't write to is, just my web modules 
>>>> directories. I can connect to a path with Netbeans's database tool, 
>>>> but when I launch the app on Tomcat I get errors that it can't 
>>>> create files like createDD.jdbc and derby.log. I'm guessing this is 
>>>> because Derby is showing it's home as the root of the Tomcat 
>>>> server.  The question is why and how can I fix this? I have an 
>>>> absolute path set, but it still does it. Shouldn't it write 
>>>> everything to that path and not just start writing to where ever it 
>>>> decides home is?
>>>>
>>> Hi -
>>>
>>> For embedded Derby to work properly it needs to be loaded high in 
>>> the classloader hierarchy of the server.  As far as I know this 
>>> cannot be done by an application, the application layer has too many 
>>> restrictions and Derby is designed to be a shared resource.  Sharing 
>>> Derby is done by integrating Derby with Tomcat as described in the 
>>> JPetStore write-up at:
>>>
>>> http://db.apache.org/derby/integrate/DerbyTomcat5512JPetStor.html
>>>
>>> I believe that Derby in client/server architecture might be your 
>>> only choice  if you cannot get Derby embedded as a global resource 
>>> at the Server level.
>>>
>>>
>>>
>> I've made it a staticly accessible resource. I use my own database 
>> management container, the DataSource container for tomcat has been 
>> too heavy for my needs. I've also set it up in Spring successfully.
>>
>> Paul
>>
>>
>>
>>
>>
> Hi Paul -
>
> Sounds like you have a lot of experience in the area.  Your 
> architecture seems beyond my experience but I did notice something I 
> missed in my first read that might be of help.  You wrote:
>
> "..I have an absolute path set, but it still does it. Shouldn't it 
> write everything to that path and not just start writing to where ever 
> it decides home is? .."
>
> Derby writes the logfile to derby.system.home (this also serves as the 
> ROOT directory for any relative path references).  If this is not 
> explicitly set prior to loading the Derby driver the value defaults to 
> the default directory for the JVM.  Derby's view of the world is from 
> the JVM perspective, not the server or application that starts it.  I 
> assume the 'absolute path' you set is an application or server property?
>
> Anyway, a possible solution for you might be to set derby.system.home 
> to an appropriate location (the absolute path?) prior to loading the 
> Derby driver.
>
> HTH
>
>
HTH please reread the thread, I'm not the one with the issue.  But that 
is a good point to the originator of this thread.  I did look at my 
database manager and found that I do 
System.setProperty("derby.system.home",home); if the driver is 
org.apache.derby.jdbc.EmbeddedDriver.

Paul



Mime
View raw message