[jboss-user] [Management, JMX/JBoss] - UserTransaction not working inside jboss service
elgabo
do-not-reply at jboss.com
Tue May 26 20:17:15 EDT 2009
Hi everyone,
I'm heavily using JMX based services inside a JBoss 4.2.3 application server (.sar project).
But I am not able to manage a JDBC transaction through UserTransaction. The statements get executed before I commit the transaction and when I rollback the changes are not undone. I use a local-tx-datasource MySQL JDBC datasource
| <local-tx-datasource>
| <jndi-name>myDs</jndi-name>
| <connection-url>jdbc:mysql://myserver:3306/opensips</connection-url>
| <driver-class>com.mysql.jdbc.Driver</driver-class>
| <user-name>myuser</user-name>
| <password>mypwd</password>
| <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
|
| <metadata>
| <type-mapping>mySQL</type-mapping>
| </metadata>
| </local-tx-datasource>
|
and I think I'm correctly using the JTA API
| Connection conn = null;
| UserTransaction tx=null;
| try {
| DataSource ds=(DataSource) this.getResource(this.opensipsDs);
| tx=(UserTransaction) this.getResource("UserTransaction");
| tx.begin();
| conn=ds.getConnection();
| String activateSql="insert into grp (username, grp) values (?, 'active')";
| String deactivateSql="delete from grp where username=?";
|
| PreparedStatement ps;
| Set<String> lineas=estados.keySet();
| for(String linea:lineas) {
| if(estados.get(linea)) {
| //activar
| ps=conn.prepareStatement(activateSql);
| } else {
| //desactivar
| ps=conn.prepareStatement(deactivateSql);
| }
|
| ps.setString(1, linea);
| ps.executeUpdate();
| }
|
| tx.commit();
| } catch (Exception e) {
| this.log.error("error al realizar modificacion en opensips", e);
| if(tx!=null)
| try {
| tx.rollback();
| } catch (Exception ex) {
| this.log.info("no se pudo realizar rollback");
| }
| } finally {
| try {
| if(conn!=null&&!conn.isClosed()) {
| conn.close();
| }
| } catch (SQLException e) {
| this.log.debug("la coneccion ya esta cerrada");
| }
| }
|
Can I use the JTA API inside an MBean? Thank for you help
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4233444#4233444
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4233444
More information about the jboss-user
mailing list