This week's book giveaway is in the Kotlin forum.
We're giving away four copies of Kotlin in Action and have Dmitry Jemerov & Svetlana Isakova on-line!
See this thread for details.
Win a copy of Kotlin in Action this week in the Kotlin forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic

Transaction failure  RSS feed

 
Santiago Conde
Greenhorn
Posts: 16
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hello

I'm having a curious problem here: if I use con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY) and a problem arises during operations, the rollback() method doesn't rollback. Instead of that, if I use con.createStatement(), the rollback works right (con -> a connection).

Using JDBC driver jtds, connecting to a SQLServer. The same issue connecting to a DB2/AS400.

Any ideas?

Thanks.
Santi
 
Jeanne Boyarsky
author & internet detective
Sheriff
Posts: 37242
519
Eclipse IDE Java VI Editor
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Santiago,
By using the CONCUR_READ_ONLY setting, you are telling the driver that your queries do not update the database. Therefore, the driver thinks there is nothing to roll back.
 
Santiago Conde
Greenhorn
Posts: 16
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Jeanne

Yes, I noticed that and also tested it with the option 'UPDATABLE': same behavior.

One thing I forgot to tell is that a use SQL strings and the executeQuery()/executeUpdate() methods to issue the commands. It's my understanding that doing so, the second parameter in the createStatament method should be irrelevant since I'm not working with the RecordSet attributes to modify the database records.

Right now I have solved my problem using a default RecordSet and an ArrayList to move back and forward through the data, but I'd like to understand why is this happening.

Take care.
Santi
 
It is sorta covered in the JavaRanch Style Guide.
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!