[ 
http://issues.apache.org/jira/browse/IBATIS-318?page=comments#action_12420428 ] 

adamb commented on IBATIS-318:
------------------------------

We can get iBATIS to operate across threads by making the 
SqlMapClientImpl.getLocalSqlMapSession() protected instead of private, and then 
in a subclass override that method so that it gets the session from a static 
HashMap, based on a session key that is passed in to the constructor of the 
subclass.
This has stopped rogue connections from being autocreated.

> Transaction demarcated accross multiple threads...
> --------------------------------------------------
>
>          Key: IBATIS-318
>          URL: http://issues.apache.org/jira/browse/IBATIS-318
>      Project: iBatis for Java
>         Type: Bug

>   Components: SQL Maps
>     Versions: 2.1.5
>     Reporter: adamb

>
> We are using iBATIS in the following way:
> send the server a message which will do a SqlMap.startTransaction()
> ...
> some time later
> ...
> send the server a message which will do a SqlMap.<some sql operation>
> ...
> If we set:
> Pool.MaximumActiveConnections=1
> Then we hit problems if the thread that does operations on the SqlMap is 
> different to the thread which started the transaction
> because
> SqlMapClientImpl.getLocalSqlMapSession()
> stores the session in a Threadlocal so it finds no session and attempts to 
> automatically create a new one, but since the max connections has been 
> reached it fails.

-- 
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