Bonjour,
je travaille sous Talend Integration Service (un ETL qui génère du code Java).
Je suis coincé avec une erreur sur le serveur, en effet lors de l'exécution le système retourne l'erreur :
Exception in thread "Thread-0" java.lang.OutOfMemoryError: GC overhead limit exceeded
Sur un site internet, j'ai trouvé quelques éléments de réponse mais qui ne me satisfont pas.
Le problème viendrait du temps trop important que le ramasse-miettes passe à gérer la mémoire. Cette erreur empêche les applications de s'éterniser, en passant la plus grande partie de leur temps à gérer la mémoire plutôt qu'à progresser dans leur exécution.
La solution proposée consiste à désactiver le mécanisme générant cette erreur, en ajoutant le paramètre -XX:-UseGCOverheadLimit.
J'ai appliqué cette modification et j'observe, que l'erreur a disparu, mais aussi que notre programme ne se termine jamais et accapare une grande partie de la mémoire et de la charge processeur du serveur.
Je suppose que le programme, comme expliqué ci-dessus, ne progresse pas ou peu dans son exécution, la puissance de calcul et la mémoire étant allouées à la gestion de mémoire.
Pourriez-vous m'aider à résoudre ce problème ou exprimer votre avis sur la question.
Je vous remercie de votre attention,
Adrien.

 

 
		
		 
        

 
			
			




 [Java Error] java.lang.OutOfMemoryError : GC overhead limit exceeded
 [Java Error] java.lang.OutOfMemoryError : GC overhead limit exceeded
				 Répondre avec citation
  Répondre avec citation

 
  
  
 
 
			 
   
 
 
				
 
			 
   Il est préférable de planter l'application plutôt que de la faire continuer dans de telle condition...
 Il est préférable de planter l'application plutôt que de la faire continuer dans de telle condition...
Partager