0

I am connecting to a VoltDB enterprise instance through JDBC driver. However, it does not support transaction control. When I call conn.commit or rollback, it throwsjava.sql.SQLFeatureNotSupportedException.

Any thoughts?

Gilsha
  • 14,431
  • 3
  • 32
  • 47
David
  • 420
  • 2
  • 5
  • 18

1 Answers1

3

VoltDB executes ACID transactions but does not support external transaction control. Multi-statement transactions can be implemented as java stored procedures. Each call/request to the database is essentially one ACID transaction.

There are a number of reasons for this, which have to do with the architecture of VoltDB, and what makes it so fast and scalable. It is perhaps best explained in this video by John Hugg, one of the founding engineers at VoltDB.

http://voltdb.com/resources/video/h-storevoltdb-architecture-vs-cep-systems-and-newer-streaming-architectures

BenjaminBallard
  • 1,482
  • 12
  • 11
  • 1
    Thank you very much Ben. I have much more clear understanding now. I am watching those videos now. They are great also. – David Apr 24 '15 at 23:47
  • Because my existing program is a generic implementation for all JDBC kind of drivers, any way to by pass the exception thrown from the VoltDB Driver? – David Apr 26 '15 at 03:02
  • Hi David, you can set autocommit on, which is the default and only supported setting for the driver. I don't know if that would do anything in your application to avoid calling commit or rollback, but essentially those commands should not be called. – BenjaminBallard Apr 28 '15 at 14:15