This content has been marked as final.
Show 2 replies
-
1. Re: how to get entitymanager within MBean
epbernard Mar 30, 2006 7:32 PM (in response to hfarid)you mean EM or EMF.
I don't see the usefulness of managing the EM lifecycle through JMX -
2. Re: how to get entitymanager within MBean
hfarid Mar 31, 2006 9:24 AM (in response to hfarid)I found some answers (after one long night and tons of coffee :-) )
- To declare the dependancy between SAR and PAR within the same ear file
in your jboss-service.xml (within the sar]<server> <mbean code="com.bla.bla.MYService" name="bla.bla:service=MYS"> <depends>jboss.j2ee:service=EJB3,module=put your par file here</depends> </mbean> </server>
- To access the entity manager from MBean
First you need to advertise your entity manager factor
in your persistance.xml<property name="jboss.entity.manager.jndi.name" value="java:/EntityManagers/myem"/> <property name="jboss.entity.manager.factory.jndi.name" value="java:/EntityManagersFactory/myemFac"/>
In the service MBean , override startService(). lookup your entity manager factory and call createEntityManger to get yourself an instance of the em.... I created EXTENDED em and it worked for me
Why I am doing all of that... here is the problem I am trying to solve (if you know better solution, please share it with all of us)
- I have to maintain a graph, the graph vertcies and the edges are persisted in the db using EJB3 entity beans
- my clients (lots of concurrent ones), are travesing portions of the graph, updating information in the graph
- The first solution was to use optimistic locks (@version).... that killed me as some portion of the graph was being updated by multiple clients at the same time .... lots and lots of exceptions
- Second solution. In a ServiceMBean, I instantiated a JGraph, loaded all my entities into the JGraph
- my clients can call methods of a SLSB that forward the call to the service MBean
- In the MBean I am controlling the locking mechanism using semaphores per vertex/Edge
Problems with my solution:
- In cluster deployment, how can I replicate my JGraph information??