|[eclipselink-dev] Fix for bug 237849 - RCM ServiceId issues: processing commands from same service in JMS|
The following fix for 237849 has been checked in, and was previously reviewed.
(A patch file has also been uploaded to this bug)
The primary problem is that service id used by RemoteCommandManager is set to
System.identityHashCode (see oracle.toplink.remotecommand.ServiceId).
Such id would only be unique in its VM, but could be duplicated in another
VM. Hovever RCM relies on this id to be unique - and that may cause all sorts
Secondary problem involved JMSTopicRemoteConnection incorrectly processing its
Resolved issue by adding a method 'boolean shouldCheckServiceId()' to
BroadcastRemoteConnection, and adding a check in the processReceivedObject()
method to not invoke processCommandFromRemoteConnection() on the
RemoteCommandManager if shouldCheckServiceId() returns true;
Overrode shouldCheckServiceId() on JMSTopicRemoteConnection to return true.
Changed ServiceId to have a better unique identifier other than its hashcode,
imported java.util.UUID and used a Stringified instance of this as the internal
id to ServiceId. In my testing, it was very fast to create a UUID.
Also fixed some spelling mistakes in the classes.
Not Required (previously reviewed by Andrei Ilitchev)
LRG + All RCM tests in Non-LRG (A-OK)
David Minsky | Senior Member of Technical Staff | (613) 288-4605
Oracle Server Technologies DDR
45 O'Connor Street, Suite 400, Ottawa, Ontario, Canada K1P 1A4
Back to the top