Tout d'abord bonjour à tous et merci d'avance à ceux qui prendront le temps de me répondre,
Je viens vers vous car après multiples recherches je ne trouve pas solution à mon soucis et peut être que parmis vous une personne a déja été confronté à ce soucis..
En deux (trois) mots J'ai développé sous la base du design pattern DAO une appli qui attaque une BDD et qui me fabrique un gros xml.
Cette appli fonctionne tant que je la sollicite régulièrement et tous les matins j'ai le message plus de données à lire dans le socket.
J'utilise un design pattern Singleton pour ma connection dans une classe déclaré dans le fichier de déploiement comme listener.
Exemple Source de la servlet listener :
Je vous passe le code du singleton il me renvoie une instance de connection si elle existe pas sinon il me renvoie celle qui existe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 @Override public void contextInitialized(ServletContextEvent sce) { // Instancier notre SingletonConnector BDD et mise dans le context Connection connection = SingletonConnector.getInstance(); sce.getServletContext().setAttribute(ConstantesApplication.SINGLETON_CONNECT, connection); }
Mes pistes et questions sont les suivantes :
Quelle est le cycle d'une instance de connection mis en mémoire lors du déploiement d'une application JAVAEE par le biais de ma servlet listener ?
Est-ce que le singleton est détruit par le garbage collector ou est-ce oracle qui considère que ce n'est plus utilisé et qui me kill cette connection entre lui et java ? bref j'ai un soucis de persistence de mon connector à mon avis ? car les statements je les rénitialise à chaque instance de traitement et les results idems et je close toujours bien à la fin les statements et les results ? donc je suis paumé.
Je vous remercie par avance du temps que vous voudrez bien consacrez à ce message.
Cordialement,
Hervé
Partager