How i can know, who process delete thousands of records in a table of the database version 6.3,
There exists any utilities or something like can help me detect this situation.
The day 01/31/2013 i have 100,000 record, and the day 02/01/2013 only have 93,000 record, and i search for all the programs that make delete and not find anything that tell me what or how it happens.
Thanks for any idea or suggestion.
I am a mainframer but I know SAG keeps the same concepts most of the time across platforms.
The main thing to ask is to you have protection logging turned on for the db in question, and if so, do you still have the PLOG copies lying around that cover the time period in question?
If the answer to both of these is yes, then you just need to do an ADASEL utility to scan the PLOGs for changes to rows on this file (perhaps limiting to deletions). I assume you can get the output of this sent to some ASCII file to browse after.
Once you produce this, hopefully the output will be able to show you a lot of deletion events and will provide you info about the user or his session to identify who it was.
Hopefully someone with more of a Windows expertise will fill in the gaps where I have doubts.
I agree with Brian.
A command log might also help but I doubt you have such one switched on.
In windows platforms wheres is adasel or similar???
thank´s for your response
i am trying with ADAPLP, but, how can get the user or session id, that make the operation,
i get the day and time, but need the user or session id,
thank´s for any idea.
The protection log will tell you what happened. It’s the command log that will tell you who did what. Not many shops have a CLOG running.
Record stores and updates might include the user ID performing the action, via application code or Adabas’ new system-generated fields, but for record deletions it’s unlikely.
I think Adabas logs the same system information for a delete as for insert and update. But if you can relate this to an end-user might not be that easy. Adabas is only interested in the physical userid (terminal, process, …) and there may not be a logical userid.
Here’s an example from by ADAPLP-output:
%ADAPLP-I-STARTED, 06-FEB-2013 10:26:39, Version 126.96.36.199 (Solaris 64Bit)
Rec 6, lng 12, seq 546205597, type CE, th 1
>>> DELETE FILE 235 ISN 16046262 TSN 759 INTERNAL ID 19368 <<<
Rec 7, lng 40, seq 546205598, type ET, th 1, internal id 19368
prio 0, clu 0, ET-TSN 0, TSN 759, user-id R1680
Rec 6 = the delete-command
Rec 7 = the END TRANSACTION
Internal ID = adabas id of the user-queue entry
TSN=sequencial Transaction No per Internal ID
user-id = Adabas-ETID
Thank´s for your attention,
the output of PLP have:
for all the records reports the same user-id: TT, that´s wrong??
That’s not wrong (necessarily). What you show is a series of ET commands by the same user. Odd we aren’t seeing any other commands (updates, deletes, etc.), but it’s not unusual for a single user to run a long process with many sequential transactions.
Do you only filter ET commands?