-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 
Author Message
 Post subject: Problem mit Oracle BLOBs nach Verbindungsabriß
PostPosted: Wed Feb 27, 2008 8:19 am 
Newbie

Joined: Wed Feb 27, 2008 8:08 am
Posts: 3
Hallo,

Ich habe folgendes Problem mit Hibernate: Wir laufen zyklisch durch Einträge in einer Tabelle und lesen die dort hinterlegten BLOB Felder aus einer Oracle Datebank aus. Zu Beginn arbeitet die Applikation ohne Probleme. Nach einem Verbindungsabriß zur Datenbank kann nicht mehr auf die BLOB Felder zugegriffen werden. Die Verbindung zur Datenbank wird nach dem Abriß wieder hergestellt und die Einzelnen Objekte können auch ausgelesen werden, wird allerdings auf die BLOB Felder zugegriffen wird eine Exception geschmißen dass die Verbindung beendet ist.

Versionen:

Hibernate Version: 3.2.5.ga
C3P0 Version: 0.9.1.2
OJDBC: 10.2.0.3
Datenbank: Oracle 10g

Hibernate Konfiguration:

hibernate.connection.username=xxx
hibernate.connection.url=jdbc:oracle:thin:@dbserver3:1521:dball10g
hibernate.dialect=org.hibernate.dialect.Oracle10gDialect
hibernate.connection.password=xxx
hibernate.connection.driver_class=oracle.jdbc.driver.OracleDriver

hibernate.show_sql=true
hibernate.c3p0.min_size=1
hibernate.c3p0.max_size=2
hibernate.c3p0.max_statements=50
hibernate.c3p0.timeout=1800
hibernate.c3p0.idle_test_period=20
hibernate.c3p0.acquire_increment=2

hbm.xml:
Code:
    <property name="data" type="blob">
        <column name="DATA"/>
    </property> 


Exception:

12:34:09 [APPLICATION] [DBAreaDataSynchronisator] [FATAL] Es trat ein Fehler beim Abfragen der Daten aus der Datenbank auf. com.desoft.log.DEException: Es trat ein Fehler beim Abfragen der Daten aus der Datenbank auf.
at com.desoft.log.DEException.createFatalException(DEException.java:74)
at com.desoft.fccbvis.jobController.synchronisation.DBAreaDataSync.doSynchronisation(DBAreaDataSync.java:114)
at com.desoft.fccbvis.jobController.synchronisation.DBSynchronisator.doSynchronization(DBSynchronisator.java:178)
at com.desoft.fccbvis.jobController.synchronisation.DBSynchronisator.run(DBSynchronisator.java:137)
at java.lang.Thread.run(Thread.java:534)
java.sql.SQLException: Getrennte Verbindung
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
at oracle.sql.BLOB.getDBAccess(BLOB.java:955)
at oracle.sql.BLOB.length(BLOB.java:155)
at org.hibernate.lob.SerializableBlob.length(SerializableBlob.java:31)
at com.desoft.fccbvis.jobController.synchronisation.DBAreaDataSync.doSynchronisation(DBAreaDataSync.java:80)
at com.desoft.fccbvis.jobController.synchronisation.DBSynchronisator.doSynchronization(DBSynchronisator.java:178)
at com.desoft.fccbvis.jobController.synchronisation.DBSynchronisator.run(DBSynchronisator.java:137)
at java.lang.Thread.run(Thread.java:534)

Code:
Code:
TAreaDataGroup currentAreaGroup = (TAreaDataGroup)areaGroups.get(groupIndex);
            System.out.println(currentAreaGroup.toString());

            TAreaDataBlobDAO areaDataBlob = BVISDAOFactory.getInstance().getAreaDataBlobDAO();
            List areaDataBlobs = areaDataBlob.findDataBlobFromGroup(currentAreaGroup, m_Type);

            for(int dataIndex = 0; dataIndex < areaDataBlobs.size(); dataIndex++)
            {
                try
                {
                    TAreaDataBlob currentAreaDataBlob = (TAreaDataBlob)areaDataBlobs.get(dataIndex);
                    InputStream inputStream = new ByteArrayInputStream(currentAreaDataBlob.getData().getBytes((long)1,
                            (new Long(currentAreaDataBlob.getData().length())).intValue()));
[...]


Auch schon probiert:
InputStream inputStream = currentAreaDataBlob.getData().getByteStream();

Selbes Ergebnis.

Ich hoffe ihr könnt mir helfen!

THX!


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.