Hum won't quite work, but I am still concerned that I can't get an insert to work with hsqldb, so something is haywire with my DB somewhere because my code works with other DBs (Postgresql, MySQL and oracle).

Anyone have ANY clues as to what my be happening?

R

Charles Anthony wrote:

-----Original Message-----
From: Thomas Mahler [mailto:[EMAIL PROTECTED]
Sent: 12 April 2004 07:06
To: OJB Users List
Subject: Re: HSQLDB Issue



[...]




The other issue is that I can't seem to find a way to get

OJB to find

the hsqldb script and data files directly within the exploded war directory. What's the trick there? I want to be able to

deliver a war

file to users, have it explode, then the app is just up and

running with

no configuration necessary... what's the trick?


This is not an OJB issue, it's caused by HSQLDB.
I've been looking for this feature for ages! This would make usage of hsqldb extremely simple in web apps!
The bad news is that I don't think that it is possible with current versions of HSQLDB.
You have to use the complete filesystem path in the OJB connection descriptor.



I am sure I'm missing something, but couldn't you just use the classloader
to find the location of the database ?


Assuming the database was called "mydb", I believe the following should work
out the jdbc URL of the HSQL DB :

   ClassLoader cl = Thread.currentThread().getContextClassLoader();
   URL url = cl.getResource("mydb.properties");
   /* URL probably is file://pathtothefile  */
   if(url!=null){
     /* Get rid of the leading '/' - probably not required on non-windows
os's */
     String path = url.getPath().substring(1);

     /* Remove the .properties from the end */
     path = path.substring(0, path.lastIndexOf('.'));

String databaseUrl = "jdbc:hsqldb:" + path;
}


You could then dynamically modify the Connection descriptor in the metadata.

I, myself, think it's a bit dodgy to assume that the WAR file is definitely
exploded. I would suggest that you use the classloader (and a bit more
jiggery-pokery) to copy the database from the WAR to a temporary directory -
a bit more complex, but probably safer (but then, what happens when the
OS/restarts ? the db disappears.)

Cheers,

Charles.




:-( Maybe we should approach the hsqldb guys to add this feature?

cheers,
Thomas




[ERROR] SequenceManagerHighLowImpl - -Can't lookup new

HighLowSequence

for field browserID using sequence name SEQ_CDPCNO_BROWSERS <org.apache.ojb.broker.PersistenceBrokerException: Can't lookup a connection: Can't get connection from DBCP-DataSource: java.util.NoSuchElementException>java.sql.SQLException: java.util.NoSuchElementException
at




org.apache.commons.dbcp.PoolingDataSource.getConnection(Poolin
gDataSource.java:112)


at



org.apache.ojb.broker.accesslayer.ConnectionFactoryDBCPImpl.ge
tConnectionFromPool(ConnectionFactoryDBCPImpl.java:56)


at



org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImp
l.lookupConnection(ConnectionFactoryAbstractImpl.java:101)


at



org.apache.ojb.broker.accesslayer.ConnectionManagerImpl.getCon
nection(ConnectionManagerImpl.java:144)


at



org.apache.ojb.broker.accesslayer.ConnectionManagerImpl.localB
egin(ConnectionManagerImpl.java:186)



The sql for the tables is, maybe I got the wrong ones? (Got


them from

the OJB samples)

CREATE TABLE OJB_HL_SEQ(TABLENAME VARCHAR(175) NOT NULL,FIELDNAME VARCHAR(70) NOT NULL,MAX_KEY INTEGER,GRAB_SIZE INTEGER,VERSION INTEGER,CONSTRAINT SYS_PK_OJB_HL_SEQ PRIMARY

KEY(TABLENAME,FIELDNAME))


CREATE TABLE OJB_LOCKENTRY(OID_ VARCHAR(250) NOT NULL,TX_ID

VARCHAR(50)

NOT NULL,TIMESTAMP_ TIMESTAMP,ISOLATIONLEVEL INTEGER,LOCKTYPE INTEGER,CONSTRAINT SYS_PK_OJB_LOCKENTRY PRIMARY KEY(OID_,TX_ID))
CREATE TABLE OJB_NRM(NAME VARCHAR(250) NOT NULL PRIMARY KEY,OID_ LONGVARBINARY)
CREATE TABLE OJB_DLIST(ID INTEGER NOT NULL PRIMARY


KEY,SIZE_ INTEGER)


CREATE TABLE OJB_DLIST_ENTRIES(ID INTEGER NOT NULL PRIMARY

KEY,DLIST_ID

INTEGER,POSITION_ INTEGER,OID_ LONGVARBINARY)
CREATE TABLE OJB_DSET(ID INTEGER NOT NULL PRIMARY KEY,SIZE_ INTEGER)
CREATE TABLE OJB_DSET_ENTRIES(ID INTEGER NOT NULL PRIMARY


KEY,DLIST_ID

INTEGER,POSITION_ INTEGER,OID_ LONGVARBINARY)
CREATE TABLE OJB_DMAP(ID INTEGER NOT NULL PRIMARY KEY,SIZE_ INTEGER)
CREATE TABLE OJB_DMAP_ENTRIES(ID INTEGER NOT NULL PRIMARY


KEY,DMAP_ID

INTEGER,KEY_OID LONGVARBINARY,VALUE_OID LONGVARBINARY)


TIA R




---------------------------------------------------------------------


To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]






___________________________________________________________
HPD Software Ltd. - Helping Business Finance Business
Email terms and conditions: www.hpdsoftware.com/disclaimer




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to