and I'm using the Netbeans generated AbstractFacade handle the persistence. My persistence code is;
If I create a new client with a unique telephone number everything works. However, if I create a new client and reuse an existing persisted
telephone number, I get an exception because the phone number already exists in the database as expected, but the new client is still created in the database. I was expecting a rollback and neither client nor telephone to be persisted.
James Sutherland wrote:Ensure that you have defined "jdbc/pembridge" as a JTA enabled DataSource in Glassfish.
jdbc/pembridge is defined in terms of a connection pool. There doesn't appear to be any other options. The connection pool is defined as a resource type javax.sql.ConnectionPoolDataSource with a datasource classname of com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource.
Glassfish offers alternative resource types of javax.sql.Driver, javax.sql.DataSource and javax.sql.XADataSource. I can't find anything that indicates/mentions JTA.
One odd thing however, Glassfish seems to be creating it's own connection & pool definition. It's created its own connection "pembridge" connnected to pool "mysql_Pembridge_RootPool" which is defined with a resource type of javax.sql.DataSource with a datasource class name of com.mysql.jdbc.jdbc2.optional.MysqlDataSource. If I delete these, they appear to be re-created when I deploy my application, although it never uses this (there's no database userid or password defined for it)
posted 9 years ago
I believe the JTA DataSource is the javax.sql.XADataSource one.