[ http://issues.apache.org/jira/browse/IBATIS-318?page=all ] Jeff Butler closed IBATIS-318: ------------------------------
Resolution: Invalid This is working as designed. You cannot have a transaction that spans threads. If you want to do something like this you'll have to guarantee thread affinity. But I would suggest not doing this. You would have the same issue in many transaction managers - because most of them use a ThreadLocal. > 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