Existe-t-il un moyen d'empêcher Oracle SQL Developer de fermer mes connexions de base de données ou d'augmenter le délai d'expiration? Parfois, lors d'une requête longue, SQL Dev ferme la connexion, laissant ma requête s'exécuter sur le serveur mais sans résultat. Si je RDP dans le serveur et exécuter SQL Dev localement, il ne semble jamais avoir ce problème.Comment puis-je empêcher Oracle SQL Developer de fermer la connexion DB?
Répondre
Cela ne semble pas être un problème avec le développeur SQL, mais je ne l'ai jamais rencontré. Êtes-vous sûr que ce n'est pas quelque chose d'autre, comme votre réseau? Que se passe-t-il si vous vous connectez à partir de SQL plus à partir de votre bureau.
Sorte de retard dans le marquage de cette réponse, mais oui c'était un problème de réseau. –
@KevinBabcock Quel était le problème de réseau auquel vous faisiez face ici? – theCodeMachine
J'ai Toad et Oracle SQL Developer, Oracle SQL Developer est toujours déconnecter et tenter de se connecter, est très ennuyeux, pendant ce temps Toad conserve la connexion toute la journée. Maintenant, je dois quitter Toad pour des raisons commerciales :( –
Je n'ai pas la réponse pour cela, mais je rencontre le même problème.
Le pare-feu entre mon développeur SQL et la base de données ferme automatiquement les sessions "inactives". Une requête longue durée est une session inactive selon le pare-feu, donc il la ferme. Je n'ai pas encore trouvé comment faire en sorte que SQL Developer envoie des paquets sur une connexion avec une longue requête, de sorte que le pare-feu ne ferme pas la connexion. Et je ne sais pas si c'est possible du tout. Donc je ne pense pas que ce soit un problème de SQL Developer, mais un problème de pare-feu.
- MISE À JOUR
Il est une extension pour SQL Developer qui vous permet de garder les connexions actives: http://sites.google.com/site/keepaliveext/
Il est pas encore totalement fini (par exemple la notification que vous obtenez états le même délai d'attente ne importe quel délai vous avez spécifié) mais il fait l'affaire. Je n'ai pas, encore, testé contre le dernier SQL Developer préversion, mais cela a fonctionné avec 2.2.x SQL Developer
- MISE À JOUR
Pour SQL Developer 4+ vous pouvez utiliser: http://scristalli.github.io/SQL-Developer-4-keepalive/
J'ai testé l'extension keep-alive http://sites.google.com/site/keepaliveext/ cela fonctionne exactement comme prévu, merci! –
Il ne semble pas travaillant sur 4.0 – ATorras
Une version de travail pour SQL Developer 4.0: https://bitbucket.org/scristalli/sql-developer-4-keepalive/overview –
Semble également comme un problème de pare-feu pour moi.
Vous pouvez avoir de la chance avec le paramètre EXPIRE_TIME dans le fichier SQLNET.ORA du serveur. De la documentation:
Utilisez le paramètre SQLNET.EXPIRE_TIME pour spécifier l'intervalle de temps, en minutes, pour envoyer une sonde pour vérifier que les connexions client/serveur sont actives. La définition d'une valeur supérieure à 0 garantit que les connexions ne sont pas laissées ouvertes indéfiniment, en raison d'une terminaison client anormale. Si la sonde trouve une connexion terminée ou une connexion qui n'est plus utilisée, elle renvoie une erreur, provoquant la fermeture du processus serveur. Ce paramètre est principalement destiné au serveur de base de données, qui gère généralement plusieurs connexions à la fois.
J'ai testé avec succès l'efficacité de ce paramètre Merci –
En tant que solution temporaire à elle, à côté de vous trouverez l'onglet « Sortie SGBD », activer la sortie SGBD « Data Grid » et réglez la fréquence d'interrogation à un temps agréable .
Belle suggestion ... I Je ne sais pas trop ce que vous entendez par "Data Grid" mais je l'ai trouvé sous "View> Dmbs Output" (ALT, V, D) –
Voici une autre extension Keep Connection Active qui pourrait être utile. (L'extension mentionnée ci-dessus contient un certain nombre de problèmes résolus dans cette extension.)
Le travail sur un port est presque terminé, détails ici: http: // sites. google.com/site/keepconnext/ –
notre DBA semble avoir trouvé une solution à ceci:
2.2. Si un pare-feu est présent entre l'instance OC4J & la base de données Le pare-feu peut supprimer des connexions jdbc inactives au serveur de base de données. Toutefois, l'instance OC4J ne peut pas détecter que le pare-feu a dépassé la connexion à la base de données. Oracle Net peut être configuré avec la détection de connexion morte (SQLNET.EXPIRE_TIME) pour contourner ce problème. Définissez EXPIRE_TIME sur le serveur de base de données sur une valeur inférieure au délai d'expiration de la connexion au pare-feu afin que DCD conserve la connexion à la base de données active. Voir la note 151972.1 "Explication de la détection de connexion morte (DCD)". Comme il s'agit d'un paramètre configuré sur le serveur de base de données, pas sur le serveur intermédiaire, il s'applique à toutes les connexions de base de données (OCI et JDBC fin). Solutions alternatives: - Désactive ou augmente le paramètre de délai d'inactivité du pare-feu. ou - Configurez le paramètre d'heure TCP Keepalive sur la base de données et sur les serveurs de taille moyenne sur une valeur inférieure au délai d'expiration de la connexion au pare-feu. Après avoir défini l'heure TCP Keepalive, les machines envoient plusieurs fois un paquet nul après les minutes spécifiées pour maintenir les connexions actives. Comme le paquet est envoyé à chaque fois à l'intérieur du délai d'inactivité du pare-feu, la connexion ne sera pas fermée.
Question connexe avec la solution pour SQL Developer 4: http://stackoverflow.com/questions/12999811/when-sql-developer-is-idle-i-lose-my-connection – Vadzim