Skip to Content.
Sympa Menu

grouper-users - [grouper-users] Can the ChangeLogConsumerToMessage send to a remote grouper instance?

Subject: Grouper Users - Open Discussion List

List archive

[grouper-users] Can the ChangeLogConsumerToMessage send to a remote grouper instance?

Chronological Thread 
  • From: "Black, Carey M." <>
  • To: "" <>
  • Subject: [grouper-users] Can the ChangeLogConsumerToMessage send to a remote grouper instance?
  • Date: Mon, 15 Oct 2018 21:48:46 +0000
  • Accept-language: en-US
  • Authentication-results: spf=pass (sender IP is;; dkim=pass (signature was verified);; dmarc=pass action=none;
  • Authentication-results-original: spf=none (sender IP is ) ;
  • Ironport-phdr: 9a23:dEpxOxHLgWVaCn/q4QvhQZ1GYnF86YWxBRYc798ds5kLTJ76p825bnLW6fgltlLVR4KTs6sC17KJ9fi4EUU7or+5+EgYd5JNUxJXwe43pCcHRPC/NEvgMfTxZDY7FskRHHVs/nW8LFQHUJ2mPw6arXK99yMdFQviPgRpOOv1BpTSj8Oq3Oyu5pHfeQpFiCa/bL9oMBm6sRjau9ULj4dlNqs/0AbCrGFSe+RRy2NoJFaTkAj568yt4pNt8Dletuw4+cJYXqr0Y6o3TbpDDDQ7KG81/9HktQPCTQSU+HQRVHgdnwdSDAjE6BH6WYrxsjf/u+Fg1iSWIdH6QLYpUjmk8qxlSgLniD0fOjA57m/Zl9BwgqxYrhKguxNxzIHbbZqJNPpnYq/RYc8WSXZfUstXSidPApm8b4wKD+cZM+pVso39qEESohu9HQWnGf3ixSVShnDo3awxzuMvHRvI0Ac9GN8Bq3DUo8/pO6cRS+y50bfEwDvYYvNRwjf99ZLEfQ48rvGRRL99d9fax0coFwPAlFqQqIrlMiuU1uQLr2iU8fBgVeSxhG47tQ19uCagydoxioTPm4kbyUjE+D1nzIkvOdG0VUt2bcO5HJdNsiyaOYR7Tt8+T2xttiY11LILtoO+cSUPypkr2x/SZ+SZf4WJ/B7vSOOcLSt9iX54Yr2zmgq+/E2ix+D+WMm7zFNHoy5YntbRqnwA0gfc58aFR/Z++0quxyiD2x3I5exBO087i6vWJII5zr4+iJUesljPEyrzlUj2g6KWeF4r9+2m5unnY7jpvZqROot2hw3jLqsjn8iyDOU8PwQSWWWQ5P6y26f5/ULjRbVHlv02nbfdsJDdPckVvrK0DQhJ3oss8hqyES6o3MkBkXkAN11KZgiLj4/0O1HSO//4Cuq/g1Kxnztx3/DGJLrhAonTIXffjLfhfLF960hGxAo00NBf+5ZUCrYGIPLwQEP+qNvYDhohPwy1xeboFsl925sAVW2VHqOVLabfvUKV6u4yJuSMaoAYtCrhJ/Ug6f7hk3A0lkIYcKSs35YbdHG1EuxjI0qDYHrshtkBEX0Nvgo7VOHlk1mCXiRPaHaxRa4w+y83BYy9AIfEXYCtnaaN0zmmEZ1LfmxGEEyDEW/0d4WYXPcBcC2SItVmkjwZTbiuVZUh2QiztA/h1bVnNPHU9zYctZLiz9h1+/bTmQ8o+Tx1CcSdz3+CT3tynmwWWz86wrpzrlJgxVeeguBEhKkSGsZU+utESEInLpPG1MR7Dcz/QATMYo3PRVq7CJ3yDis2U8o82ZoTeEtnAP2jiAzOxSynH+VTmrCWUs8a6KXZijLbI892yDKO/6A7gkhuZ40FfTmsgqd09E6KXdXhlF6E0aumaPJPj2b26G6fwD/W7wljWwlqXPCdBypNb1bKrdn/+kLJRqOvDrJiKAZa1MqeMfIbM4/ylVsTXP74I5yeeG+3l2qqTTewjrKXJNOwKyNEgHubURZf1VlDvBPkfRM7Gj/npmvfCDJ0Ele6ZFjxt+RytSDzT0kowhuMYlE7kbe5501dif+dTqYL16kf8Gc6qjpyFUqgxd+eFNOb7xRsZqRSYN4xoTIlnWLUvgBwJNqseqd5mxgTfxkkvkXy2g9xB5ka18UmsSBiwA97M6nNyFpabHuR1ozxPbuCLG708VivZqfa10uY3syR//II8+l+pln+7ww=
  • Spamdiagnosticmetadata: NSPM
  • Spamdiagnosticoutput: 1:99

My goals is to "migrate" events from one Grouper install to another. Then
"re-play" the events into the remote grouper.

In my universe I am using grouper UI and WS services.
NOTE: I have not yet cracked the "book" on the grouper client. ( Maybe that
is the gap in my knowledge? )

"Configure a message sender (change log format) in"

edu.internet2.middleware.grouper.changeLog.ChangeLogConsumerToMessage ( I am
guessing this needs to be a "local queue")
It looks like there is a class that can take a changelog and turn it
into a "message".
But I don't see how I can send that message to a "remote"
grouperBuiltinMessaging system.
If I could send to the WS "Message Receive" on Grouper2 that might be
ideal to transport between the two. ( Especially if the "Receive" WS actually
decodes the message and will "replay it" on the local instance too, or it
could be smart enough to call the "right web service" from the sending code.)

" Hook up grouper WS to read from a queue "
" That will cause all WS servers to listen on a queue or topic for
messages " ( I am guessing this needs to be a "local queue")
But then again I am left with "how to connect it to the
'other' grouper instances message queue?".

Appears to be able to talk to Grouper WebServices... maybe it could
read "Queue1 from Grouper1" and write "Queue1 on Grouper2"?

High level desired flow:
Group1 changeLogConsumer to(-->) message queue on Grouper2 (not sure
if REF1 can do this or not, might need REF1 and REF3?)
Grouper2 Message Queue to (-->) Grouper2 API calls on Grouper2 (

It might work like this: ( three queues, maybe just configuration to get
Users adds a folder on Grouper1.
Change log consumer creates a message on Grouper1(REF1) to "create
folder 'newFolderName'".
( Ideally, message is delivered to Grouper2 by Grouper 1. But
might require using grouperClient REF3) to move the message from Grouper1 to
Message processor (REF2 on Grouper2) reads the local queue and
creates the 'newFolderName' on Grouper2.

NOTE: I would be prefer to remove the queue in the middle if that could be
done too. After all the sending ChangeLogConsumer is a queue. :)
In this case: (two queues)
Users adds a folder on Grouper1.
Change log consumer(REF1) creates a message on Grouper2 (can it do
that?) to "create folder 'newFolderName'".
Message processor (REF2 on Grouper2) reads the local queue and
creates the 'newFolderName' on Grouper2.

NOTE: Maybe more ideal : (only one queue only on the sending side)
Users adds a folder on Grouper1.
Change log consumer(some combination of Ref1 and Ref2 ?) calls WS on
Grouper2 to "create folder 'newFolderName'".

As long as this data flow is reasonably "fast" (completed within a few
minutes of user actions), reliable ( 100% ), and covers 100% of the Grouper
API, then I think it would work well for the following use cases:
) Database migrations (across DB types)
Likely leaves Point in time data behind... but I think that
could be dealt with in other "non-real time" ways for audit.
Or if the messages could preserve the original "start dates"
that would be ideal. Then only the "already closed" items would be left
behind. And all active objects would be "reconstructed".
) Filter replicas ( where you only want some of the data to be sent. )
) "warm backups" / "Read only copies"

I hope I am missing just some configuration details here...

Thoughts? Clue bricks? Recipes?

Thanks in advance.

Carey Matthew

Archive powered by MHonArc 2.6.19.

Top of Page