0 Replies Latest reply on Aug 15, 2007 7:36 AM by Sergey Klochkov

    BMP ejbStore + Hibernate/har/JTA ?

    Sergey Klochkov Newbie

      crosspost from http://www.jboss.com/index.html?module=bb&op=viewtopic&t=115524

      When I'm trying to save BMP as:

      public void SampleBean.ejbStore() throws EJBException, RemoteException {
       try {
       Session hsession = myHelper.getCurrentSession();
       Session dynamicSession = hsession.getSession(EntityMode.MAP);
       dynamicSession.update(_objData);
       } catch (NamingException e) {
       e.printStackTrace();
       }
      }


      I have a serious issue - SampleBean.ejbStore doesn't save data to DB, and in the same time, Hibernate is sure that all data is stored.
      As you can see from stacktrace, Hibernate stores data into internal cache, but doesn't flush this data into DB. IMHO, it happens because the synchronizer isn't created, which in turn happens because another Hibernate synchronizer exists and executes before SampleBean.ejbStore call.

      So, is it a software bug or incorrect configuration of my environment?

      System Thread [RMI TCP Connection(2)-192.168.x.x] (Suspended (breakpoint at line 1543 in SampleBean))
       SampleBean.ejbStore() line: 1543
       NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]
       NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39
       DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25
       Method.invoke(Object, Object...) line: 585
       BMPPersistenceManager.invokeEjbStore(EntityEnterpriseContext) line: 498
       CachedConnectionInterceptor.invokeEjbStore(EntityEnterpriseContext) line: 294
       EntityContainer.invokeEjbStore(EntityEnterpriseContext) line: 735
       GlobalTxEntityMap$2.invokeEjbStore(Thread, EntityEnterpriseContext) line: 132
       GlobalTxEntityMap$GlobalTxSynchronization.synchronize() line: 281
       GlobalTxEntityMap$GlobalTxSynchronization.beforeCompletion() line: 345
       TransactionImpl.doBeforeCompletion() line: 1491
       TransactionImpl.beforePrepare() line: 1110
       TransactionImpl.commit() line: 324
       TxInterceptorCMT.endTransaction(Invocation, Transaction, Transaction, int) line: 501
       TxInterceptorCMT.runWithTransactions(Invocation) line: 361
       TxInterceptorCMT.invoke(Invocation) line: 181
       LogInterceptor.invoke(Invocation) line: 205
       ProxyFactoryFinderInterceptor.invoke(Invocation) line: 136
       StatefulSessionContainer(SessionContainer).internalInvoke(Invocation) line: 648
       StatefulSessionContainer(Container).invoke(Invocation) line: 954
       GeneratedMethodAccessor87.invoke(Object, Object[]) line: not available
       DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25
       Method.invoke(Object, Object...) line: 585
       ReflectedDispatcher.invoke(Invocation) line: 155
       Invocation.dispatch() line: 94
       Invocation.invoke() line: 86
       XMBean(AbstractMBeanInvoker).invoke(String, Object[], String[]) line: 264
       MBeanServerImpl.invoke(ObjectName, String, Object[], String[]) line: 659
       JRMPInvoker$MBeanServerAction.invoke(ObjectName, String, Object[], String[]) line: 819
       JRMPInvoker.invoke(Invocation) line: 420
       NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]
       NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39
       DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25
       Method.invoke(Object, Object...) line: 585
       UnicastServerRef2(UnicastServerRef).dispatch(Remote, RemoteCall) line: 294
       Transport$1.run() line: 153
       AccessController.doPrivileged(PrivilegedExceptionAction<T>, AccessControlContext) line: not available [native method]
       TCPTransport(Transport).serviceCall(RemoteCall) line: 149
       TCPTransport.handleMessages(Connection, boolean) line: 466
       TCPTransport$ConnectionHandler.run() line: 707
       Thread.run() line: 595


      org.jboss.tm.TransactionImpl.doBeforeCompletion() line: 1491
      
      this TransactionImpl (id=95)
       cause null
       done false
       gid GlobalId (id=122)
       heuristicCode 4
       lastBranchId 1
       lastResource TransactionImpl$Resource (id=126)
       lockDepth 0
       locked null
       resources ArrayList<E> (id=128)
       resourcesEnded false
       start 1186562997765
       status 0
       sync Synchronization[12] (id=141)
       [0] StatefulSessionInstanceInterceptor$InstanceSynchronization (id=5356)
       [1] CacheSynchronization (id=5349)
       ctx SessionImpl (id=5368)
       hibernateTransaction null
       jdbcContext JDBCContext (id=5370)
       transaction TransactionImpl (id=95)
       [2] JTASessionContext$CleanupSynch (id=5350)
       [3] TransactionSynchronizer (id=5351)
       [4] EntitySynchronizationInterceptor$InstanceSynchronization (id=5352)
       [5] GlobalTxEntityMap$GlobalTxSynchronization (id=94)
       instances ArrayList<E> (id=5384)
       synchronizing true
       this$0 GlobalTxEntityMap (id=5398)
       tx TransactionImpl (id=95)
       [6] EntitySynchronizationInterceptor$InstanceSynchronization (id=5353)
       [7] EntitySynchronizationInterceptor$InstanceSynchronization (id=5354)
       [8] EntitySynchronizationInterceptor$InstanceSynchronization (id=5355)
       [9] null
       [10] null
       [11] null
       syncAllocSize 12
       syncCount 9
       threads HashSet<E> (id=145)
       timeout TimeoutPriorityQueueImpl$TimeoutExtImpl (id=137)
       timeoutPeriod 300000
       trace true
       transactionLocalMap Collections$SynchronizedMap<K,V> (id=150)
       work null
       xid XidImpl (id=152)
      i 5