You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jena.apache.org by Aaron Jackson <aa...@blueslate.net> on 2013/04/04 19:46:54 UTC

SDB error

Hi,

We are using SDB (1.3.5-SNAPSHOT) backed by Oracle to store and access
triples, and encountered this error:

[ERROR]- Error in thread: Problem making new tupleloader
com.hp.hpl.jena.sdb.SDBException: Problem making new tupleloader
 at
com.hp.hpl.jena.sdb.layout2.LoaderTuplesNodes.updateOneTuple(LoaderTuplesNodes.java:292)
 at
com.hp.hpl.jena.sdb.layout2.LoaderTuplesNodes.access$200(LoaderTuplesNodes.java:43)
 at
com.hp.hpl.jena.sdb.layout2.LoaderTuplesNodes$Commiter.run(LoaderTuplesNodes.java:362)
 at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.reflect.InvocationTargetException
 at sun.reflect.GeneratedConstructorAccessor403.newInstance(Unknown Source)
 at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
 at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
 at
com.hp.hpl.jena.sdb.layout2.LoaderTuplesNodes.updateOneTuple(LoaderTuplesNodes.java:288)
 ... 3 more
Caused by: com.hp.hpl.jena.sdb.SDBException: Problem initialising loader
for [Quads]
 at
com.hp.hpl.jena.sdb.layout2.TupleLoaderBase.<init>(TupleLoaderBase.java:59)
 at
com.hp.hpl.jena.sdb.layout2.hash.TupleLoaderHashBase.<init>(TupleLoaderHashBase.java:29)
 at
com.hp.hpl.jena.sdb.layout2.hash.TupleLoaderHashOracle.<init>(TupleLoaderHashOracle.java:34)
 ... 7 more
Caused by: java.sql.SQLSyntaxErrorException: ORA-00955: name is already
used by an existing object

 at
oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:91)
 at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:133)
 at
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:206)
 at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:455)
 at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:413)
 at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:1034)
 at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:183)
 at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:942)
 at
oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1222)
 at
oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:1770)
 at oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1739)
 at
oracle.jdbc.driver.OracleStatementWrapper.execute(OracleStatementWrapper.java:299)
 at com.hp.hpl.jena.sdb.sql.SDBConnection.exec(SDBConnection.java:183)
 at
com.hp.hpl.jena.sdb.layout2.TupleLoaderBase.createTempTables(TupleLoaderBase.java:344)
 at
com.hp.hpl.jena.sdb.layout2.TupleLoaderBase.ensureTempTables1(TupleLoaderBase.java:368)
 at
com.hp.hpl.jena.sdb.layout2.TupleLoaderBase.ensureTempTables(TupleLoaderBase.java:351)
 at
com.hp.hpl.jena.sdb.layout2.TupleLoaderBase.init(TupleLoaderBase.java:64)
 at
com.hp.hpl.jena.sdb.layout2.TupleLoaderBase.<init>(TupleLoaderBase.java:57)

The documentation on ORA-00955 is this:


ORA-00955 name is already used by an existing object

Cause: An attempt was made to create a database object (such as a table,
view, cluster, index, or synonym) that already exists. A user's database
objects must have distinct names.

Action: Enter a unique name for the database object or modify or drop the
existing object so it can be reused.


We do have multiple threads potentially creating new Stores and SDB models
to the same underlying named models.  Also, we tend to see Oracle churning
quite heavily (70% internal usage) during operation.  Is SDB creating
indexes or constraints on the fly as data is inserted?

Thanks,

Aaron

-- 
Aaron Jackson
Lead Solution Architect
Blue Slate Solutions | Phone: 518.810.0372 | Cell: 845.392.6923
Email: aaron.jackson@blueslate.net | www.blueslate.net

Re: SDB error

Posted by Aaron Jackson <aa...@blueslate.net>.
Thanks for the reply.  I will make sure we are closing the models and
stores before opening new ones.

A related question:

This error is occurring in a thread that we are not spawning, and none of
our code shows up in the trace.  We also don't get any subsequent null
pointers or anything, so the objects we are using (Stores and Models) are
still being created.  What is the impact of this error?  Does it leave us
with a Store or Model that appears to be valid but will fail if used?  I'm
not seeing errors anywhere else in our stack, except for the fact that at
least one insert seems to have silently failed around the same time this
error happened.

Thanks,

Aaron

On Thu, Apr 4, 2013 at 7:29 PM, Damian Steer <d....@bris.ac.uk> wrote:

>
> On 4 Apr 2013, at 18:46, Aaron Jackson <aa...@blueslate.net>
> wrote:
>
> > Hi,
>
> Hi there,
>
> > We are using SDB (1.3.5-SNAPSHOT) backed by Oracle to store and access
> > triples, and encountered this error:
>
> ....
>
> > Caused by: java.sql.SQLSyntaxErrorException: ORA-00955: name is already
> > used by an existing object
>
> ...
>
> >
> com.hp.hpl.jena.sdb.layout2.TupleLoaderBase.createTempTables(TupleLoaderBase.java:344)
>
> > We do have multiple threads potentially creating new Stores and SDB
> models
> > to the same underlying named models.  Also, we tend to see Oracle
> churning
> > quite heavily (70% internal usage) during operation.  Is SDB creating
> > indexes or constraints on the fly as data is inserted?
>
> Each SDB store has an associated loader. The loader uses temporary tables
> suppress duplicates in the node and tuple tables -- these loader tables are
> very plain, no indexes or constraints.
>
> What might cause your problem is reusing db connections with different
> stores -- although it ought to work if you close the store. Alternatively
> it may also be that temporary tables are visible between connections (I've
> been bitten by that on some databases).
>
> Damian




-- 
Aaron Jackson
Lead Solution Architect
Blue Slate Solutions | Phone: 518.810.0372 | Cell: 845.392.6923
Email: aaron.jackson@blueslate.net | www.blueslate.net

Re: SDB error

Posted by Damian Steer <d....@bris.ac.uk>.
On 4 Apr 2013, at 18:46, Aaron Jackson <aa...@blueslate.net> wrote:

> Hi,

Hi there,

> We are using SDB (1.3.5-SNAPSHOT) backed by Oracle to store and access
> triples, and encountered this error:

....

> Caused by: java.sql.SQLSyntaxErrorException: ORA-00955: name is already
> used by an existing object

...

> com.hp.hpl.jena.sdb.layout2.TupleLoaderBase.createTempTables(TupleLoaderBase.java:344)

> We do have multiple threads potentially creating new Stores and SDB models
> to the same underlying named models.  Also, we tend to see Oracle churning
> quite heavily (70% internal usage) during operation.  Is SDB creating
> indexes or constraints on the fly as data is inserted?

Each SDB store has an associated loader. The loader uses temporary tables suppress duplicates in the node and tuple tables -- these loader tables are very plain, no indexes or constraints.

What might cause your problem is reusing db connections with different stores -- although it ought to work if you close the store. Alternatively it may also be that temporary tables are visible between connections (I've been bitten by that on some databases).

Damian