Win a copy of Java Mock Exams (software) this week in the Programmer Certification (OCPJP) forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic

modification for chapter 6's persistenceContextCollision

 
Himai Minh
Ranch Hand
Posts: 1398
8
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I modified this example:



Our expected result is collision:

javax.ejb.EJBException: There is an active transactional persistence context for the same EntityManagerFactory as the current stateful session bean's extended persistence context

 
Himai Minh
Ranch Hand
Posts: 1398
8
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
To make it work, let the stateful bean starts a new transaction instead of using the propagated transaction:


Reference:http://shengwangi.blogspot.com/2015/11/understand-persistence-context-collision.html
 
Himai Minh
Ranch Hand
Posts: 1398
8
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
The reason why I suggested this modification because  the original code demonstrated another concept , not pc collision.
The original code tells us that an stateful bean  with container managed transaction  cannot run in a UserTransaction.
The output error message is actually:
javax.ejb.EJBException: java.lang.IllegalStateException: Bean is associated with a different unfinished transaction


Original code as Audit bean is stateless with transaction scoped PC and Department manager bean as stateful with extended PC.






 
Happiness is not a goal ... it's a by-product of a life well lived - Eleanor Roosevelt. Tiny ad:
the new thread boost feature: great for the advertiser and smooth for the coderanch user
https://coderanch.com/t/674455/Thread-Boost-feature
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!