Hi Hugh, the application was simply firing sequential queries through a Spring driver that was simply simulating the pooling interface but was not actually doing real pooling:
http://static.springsource.org/spring/docs/2.0.x/api/org/springframework/jdbc/datasource/DriverManagerDataSource.html And in fact, in the documentation, there was a note: *NOTE: This class is not an actual connection pool; it does not actually pool Connections. It just serves as simple replacement for a full-blown connection pool, implementing the same standard interface, but creating new Connections on every call. * Dropping that driver and going with the standard Grails dataSource with pooling seems working fine. I really appreciate your help. Thank you Paolo On Thu, Sep 3, 2009 at 11:50 AM, Hugh Williams <hwilli...@openlinksw.com>wrote: > Hi Paolo, > Are you making a normal or pooled connection to the database ? As pooled > connection would be best if you application/script is making many continuos > connects and disconnects during this process as detailed at: > > > http://docs.openlinksw.com/virtuoso/VirtuosoDriverJDBC.html#jdbc3features > > Best Regards > Hugh Williams > Professional Services > OpenLink Software > Web: http://www.openlinksw.com > Support: http://support.openlinksw.com > Forums: http://boards.openlinksw.com/support > > > > On 2 Sep 2009, at 01:22, Paolo Ciccarese wrote: > > Hi Hugh, > I tried with the last driver but I still have the same problems. > > I am not sure it is helpful but, if I add dummy code to increase the time > elapsed in between the queries, it seems behaving much much better (it often > completes the task without triggering connection problems). > > Thank you for your help > Paolo > > On Tue, Sep 1, 2009 at 6:36 PM, Hugh Williams <hwilli...@openlinksw.com>wrote: > >> Hi Paolo, >> Can you please try using the latest cut of the Virtuoso JDBC Driver to see >> how this fares. It can be downloaded from the following FTP URL: >> >> ftp://download.openlinksw.com/support/vos/virtjdbc3.jar >> >> Best Regards >> Hugh Williams >> Professional Services >> OpenLink Software >> Web: http://www.openlinksw.com >> Support: http://support.openlinksw.com >> Forums: http://boards.openlinksw.com/support >> >> >> >> On 1 Sep 2009, at 18:42, Paolo Ciccarese wrote: >> >> Hi Hugh, >> I increased the memory of the grails application to 1Gb. But it barely >> reaches 240Mb. >> >> I am attaching the virtuoso.ini that I haven't changed and the log file. >> This is the exception as I see it in the console (after about 30000 queries >> of the same type): >> >> 2009-09-01 13:34:49,632 [798417047@qtp0-0] ERROR >> errors.GrailsExceptionResolver - >> org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get >> JDBC Connection; nested exception is virtuoso.jdbc3.VirtuosoException: >> Connection failed: Can't assign requested address >> org.codehaus.groovy.runtime.InvokerInvocationException: >> org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get >> JDBC Connection; nested exception is virtuoso.jdbc3.VirtuosoException: >> Connection failed: Can't assign requested address >> at >> org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:92) >> at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:234) >> at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1062) >> at >> groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:926) >> at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:893) >> at groovy.lang.Closure.call(Closure.java:279) >> at groovy.lang.Closure.call(Closure.java:274) >> at org.codehaus.groovy.grails. >> web.servlet.mvc.SimpleGrailsControllerHelper.handleAction >> (SimpleGrailsControllerHelper.java:368) >> at org.codehaus.groovy.grails. >> web.servlet.mvc.SimpleGrailsControllerHelper.executeAction >> (SimpleGrailsControllerHelper.java:243) >> at org.codehaus.groovy.grails. >> web.servlet.mvc.SimpleGrailsControllerHelper.handleURI >> (SimpleGrailsControllerHelper.java:203) >> at org.codehaus.groovy.grails. >> web.servlet.mvc.SimpleGrailsControllerHelper.handleURI >> (SimpleGrailsControllerHelper.java:138) >> at org.codehaus.groovy.grails. >> web.servlet.mvc.SimpleGrailsController.handleRequest >> (SimpleGrailsController.java:88) >> at org.springframework. >> web.servlet.mvc.SimpleControllerHandlerAdapter.handle >> (SimpleControllerHandlerAdapter.java:48) >> at org.codehaus.groovy.grails. >> web.servlet.GrailsDispatcherServlet.doDispatch >> (GrailsDispatcherServlet.java:264) >> at org.springframework.web.servlet.DispatcherServlet.doService >> (DispatcherServlet.java:807) >> at org.springframework.web.servlet.FrameworkServlet.processRequest >> (FrameworkServlet.java:571) >> at org.springframework.web.servlet.FrameworkServlet.doGet >> (FrameworkServlet.java:501) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:689) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) >> at >> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502) >> at >> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1124) >> at org.springframework.web.filter.OncePerRequestFilter.doFilter >> (OncePerRequestFilter.java:70) >> at >> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1115) >> at org.springframework.web.filter.OncePerRequestFilter.doFilter >> (OncePerRequestFilter.java:70) >> at >> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1115) >> at org.springframework.web.filter.OncePerRequestFilter.doFilter >> (OncePerRequestFilter.java:70) >> at >> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1115) >> at >> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:361) >> at >> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) >> at >> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) >> at >> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766) >> at >> org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417) >> at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:334) >> at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126) >> at org.codehaus.groovy.grails. >> web.util.WebUtils.forwardRequestForUrlMappingInfo(WebUtils.java:293) >> at org.codehaus.groovy.grails. >> web.util.WebUtils.forwardRequestForUrlMappingInfo(WebUtils.java:269) >> at org.codehaus.groovy.grails. >> web.util.WebUtils.forwardRequestForUrlMappingInfo(WebUtils.java:261) >> at org.codehaus.groovy.grails. >> web.mapping.filter.UrlMappingsFilter.doFilterInternal >> (UrlMappingsFilter.java:181) >> at org.springframework.web.filter.OncePerRequestFilter.doFilter >> (OncePerRequestFilter.java:76) >> at >> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1115) >> at org.codehaus.groovy.grails. >> web.sitemesh.GrailsPageFilter.obtainContent(GrailsPageFilter.java:221) >> at org.codehaus.groovy.grails.web.sitemesh.GrailsPageFilter.doFilter >> (GrailsPageFilter.java:126) >> at >> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1115) >> at org.codehaus.groovy.grails. >> web.servlet.filter.GrailsReloadServletFilter.doFilterInternal >> (GrailsReloadServletFilter.java:101) >> at org.springframework.web.filter.OncePerRequestFilter.doFilter >> (OncePerRequestFilter.java:76) >> at >> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1115) >> at org.codehaus.groovy.grails. >> web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal >> (GrailsWebRequestFilter.java:65) >> at org.springframework.web.filter.OncePerRequestFilter.doFilter >> (OncePerRequestFilter.java:76) >> at >> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1115) >> at org.springframework. >> web.filter.CharacterEncodingFilter.doFilterInternal >> (CharacterEncodingFilter.java:96) >> at org.springframework.web.filter.OncePerRequestFilter.doFilter >> (OncePerRequestFilter.java:76) >> at org.springframework. >> web.filter.DelegatingFilterProxy.invokeDelegate >> (DelegatingFilterProxy.java:236) >> at org.springframework.web.filter.DelegatingFilterProxy.doFilter >> (DelegatingFilterProxy.java:167) >> at >> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1115) >> at >> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:361) >> at >> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) >> at >> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) >> at >> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766) >> at >> org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417) >> at >> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) >> at org.mortbay.jetty.Server.handle(Server.java:324) >> at >> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534) >> at >> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:864) >> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:533) >> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:207) >> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:403) >> at >> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) >> at >> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:522) >> Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: >> Could not get JDBC Connection; nested exception is >> virtuoso.jdbc3.VirtuosoException: Connection failed: Can't assign requested >> address >> at >> com.commonsemantics.grails.services.utils.QueryService.getSparqlResultRowMaps(QueryService.groovy:23) >> at >> com.commonsemantics.grails.service.indexes.SubclassesIndexingService.queryEntity(SubclassesIndexingService.groovy:284) >> at >> com.commonsemantics.grails.service.indexes.SubclassesIndexingService$queryEntity.callCurrent(Unknown >> Source) >> at >> com.commonsemantics.grails.service.indexes.SubclassesIndexingService.indexHierarchy(SubclassesIndexingService.groovy:173) >> at >> com.commonsemantics.grails.service.indexes.SubclassesIndexingService.this$2$indexHierarchy(SubclassesIndexingService.groovy) >> at >> com.commonsemantics.grails.service.indexes.SubclassesIndexingService$this$2$indexHierarchy.callCurrent(Unknown >> Source) >> at >> com.commonsemantics.grails.service.indexes.SubclassesIndexingService.doSecondTraversal(SubclassesIndexingService.groovy:101) >> at >> com.commonsemantics.grails.service.indexes.SubclassesIndexingService.this$2$doSecondTraversal(SubclassesIndexingService.groovy) >> at >> com.commonsemantics.grails.service.indexes.SubclassesIndexingService$this$2$doSecondTraversal.callCurrent(Unknown >> Source) >> at >> com.commonsemantics.grails.service.indexes.SubclassesIndexingService.process(SubclassesIndexingService.groovy:82) >> at >> com.commonsemantics.grails.service.indexes.SubclassesIndexingService.this$2$process(SubclassesIndexingService.groovy) >> at >> com.commonsemantics.grails.service.indexes.SubclassesIndexingService$this$2$process.callCurrent(Unknown >> Source) >> at >> com.commonsemantics.grails.service.indexes.SubclassesIndexingService.indexVocabulary(SubclassesIndexingService.groovy:75) >> at >> com.commonsemantics.grails.service.indexes.SubclassesIndexingService$indexVocabulary.callCurrent(Unknown >> Source) >> at >> com.commonsemantics.grails.service.indexes.SubclassesIndexingService.indexVocabularies(SubclassesIndexingService.groovy:66) >> at >> com.commonsemantics.grails.service.indexes.SubclassesIndexingService$indexVocabularies.call(Unknown >> Source) >> at >> com.commonsemantics.grails.service.indexes.SubclassesController$_closure2.doCall(SubclassesController.groovy:26) >> at >> com.commonsemantics.grails.service.indexes.SubclassesController$_closure2.doCall(SubclassesController.groovy) >> Caused by: virtuoso.jdbc3.VirtuosoException: Connection failed: Can't >> assign requested address >> at virtuoso.jdbc3.VirtuosoConnection.connect(Unknown Source) >> at virtuoso.jdbc3.VirtuosoConnection.connect(Unknown Source) >> at virtuoso.jdbc3.VirtuosoConnection.<init>(Unknown Source) >> at virtuoso.jdbc3.Driver.connect(Unknown Source) >> at java.sql.DriverManager.getConnection(DriverManager.java:582) >> at java.sql.DriverManager.getConnection(DriverManager.java:154) >> ... 18 more >> >> >> thank you, >> Paolo >> >> On Tue, Sep 1, 2009 at 1:25 PM, Hugh Williams >> <hwilli...@openlinksw.com>wrote: >> >>> Hi Paolo, >>> How did you increase the amount of available memory ? >>> >>> Can you provide a copy of your Virtuoso configuration (virtuoso.ini) and >>> log (virtuoso.log) files for analysis ... >>> >>> Best Regards >>> Hugh Williams >>> Professional Services >>> OpenLink Software >>> Web: http://www.openlinksw.com >>> Support: http://support.openlinksw.com >>> Forums: http://boards.openlinksw.com/support >>> >>> >>> >>> On 31 Aug 2009, at 17:46, Paolo Ciccarese wrote: >>> >>> I am currently working on some algorithms for indexing subclasses in >>> ontologies expressed in OWL. I therefore traverse the ontology performing a >>> list of queries. Unfortunately, most of the times, the indexing process is >>> not completing due to the following error: >>> >>> Could not get JDBC Connection; nested exception is >>> virtuoso.jdbc3.VirtuosoException: Connection failed: Can't assign requested >>> address >>> >>> org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get >>> JDBC Connection; nested exception is virtuoso.jdbc3.VirtuosoException: >>> Connection failed: Can't assign requested address >>> at >>> com.commonsemantics.grails.services.utils.QueryService.getSparqlResultRowMaps(QueryService.groovy:23) >>> at >>> com.commonsemantics.grails.services.utils.QueryService$getSparqlResultRowMaps.call(Unknown >>> Source) >>> at >>> com.commonsemantics.grails.service.indexes.SubclassesIndexingService.querySubclasses(SubclassesIndexingService.groovy:224) >>> at >>> com.commonsemantics.grails.service.indexes.SubclassesIndexingService$querySubclasses.callCurrent(Unknown >>> Source) >>> at >>> com.commonsemantics.grails.service.indexes.SubclassesIndexingService.recursiveIndexing(SubclassesIndexingService.groovy:154) >>> at >>> com.commonsemantics.grails.service.indexes.SubclassesIndexingService.this$2$recursiveIndexing(SubclassesIndexingService.groovy) >>> at >>> com.commonsemantics.grails.service.indexes.SubclassesIndexingService$this$2$recursiveIndexing.callCurrent(Unknown >>> Source) >>> at >>> com.commonsemantics.grails.service.indexes.SubclassesIndexingService.recursiveIndexing(SubclassesIndexingService.groovy:163) >>> at >>> com.commonsemantics.grails.service.indexes.SubclassesIndexingService.this$2$recursiveIndexing(SubclassesIndexingService.groovy) >>> at >>> com.commonsemantics.grails.service.indexes.SubclassesIndexingService$this$2$recursiveIndexing.callCurrent(Unknown >>> Source) >>> at >>> com.commonsemantics.grails.service.indexes.SubclassesIndexingService.recursiveIndexing(SubclassesIndexingService.groovy:163) >>> at >>> com.commonsemantics.grails.service.indexes.SubclassesIndexingService.this$2$recursiveIndexing(SubclassesIndexingService.groovy) >>> at >>> com.commonsemantics.grails.service.indexes.SubclassesIndexingService$this$2$recursiveIndexing.callCurrent(Unknown >>> Source) >>> at >>> com.commonsemantics.grails.service.indexes.SubclassesIndexingService.recursiveIndexing(SubclassesIndexingService.groovy:163) >>> at >>> com.commonsemantics.grails.service.indexes.SubclassesIndexingService.this$2$recursiveIndexing(SubclassesIndexingService.groovy) >>> at >>> com.commonsemantics.grails.service.indexes.SubclassesIndexingService$this$2$recursiveIndexing.callCurrent(Unknown >>> Source) >>> at >>> com.commonsemantics.grails.service.indexes.SubclassesIndexingService.recursiveIndexing(SubclassesIndexingService.groovy:163) >>> at >>> com.commonsemantics.grails.service.indexes.SubclassesIndexingService.this$2$recursiveIndexing(SubclassesIndexingService.groovy) >>> at >>> com.commonsemantics.grails.service.indexes.SubclassesIndexingService$this$2$recursiveIndexing.callCurrent(Unknown >>> Source) >>> at >>> com.commonsemantics.grails.service.indexes.SubclassesIndexingService.recursiveIndexing(SubclassesIndexingService.groovy:163) >>> at >>> com.commonsemantics.grails.service.indexes.SubclassesIndexingService.this$2$recursiveIndexing(SubclassesIndexingService.groovy) >>> at >>> com.commonsemantics.grails.service.indexes.SubclassesIndexingService$this$2$recursiveIndexing.callCurrent(Unknown >>> Source) >>> at >>> com.commonsemantics.grails.service.indexes.SubclassesIndexingService.indexHierarchy(SubclassesIndexingService.groovy:136) >>> at >>> com.commonsemantics.grails.service.indexes.SubclassesIndexingService.this$2$indexHierarchy(SubclassesIndexingService.groovy) >>> at >>> com.commonsemantics.grails.service.indexes.SubclassesIndexingService$this$2$indexHierarchy.callCurrent(Unknown >>> Source) >>> at >>> com.commonsemantics.grails.service.indexes.SubclassesIndexingService.indexVocabulary(SubclassesIndexingService.groovy:86) >>> at >>> com.commonsemantics.grails.service.indexes.SubclassesIndexingService$indexVocabulary.callCurrent(Unknown >>> Source) >>> at >>> com.commonsemantics.grails.service.indexes.SubclassesIndexingService.indexVocabularies(SubclassesIndexingService.groovy:69) >>> at >>> com.commonsemantics.grails.service.indexes.SubclassesIndexingService$indexVocabularies.call(Unknown >>> Source) >>> at >>> com.commonsemantics.grails.service.indexes.SubclassesIndexingServiceTests.testSomething(SubclassesIndexingServiceTests.groovy:35) >>> at _GrailsTest_groovy$_run_closure4.doCall(_GrailsTest_groovy:203) >>> at _GrailsTest_groovy$_run_closure4.call(_GrailsTest_groovy) >>> at _GrailsTest_groovy$_run_closure2.doCall(_GrailsTest_groovy:147) >>> at >>> _GrailsTest_groovy$_run_closure1_closure19.doCall(_GrailsTest_groovy:113) >>> at _GrailsTest_groovy$_run_closure1.doCall(_GrailsTest_groovy:96) >>> at TestApp$_run_closure1.doCall(TestApp.groovy:66) >>> at gant.Gant$_dispatch_closure4.doCall(Gant.groovy:324) >>> at gant.Gant$_dispatch_closure6.doCall(Gant.groovy:334) >>> at gant.Gant$_dispatch_closure6.doCall(Gant.groovy) >>> at gant.Gant.withBuildListeners(Gant.groovy:344) >>> at gant.Gant.this$2$withBuildListeners(Gant.groovy) >>> at gant.Gant$this$2$withBuildListeners.callCurrent(Unknown Source) >>> at gant.Gant.dispatch(Gant.groovy:334) >>> at gant.Gant.this$2$dispatch(Gant.groovy) >>> at gant.Gant.invokeMethod(Gant.groovy) >>> at gant.Gant.processTargets(Gant.groovy:495) >>> at gant.Gant.processTargets(Gant.groovy:480) >>> Caused by: virtuoso.jdbc3.VirtuosoException: Connection failed: Can't >>> assign requested address >>> at virtuoso.jdbc3.VirtuosoConnection.connect(Unknown Source) >>> at virtuoso.jdbc3.VirtuosoConnection.connect(Unknown Source) >>> at virtuoso.jdbc3.VirtuosoConnection.(Unknown Source) >>> at virtuoso.jdbc3.Driver.connect(Unknown Source) >>> at java.sql.DriverManager.getConnection(DriverManager.java:525) >>> at java.sql.DriverManager.getConnection(DriverManager.java:140) >>> >>> I am working in a Grails (version 1.1.1) environment, Virtuoso (version >>> 5.0.11), Drivers (jdbc3). >>> >>> I am performing really simple queries of the type: >>> sparql $NAMESPACE_PREFIXES SELECT ?subject ?label FROM <$vocabularyUri> >>> WHERE {?subject rdfs:subClassOf <$uri>. ?subject rdfs:label ?label} >>> >>> Again, with the same setup, sometimes (rarely) the process completes >>> sometimes not. It blows up in different steps of the indexing (can be after >>> 129, 876, 3000, 12000... queries). Increasing the amount of memory available >>> delays the blow up, but I still have the problem. >>> >>> Any idea that could help me? >>> >>> Thank you >>> Paolo >>> >>> -- >>> Paolo Ciccarese >>> >>> ------------------------------------------------------------------------------ >>> Let Crystal Reports handle the reporting - Free Crystal Reports 2008 >>> 30-Day >>> trial. Simplify your report design, integration and deployment - and >>> focus on >>> what you do best, core application coding. Discover what's new with >>> Crystal Reports now. >>> http://p.sf.net/sfu/bobj-july_______________________________________________ >>> Virtuoso-users mailing list >>> Virtuoso-users@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/virtuoso-users >>> >>> >>> >> >> >> > -- > Paolo Ciccarese > > > -- Paolo Ciccarese, PhD Biomedical Informatics Research & Development Instructor of Neurology at Harvard Medical School Assistant in Neuroscience at Mass General Hospital Mobile +1-857-366-1524