est une infrastructure de développement d'applications Java communément utilisée. WebSphere eXtreme Scale permet à Spring de gérer les transactions eXtreme Scale et de configurer les clients et les serveurs eXtreme Scale.
<aop:aspectj-autoproxy/>
<tx:annotation-driven transaction-manager="transactionManager"/>
<bean id="ObjectGridManager"
class="com.ibm.websphere.objectgrid.ObjectGridManagerFactory"
factory-method="getObjectGridManager"/>
<bean id="ObjectGrid"
factory-bean="ObjectGridManager"
factory-method="createObjectGrid"/>
<bean id="transactionManager"
class="com.ibm.websphere.objectgrid.spring.ObjectGridSpringFactory"
factory-method="getLocalPlatformTransactionManager"/>
</bean>
<bean id="Service" class="com.ibm.websphere.objectgrid.spring.test.TestService">
<property name="txManager" ref+"transactionManager"/>
</bean>
Ce code illustre le gestionnaire de transactions
déclaré et connecté au bean Service qui utilisera les transactions Spring.
Nous montrerons cela à l'aide d'annotations, ce qui explique la présence de la
clause tx:annotation au début du code.Session s = txManager.getSession();
Ce code
renvoie la session à utiliser par l'objet Java simple. Les beans participant à la même
transaction reçoivent la même session lorsqu'ils appellent cette méthode. Spring
gère automatiquement la méthode begin pour la session et appelle
automatiquement la méthode commit ou rollback si nécessaire. Vous pouvez
également obtenir un gestionnaire d'entités ObjectGrid en appelant simplement
getEntityManager à partir de l'objet Session.ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext(new String[]
{"applicationContext.xml"});
SpringLocalTxManager txManager = (SpringLocalTxManager)ctx.getBean("transactionManager");
txManager.setObjectGridForThread(og);
ITestService s = (ITestService)ctx.getBean("Service");
s.initialize();
assertEquals(s.query(), "Billy");
s.update("Bobby");
assertEquals(s.query(), "Bobby");
System.out.println("Requires new test");
s.testRequiresNew(s);
assertEquals(s.query(), "1");
Nous utilisons ici un contexte
d'application Spring. Ce contexte d'application permet d'obtenir une
référence au gestionnaire de transactions et de spécifier un ObjectGrid à
utiliser sur cette unité d'exécution.
Le code obtient ensuite une référence au service et appelle les méthodes
dessus. A chaque appel de méthode à ce niveau, Spring crée une session et
effectue des appels begin/commit autour de l'appel de méthode. Les éventuelles exceptions
génèrent une annulation.