Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    Multiple instances of same datasource

    I need to use the same datasource simultaneously in three different ListGrids but with different criteria. How do I get separate instances of the same ds?

    #2
    You need separate DataSources for separate criteria. Each ListGrid creates a ResultSet when you call fetchData(), and that ResultSet holds the criteria.

    Comment


      #3
      But do I need separate ds.xml files or can I somehow create separate instances of the same ds.xml?

      Comment


        #4
        You don't need separate DataSource instances at all. Just try fetchData on two different ListGrids with different Criteria and the same DataSource - it works. If that's not what you mean, please elaborate on what's making you think you need more than one DataSource for this use case.

        Comment


          #5
          I'm getting a SQLException "Cursor state not valid".

          I've reported the issue before and the consensus is that it must be a jdbc driver error. I've never been able to reliably recreate the issue, but with this datasource it is easily repeatable. It seems to happen whenever there are more than a page of records available so I thought that somehow having 3 different ListGrids trying to maintain their own page position for the same ds was causing the problem.

          It must be something else unique about this ds. I'll keep trying to eliminate possibilities. I'm attaching the full error in case you can tell me what sort of thing to look for. Without having the source code to SQLDataSource I can't tell exactly what it being tried. The jdbc driver is widely used and I've found no other reports of this error so I expect it has something to do with the specific jdbc technique being used.
          Code:
          === 2010-08-09 10:40:29,465 [l0-0] WARN  RequestContext - dsRequest.execute() failed: 
          java.sql.SQLException: Cursor state not valid.
          	at com.ibm.as400.access.JDError.throwSQLException(JDError.java:385)
          	at com.ibm.as400.access.JDError.throwSQLException(JDError.java:362)
          	at com.ibm.as400.access.AS400JDBCResultSet.checkOpen(AS400JDBCResultSet.java:371)
          	at com.ibm.as400.access.AS400JDBCResultSet.getValue(AS400JDBCResultSet.java:3626)
          	at com.ibm.as400.access.AS400JDBCResultSet.getObject(AS400JDBCResultSet.java:3072)
          	at org.apache.commons.dbcp.DelegatingResultSet.getObject(DelegatingResultSet.java:287)
          	at com.isomorphic.sql.SQLTransform.toAttributeMap(SQLTransform.java:83)
          	at com.isomorphic.sql.SQLTransform.toListOfMapsOrBeans(SQLTransform.java:462)
          	at com.isomorphic.sql.SQLTransform.toListOfMapsOrBeans(SQLTransform.java:314)
          	at com.isomorphic.sql.SQLDataSource.executeWindowedSelect(SQLDataSource.java:1571)
          	at com.isomorphic.sql.SQLDataSource.SQLExecute(SQLDataSource.java:1158)
          	at com.isomorphic.sql.SQLDataSource.execute(SQLDataSource.java:251)
          	at com.islandpacific.gui.server.customDataSource.IpDataSource.execute(IpDataSource.java:152)
          	at com.islandpacific.gui.server.customDataSource.PoHeaderDS.execute(PoHeaderDS.java:190)
          	at com.isomorphic.application.AppBase.executeDefaultDSOperation(AppBase.java:721)
          	at com.isomorphic.application.AppBase.executeAppOperation(AppBase.java:658)
          	at com.isomorphic.application.AppBase.execute(AppBase.java:491)
          	at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:1382)
          	at com.isomorphic.servlet.IDACall.handleDSRequest(IDACall.java:155)
          	at com.islandpacific.gui.server.customDataSource.IpIDACall.handleDSRequest(IpIDACall.java:46)
          	at com.isomorphic.servlet.IDACall.processRequest(IDACall.java:106)
          	at com.isomorphic.servlet.IDACall.doPost(IDACall.java:54)
          	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
          	at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:152)
          	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
          	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
          	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1097)
          	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:343)
          	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
          	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
          	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
          	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
          	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
          	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
          	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
          	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
          	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
          	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
          	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
          	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:188)
          	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
          	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
          	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
          	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
          	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
          	at com.islandpacific.gui.security.IpConcurrentSessionFilter.doFilter(IpConcurrentSessionFilter.java:55)
          	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
          	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:149)
          	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
          	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
          	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1088)
          	at com.isomorphic.servlet.CompressionFilter.doFilter(CompressionFilter.java:259)
          	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1088)
          	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
          	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:729)
          	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
          	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
          	at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)
          	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:505)
          	at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
          	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)
          	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
          	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
          	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
          	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)

          Comment

          Working...
          X