[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