Re: ERJGroupsSynchronizer
Re: ERJGroupsSynchronizer
- Subject: Re: ERJGroupsSynchronizer
- From: Ricardo Parada via Webobjects-dev <email@hidden>
- Date: Fri, 25 Mar 2022 17:03:10 -0400
By the way, here’s a synchronizer subclass I wrote to keep changes in sync
within a single java VM.
/**
* Keeps EOF in sync within a single java VM.
*
* Wonder's ProcessChangesQueue seems to takes care of keeping
* in sync EOF stacks used in other threads.
*/
public class LocalSynchronizer extends ERXRemoteSynchronizer {
public LocalSynchronizer(IChangeListener listener) {
super(listener);
}
@Override
public void join() throws Throwable { }
@Override
public void leave() throws Throwable { }
@Override
public void listen() throws Throwable { }
@Override
protected void _writeCacheChanges(int transactionID, NSArray<CacheChange>
cacheChanges) throws Throwable
{
// Nothing to write to the group
}
}
To use it you use these properties:
# Synchronization across EOF stacks (single VM)
#
# NOTE: The maxCoordinator property is needed to trigger the of
# initialization the synchronizer.
#
er.extensions.ERXObjectStoreCoordinatorPool.maxCoordinators=1
er.extensions.remoteSynchronizer.enabled=true
er.extensions.remoteSynchronizer=com.mpv.eof.LocalSynchronizer
Notice that the properties to specify which entities to include / exclude is
not needed as the filtering of changes by entity seems to be used only when
deciding which changes to send to remote instances.
Thank you
Ricardo J. Parada
> On Mar 25, 2022, at 4:49 PM, Ricardo Parada via Webobjects-dev
> <email@hidden> wrote:
>
> Thank you all for the responses.
>
> When we put the ERJGroupsSynchronizer in production we started receiving
> reports of users not being able to access the application instances or
> getting kicked out of the application. I do not know if the
> ERJGroupsSynchronizer is the one to blame. So I think it would be unfair to
> blame the problem on ERJGroupsSynchronizer.
>
> We just noticed the these warnings in the console and the first thing we
> tried was to disable the synchronizer and the problem seems like it
> disappeared after we did that.
>
> Mar 11, 2022 12:14:10 AM org.jgroups.protocols.UDP setBufferSize
> WARNING: JGRP000015: the send buffer of socket MulticastSocket was set to
> 5MB, but the OS only allocated 212.99KB. This might lead to performance
> problems. Please set your max send buffer in the OS correctly (e.g.
> net.core.wmem_max on Linux)
>
> This seems like it could be fixed by increasing the max send buffer on the
> servers.
>
> The testers in our UAT environment noticed the following warnings:
>
> WARNING: JGRP000012: discarded message from different cluster
> UATClaimScrubber (our cluster is UATContractManager). Sender was
> f677bf19-c5e7-a69e-2000-97638a06f579 (received 4 identical messages from
> f677bf19-c5e7-a69e-2000-97638a06f579 in the last 64665 ms)
>
> I think this just means that two different instances with a different
> application name are using the same multicast address. Nothing really
> harmful. This could probably be taken care of by setting the group name to
> the same name on both.
>
> If I get any additional information I will post my findings.
>
> Thank you all,
> Ricardo J. Parada
>
>
>
>
>
>> On Mar 21, 2022, at 11:28 AM, Steve Peery <email@hidden
>> <mailto:email@hidden>> wrote:
>>
>> I’ve also been using it for years to synchronize instances.
>>
>> I’m not sure it is going to do what you want. You say you want to use it so
>> you can update "without resorting to fetching”. I think the synchronization
>> notifications simply pass the global IDs of the objects that have changed so
>> they are refetched in the receiving instances.
>>
>> Steve
>>
>>
>>
>>> On Mar 20, 2022, at 6:21 PM, Paul Hoadley via Webobjects-dev
>>> <email@hidden <mailto:email@hidden>>
>>> wrote:
>>>
>>> Hi Ricardo,
>>>
>>> On 19 Mar 2022, at 14:25, Ricardo Parada via Webobjects-dev
>>> <email@hidden <mailto:email@hidden>>
>>> wrote:
>>>
>>>> Does anybody use ERJGroupsSynchronizer?
>>>
>>> We've been using it for years now, albeit with some light modifications to
>>> allow JGroups to work on AWS (originally via the Meltmedia AWS_PING
>>> project, but now via our own fork of that since it's essentially
>>> abandonware).
>>>
>>>> I’m trying to synchronize two EOF stacks within a single VM. I don’t want
>>>> the synchronization to happen across application instances.
>>>>
>>>> The video from Mike Shrag from a WOWODC conference said it can be single
>>>> VM or across VM. I’m interested in the single VM but have not yet figured
>>>> out how to do it.
>>>>
>>>> Basically, I have a background task doing work on a separate EOF stack and
>>>> I want the changes to reflect on the EOF stack used by the user interface
>>>> without resorting to fetching.
>>>
>>> Intra-JVM like that is not a configuration we've used. Can you walk us
>>> through what you've tried and why you think it's not working? There have
>>> been a few others using it over the years, maybe they're still on the list.
>>>
>>>
>>> --
>>> Paul Hoadley
>>> https://logicsquad.net/ <https://logicsquad.net/>
>>> https://www.linkedin.com/company/logic-squad/
>>> <https://www.linkedin.com/company/logic-squad/>
>>>
>>> _______________________________________________
>>> Do not post admin requests to the list. They will be ignored.
>>> Webobjects-dev mailing list (email@hidden
>>> <mailto:email@hidden>)
>>> Help/Unsubscribe/Update your Subscription:
>>>
>>> This email sent to email@hidden <mailto:email@hidden>
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list (email@hidden)
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden