2012-06-08 39 views
6

Có cách nào để dừng hoặc chấm dứt truy vấn Oracle đang chạy trong JDBC không? Nó thường kết thúc với khởi động lại máy chủ ứng dụng để có được jdbc để ngắt kết nối từ Oracle DB.Ngừng hoặc chấm dứt truy vấn chạy dài trong JDBC

Looking for chức năng tương tự như SQL Plus - Kill session trong Java hay JDBC

trong SQL Plus

SQL> ALTER SYSTEM KILL SESSION 'sid,serial#'; 

bất kỳ đầu mối để thực hiện trong java?

+0

[Giải pháp này] (http://stackoverflow.com/questions/1526211/how-to-cancel-a-postgres-query-in-java-jdbc) là có thể được thực hiện bởi trình điều khiển Oracle. – assylias

+3

Có, nó phải được. Xem [câu hỏi này] (http://stackoverflow.com/questions/656162/when-i-call-preparedstatement-cancel-in-a-jdbc-application-does-it-actually-k). – eis

Trả lời

6

Có thể tắt bit, nhưng tôi sẽ đề xuất sử dụng JDBC Timeout để thay thế. Nó có thêm lợi ích khi thực sự chấm dứt một cách duyên dáng thay vì bằng vũ lực.

Với máy chủ ứng dụng hiện đại, bạn thường có thể xác định thời gian chờ JDBC từ cấu hình nguồn dữ liệu.

+0

Ok đã lưu ý. Cảm ơn. – Azi

+0

Tôi muốn cho phép người dùng quyết định thời điểm chấm dứt truy vấn. Điều đó có thể được thay đổi khi chạy và thực hiện một cái gì đó như trượt thời gian chờ? – supertonsky

+0

@supertonsky Tôi không biết về chức năng như vậy. – eis

4

thiếu thời gian chờ jdbc, nếu bạn chạy truy vấn trong một chuỗi khác, bạn có thể sử dụng Statement.cancel() để tiêu diệt nó.

1

Bạn có thể thử Statement.setQueryTimeout

Các vấn đề liên quan