On 3/25/2016 12:35 PM, Bergquist, Brett wrote:
Shutdown would not work. It was hung on the shutdown as well.
Actually the time to recover is going to be 50 hours which we don’t
have. We have had to go back to a backup of the database two days
ago since the backup of the database done last night also contained
these log files.
What about transactions that are not prepared? I think this is a
hole here. If an application were to xa-start, execute some SQL,
xa-end, but never xa-prepare and the application fails (crash), the
transaction remains in Derby. If the transaction required locks, then
those also remained locked. So what is ever going to clean that up.
The XAResource.recover never sees those transactions.
Again, it's been a long time, but I think when the session ends the
transaction should roll back. That is why I was curious if you saw the
same behavior with your simple repro with Embedded. I am guessing with
embedded, the connection and the transaction goes away on System.exit()
in the first program. My guess is that Network Server is not cleaning
up the session and so the transaction sticks around. I wouldn't be
surprised if there were that kind of connection cleanup issue with
Network Server. With your simple case, does runtimeinfo show the
session still active?
Kathey