You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jdo-dev@db.apache.org by "Michael Bouschen (JIRA)" <ji...@apache.org> on 2010/03/20 22:06:27 UTC

[jira] Reopened: (JDO-623) Query cancel and timeout support

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

Michael Bouschen reopened JDO-623:
----------------------------------

      Assignee: Andy Jefferson  (was: Michael Bouschen)

According to Andy the QueryCancel class tries to cancel the query that it hasn't yet started.

I changed the test class:
- It creates 5000 PCPoint and PCPoint2 instances (instead of 1000). This should make the join (as part of the query) more expensive such that the query takes longer to execute. 
- It uses a barrier to synchronize the threads
- It compiles the query before staring the thread

Andy,
could you please rerun the test class with the above changes? Thanks! 



> Query cancel and timeout support
> --------------------------------
>
>                 Key: JDO-623
>                 URL: https://issues.apache.org/jira/browse/JDO-623
>             Project: JDO
>          Issue Type: New Feature
>          Components: api2, tck2
>            Reporter: Andy Jefferson
>            Assignee: Andy Jefferson
>             Fix For: JDO 2 maintenance release 3
>
>         Attachments: JDO-623-mbo.patch, JDO-623-tck2-mbo.patch, JDO-623-testcase.patch, JDO-623-ZeroTimeoutTestcase.patch, jdo623.patch, jdo623.patch, pmf_option.patch, query.patch, query_timeout.patch
>
>
> JDO doesn't have a mechanism to stop queries from overrunning. JPA2 now allows 
> a persistence property to allow timing them out, and most JDO implementations 
> have allowed this as an extension since JDO1. It would make sense for JDO 
> (2.3) to have the same or a variation. I propose having the following
> Simple PMF property "javax.jdo.option.queryTimeout" to specify the number of millisecs (or secs) before any query is timed out. Throw a QueryTimeoutException (extends JDOException) when the timeout happens.
> Add methods Query.setTimeout(int), Query.getTimeout() to allow setting/retrieving the timeout interval on a per-query basis.
> Add method Query.cancel() to cancel any running query. If an implementation doesn't support cancelling of queries then it should throw a JDOUnsupportedOptionException. Any query execute() that is cancelled will throw a QueryInterruptedException (extends JDOUserException).

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