I tried to use client user transaction. The code goes below:
InitialContext jndiContext = new InitialContext();
UserTransaction utx = (UserTransaction);
jndiContext.lookup("UserTransaction");
Then I begin a client user transaction using utx.begin(), and then connected to HyperSonic database and inserted a record into a table created before. After that, I rollbacked the transaction. In my opinion, the record won't be inserted successfully, but I found that the record is still in the table. That is to say, the transaction wasn't rolled back.
I wonder why and think if there's something wrong when I use the client user transaction. Thanks a lot!