Bonjour à tous,
J'aimerai avoir une aide afin de gérer un Job qui doit durer plusieurs jours. J'interroge des tables de ma base MSSQL contenant dans des champs de contenu XML que je remets donc en forme etc.
Le problème est que tous les soirs nous avons une maintenance sur le serveur MSSQL de 21h à 2h environ. Cela entraine l'arrêt de mon Job, j'ai donc l'impossibilité d'aller jusqu'au bout.
Voici le message que j'obtiens :
J'ai bien essayé de mettre le code suivant dans un des mes composants tJava (dans la capture, tJava_5), mais rien n'y fait car une déconnexion à la base MSSQL a lieu, ce qui interrompt donc le Job.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Démarrage du Job Prod_B_Extract_Contenu_XML_2023_1 à 11:09 02/05/2024. [statistics] connecting to socket on port 4035 [statistics] connected Exception in component tDBInput_1 (Prod_B_Extract_Contenu_XML_2023_1) java.sql.SQLException: Invalid state, the Connection object is closed. at net.sourceforge.jtds.jdbc.TdsCore.checkOpen(TdsCore.java:481) at net.sourceforge.jtds.jdbc.TdsCore.clearResponseQueue(TdsCore.java:767) at net.sourceforge.jtds.jdbc.JtdsStatement.reset(JtdsStatement.java:722) at net.sourceforge.jtds.jdbc.JtdsStatement.close(JtdsStatement.java:966) at easily_xml_specialites.prod_b_extract_contenu_xml_2023_1_0_1.Prod_B_Extract_Contenu_XML_2023_1.tDBInput_1Process(Prod_B_Extract_Contenu_XML_2023_1.java:2559) at easily_xml_specialites.prod_b_extract_contenu_xml_2023_1_0_1.Prod_B_Extract_Contenu_XML_2023_1.runJobInTOS(Prod_B_Extract_Contenu_XML_2023_1.java:4586) at easily_xml_specialites.prod_b_extract_contenu_xml_2023_1_0_1.Prod_B_Extract_Contenu_XML_2023_1.main(Prod_B_Extract_Contenu_XML_2023_1.java:4377) [statistics] disconnected Job Prod_B_Extract_Contenu_XML_2023_1 terminé à 21:54 02/05/2024. [Code de sortie = 1]
Je vous joint une capture d'écran de mon Job.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 LocalTime currentTime = LocalTime.now(); LocalTime startTime = LocalTime.parse("21:00"); LocalTime endTime = LocalTime.parse("02:00"); if (!currentTime.isBefore(startTime) && currentTime.isBefore(endTime)) { long sleepTime = java.time.Duration.between(currentTime, endTime).toMillis(); Thread.sleep(sleepTime); }
Pourriez-vous m'aider à trouver une solution à ce problème ? Merci à tous par avance.
![]()





Répondre avec citation
Partager