Bonjour à tous,

J'ai le problème suivant uniquement lors de l'appel de storedprocedure:

Hibernate 3.2.5GA
MSSQL 2005 SP1

hibernate config
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
17
18
 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
 
<hibernate-configuration>
   <session-factory>
      <property name="connection.datasource">
         java:comp/env/jdbc/crc
      </property>
      <property name="hibernate.dialect">
         org.hibernate.dialect.SQLServerDialect
      </property>
      <property name="show_sql">false</property>
      <property name="use_outer_join">true</property>
      <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
      <property name="hibernate.current_session_context_class">thread</property>
 <!-- mapping files -->
...
Code
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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
 
public class DAO {
 
   private static final Logger log = Logger.getAnonymousLogger();
 
   private static final ThreadLocal session = new ThreadLocal();
 
   private static final SessionFactory sessionFactory = new Configuration()
         .configure().buildSessionFactory();
 
   protected DAO() {
   }
 
   public static Session getSession() {
      Session session = (Session) DAO.session.get();
      if (session == null) {
         session = sessionFactory.openSession();
         DAO.session.set(session);
      }
      return session;
   }
 
   protected void begin() {
      getSession().beginTransaction();
   }
 
   protected void commit() {
      getSession().getTransaction().commit();
      }
 
   protected void rollback() {
      try {
         getSession().getTransaction().rollback();
      } catch (HibernateException e) {
         log.log(Level.WARNING, "Cannot rollback", e);
      }
      try {
         getSession().close();
      } catch (HibernateException e) {
         log.log(Level.WARNING, "Cannot close", e);
      }
      DAO.session.set(null);
   }
 
   public static void close() {
      getSession().close();
      DAO.session.set(null);
   }
 
}
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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 
public class Stat_Reports_DAO extends DAO {
 
   public Stat_Reports_DAO() {
   }
 
 
   public void SP4(String p1, String p2, String p3, String p4, String p5,
         String p6) throws DAOException {
      try {
 
         //begin();
 
         Timestamp ts1 = Timestamp.valueOf(p2 + " 00:00:00.0");
         Timestamp ts2 = Timestamp.valueOf(p3 + " 00:00:00.0");
 
         CallableStatement cs = getSession().connection().prepareCall("{call Sp_Stat_IP4(?,?,?,?,?,?)}");
         cs.setString(1, p1);
         cs.setTimestamp(2, ts1);
         cs.setTimestamp(3, ts2);
         cs.setString(4, p4);
         cs.setString(5, p5);
         cs.setInt(6, Integer.parseInt(p6));
 
         cs.execute();
 
         //commit();
 
 
      } catch (SQLException e) {
         //rollback();
         throw new DAOException("SQLException : SP4 ", e);
 
      } catch (HibernateException e) {
         //rollback();
         throw new DAOException("DAOExcep : SP4 ", e);
      } finally {
         close();
      }
 
   }
Erreurs
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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
 
2008-04-22 07:52:45 ERROR org.hibernate.transaction.JDBCTransaction:toggleAutoCommit (JDBCTransaction.java:198) (org.hibernate.transaction.JDBCTransaction) - Could not toggle autocommit
com.microsoft.sqlserver.jdbc.SQLServerException: New request is not allowed to start because it should come with valid transaction descriptor.
   at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(Unknown Source)
   at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(Unknown Source)
   at com.microsoft.sqlserver.jdbc.TDSParser.parse(Unknown Source)
   at com.microsoft.sqlserver.jdbc.TDSParser.parse(Unknown Source)
   at com.microsoft.sqlserver.jdbc.SQLServerConnection$1ConnectionCommand.doExecute(Unknown Source)
   at com.microsoft.sqlserver.jdbc.TDSCommand.execute(Unknown Source)
   at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(Unknown Source)
   at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectionCommand(Unknown Source)
   at com.microsoft.sqlserver.jdbc.SQLServerConnection.setAutoCommit(Unknown Source)
   at com.sun.gjc.spi.base.ConnectionHolder.setAutoCommit(ConnectionHolder.java:624)
   at org.hibernate.transaction.JDBCTransaction.toggleAutoCommit(JDBCTransaction.java:194)
   at org.hibernate.transaction.JDBCTransaction.commitAndResetAutoCommit(JDBCTransaction.java:142)
   at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:115)
   at be.dzafer.hibernate.DAO.commit(DAO.java:38)
   at be.dzafer.hibernate.Stat_Reports_DAO.SP5(Stat_Reports_DAO.java:88)
   at be.dzafer.struts.action.Stat_Reports_DACT.prevReport(Stat_Reports_DACT.java:188)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:274)
   at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194)
   at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
   at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
   at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
   at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:738)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
   at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:317)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
   at be.dzafer.filter.LoginFilter.doFilter(LoginFilter.java:49)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:288)
   at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
   at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
   at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
   at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
   at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
   at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
   at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
   at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
   at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
   at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
   at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
   at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
   at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272)
   at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
   at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
   at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
   at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
   at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
   at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
   at com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:380)
   at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
   at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
2008-04-22 07:52:45 ERROR org.hibernate.transaction.JDBCTransaction:commit (JDBCTransaction.java:124) (org.hibernate.transaction.JDBCTransaction) - JDBC commit failed
com.microsoft.sqlserver.jdbc.SQLServerException: New request is not allowed to start because it should come with valid transaction descriptor.
   at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(Unknown Source)
   at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(Unknown Source)
   at com.microsoft.sqlserver.jdbc.TDSParser.parse(Unknown Source)
   at com.microsoft.sqlserver.jdbc.TDSParser.parse(Unknown Source)
   at com.microsoft.sqlserver.jdbc.SQLServerConnection$1ConnectionCommand.doExecute(Unknown Source)
   at com.microsoft.sqlserver.jdbc.TDSCommand.execute(Unknown Source)
   at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(Unknown Source)
   at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectionCommand(Unknown Source)
   at com.microsoft.sqlserver.jdbc.SQLServerConnection.commit(Unknown Source)
   at com.sun.gjc.spi.base.ConnectionHolder.commit(ConnectionHolder.java:228)
   at org.hibernate.transaction.JDBCTransaction.commitAndResetAutoCommit(JDBCTransaction.java:139)
   at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:115)
   at be.dzafer.hibernate.DAO.commit(DAO.java:38)
   at be.dzafer.hibernate.Stat_Reports_DAO.SP5(Stat_Reports_DAO.java:88)
   at be.dzafer.struts.action.Stat_Reports_DACT.prevReport(Stat_Reports_DACT.java:188)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:274)
   at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194)
   at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
   at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
   at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
   at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:738)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
   at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:317)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
   at be.dzafer.filter.LoginFilter.doFilter(LoginFilter.java:49)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:288)
   at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
   at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
   at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
   at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
   at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
   at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
   at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
   at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
   at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
   at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
   at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
   at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
   at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272)
   at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
   at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
   at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
   at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
   at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
   at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
   at com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:380)
   at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
   at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
Tout aide est la bienvenue ...