Vikram Bhatia commented on OPENJPA-230:

It works based on size of the packet queue. Once the broadcast queue is empty, 
it interrupts the thread assuming that all the packets are broadcasted.

Why do _processLock is required?
It may call interrupt even if the thread is calling sendUpdateQueue if we dont 
have a syncronization. I was thinking about having boolean variable, but that 
will have synchronization issues, and thread may be interrupted without 
completely sending the packet.

> Handle guaranteed delivery of Data Cache events on normal JVM termination 
> using TCPRemoteCommitProvider
> -------------------------------------------------------------------------------------------------------
>                 Key: OPENJPA-230
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-230
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: kernel
>    Affects Versions: 0.9.0, 0.9.6, 0.9.7
>            Reporter: Vikram Bhatia
>            Priority: Minor
>         Attachments: OPENJPA-230.patch, OPENJPA-230.patch, reproducer.zip, 
> soln.diff
> When an application is commiting a transaction and then terminating, often 
> not all events regarding Data Cache are dispatched by the 
> TCPRemoteCommitProvider. It seems that the JVM on termination is not waiting 
> until TCPRemoteCommitProvider has dispatched all events regarding Data Cache. 
> In this way some cache synchronization is lost.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

Reply via email to