-
Bug
-
Resolution: Done
-
Critical
-
4.3.0.GA_CP07
-
None
-
« Hide
MS SQL Server 2005 or 2008
MS JDBC drivers 2.0
-
Workaround Exists
-
-
Low
Over 700 tests fail on the MS SQL Server with MS JDBC driver 2.0. Problem is caused by following lines in the source code.
Class: src/main/org/jboss/messaging/core/impl/JDBCPersistenceManager.java
Method: getBytes(ResultSet rs, int columnIndex)
Lines: 2510 - 2515.
InputStream i = rs.getBinaryStream(columnIndex);
if (i == null)
{ return null; }is = new BufferedInputStream(rs.getBinaryStream(columnIndex),
BUFFER_SIZE);
Should be fixed as:
InputStream i = rs.getBinaryStream(columnIndex);
if (i == null) { return null; }
is = new BufferedInputStream(i, BUFFER_SIZE);
Description:
Problem is caused by JDBC's Adaptive buffering which is default buffering mode in the MS JDBC version 2.0 (in previous version of JDBC was ,,full buffering mode").
Column can be accessed by the getXXXStream only once in the Adaptive buffering mode. The second attempt causes exception.
Please see http://msdn.microsoft.com/en-us/library/bb879937.aspx
- duplicates
-
JBPAPP-2571 Unstable JBM testsuite builds with MS SQL server and MS JDBC drivers 2.0
- Closed
- is duplicated by
-
JBPAPP-3901 JBoss Messaging does not work with MS SQL Server 2005/2008 with MS JDBC driver 2.0 in default JDBC configuration
- Closed