[BioSQL-l] Re: MORE Oracle BioSQL & BioJava problems

Hilmar Lapp hlapp at gnf.org
Mon Aug 9 12:25:17 EDT 2004


This smells like a problem with one of the LOB columns, which is  
Anncomment.Comment_Text and Biosequence.Seq, and the stack trace looks  
like it's the Seq column (which holds the sequence).

LOB columns in Oracle need to be streamed if they are over 4000 chars  
(otherwise the server can do the conversion). I believe the more recent  
versions of the Oracle JDBC driver do that transparently behind the  
scenes if you call {set,get}String() on a column that in reality is a  
LOB.

Are you by any chance trying to communicate with a 9i+ database using  
an 8i driver?

	-hilmar

On Monday, August 9, 2004, at 09:03  AM, Michael Griffith wrote:

> Hi,
>
> I have been trying to get the latest BioSQL (Oracle) and BioJava to  
> play
> nicely -- and I feel that I am close, but I am still getting errors.   
> I am
> trying to read a GenBank file to the Oracle BioSQL schema with the  
> following
> code:
>
> SequenceDB db = new BioSQLSequenceDB(dbDriver, dbURL, dbUser, dbPass
> biodatabase, create);
>
>     SequenceIterator iter =
>             (SequenceIterator)SeqIOTools.fileToBiojava(format, alpha,  
> br);
>    int counter= 0;
>
>     while (iter.hasNext()) {
>
>         Sequence seq = iter.nextSequence();
>
>         try {
>             db.addSequence(seq);
>         }
>         catch (Exception e) {
>             e.printStackTrace();
>         }
>         ...
>     }
>
> This code works perfectly well with the mySQL version of the bio-sql  
> schema,
> however with the oracle version, I get the following SQLException  
> stack.
>
> The loop loads about 65 of the first 70 records, and hangs on record  
> #71,
> every time.  What is puzzling, is I have never had any sort of these  
> kinds
> of errors with any other Java/Oracle application.
>
>  [java] org.biojava.bio.BioRuntimeException: Error adding sequence:
> NM_019764
>      [java]     at
> org.biojava.bio.seq.db.biosql.BioSQLSequenceDB._addSequence(BioSQLSeque 
> nceDB
> .java:498)
>      [java] Trying to add: NM_021274 to the database -- insert attemp  
> #:71
>      [java]     at
> org.biojava.bio.seq.db.biosql.BioSQLSequenceDB.addSequence(BioSQLSequen 
> ceDB.
> java:365)
>      [java]     at
> com.gts.genebank.GeneralReader.main(GeneralReader.java:74)
>      [java] Caused by: java.sql.SQLException: No more data to read from
> socket
>      [java]     at
> oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
>      [java]     at
> oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
>      [java]     at
> oracle.jdbc.dbaccess.DBError.check_error(DBError.java:1160)
>      [java]     at
> oracle.jdbc.ttc7.MAREngine.unmarshalUB1(MAREngine.java:963)
>      [java]     at
> oracle.jdbc.ttc7.MAREngine.unmarshalSB1(MAREngine.java:893)
>      [java]     at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:369)
>      [java]     at
> oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1891)
>      [java]     at
> oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1093)
>      [java]     at
> oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java 
> :2047
> )
>      [java]     at
> oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java: 
> 1940)
>      [java]     at
> oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement 
> .java
> :2709)
>      [java]     at
> oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePrepared 
> State
> ment.java:589)
>      [java]     at
> org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(Deleg 
> ating
> PreparedStatement.java:233)
>      [java]     at
> org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(Deleg 
> ating
> PreparedStatement.java:233)
>      [java]     at
> org.biojava.bio.seq.db.biosql.BioSQLSequenceDB._addSequence(BioSQLSeque 
> nceDB
> .java:455)
>      [java]     ... 2 more
>
> Any help would be greatly appreciated!
>
> Cheers!
>
> MG
>
>
-- 
-------------------------------------------------------------
Hilmar Lapp                            email: lapp at gnf.org
GNF, San Diego, Ca. 92121              phone: +1-858-812-1757
-------------------------------------------------------------




More information about the BioSQL-l mailing list