If parameter bean does a query in property reader, causes premature return to 
connection pool
---------------------------------------------------------------------------------------------

         Key: IBATIS-233
         URL: http://issues.apache.org/jira/browse/IBATIS-233
     Project: iBatis for Java
        Type: Bug
    Versions: 2.1.5    
 Environment: OS: Windows XP, Windows 2000
JDK: 1.3.1, 1.4.2
DBMS: SQL Server 2000, Derby
Application Server: Weblogic 6.1 SP4

    Reporter: Jason Erickson


If you have a bean with a getter that makes an iBATIS call, and you use that 
bean as a parameter bean in another iBATIS call, iBATIS calls the getter while 
preparing the main statement which prepares another statement to populate the 
getter.  After that, the connection is returned to the pool.  Then the main 
prepared statement is executed and a SQLException is thrown.  

The message depends on the driver, but jtds error message is, "Error accessing 
SimplePooledConnection.  Connection has been invalidated (probably released 
back to the pool)."  When using the Weblogic application server for connection 
pool, the error message is, "Connection has already been closed."

The workaround is to put a transaction around the main call, but it can be 
quite difficult to know in advance if this will be a problem.  (In our 
particular case, we had a rather expensive query called inside a cache object.  
Then we had a getter call the cache, so this only occurred when this query was 
the next query called after the cache had been marked "dirty" so the next call 
to it would reinitialize it (i.e. make another iBATIS call).



-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to