| Summary: | IRunAndRenderTask does not stop query when canceled | ||||||
|---|---|---|---|---|---|---|---|
| Product: | z_Archived | Reporter: | Byron Palmer <byronpdx> | ||||
| Component: | BIRT | Assignee: | Mingxia Wu <mwu> | ||||
| Status: | VERIFIED FIXED | QA Contact: | Xiaoying Gu <bluesoldier> | ||||
| Severity: | normal | ||||||
| Priority: | P3 | CC: | bluesoldier, h.vonbargen, mwu | ||||
| Version: | 2.6.1 | ||||||
| Target Milestone: | 3.7.0 | ||||||
| Hardware: | PC | ||||||
| OS: | Windows XP | ||||||
| Whiteboard: | Obsolete | ||||||
| Attachments: |
|
||||||
|
Description
Byron Palmer
What's DBMS do you use? And could you please provide JDBC driver you're using? Could you have a check on whether this jdbc driver is supporting Statement.cancel() operator by writing test code? Created attachment 181870 [details]
Test case for driver close of query
I have written a test case for the driver, which is MySQL 5.1.13. The output from this run is shown below.
Test connection
MySQLmysql-connector-java-5.1.13 ( Revision: ${bzr.revision-id} ) MySQL-AB JDBC Driver
Start query
Cancel trip true
In cancel ..1
Error in query Statement cancelled due to client request
Done with cancel
What this little test does is create a connection and gets its version.
Then it starts in another thread a query that takes some time.
It waits a few seconds and detects if the thread is still running, if so, then it cancels the query.
It then waits until the thread quits.
What one sees is that the query statement gets canceled and throws an error in the thread. The thread then closes and the test ends.
This shows that the driver is capable of cancelling a running query. It is my understanding from reading the old bug reports is that the cancel of a reporting task is only checked after the query returns a result set. What I need is to be able to cancel a query before that point in time. This means that the cancel needs to look at the process and cancel the query rather than wait for results to return.
This is my quess.
The same here with an Oracle JDBC driver. Fix it now. Use SQLServer Profile to check the process status, when canceling the task, the query execution is canceled at once. Verified in the latest 2.6.2 build |