@Stateless @Local(HotelService.class) @Remote(HotelService.class) public class HotelServiceBean implements HotelService {
@EJB private HotelDao hotelDao;
public List<Hotel> findAllHotels() { return hotelDao.findAllHotels(); }
public Hotel saveHotel(Hotel newHotel) { Hotel hotel = hotelDao.saveHotel(newHotel); Stringtest = null; if(test == null){ throw new RuntimeException(); } return hotel; }
}
As you can see after the dao save the record i throw an exception , but the record was save to the DB and roll back was not executed.
<datasources> <local-tx-datasource> <jndi-name>TestDS</jndi-name> <connection-url>jdbc:mysql://localhost:3306/test</connection-url> <driver-class>com.mysql.jdbc.Driver</driver-class> <user-name>test</user-name> <password>1234</password> <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name> <!-- should only be used on drivers after 3.22.1 with "ping" support <valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker</valid-connection-checker-class-name> --> <!-- sql to call when connection is created <new-connection-sql>some arbitrary sql</new-connection-sql> --> <!-- sql to call on an existing pooled connection when it is obtained from pool - MySQLValidConnectionChecker is preferred for newer drivers <check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql> -->
<!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) --> <metadata> <type-mapping>mySQL</type-mapping> </metadata> </local-tx-datasource> </datasources>
Does that mean transaction was not supported by MySQL? I believe it uses InnoDB for transaction management. Thanks for posting the solution. [ June 19, 2007: Message edited by: Shailesh Kini ]
Shailesh Kini.
avihai marchiano
Ranch Hand
Joined: Jan 10, 2007
Posts: 342
posted
0
Its mean that you need to create the Tables or the storage engine InnoDB and not ISAM in case you need transaction