DominoArchivingOpenMic2014 Final
DominoArchivingOpenMic2014 Final
DominoArchivingOpenMic2014 Final
Techniques
Amy Knox
IBM Staff Software Engineer
October 15, 2014
Agenda
Why Archive?
Archiving Basics
Background
How it Works
Archive Policies
Answers to some Common (maybe not so common) questions
Other Known Issues and Gotchas
Troubleshooting Domino Archive Issues
Troubleshooting Checklists
Troubleshooting Tools
Troubleshooting Steps
Resources
Q&A
2 |
Why Archive?
Configure in
the client User
Preferences;
Toggle in the top
right menu
TIP: Archive not the same as a backup; Backing up all data, including
archives, is essential!
3 |
Archiving Basics
4 |
Domino server
Copy docs to archive db and truncate original docs in primary database (leave doc
summary)
File server (Windows mapped drive or other disk) i.e. z:\archive\... = non-Domino server
5 |
*Side note about Truncate-style archiving: Leaves the doc in the primary db view, removes
body data, indicates status:
6 |
Additional Requirements:
Archive your own mail db
ACL requirements:
Editor or above
Delete rights
Manager
Delete rights
Other requirements:
7 |
If both are true, then it looks for an archive policy for the listed Owner
Possible caveat: Non-mail dbs (ie. R&R or mail journal) could have a calendar profile
document
Development is aware of this behavior and is considering a change to prevent this
Archiving not allowed, or this is a Calendar Cleanup operation + Calendar Cleanup not
allowed
No enabled criteria
In certain cases, the parent note for a meeting does not show up in the ($Meetings) view; end
result is that none of these docs are removed;
Use LotusScript and client notes.ini solution in TN# 1444622 to workaround this
9 | behavior
2014 IBM Corporation
In this example, Calendar Cleanup will NOT occur, since no archive criteria is enabled at this
time. Further, the administrator has prevented archiving via the policy.
Docs edited by anyone before the target criteria date are not deleted
Not all Repeat Meetings deleted unless all related docs qualify for 10
removal
| 2014 IBM Corporation
All Documents in Notes/Domino have several doc Identifiers (NoteID, OID, etc.)
OF (a random value)
Example of a UNID:
ID: OF0000039D:3836C29F-ON85255DC9:0056FB94
SD00255DF4:0057B8FA-SN00000003
DB85255CD9:00567287-NT0000C092
11 |
Archive Policies
12 |
Archive Policies
Background:
Used to globally set the db Archive settings for local or server-side archiving
Consist of 2 Settings docs (other types of policies only have one):
Archive Settings
13 |
Archive Policies
14 |
Archive Policies
15 |
Archive Policies
16 |
Archive Policies
Decide if you wish to archive ALL docs that meet criteria Or if you wish to use the Delete a
document only when the criteria can delete all responses as well
Use of custom expiration field not common
17 |
Archive Policies
18 |
Archive Policies
*If you choose copy/delete style archiving, designate location of the archive databases
*Directory location is relative to the Domino data directory, unless working with external
location
19 |
20 |
ACLs will get updated to reflect the new name. This also applies to all
server-based archive databases, and users should be able to seamlessly
use all server mail and archives, along with local primary mail.
Starting with 8.5.3FP3, Local user archive db ACLs now gets updated in
ALL cases, and this occurs via the Notes client source code during the
local user.id rename process. This code is invoked after authentication
handshake, after user.id gets updated.
Before this fix, most local database ACLs were already getting updated with
user's new name. There was one case where it was not: If there was an
Administration server in the ACL (set to a server) but no replication history. If
these 2 conditions were present, the local database ACL would not get updated
with the renamed username, including local archives.
Otherwise, it was assumed that if there was a replication history, then we have a
server-side replica which would automatically get updated via adminp anyway
(then that change would be replicated to the local replica.)
21 |
ArchiveServer
ArchivingServer
ArchSrcServer
only valid for Server-side archiving; = server where the source db located
ArchiveLocation
ArchiveLog
ArchiveLogDBPath
ServerEnabled
ServerName
= the destination server name, blank for local archiving; dup of ArchiveServer.
ArcSlctAge
howToArc
howToClean
2 = "Clean up
23 |
24 |
25 |
*Note: It may be necessary to execute the code, then close the entire Notes client, as profile data
is cached in the Notes client, for that session.
26 |
*End Result: New dbs get created if they did not exist before. Data gets copied (when
applicable). Archiving and logging to target location occur no matter if the target server is
running Domino or not.
27 |
Starting with 8.0, the ON part of the UNID no longer corresponds to creation date/time; now it
translates to a hashed value of the MessageID ($MessageID field)
Because of this new functionality, a new field ($Created) added to the documents by the
router.
Archive process was looking at the $Created field, not the actual @Created value.
Sometimes the translation of $Created does not yield a valid date/time value (i.e. ****)
Invalid date/time fields cannot be processed successfully via archive process skips
28 |
Answer: Yes, at this time, you can technically archive non-mail databases.
Use File Application Properties (Archive Settings) button to configure the
Archive profile document for any database.
Use File Application Archive to actually archive documents in any
databases
However, if you wish to use an archive policy to archive custom applications, the
application must have a Calendar Profile document with a populated Designated
Mail File Owner field.
Caveat: System Databases with a Calendar profile (R&R, mail journal) with a
populated Owner field are also subject to archiving at this time.
29 |
You can easily have different criteria set to archive data to multiple destinations.
The criteria is processed in the order listed in the archive settings, from the top down.
If one criteria deletes docs but another one prunes, deletion takes precedence.
-----------------------------------------------------------------------------
If you archive a week later, the 90 day db would then get documents that were 90day + 1 week.
The 120 day db wouldn't get anything new because the docs deleted by the 90 criteria removed
them. Same for the 365 db.
In summary, different time ranges to different destinations from the same views is problematic.
30 |
Attachments put back inline into their respective documents, in archived docs
Caveat: Missing NLOs could halt the archive process and return Invalid or
nonexistent document during the archive process
b.) Archive does not yet exist, about to archive for the first time:
Notes:
The combination of compact options will not affect the primary database or any
existing archive databases.
Compact behavior does not change when -a and -DAOS off are used
together.
31 | 2014 IBM Corporation
Background Server-Server Scheduled archiving: Same as for Notes client mail users
Mail Policy:
Mail Settings doc iNotes tab: Allow archiving on the server and Allow local archiving
32 |
33 |
When determining the archive database file name, Domino does the following:
a.) 2 unique Users have the same mail files, but are on different mail servers, and archiving to
the same archive server/directory
b.) Admin specifies a small number of characters (i.e. 6) for the archive db name, multiple users
have the same 'n' letters of their file name, and the users all archive to the same server/directory
Prefixes this with the value in the Archive Prefix setting, again in the Archive Criteria Settings.
Takes part of the mail database file name as specified in the "Number of characters from original
filename" setting in the Archive Criteria Settings.
Workaround for (a.) Specify a unique Archive Prefixfor each of the primary mail servers
Workaround for (b.) Increase the number of characters to prevent ambiguous or duplicate
names.
34 |
Newer Mail (that does not fit the Criteria) is being Archived
35 |
36 |
If using server compact task to archive, does compact return any errors?
What type of doc is it: calendar, reminder, To-Do, follow-up, notice, or mail/reply?
What are the PostedDate and DeliveredDate values of the doc(s) in question?
Does NotesPeek show any odd date/time stamps, for the specific doc in question?
37 |
38 |
Command-line
Description:
Releases:
Archive Only
-A
9,8,7,6,5
Archive then
Compact
-a
9,8,7,6,5
Delete then
Archive
-j
9,8,7,6
*You may, at any time manually kick off compact-induced archiving on the server console:
Example: load compact mail\dbname.nsf -a
39 |
Deletion Stubs
Delete a document only when the criteria can delete all responses as well
40 |
2. Document Properties:
Basics tab: Look at created date, Last modified (In this file)
3. NotesPeek (or Ytria) tool to verify Archive Profile or specific documents that the UI
matches the back-end
4. The default archive log (l_archivedb.nsf) for each user
5. Log_Archiving= : Available for client or server; used with console logging
6. Designer client Archive Profile form, if you are unsure of field names
7. Debug_Archive_Settings=1 to debug archive settings documents
When using Policies, additionally:
8. Detailed Policy Synopsis
9. Designer client Policy Settings\Archive Settings and Policy\Archive Criteria
forms
41
|
Basic db info, Number of docs archived vs. deleted, destination location, etc.
Defined in the Archive profile doc, either set manually or via the policy:
42 |
log_archiving=1
log_archiving=2
log_archiving=10
Archive debug
log_archiving=11
44 |
45 |
When to use:
Skip any step that may not apply (i.e not using policies, not logging, etc.)
46 |
Troubleshooting Steps
1. If logging is enabled, review the default archive log for stats or errors (slide 42)
2. (If applicable) Run Detailed policy synopsis (archive only).
47 |
Troubleshooting Steps
2. (If applicable) Policy synopsis
48 |
Troubleshooting Steps
2. c.) (Optional) Review Field names in Designer client for clarification:
In the Forms list, find and Policy\Archive settings and Policy\Archive Criteria forms:
49 |
Troubleshooting Steps
2. c.) (Optional) Review Field names in Designer client:
50 |
Troubleshooting Steps
3. After reviewing the policy, verify that the settings match, in the database:
a.) Actions Archive Settings (Client UI)
b.) NotesPeek Profiles Archive Profile and the Name of the Archive Criteria
51 |
Troubleshooting Steps
4. Look at the Creation date in the doc properties; Compare with date column:
5. If the values match, grab the document NoteID from the doc properties last tab:
52 |
Troubleshooting Steps
Check/Verify/Eliminate all other doc types that do not archive by default (see slide 40)
7. Review the doc in NotesPeek. Look for odd date values all fields (right pane):
*Hint: Primary focus is on date of creation; but check also $MessageID
53 |
Troubleshooting Steps
7.) (cont'd) NotesPeek: Example of a malformed date field:
Note: If malformed date/time values are present, you may need to manually
archive this document.
54 |
Troubleshooting Steps
8. If everything looks correct in the Archive settings, profile, and doc properties, and
still have not diagnosed the issue, implement log_archiving=n
a.) (Easiest) Make an OS copy of the db to a test machine server or client.
b.) Add log_archiving= and console_log_enabled=1 to the notes.ini. Restart the client or
server, just to get a fresh console.log.
c.) To prevent unwanted deletions/archiving while testing, open the new OS copy and:
d.) Verify the correct Archive criteria is enabled in the Archive Settings.
e.) In the Client UI with the db open: Actions Archive Archive Now. Let the
archiving complete
f.) Open the latest console.log in the applicable IBM_TECHNICAL_SUPPORT folder
client:
...\notes\data\IBM_TECHNICAL_SUPPORT
server:
...\Domino\data\IBM_TECHNICAL_SUPPORT
55 |
Troubleshooting Steps
8.) (cont'd):
g.) Search for the NoteID in question (the one you pulled from step #5):
Sample output from log_archiving=11:
[1A70:0002-1D40] TestNoteForArchiveSelection> Adding note 31730 (7BF2) as entry 3904
[1A70:0002-1D40] TestNoteForArchiveSelection> Adding note 31734 (7BF6) as entry 3905
[1A70:0002-1D40] TestNoteForArchiveSelection> note 32126 (7D7E) is deleted/ghosted
[1A70:0002-1D40] TestNoteForArchiveSelection> Adding note 31510 (7B16) as entry 3906
[1A70:0002-1D40] TestNoteForArchiveSelection> note 31506 (7B12) is deleted/ghosted
[1A70:0002-1D40] TestNoteForArchiveSelection> Adding note 31514 (7B1A) as entry 3907
[1A70:0002-1D40] 10/11/2014 01:48:25.44 PM Archiving> create time of note 31510 (0x7B16) is 07/09/2007 06:37:40 PM
[1A70:0002-1D40] 10/11/2014 01:48:25.44 PM Archiving> create time from criteria is 10/11/2013 01:48:01 PM
[1A70:0002-1D40] 10/11/2014 01:48:25.44 PM Archiving> note 31510 (0x7B16) is a candidate based upon create time
[1A70:0002-1D40] 10/11/2014 01:48:25.44 PM Archiving> note 31510 (0x7B16) is NOT a candidate based upon $nopurge
[1A70:0002-1D40] 10/11/2014 01:48:25.44 PM Archiving> create time of note 31514 (0x7B1A) is 07/30/2013 05:22:44 PM
[1A70:0002-1D40] 10/11/2014 01:48:25.44 PM Archiving> create time from criteria is 10/11/2013 01:48:01 PM
[1A70:0002-1D40] 10/11/2014 01:48:25.44 PM Archiving> note 31514 (0x7B1A) is a candidate based upon create time
[1A70:0002-1D40] 10/11/2014 01:48:25.44 PM Archiving> ARCHIVE: adding noteID 31514 to Match
[1A70:0002-1D40] 10/11/2014 01:48:25.44 PM Archiving> ARCHIVE: adding noteID 31514 to Delete
56 |
Troubleshooting Steps
8.) NOTE: When Archiving is successful, you will see entries such as this in the
console.log (with log_archiving enabled):
[1A70:0002-1D40] 10/11/2014 01:48:02.67 PM Archiving> create time of note 11402 (0x2C8A) is 02/27/2014
04:57:21 PM
[1A70:0002-1D40] 10/11/2014 01:48:02.67 PM Archiving> create time from criteria is 10/11/2013 01:48:01 PM
[1A70:0002-1D40] 10/11/2014 01:48:02.67 PM Archiving> note 11402 (0x2C8A) is NOT a candidate based
upon create time
[1A70:0002-1D40] 10/11/2014 01:48:02.67 PM Archiving> create time of note 11386 (0x2C7A) is 03/22/2013
02:11:57 PM
[1A70:0002-1D40] 10/11/2014 01:48:02.67 PM Archiving> create time from criteria is 10/11/2013 01:48:01 PM
[1A70:0002-1D40] 10/11/2014 01:48:02.67 PM Archiving> note 11386 (0x2C7A) is a candidate based upon
create time
[1A70:0002-1D40] 10/11/2014 01:48:02.67 PM Archiving> ARCHIVE: adding noteID 11386 to Match
[1A70:0002-1D40] 10/11/2014 01:48:02.67 PM Archiving> ARCHIVE: adding noteID 11386 to Delete
57 |
Troubleshooting Steps
9. Go back to the document in the Notes client. Look again at document properties. Now,
we can see a $NoPurge, set to :
10. Remove any barriers to archive (i.e. agent to remove unwanted fields) then kick off
archiving again
Additional Resources
Domino Archiving References:
Domino Admin Help: Understanding mail archiving and policies
Domino Admin Help: Creating an archiving policy settings document
Domino Admin Help: Creating an archive criteria settings document
TN# 7010310: Self-Training: Domino Archive policy settings documents
59 |
Q&A
Please press *1 on your phone to ask a question
60 |