This week's giveaway is in the Spring forum.
We're giving away four copies of REST with Spring (video course) and have Eugen Paraschiv on-line!
See this thread for details.
The moose likes JDBC and Relational Databases and the fly likes Deadlock. Is executeBatch() one transaction? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of REST with Spring (video course) this week in the Spring forum!
JavaRanch » Java Forums » Databases » JDBC and Relational Databases
Bookmark "Deadlock. Is executeBatch() one transaction?" Watch "Deadlock. Is executeBatch() one transaction?" New topic

Deadlock. Is executeBatch() one transaction?

Justin Chu
Ranch Hand

Joined: Apr 19, 2002
Posts: 209
I'm encountering a dead lock situation (infrequent) that is narrowed down to the following scenario.

One regular sql statement is calling the following, deleting possibly thousands of rows

"delete mytable where date = ?"

At the same time, a second job is calling the following sql using batched execution

"delete mytable where date = ? and username =?"

For both calls, autoCommit is not set to FALSE. (true by default)

My suspicion is that executeBatch() in the 2nd sql is somehow allocating more than one sql statement to a transaction. If this is the case, is this a JDBC spec behavior? Or is this oracle jdbc driver implementation bug?
[ August 12, 2008: Message edited by: Justin Chu ]
I agree. Here's the link:
subject: Deadlock. Is executeBatch() one transaction?
It's not a secret anymore!