Y a-t-il un moyen d'arrêter ou de mettre fin à une requête Oracle longue dans JDBC? Cela finit souvent par le serveur d'applications de redémarrage pour que JDBC se déconnecte de Oracle DB.
Recherche de fonctionnalités similaires à SQL Plus - dans SQL Plus P> Tuer Session Code> dans Java ou JDBC P>
SQL> ALTER SYSTEM KILL SESSION 'sid,serial#';
3 Réponses :
éventuellement mord, mais je proposerais d'utiliser Timeout JDBC à la place. Il a l'avantage supplémentaire de se termine réellement gracieusement au lieu de la force. P>
Avec des serveurs d'applications modernes, vous pouvez généralement définir le délai d'attente JDBC de la configuration de DataSource. P>
Je voudrais laisser l'utilisateur à décider quand résilier la requête. Cela peut-il être changé au moment de l'exécution et implémenter quelque chose comme un délai de temporisation?
@supertonsky Je ne suis pas au courant de cette fonctionnalité.
Short du délai d'attente JDBC, si vous exécutez votre requête dans un autre thread, vous pouvez utiliser la relevé.cancel () pour le tuer. P>
Vous pouvez essayer énoncé.sequeryTimeout p>
Cette solution est peut-être mise en œuvre par le pilote Oracle.
Oui, ça devrait être. Voir Cette question a >.