Re: Method cleanup failed while trying to execute method cleanup on ManagedConnection



Thanks for the information. I was afraid I was going to have to go through
all the code to make some tweak everytime a connection was used.

"Joe Weinstein" <joeNOSPAM@xxxxxxx> wrote in message
news:454B8463.8060809@xxxxxxxxxx


Scott Herter wrote:

I am using SQL Server 2005 standard edition. Here is the version
information in the logs

Database product version : 9.00.2153
JDBC driver name : Microsoft SQL Server 2005 JDBC Driver
JDBC driver version : 1.1.1501.101

We are connecting using the XA data source for pooling through IBM
WebSphere Application Server 5.1.1.10. Our application seems to be
working fine but every time a connection is closed we get a stack trace
in the log indicating that destroy failed and that a method is not
supportd with "Caused by: java.sql.SQLException: This operation is not
supported.DSRA0010E: SQL State = null, Error Code = 0". I have tried
searching for SQL Stat = null, Error code = 0 and gotten no hits. We
have used the same set up but using the SQL Server 2000 JDBC driver
talking to a SQL Server 2000 database without a problem, the only
difference is we switched it to use SQL Server 2005. Does anybody know
what could be causing this? Is there some change we need to make to our
code that 2005 needs that worked with 2000?

Thanks.

Hi. It's a bug in the driver. WebSphere could do a better job too
though...
The WebSphere pool code is trying to make sure a connection is in it's
default state for the next user. Presumably it called
Connection.getTypeMap()
before giving it to user code, and now that the connection is back from
user code, the pool is resetting the type map to the default, in case your
code had changed it.
I verified that the MS driver's getTypeMap() works fine, returning an
empty Map, but c.setTypeMap( c.getTypeMap() ) fails with the exception
you're getting. The driver should at least accept it's own default type
map, but WebSphere could do better to detect when a connection state-
changing call was made by user code, and only do the reset calls that
were actually needed in a particular case.

Joe Weinstein at BEA Systems.


.



Relevant Pages


Loading