Just so other know,
I was trying to test performance of messages persistence across a couple of database engine (Hypersonic, PostgreSQL, MySQL and Oracle). So i've made a simple program to create N subscriber and publish N messages. I've also create a JBoss instance for each of those database. Everything works fine on all database except orable which was always throwing at .publish(message) "java.sql.SQLException: Io Exception: Connection reset).
After spending almost a day trying to figured out what was wrong with my oracle configuration, I manage to get that it was the size of my message (a typical xml message in our current application of 7382 bytes) was to big for the "messageblob" field in the "jms_message" table.
So I needed to change the type of "jms_message.messageblob" from "blob" to "long raw" in server/default/jms/hsqldb-jdbc2-service.xml.
But in Oracle documentation they "strongly recommends" that we use "BLOB" as a replacement of "LONG RAW".
http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96540/sql_elements2a.htm#46020
So why is BLOB failing?
Problem fixed.
The problem was on the Oracle JDBC driver.
We are using: Oracle9i Release 9.2.0.2.1 - Production
and jdbc driver: 9.2.0.8.0
fixed using jdbc driver: 10.2.0.2.0
So now I can use BLOB data type.