Mon application utilise Weblogic 9.2, Java 1.5, Oracle 10 et un framework maison.
Une action de l'appli plante en dev mais pas sur le serveur de test (même version et tout). Un appel à une procédure stockée semble bien se passer (elle se termine et enregistre correctement les données) mais au retour, l'appli Web trouve une exception nulle et la page de retour est une erreur 404. Cette action fonctionnait il y a deux semaines et n'a pas été touchée (semble-t-il) et la config des postes de dev n'a pas été changée.
PlSqlStatement.java (exécution de la procédure PL/SQL) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
log.debug("populStatement successful !");
try {
  stmt.execute();
  statut = getStatut(stmt);
} catch (SQLException e) {
  log.error(e.getMessage());
  e.printStackTrace();
  log.error(e.getCause());
  throw new ORAException("Erreur PLSqlStatement.execute() : " + e.getMessage());
}
Log
17:32:51,802 DEBUG fr.xxx.donnees.statement.PlSqlStatement:448 - populStatement successful !
java.sql.SQLException: execute, Exception = null
at weblogic.jdbc.wrapper.JDBCWrapperImpl.invocationExceptionHandler(JDBCWrapperImpl.java:141)
at weblogic.jdbc.wrapper.PreparedStatement.execute(PreparedStatement.java:83)
at fr.xxx.donnees.statement.PlSqlStatement.execute(PlSqlStatement.java:451)
at fr.xxx.metier.rejet.SF_RejetBean.setPrestation(SF_RejetBean.java:231)
at fr.xxx.metier.rejet.SF_Rejet_weaqae_EOImpl.setPrestation(SF_Rejet_weaqae_EOImpl.java:586)
at fr.xxx.metier.rejet.SF_Rejet_weaqae_EOImpl_WLSkel.invoke(I[Ljava.lang.Object;Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source)17:32:52,568 ERROR fr.xxx.donnees.statement.PlSqlStatement:454 - execute, Exception = null

at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:174)
at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:335)
at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:252)
at fr.xxx.metier.rejet.SF_Rejet_weaqae_EOImpl_920_WLStub.setPrestation(Ljava.lang.String;Lfr.xxx.metier.rejet.PrestationVO;)Lfr.xxx.metier.RetourEjb;(Unknown Source)
at fr.xxx.application.manager.RejetManager.setRejetPrestation(RejetManager.java:636)
at fr.xxx.application.gestion.RejetGestion.setRejetPrestation(RejetGestion.java:197)
at fr.xxx.presentation.servlet.RejetServlet.afficherRejVolSoc(RejetServlet.java:347)
at jrockit.reflect.VirtualNativeMethodInvoker.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source)
at java.lang.reflect.Method.invoke(Ljava.lang.Object;[Ljava.lang.Object;I)Ljava.lang.Object;(Unknown Source)
at fr.xxx.framework.servlet.ControllerServlet.serviceFwk(ControllerServlet.java:318)
at fr.xxx.framework.servlet.ControllerServlet.service(ControllerServlet.java:135)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:225)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:127)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3214)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:1983)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1890)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1344)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
17:32:52,568 ERROR fr.xxx.donnees.statement.PlSqlStatement:456 -
17:32:52,568 DEBUG fr.xxx.donnees.statement.PlSqlStatement:475 - PlSqlStatement.execute fin
17:32:52,568 DEBUG fr.xxx.donnees.statement.PlSqlStatement:477 - fermeture CallableStatement or Connection
17:32:52,568 DEBUG fr.xxx.donnees.statement.PlSqlStatement:482 - fin fermeture CallableStatement or Connection
<28 juil. 2009 17 h 32 CEST> <Error> <JTA> <BEA-110412> <Name=[EJB fr.xxx.metier.rejet.SF_RejetSession.setPrestation(java.lang.String,fr.xxx.metier.rejet.PrestationVO)],Xid=BEA1-001921E919DC3C2620FB(4754451),Status=Committed,HeuristicErrorCode=XA_HEURHAZ,numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds since begin=0,seconds left=120,activeThread=Thread[[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)',5,Pooled Threads],XAServerResourceInfo[weblogic.jdbc.wrapper.JTSXAResourceImpl]=(ServerResourceInfo[weblogic.jdbc.wrapper.JTSXAResourceImpl]=(state=committed,assigned=AdminServer),xar=weblogic.jdbc.wrapper.JTSXAResourceImpl@486833,re-Registered = false),SCInfo[CTC_DEV+AdminServer]=(state=committed),properties=({weblogic.transaction.name=[EJB fr.xxx.metier.rejet.SF_RejetSession.setPrestation(java.lang.String,fr.xxx.metier.rejet.PrestationVO)], weblogic.jdbc=t3://10.101.14.141:7001}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=AdminServer+10.101.14.141:7001+CTC_DEV+t3+, XAResources={weblogic.jdbc.wrapper.JTSXAResourceImpl},NonXAResources={})],CoordinatorURL=AdminServer+10.101.14.141:7001+CTC_DEV+t3+) completed heuristically: (weblogic.jdbc.wrapper.JTSXAResourceImpl, HeuristicHazard, (javax.transaction.xa.XAException: Violation de protocole)) >
17:32:52,568 DEBUG fr.xxx.application.manager.RejetManager:39 - Exception setRejetPrestation() RemoteException : BEA1-001921E919DC3C2620FB; nested exception is:
javax.transaction.HeuristicMixedException: (weblogic.jdbc.wrapper.JTSXAResourceImpl, HeuristicHazard, (javax.transaction.xa.XAException: Violation de protocole))
17:32:52,568 ERROR fr.xxx.presentation.servlet.RejetServlet:49 - RejetServlet.afficherRejVolSoc(ProgrammingException) : BEA1-001921E919DC3C2620FB; nested exception is:
javax.transaction.HeuristicMixedException: (weblogic.jdbc.wrapper.JTSXAResourceImpl, HeuristicHazard, (javax.transaction.xa.XAException: Violation de protocole))
17:32:52,583 INFO fr.xxx.framework.servlet.ControllerServlet:58 - WATCH httpResponse.getDispatchType() 0:00:00.875
17:32:52,583 DEBUG fr.xxx.framework.servlet.ControllerServlet:39 - !httpResponse.isCommitted()