[ https://issues.apache.org/jira/browse/JDO-623?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12853092#action_12853092 ]
Andy Jefferson commented on JDO-623: ------------------------------------ What about pm.conf "DatastoreReadTimeout" in the use of timeout within a query ? It expects a JDODataStoreException within 10ms. The PreparedStatement has a setQueryTimeout taking in **seconds**, hence is unusable for such control. DataNucleus also starts the datastore execution in a FutureTask and to wait for this 10ms, sadly the control goes back to the test before this is triggered. I fail to see what more an implementation can do, apart from throw an Unsupported exception when the timeout is lower than 1 second. > 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: Michael Bouschen > 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.