Thanks so much Francois, I appreciate the effort you applied to validating this.
Cheers, Clinton 2010/5/14 François Schiettecatte <fschietteca...@gmail.com> > Clinton > > Ok this is interesting, I was able to reliably replicate the problem, I > even grabbed the source code and included in the source code tree of my > application and still got the issue, but... the server I am running this one > was rebooted due to a power failure and now the problem has gone away... I > blame cosmic rays at this point... > > So this is not an issue. > > Cheers > > François > > > On May 8, 2010, at 9:41 AM, Clinton Begin wrote: > > > Hi Francois, > > > > I can't recreate this problem. I've verified in about 1000 unit tests > with different configurations that close is being called. The only known > and verified case of this was with the ManagedTransaction, not the > JdbcTransaction. > > > > Perhaps you can put together a simple unit test with HSQLDB or Derby (our > two unit testing DBs) and zip it up and attach it to a ticket. Please let > me know, as I won't cut a release with a bug this serious, if it can be > verified. > > > > Cheers, > > Clinton > > > > 2010/5/7 François Schiettecatte <fschietteca...@gmail.com> > > Clinton > > > > Thanks for pinging me. > > > > I have not had a chance to look at it, and it is still an issue, before > rushing out and creating a jira ticket for it I wanted to look at the code > diffs between the two releases, I will try to get to it later today or this > WE. > > > > François > > > > On May 7, 2010, at 10:33 AM, Clinton Begin wrote: > > > > > Let me know if this is still a problem, and create a JIRA ticket if it > is. I should have some time this weekend to look into it. > > > > > > Clinton > > > > > > On Wed, May 5, 2010 at 9:16 PM, Clinton Begin <clinton.be...@gmail.com> > wrote: > > > Two things to do: > > > > > > * Create a JIRA ticket for this. We'll continue conversation and > > > investigation there. > > > > > > * Mount the source and step through one example transaction. See if > > > you can verify that close isn't being called, and possibly why. > > > > > > * Finally, out of curiosity, disable caching globally, and see if the > > > problem remains. > > > > > > I did find one refactoring that is in this area. I'll attempt to > > > recreate and verify this too. > > > > > > Clinton > > > > > > 2010/5/5 François Schiettecatte <fschietteca...@gmail.com>: > > > > Clinton > > > > > > > > A little more information on this, I reverted back to 240 and the > problem I reported did not occurs after a 24 hour run. I then went to the > current release and the problem reappeared, everything else is the same, so > there is an issue. > > > > > > > > What it looks like is going on is that connections are not being put > back into the connection pool after they are closed and so time out when > they are subsequently used by iBatis. MySQL is set to close connections > after 60 seconds and the pool is set to close them after being idle for 50 > seconds. Yet what I am seeing is that connections are being used quite some > time after the last packets have been sent over the wire: > > > > > > > > ### Error querying database. Cause: > com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link > failure > > > > The last packet successfully received from the server was 60,858 > milliseconds ago. The last packet sent successfully to the server was 0 > milliseconds ago. > > > > ### The error may involve > dictionaries.Category.selectObjectByCategoryID-Inline > > > > ### The error occurred while setting parameters > > > > ### Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: > Communications link failure > > > > > > > > What it feels like is that iBatis is hanging onto the connection and > reusing it at a later time. > > > > > > > > What do you need from me to track this down? > > > > > > > > Cheers > > > > > > > > François > > > > > > > > > > > > > > > > On May 1, 2010, at 4:28 PM, Clinton Begin wrote: > > > > > > > >> Then no, I don't believe there have been any changes related to > > > >> connections or transactions between those versions. You can have a > > > >> look at the change log if you like: > > > >> > > > >> > https://issues.apache.org/jira/secure/BrowseProject.jspa?id=10601&subset=-1 > > > >> > > > >> Or the subversion history as well. > > > >> > > > >> Clinton > > > >> > > > >> 2010/5/1 François Schiettecatte <fschietteca...@gmail.com>: > > > >>> I am using JDBC, with C3P0 as my data source. > > > >>> > > > >>> Cheers > > > >>> François > > > >>> > > > >>> On May 1, 2010, at 4:14 PM, Clinton Begin wrote: > > > >>> > > > >>>> The only code changes related to that were with managed > transactions. > > > >>>> Which transacion manager are you using? (JDBC or MANAGED)? > > > >>>> > > > >>>> Cheers, > > > >>>> Clinton > > > >>>> > > > >>>> 2010/5/1 François Schiettecatte <fschietteca...@gmail.com>: > > > >>>>> Hi > > > >>>>> > > > >>>>> I grabbed the latest, greatest release of 3.0 from : > > > >>>>> > > > >>>>> > http://people.apache.org/builds/ibatis/ibatis-3-core/ibatis-core-3.0-bundle.zip > > > >>>>> > > > >>>>> and am now getting an exception from time to time, but I was not > getting it with the previous 3.0 beta release (240). I was wondering if > there had been any change in the code which deals with connections and pool > between those two releases. What it looks like to me is that connections are > not being returned to the pool after I close the SqlSession. I have mysql > set to timeout idle connections after 60 seconds and the connection pool to > time out idle connections after 50 seconds. Again this was not an issue in > 240. > > > >>>>> > > > >>>>> Any suggestions? > > > >>>>> > > > >>>>> Cheers > > > >>>>> > > > >>>>> François > > > >>>>> > > > >>>>> > > > >>>>> 2010-05-01 01:54:20,609 [pool-1-thread-1] ERROR > com.poplar.crawler.Worker - > org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:8) > > > >>>>> 2010-05-01 01:54:20,609 [pool-1-thread-1] ERROR > com.poplar.crawler.Worker - > org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:61) > > > >>>>> 2010-05-01 01:54:20,609 [pool-1-thread-1] ERROR > com.poplar.crawler.Worker - > org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:53) > > > >>>>> 2010-05-01 01:54:20,609 [pool-1-thread-1] ERROR > com.poplar.crawler.Worker - > org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:38) > > > >>>>> 2010-05-01 01:54:20,609 [pool-1-thread-1] ERROR > com.poplar.crawler.Worker - > com.poplar.sql.IBatis.selectObject(IBatis.java:554) > > > >>>>> 2010-05-01 01:54:20,609 [pool-1-thread-1] ERROR > com.poplar.crawler.Worker - > com.poplar.db.dictionaries.Category.fromCategoryName(Category.java:118) > > > >>>>> 2010-05-01 01:54:20,609 [pool-1-thread-1] ERROR > com.poplar.crawler.Worker - > com.poplar.db.items.ItemCategory.<init>(ItemCategory.java:201) > > > >>>>> 2010-05-01 01:54:20,609 [pool-1-thread-1] ERROR > com.poplar.crawler.Worker - > com.poplar.db.items.ItemCategory.<init>(ItemCategory.java:227) > > > >>>>> 2010-05-01 01:54:20,609 [pool-1-thread-1] ERROR > com.poplar.crawler.Worker - > com.poplar.db.items.Item.addItemCategory(Item.java:2182) > > > >>>>> 2010-05-01 01:54:20,609 [pool-1-thread-1] ERROR > com.poplar.crawler.Worker - > com.poplar.crawler.processors.FeedProcessor.processEntryCategories(FeedProcessor.java:2494) > > > >>>>> 2010-05-01 01:54:20,609 [pool-1-thread-1] ERROR > com.poplar.crawler.Worker - > com.poplar.crawler.processors.FeedProcessor.process(FeedProcessor.java:823) > > > >>>>> 2010-05-01 01:54:20,609 [pool-1-thread-1] ERROR > com.poplar.crawler.Worker - > com.poplar.crawler.Worker.crawl(Worker.java:1313) > > > >>>>> 2010-05-01 01:54:20,609 [pool-1-thread-1] ERROR > com.poplar.crawler.Worker - > com.poplar.crawler.Worker.crawlSourceKey(Worker.java:681) > > > >>>>> 2010-05-01 01:54:20,609 [pool-1-thread-1] ERROR > com.poplar.crawler.Worker - com.poplar.crawler.Worker.run(Worker.java:591) > > > >>>>> 2010-05-01 01:54:20,609 [pool-1-thread-1] ERROR > com.poplar.crawler.Worker - > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > > > >>>>> 2010-05-01 01:54:20,609 [pool-1-thread-1] ERROR > com.poplar.crawler.Worker - > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > > > >>>>> 2010-05-01 01:54:20,609 [pool-1-thread-1] ERROR > com.poplar.crawler.Worker - java.lang.Thread.run(Thread.java:619) > > > >>>>> 2010-05-01 01:54:20,609 [pool-1-thread-1] WARN > com.poplar.crawler.Worker - Failed to crawl the source key: > 'C01240E19154BE7BDA3703F726D5A68190D4A540', exception: > 'org.apache.ibatis.exceptions.IbatisException: > > > >>>>> ### Error querying database. Cause: > com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link > failure > > > >>>>> > > > >>>>> The last packet successfully received from the server was 104,024 > milliseconds ago. The last packet sent successfully to the server was 0 > milliseconds ago. > > > >>>>> ### The error may involve > dictionaries.Category.selectObjectByCategoryName-Inline > > > >>>>> ### The error occurred while setting parameters > > > >>>>> ### Cause: > com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link > failure > > > >>>>> > > > >>>>> The last packet successfully received from the server was 104,024 > milliseconds ago. The last packet sent successfully to the server was 0 > milliseconds ago.'. > > > >>>>> > > > >>>>> > > > >>>>> > --------------------------------------------------------------------- > > > >>>>> To unsubscribe, e-mail: user-java-unsubscr...@ibatis.apache.org > > > >>>>> For additional commands, e-mail: > user-java-h...@ibatis.apache.org > > > >>>>> > > > >>>>> > > > >>>> > > > >>>> > --------------------------------------------------------------------- > > > >>>> To unsubscribe, e-mail: user-java-unsubscr...@ibatis.apache.org > > > >>>> For additional commands, e-mail: user-java-h...@ibatis.apache.org > > > >>>> > > > >>> > > > >>> > > > >>> > --------------------------------------------------------------------- > > > >>> To unsubscribe, e-mail: user-java-unsubscr...@ibatis.apache.org > > > >>> For additional commands, e-mail: user-java-h...@ibatis.apache.org > > > >>> > > > >>> > > > >> > > > >> > --------------------------------------------------------------------- > > > >> To unsubscribe, e-mail: user-java-unsubscr...@ibatis.apache.org > > > >> For additional commands, e-mail: user-java-h...@ibatis.apache.org > > > >> > > > > > > > > > > > > --------------------------------------------------------------------- > > > > To unsubscribe, e-mail: user-java-unsubscr...@ibatis.apache.org > > > > For additional commands, e-mail: user-java-h...@ibatis.apache.org > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: user-java-unsubscr...@ibatis.apache.org > > For additional commands, e-mail: user-java-h...@ibatis.apache.org > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: user-java-unsubscr...@ibatis.apache.org > For additional commands, e-mail: user-java-h...@ibatis.apache.org > >