[jira] Updated: (CAY-998) ROP paginated lists must recover from server LRU query cache overflow

From: Andrus Adamchik (JIRA) ("Andrus)
Date: Wed Mar 05 2008 - 07:25:16 EST

  • Next message: Andrus Adamchik (JIRA): "[jira] Created: (CAY-999) Scaling paginated list"

         [ https://issues.apache.org/cayenne/browse/CAY-998?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

    Andrus Adamchik updated CAY-998:
    --------------------------------

        Description:
    The following exception occurs on an attempt to read a page off the server-side cached paginated list via ROP if the list is not found in the cache. While I do not have a proof that DataContext MapQueryCache LRU overflow (which has a default size of 2000 entries) is one and the only cause of this error, it is certainly a bug... My strategy for fixing this would be along the lines of passing the original query on every page request, so that the list could be refetched if it is no longer in the cache (for any reason)

    [java] org.apache.cayenne.CayenneRuntimeException: [v.3.0-SNAPSHOT Jan 23 2008 23:16:39] No cached list for blabla
    [java] at org.apache.cayenne.access.ClientServerChannelQueryAction.interceptSinglePageQuery(ClientServerChannelQueryAction.java:85)
    [java] at org.apache.cayenne.access.ClientServerChannelQueryAction.execute(ClientServerChannelQueryAction.java:65)
    [java] at org.apache.cayenne.access.ClientServerChannel.onQuery(ClientServerChannel.java:82)
    [java] at org.apache.cayenne.remote.service.DispatchHelper.dispatch(DispatchHelper.java:40)
    [java] at org.apache.cayenne.remote.service.BaseRemoteService.processMessage(BaseRemoteService.java:153)

      was:
    The following exception occurs on an attempt to read a page off the server-side cached paginated list via ROP if the list is not found in the cache. While I do not have a proof that DataContext MapQueryCache LRU overflow (which has a default size of 2000 entries) is one and the only cause of this error, it is certainly a bug... My strategy for fixing this would be storing the original query on the server so that the list could be refetched if it is no longer in the cache (for any reason)

    [java] org.apache.cayenne.CayenneRuntimeException: [v.3.0-SNAPSHOT Jan 23 2008 23:16:39] No cached list for blabla
    [java] at org.apache.cayenne.access.ClientServerChannelQueryAction.interceptSinglePageQuery(ClientServerChannelQueryAction.java:85)
    [java] at org.apache.cayenne.access.ClientServerChannelQueryAction.execute(ClientServerChannelQueryAction.java:65)
    [java] at org.apache.cayenne.access.ClientServerChannel.onQuery(ClientServerChannel.java:82)
    [java] at org.apache.cayenne.remote.service.DispatchHelper.dispatch(DispatchHelper.java:40)
    [java] at org.apache.cayenne.remote.service.BaseRemoteService.processMessage(BaseRemoteService.java:153)

    > ROP paginated lists must recover from server LRU query cache overflow
    > ---------------------------------------------------------------------
    >
    > Key: CAY-998
    > URL: https://issues.apache.org/cayenne/browse/CAY-998
    > Project: Cayenne
    > Issue Type: Bug
    > Components: Cayenne Core Library
    > Affects Versions: 3.0
    > Reporter: Andrus Adamchik
    > Assignee: Andrus Adamchik
    > Fix For: 3.0
    >
    >
    > The following exception occurs on an attempt to read a page off the server-side cached paginated list via ROP if the list is not found in the cache. While I do not have a proof that DataContext MapQueryCache LRU overflow (which has a default size of 2000 entries) is one and the only cause of this error, it is certainly a bug... My strategy for fixing this would be along the lines of passing the original query on every page request, so that the list could be refetched if it is no longer in the cache (for any reason)
    > [java] org.apache.cayenne.CayenneRuntimeException: [v.3.0-SNAPSHOT Jan 23 2008 23:16:39] No cached list for blabla
    > [java] at org.apache.cayenne.access.ClientServerChannelQueryAction.interceptSinglePageQuery(ClientServerChannelQueryAction.java:85)
    > [java] at org.apache.cayenne.access.ClientServerChannelQueryAction.execute(ClientServerChannelQueryAction.java:65)
    > [java] at org.apache.cayenne.access.ClientServerChannel.onQuery(ClientServerChannel.java:82)
    > [java] at org.apache.cayenne.remote.service.DispatchHelper.dispatch(DispatchHelper.java:40)
    > [java] at org.apache.cayenne.remote.service.BaseRemoteService.processMessage(BaseRemoteService.java:153)

    -- 
    This message is automatically generated by JIRA.
    -
    You can reply to this email to add a comment to the issue online.
    



    This archive was generated by hypermail 2.0.0 : Wed Mar 05 2008 - 07:27:09 EST