You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When you create a record with a field that must be unique, in an open transaction, if connection is lost suddenly, you can not create the same record, until after some time. [CORE4014]
#4345
By accessing remotely firebird with an open transaction and create a record, if you lose your Internet connection suddenly, to connect again, attempting to create the record again, it stays locked in the frozen state, I guess waiting for the conclusion the last transaction that was in the air, the problem is there is no way to conclude the transaction, does not even appear in the list of transactions in limbo (gfix-list), this because one of the fields must be unique.
The former transaction is still considered active, this is why you cannot touch the same record again. That transaction will be rolled back as soon as the engine sees that the client connection is lost, thus allowing further actions with the same records. But the TCP/IP stack does not report a broken connection immediately, hence the issue.
That said, you may decrease the "freeze" time down to the specified amount, via changing either the system TCP keepalive setting (2 hours by default) or DummyPacketInterval setting in firebird.conf (disabled by default).
It's just one TCP packet sent per the specified interval to the every idle client.
I'd suggest to move further discussions to the support list, the tracker is a wrong place for them.
Submitted by: Luis Lince (lflince)
By accessing remotely firebird with an open transaction and create a record, if you lose your Internet connection suddenly, to connect again, attempting to create the record again, it stays locked in the frozen state, I guess waiting for the conclusion the last transaction that was in the air, the problem is there is no way to conclude the transaction, does not even appear in the list of transactions in limbo (gfix-list), this because one of the fields must be unique.
The transaction have this options:
isc_tpb_version3
isc_tpb_write
isc_tpb_read_committed
isc_tpb_rec_version
isc_tpb_wait
The text was updated successfully, but these errors were encountered: