cancel
Showing results for 
Search instead for 
Did you mean: 

Would a tcp/ip client recognize if a commit is lost

MCMartin
Participant
2,743

Would a database client using tcp/ip recognize if the packet transmitting the commit command to the server is lost?

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member

It won't recognize this particular failure, because TCP will provide packet recovery as Breck has mentioned. Assuming TCP isn't able to recover and resend the packet, the client libraries should return a communication error (-85):

Communication error

Other failures for a commit should also be surfaced as an error. Ultimately, if the call making a commit returns without an error code, the commit should succeed.

Breck_Carter
Participant

Probably not, because TCP provides packet recovery: http://en.wikipedia.org/wiki/Packet_loss#Packet_recovery

MCMartin
Participant
0 Kudos

So, there is no hand-shake on database level?

Former Member
0 Kudos

If commit is succesful than you get succesfull return code. If tcp connection is broken while you transmit packet with commit than you get connection error (tcp garanee it). But may be will be interesting for you distributed transaction/two phase commit technology?

MCMartin
Participant
0 Kudos

I am wondering if a situation is possible there the client sends the commit but server never receives it and client waits indefinetly to receive the handshake.

VolkerBarth
Contributor
0 Kudos

The possible answers are wayyy beyond my network knowledge, but the effect of the LivenessTimeout would come into play here, methinks.