30.01.2015 Views

des enterprise beans - Département Informatique

des enterprise beans - Département Informatique

des enterprise beans - Département Informatique

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Utilisation de l’ API de transaction<br />

méthode begin() pour commencer la transaction, puis la méthode commit()<br />

pour renvoyer les modifications dans la base de données. Ou alors, vous<br />

utilisez la méthode rollback() pour annuler toutes les modifications<br />

effectuées dans la transaction et restaurer la base de données dans l’état<br />

qu’elle avait avant le début de la transaction. Entre les métho<strong>des</strong> begin() et<br />

commit(), vous insérez le code qui effectue le travail de la transaction. Voici<br />

un exemple :<br />

public class NewSessionBean implements SessionBean {<br />

EJBContext ejbContext;<br />

public void doSomething(...) {<br />

javax.transaction.UserTransaction utx;<br />

javax.sql.DataSource dataSource1;<br />

javax.sql.DataSource dataSource2;<br />

java.sql.Connection firstConnection;<br />

java.sql.Connection secondConnection;<br />

java.sql.Statement firstStatement;<br />

java.sql Statement secondStatement;<br />

java.naming.Context context = new javax.naming.InitialContext();<br />

dataSource1 = (javax.sql.DataSource)<br />

context.lookup("java:comp/env/jdbcDatabase1");<br />

firstConnection = dataSource1.getConnection();<br />

firstStatement = firstConnection.createStatement();<br />

dataSource2 = (javax.sql.DataSource)<br />

context.lookup("java:comp/env/jdbcDatabase2");<br />

secondConnection = dataSource2.getConnection();<br />

secondStatement = secondConnection.createStatement();<br />

utx = ejbContext.getUserTransaction();<br />

utx.begin();<br />

firstStatement.executeQuery(...);<br />

firstStatement.executeUpdate(...);<br />

secondStatement.executeQuery(...);<br />

secondStatement.executeUpdate(...);<br />

utx.commit();<br />

firstStatement.close;<br />

secondStatement.close<br />

firstConnection.close();<br />

secondConnection.close();<br />

}<br />

...<br />

Gestion <strong>des</strong> transactions 13-7

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!