Boa tarde, no link abaixo, MZ ensina que em Stateful session beans eh possivel manter uma Transaction entre multiplos metodos. Em seu exemplo, uma transaction comeca no method1 e eh committed no method3. Isso esta correto!
Minha duvida no entanto eh com relacao ao method2, onde fecha-se a conexao com o datasource, con.close().
O fechamento da conexao nao deveria ser no method3, apos o u.commit()?
Fechar a conexao com o db nao deveria acontecer apos o commit da Transaction?
Como o Transaction vai commit se a conexao foi fechada?
Em todos os exemplos, o MZ fecha a conexao apos o commit, com excecao desse exemplo.
Ajudem por favor! 
http://java.boot.by/scbcd5-guide/ch09.html#c9s1
@Stateful
@TransactionManagement(BEAN)
public class MySessionBean implements MySession {
@Resource javax.Transaction.UserTransaction ut;
@Resource javax.sql.DataSource database1;
public void method1(...) {
// start a transaction
ut.begin();
}
[b]public void method2(...) [/b]{
java.sql.Connection con;
java.sql.Statement stmt;
// open connection
con = database1.getConnection();
// make some updates on con
stmt = con.createStatement();
stmt.executeUpdate(...);
stmt.executeUpdate(...);
// close the connection
stmt.close();
[b]con.close();[/b] :?:
}
[b]public void method3(...)[/b] {
// commit the transaction
[b]ut.commit();[/b]
}
...
}