[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [xmlblaster] error report in JdbcManagerCommonTable.java when using database for durable subscriptions
pikaiyuan wrote:
> Hi,Marcel
>
> I had found something report error when I using an oracle database for
> durable subscriptions(every message needs to be stored is about 5000k).the errors are:
>
> [2003-8-23 11:19:41 WARN JdbcManagerCommonTable-XB_-xmlBlaster_192_168_80_11_3412-msgUnitStore_i
> nforMessaging_192_168_80_11_3412sblszsnsrxx-addEntry()] Could not insert entry 'org.xmlBlaster.e
> ngine.MsgUnitWrapper'-'sblszsnsrxx/2003-08-23 11:19:41.353000001-1060053581353000001': java.sql.SQLE
> xception: inserted value too large for column: 18998
> [2003-8-23 11:19:42 ERROR org.xmlBlaster.engine.msgstore.cache.PersistenceCachePlugin-msgUnitStor
> e:xmlBlaster_192_168_80_11_3412/sblszsnsrxx] put: an error occured when writing to the persisten
> t queue, transient entry sblszsnsrxx/2003-08-23 11:19:41.353000001 is not swapped and will be lost.
> Is the DB up and running ? xmlBlasterException errorCode=[resource.db.unknown] serverSideExcepti
> on=true node=[xmlBlaster_192_168_80_11_3412] location=[JdbcManagerCommonTable.addEntry] message=
> [An unknown error with the backend database using JDBC occurred : java.sql.SQLException: inserted
> value too large for column: 18998] state:
> <PersistenceCachePlugin id='msgUnitStore:xmlBlaster_192_168_80_11_3412/sblszsnsrxx' type='CACHE
> ' version='1.0' numOfEntries='95' numOfBytes='2094335'>
> <MapPlugin id='msgUnitStore:xmlBlaster_192_168_80_11_3412/sblszsnsrxx' type='RAM' version='1.0
> ' numOfEntries='95' numOfBytes='2094335'>
> <persistence relating='msgUnitStore' maxEntries='1000000' maxEntriesCache='1000000' maxBytes='209
> 7152'/>
> </MapPlugin>
> <JdbcQueueCommonTablePlugin id='msgUnitStore:xmlBlaster_192_168_80_11_3412/sblszsnsrxx' type='
> JDBC' version='1.0' numOfEntries='0' numOfBytes='0'>
> <persistence relating='msgUnitStore' maxEntries='100000000' maxEntriesCache='1000000'/>
> <numOfPersistentsCached>0</numOfPersistentsCached>
> <sizeOfPersistentsCached>0</sizeOfPersistentsCached>
> <numOfEntriesCached>0</numOfEntriesCached>
> <numOfBytesCached>0</numOfBytesCached>
> <numOfEntries>0</numOfEntries>
> <numOfBytes>0</numOfBytes>
> <numOfPersistents>0</numOfPersistents>
> <sizeOfPersistents>0</sizeOfPersistents>
> </JdbcQueueCommonTablePlugin>
> </PersistenceCachePlugin>
>
> i had modified some codes in JdbcManagerCommonTable.java, and the problem is solved.
> the modification are:
> //preStatement.setBytes(5, blob);
> //use this bytes array to construct a InputStream
> ByteArrayInputStream blob_stream = new ByteArrayInputStream(blob) ;
> // preStatement.setBytes(5, blob);
> preStatement.setBinaryStream(5, blob_stream,(int)sizeInBytes);
>
> In my option,setBytes mothed is limited by length of blob object, but setBinaryStream not.
>
> Marcel, any problem in my modification?
Thanks for this big fix.
If Michele approves it (check other databases) he will fix it in our cvs.
regards,
Marcel
>
> regards
>
> pikaiyuan
> pi_kyuan at cvicse.com
> 2003-08-25
>
>
>
--
http://www.xmlBlaster.org