[Info-vax] RMS journaling - how it works (for dummies)
Brian Schenkenberger
mail at SendSpamHere.ORG
Wed Jul 19 08:40:43 EDT 2023
On 2023-07-16 14:52:56 +0000, Hein RMS van den Heuvel said:
> On Sunday, July 16, 2023 at 6:51:52 AM UTC-4, d45 n0x8!7 wrote:
>> Hello Old$Boys!>> Can u help me to search a reference to info about of
>> RMS journaling? May be DEC Journal or something other ?
> {...snip...}
>
> A relatively common Journaling desire is Change Data Capture (CDC)
> which RMS Journaling does NOT offer.
> The desire there being to have access to individual changed to records,
> either for auditing purposes (who changed what when) or to be able to
> forward such changes to another system or to a database.
>
> There is a Commercial product called RMS-CDC owned by Brian
> Schenkenberger which can do full CDC for any and all file changes
> including before-images based on a magic RMS intercept.
The "intercept" isn't "magic", it's the only way to do this and do this
properly! ANY and ALL RMS operations that can affect a file's contents
must be captured. The record's data is obtained from the bowels of RMS.
Not everything to be recorded or "captured" is passed as an argument!
The BEFORE IMAGE is the real magic!
BEFOE IMAGE??? What's in the record BEFORE an $UPDATE? What WAS in the
record BEFORE a $DELETE? It's all magic from deep in the bowels of RMS.
Believe me, it's not simple and it's not as simple as performing a $GET
before doing an $UPDATE or a $DELETE. There's a lot of unpleasant
shhh..tuff in those bowels. Indexed files are expecially onerous
because a $GET, which would seem an obvious way to obtain the BEFORE
IMAGE, can and will corrupt the record pointers for the $UPDATE and or
$DELETE. It has/had to be done without affecting the actual RMS call's
functional operation. It's also done ***without*** performing
additional I/O!
> VSI has a prototype CDC based on the standard SSI (System Service
> Intercept) which required the programs to cooperate and declare they
> want they actions to be intercepted. It has good potential but does not
> offer Before Images (which may or might not be critical).
I can't see how that can/could work. SSI calls need to be conciously
incorporated into an/the image that would be doing the RMS calls.
Could/would this capture RMS from DCL, CONVERT, etc? without code
modification? What about the BEFORE IMAGE? Good luck there without
privileged code.
RMS-CDC works without any code modification needed. It's installed and
loaded, and then the files that are of interest for change data capture
are added to RMS-CDC's files-of-interest database. From that point on,
anything that can and will modifiy a file's contents is captured and
squirreled away in a log file for consumption for whatever purpose --
as Hein mentioned such as auditing or database or forwarding to other
systems not necessarily VMS systems -- deemed necessary.
If a system is in a cluster, RMS-CDC needs to be on every node of the
cluster because files can be accessed from every node in the cluster.
This requires special syncronization and sequencing to keep all CDC
data coordinated.
I know that Hein knows all of this because I'd worked closely with him
for several years to implement RMS-CDC. This reply is for the
enlightenment of others.
— VAXman
More information about the Info-vax
mailing list