IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Wildfly/JBoss Java Discussion :

[JBPM]Exception au lancement du scheduler


Sujet :

Wildfly/JBoss Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10
    Points : 9
    Points
    9
    Par défaut [JBPM]Exception au lancement du scheduler
    Bonjour à tous

    Je vous demande votre aide car j'ai remarqué quelques sujets sur JBPM sur vos forums (pendant mes recherches sur la cause de mon Exception), j'espère donc trouvé un début de réponse ici (voir un expert sur JBPM, on peut toujours espérer ^^)

    Le souci vient d'un JBPM 3.1.2 sur un JBoss 4.0, le tout dans un Eclipse que quelqu'un a installé pour moi et dont je ne connais pas la moitié des plugins installés.

    Quand je lance le scheduler de JBPM (en le mettant dans le web.xml, de cette façon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <servlet>
        <servlet-name>JbpmThreadsServlet</servlet-name>
        <servlet-class>org.jbpm.web.JbpmThreadsServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>JbpmThreadsServlet</servlet-name>
        <url-pattern>/threads</url-pattern>
      </servlet-mapping>
    J'ai cette exception (en boucle, ce qui me fait penser qu'elle vient bien du scheduler)

    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
    java.sql.SQLException: Can't call rollback when autocommit=true
    	at com.mysql.jdbc.Connection.rollback(Connection.java:4729)
    	at org.jboss.resource.adapter.jdbc.BaseWrapperManagedConnection.jdbcRollback(BaseWrapperManagedConn
    ection.java:535)
    	at org.jboss.resource.adapter.jdbc.WrappedConnection.rollback(WrappedConnection.java:460)
    	at org.hibernate.transaction.JDBCTransaction.rollbackAndResetAutoCommit(JDBCTransaction.java:183)
    	at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:162)
    	at org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:154)
    	at org.jbpm.svc.Services.close(Services.java:211)
    	at org.jbpm.JbpmContext.close(JbpmContext.java:139)
    	at org.jbpm.msg.command.CommandExecutorThread.executeCommand(CommandExecutorThread.java:139)
    	at org.jbpm.msg.command.CommandExecutorThread.run(CommandExecutorThread.java:79)
    14:29:08,137 INFO  [STDOUT] org.jbpm.persistence.JbpmPersistenceException: couldn't rollback hiberna
    te session
    14:29:08,137 INFO  [STDOUT] 	at org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceServ
    ice.java:156)
    14:29:08,137 INFO  [STDOUT] 	at org.jbpm.svc.Services.close(Services.java:211)
    14:29:08,137 INFO  [STDOUT] 	at org.jbpm.JbpmContext.close(JbpmContext.java:139)
    14:29:08,137 INFO  [STDOUT] 	at org.jbpm.msg.command.CommandExecutorThread.executeCommand(CommandExe
    cutorThread.java:139)
    14:29:08,137 INFO  [STDOUT] 	at org.jbpm.msg.command.CommandExecutorThread.run(CommandExecutorThread
    .java:79)
    14:29:08,137 INFO  [STDOUT] Caused by: org.hibernate.TransactionException: JDBC rollback failed
    14:29:08,137 INFO  [STDOUT] 	at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.j
    ava:170)
    14:29:08,137 INFO  [STDOUT] 	at org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceServ
    ice.java:154)
    14:29:08,137 INFO  [STDOUT] 	... 4 more
    14:29:08,137 INFO  [STDOUT] Caused by: java.sql.SQLException: Can't call rollback when autocommit=tr
    ue
    14:29:08,137 INFO  [STDOUT] 	at com.mysql.jdbc.Connection.rollback(Connection.java:4729)
    14:29:08,137 INFO  [STDOUT] 	at org.jboss.resource.adapter.jdbc.BaseWrapperManagedConnection.jdbcRol
    lback(BaseWrapperManagedConnection.java:535)
    14:29:08,137 INFO  [STDOUT] 	at org.jboss.resource.adapter.jdbc.WrappedConnection.rollback(WrappedCo
    nnection.java:460)
    14:29:08,137 INFO  [STDOUT] 	at org.hibernate.transaction.JDBCTransaction.rollbackAndResetAutoCommit
    (JDBCTransaction.java:183)
    14:29:08,137 INFO  [STDOUT] 	at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.j
    ava:162)
    14:29:08,137 INFO  [STDOUT] 	... 5 more
    14:29:08,137 ERROR [Services] problem closing service 'persistence'
    org.jbpm.persistence.JbpmPersistenceException: couldn't rollback hibernate session
    	at org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:156)
    	at org.jbpm.svc.Services.close(Services.java:211)
    	at org.jbpm.JbpmContext.close(JbpmContext.java:139)
    	at org.jbpm.msg.command.CommandExecutorThread.executeCommand(CommandExecutorThread.java:139)
    	at org.jbpm.msg.command.CommandExecutorThread.run(CommandExecutorThread.java:79)
    Caused by: org.hibernate.TransactionException: JDBC rollback failed
    	at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:170)
    	at org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:154)
    	... 4 more
    Caused by: java.sql.SQLException: Can't call rollback when autocommit=true
    	at com.mysql.jdbc.Connection.rollback(Connection.java:4729)
    	at org.jboss.resource.adapter.jdbc.BaseWrapperManagedConnection.jdbcRollback(BaseWrapperManagedConn
    ection.java:535)
    	at org.jboss.resource.adapter.jdbc.WrappedConnection.rollback(WrappedConnection.java:460)
    	at org.hibernate.transaction.JDBCTransaction.rollbackAndResetAutoCommit(JDBCTransaction.java:183)
    	at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:162)
    	... 5 more
    14:29:08,137 ERROR [CommandExecutorThread] org.jbpm.JbpmException: problem closing services {persist
    ence=org.jbpm.persistence.JbpmPersistenceException: couldn't rollback hibernate session}
    14:29:08,137 ERROR [SchedulerSession] org.hibernate.MappingException: Named query not known: Schedul
    erSession.findTimersByDueDate
    14:29:08,137 INFO  [SchedulerThread] runtime exception while executing timers
    org.jbpm.JbpmException: couldn't find timers from the database
    	at org.jbpm.db.SchedulerSession.findTimersByDueDate(SchedulerSession.java:88)
    	at org.jbpm.scheduler.impl.SchedulerThread.executeTimers(SchedulerThread.java:106)
    	at org.jbpm.scheduler.impl.SchedulerThread.run(SchedulerThread.java:70)
    Caused by: org.hibernate.MappingException: Named query not known: SchedulerSession.findTimersByDueDa
    te
    	at org.hibernate.impl.AbstractSessionImpl.getNamedQuery(AbstractSessionImpl.java:70)
    	at org.hibernate.impl.SessionImpl.getNamedQuery(SessionImpl.java:1260)
    	at org.jbpm.db.SchedulerSession.findTimersByDueDate(SchedulerSession.java:82)
    	... 2 more
    14:29:13,129 ERROR [SchedulerSession] org.hibernate.MappingException: Named query not known: Schedul
    erSession.findTimersByDueDate
    14:29:13,129 ERROR [JDBCTransaction] JDBC rollback failed
    java.sql.SQLException: Can't call rollback when autocommit=true
    	at com.mysql.jdbc.Connection.rollback(Connection.java:4729)
    	at org.jboss.resource.adapter.jdbc.BaseWrapperManagedConnection.jdbcRollback(BaseWrapperManagedConn
    ection.java:535)
    	at org.jboss.resource.adapter.jdbc.WrappedConnection.rollback(WrappedConnection.java:460)
    	at org.hibernate.transaction.JDBCTransaction.rollbackAndResetAutoCommit(JDBCTransaction.java:183)
    	at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:162)
    	at org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:154)
    	at org.jbpm.svc.Services.close(Services.java:211)
    	at org.jbpm.JbpmContext.close(JbpmContext.java:139)
    	at org.jbpm.msg.command.CommandExecutorThread.executeCommand(CommandExecutorThread.java:139)
    	at org.jbpm.msg.command.CommandExecutorThread.run(CommandExecutorThread.java:79)
    14:29:13,160 INFO  [SchedulerThread] runtime exception while executing timers
    org.jbpm.JbpmException: couldn't find timers from the database
    	at org.jbpm.db.SchedulerSession.findTimersByDueDate(SchedulerSession.java:88)
    	at org.jbpm.scheduler.impl.SchedulerThread.executeTimers(SchedulerThread.java:106)
    	at org.jbpm.scheduler.impl.SchedulerThread.run(SchedulerThread.java:70)
    Caused by: org.hibernate.MappingException: Named query not known: SchedulerSession.findTimersByDueDa
    te
    	at org.hibernate.impl.AbstractSessionImpl.getNamedQuery(AbstractSessionImpl.java:70)
    	at org.hibernate.impl.SessionImpl.getNamedQuery(SessionImpl.java:1260)
    	at org.jbpm.db.SchedulerSession.findTimersByDueDate(SchedulerSession.java:82)
    	... 2 more
    J'avais cru trouvé la façon de résoudre le problème sur :
    -http://fisheye.jboss.org/viewrep/JBPM/jbpm.3/jpdl/jar/src/main/java/org/jbpm/persistence/db/DbPersistenceService.java?r1=1.4&r2=1.5
    -http://jira.jboss.com/jira/secure/attachment/12312800/jbpm_session_already_closed_exception.patch

    Mais après application du patch, un rebuild sur ant et un redéploiement, toujours la même erreur.

    Est ce que quelqu'un a déjà vu cette erreur ou aurait un début de piste pour régler le problème?

    Merci d'avance et au revoir

  2. #2
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    Tu as peut être déjà trouvé vu la date....
    Regardes du côé de la configuration de ta connection mysql. Il faut mettre autocommit à false de manière explicite

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Non, je n'ai pas encore trouvé.

    Quelqu'un m'avait dis de me tourner vers la configuration de JBPM, mais sans être assez explicite.

    Quand à moi, je ne sais pas mettre l'autocommit de façon explicite (et j'ai cherché longtemps pourtant, en tant qu'argument du driver mysql etc, mais rien )

  4. #4
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    regardes côte datasource

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    J'ai du mal m'exprimer, j'ai déjà chercher des heures du côté du datasource, et je suis bredouille.

    Et je n'ai pas trouvé comment fixé de façon explicite l'autocommit dans le datasource. Si tu connais une option permettant de le faire, merci de me la dire.

    EDIT : un collaborateur m'a fourni une astuce, dans le debug d'Eclipse, je remarque que le système plante sur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Iterator iterator = session.getNamedQuery("SchedulerSession.findTimersByDueDate").iterate();
    dans la méthode findTimersByDueDate() de org.jbpm.db.SchedulerSession.

    Pensez vous que ça pourrait venir de ma base SQL qui aurait un schéma endommagé?

  6. #6
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    Le message montre que la connection est positionnée avec un autocommit=true et comme il y a un problème côté base, il y a une demande de rollback. C'est quand même bizarre car il ne devrait pas y avoir d'impossibilité de faire un rollback avec un autocommit=true
    Finalement, je sèche

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    En fait, c'était un problème dans hibernate. Un fichier hbm qui était manquant, le mapping ne se faisait pas et hibernate faisait un rollback en catastrophe.

    L'insertion du hbm correspondant a résolu le soucis, mais maintenant, j'ai un problème de cache

    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
    runtime exception while executing timers
    org.hibernate.HibernateException: Could not instantiate cache implementation
    	at org.hibernate.cache.CacheFactory.createCache(CacheFactory.java:64)
    	at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:214)
    	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1291)
    	at org.jbpm.persistence.db.DbPersistenceServiceFactory.getSessionFactory(DbPersistenceServiceFactor
    y.java:90)
    	at org.jbpm.persistence.db.DbPersistenceService.getSessionFactory(DbPersistenceService.java:74)
    	at org.jbpm.persistence.db.DbPersistenceService.getSession(DbPersistenceService.java:78)
    	at org.jbpm.persistence.db.DbPersistenceService.getSchedulerSession(DbPersistenceService.java:244)
    	at org.jbpm.JbpmContext.getSchedulerSession(JbpmContext.java:529)
    	at org.jbpm.scheduler.impl.SchedulerThread.executeTimers(SchedulerThread.java:103)
    	at org.jbpm.scheduler.impl.SchedulerThread.run(SchedulerThread.java:70)
    Caused by: org.hibernate.cache.NoCachingEnabledException: Second-level cache is not enabled for usag
    e [hibernate.cache.use_second_level_cache | hibernate.cache.use_query_cache]
    	at org.hibernate.cache.NoCacheProvider.buildCache(NoCacheProvider.java:21)
    	at org.hibernate.cache.CacheFactory.createCache(CacheFactory.java:61)
    	... 9 more
    Ralala, c'est compliqué à configurer JBPM

    EDIT : bon, j'ai sucré le cache, il me sert pas sur le projet de toute façon. Donc en ajoutant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <property name="cache.use_second_level_cache">false</property>
    dans hibernate.cfg.xml, tout se lance, et le problème n'en est plus un. Fin du problème donc, et merci d'avoir chercher avec moi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Exception au lancement de l'appli
    Par cecile38 dans le forum Android
    Réponses: 1
    Dernier message: 19/06/2012, 17h35
  2. Réponses: 5
    Dernier message: 15/04/2010, 17h17
  3. [Jetty] Exception au lancement de Jetty
    Par Switche dans le forum Maven
    Réponses: 2
    Dernier message: 20/11/2008, 00h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo