I'm facing the same issue with apache-activemq-4.1.0 right now.
I have faced something simillar earlier.
looks like it's coded in Oracle driver to accept nothing greater than 4K as
a blob/byte[]/clob/char[]

below is how i fixed it (came across the solution somewhere i guess) : 

                                        // create an empty blob and execute the 
statement ... do retain the
identifier for the row
                                        oracle.sql.BLOB blob = 
oracle.sql.BLOB.empty_lob();
                                        ps.setBlob(4, blob);
                                        ps.execute();


                                        //use the identifier retained above to 
get the handle to the empty blob         
and write the blobData (>4k)
                                        PreparedStatement st =
connection.prepareStatement(getBlobHandleForOracleQuery);
                                        st.setInt(1, rowID);
                                        
                                        ResultSet rs = st.executeQuery();
                                        rs.next();
                                        blob = (oracle.sql.BLOB)rs.getBlob(1);
                                        OutputStream os = 
blob.getBinaryOutputStream();
                                        try {
                                                os.write(blobData);
                                                os.flush();
                                                os.close();
                                        } catch (IOException e) {
                                                e.printStackTrace();
                                                throw new SQLException("Error 
in writing BLOB data :
"+e.getMessage());
                                        }
                                        

This happens only with oracle (far as i'v seen .. sybase and mysql are good
with bigger data as well).

Regards
Vipul



James.Strachan wrote:
> 
> On 3/30/07, ron55test <[EMAIL PROTECTED]> wrote:
>>
>> The column is of type blob.
>> This is what the table structure is as created by activemq:
>>   CREATE TABLE ACTIVEMQ_MSGS"
>>    (    "ID" NUMBER(32,0) NOT NULL ENABLE,
>>         "CONTAINER" VARCHAR2(250),
>>         "MSGID_PROD" VARCHAR2(250),
>>         "MSGID_SEQ" NUMBER(32,0),
>>         "EXPIRATION" NUMBER,
>>         "MSG" BLOB,
>>          PRIMARY KEY ("ID")
>> )
> 
> It looks like the BLOB type is 4Gb long
> http://www.ss64.com/orasyntax/datatypes.html
> 
> so I'm not sure thats the problem. I suspect it may be due to the  way
> in which the JDBC code works with the BLOB column type. This article
> appears to suggest that the preferred way to work with Oracle BLOBs is
> using the Blob type
> http://www.onjava.com/lpt/a/1370
> 
> so I've patched trunk of the Oracle adapter to use this approach
> instead. Any chance you could build trunk and see if this fixes your
> issue?
> 
> I've raised this issue to track the issue
> http://issues.apache.org/activemq/browse/AMQ-1216
> 
> -- 
> 
> James
> -------
> http://radio.weblogs.com/0112098/
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Data-size-bigger-than-max-size-for-this-type-tf3489299s2354.html#a9878741
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to