Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

JMP105 - "How Stuff Works" - Domino Style!


Published on

You may be a pro at administering a Domino server, but that doesn't mean you understand everything under the hood. Learn the no-fuss, no-frills, simple explanations of the most common Domino concepts and find out exactly how they work, and how to apply this knowledge to help avoid problems and improve performance. You'll learn how reader fields work, how replication and cluster replication works, mail routing including SMTP, the secrets of ACLs, ID file details, Adminp, busytime, cross-certification, recertifying, Domino domains, transaction logging, view indexes, and more. Learning the entire concept behind the "stuff" that's in Domino will make you a better troubleshooter, a faster problem-solver, and an all-around great admin!

Published in: Technology
  • Dating for everyone is here: ❤❤❤ ❤❤❤
    Are you sure you want to  Yes  No
    Your message goes here
  • Sex in your area is here: ♥♥♥ ♥♥♥
    Are you sure you want to  Yes  No
    Your message goes here
  • You can get paid up to $25 per hour to be on Facebook? ♥♥♥
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { } ......................................................................................................................... Download Full EPUB Ebook here { } ......................................................................................................................... Download Full doc Ebook here { } ......................................................................................................................... Download PDF EBOOK here { } ......................................................................................................................... Download EPUB Ebook here { } ......................................................................................................................... Download doc Ebook here { } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THIS can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THIS is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THIS Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THIS the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THIS Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { } ......................................................................................................................... Download Full EPUB Ebook here { } ......................................................................................................................... Download Full doc Ebook here { } ......................................................................................................................... Download PDF EBOOK here { } ......................................................................................................................... Download EPUB Ebook here { } ......................................................................................................................... Download doc Ebook here { } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THIS can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THIS is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THIS Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THIS the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THIS Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
    Are you sure you want to  Yes  No
    Your message goes here

JMP105 - "How Stuff Works" - Domino Style!

  1. 1. JMP105 “How Stuff Works” - Domino Style! Jess Stratton | Independent Consultant | Solace Susan Bulloch | Support SWAT Engineer | IBM
  2. 2. Who are Jess and Susan? <ul><li>Susan Bulloch </li><ul><li>15+ years working with IBM® Lotus® Domino® and Notes® and related products </li><ul><li>12 years with IBM </li></ul><li>Support SWAT Engineer </li><ul><li>High touch, often on-site analysis/repair work
  3. 3. Technote/whitepaper/wiki article author
  4. 4. Certifications </li></ul><li>Part time blogger – </li></ul><li>Jess Stratton </li><ul><li>10+ years working with IBM® Lotus® Domino® and Notes® as a developer and administrator
  5. 5. Blogger, tweeter (@NerdGirlJess)
  6. 6. Written technical articles and been a contributing author for textbooks
  7. 7. Currently an independent consultant! </li></ul></ul>
  8. 8. What are we learning, here, today? <ul><li>We are learning how the basic principles of how many modules of an IBM Lotus Domino Server work.
  9. 9. This presentation is modeled after the brilliant example of </li></ul>From &quot;Our premise is simple: Demystify the world and do it in a simple, clear-cut way that anyone can understand.&quot;
  10. 10. How “” works...
  11. 11. Agenda How Notes Named Networks work How Replication works How Cross-Certifying works How Connection Documents work How Clustering works How View Indexes work How Mail Routing works How Busytime works How Transaction Logging works How Domino Domains work How Agent Manager works How Program Documents work How SMTP works How AdminP works How Smart Upgrade works How Access Control Lists work How ID Files work How Readers fields work How Recertifying works
  12. 12. How Notes Named Networks Work <ul><li>IN THIS SECTION </li><ul><li>Introduction to Notes Named Networks
  13. 13. Routing and Notes Named Networks
  14. 14. Users and Notes Named Networks
  15. 15. Setting the Notes Named Network </li></ul></ul>
  16. 16. Introduction to Notes Named Networks <ul><li>In Domino, the Notes Named Network (NNN) that a server is on defines what other Domino servers it can see. </li><ul><li>Each server on the same NNN is running the same LAN protocol. </li><ul><li>TCP, SPX, NetBEUI, etc. </li></ul></ul><li>Each of those protocols runs on a different port. </li><ul><li>The available ports to choose from is taken from the Ports list in the server's Notes.ini.
  17. 17. For example, cluster servers are frequently connected via dedicated cable and running on their own NNN. </li></ul><li>If a Domino server is on a different port, running a different protocol, it cannot be on the same NNN. </li><ul><li>How would the servers know how to talk to each other? </li></ul></ul>
  18. 18. Introduction, cont. <ul><li>Domino servers can have multiple NNN's.
  19. 19. While other uses are possible, the primary usage for having Notes Named Networks is for mail routing scenarios. </li></ul>
  20. 20. Routing and Notes Named Networks <ul><li>It's simple: Domino servers running on the same NNN can route mail without the need for connection docs. </li><ul><li>Remember – they are running on the SAME port and protocol. </li><ul><li>There still has to be all that DNS magic behind the scenes to make sure they really CAN talk to each other, though! </li></ul></ul><li>Domino servers running on different NNN's can still route mail, but connection documents must be in place. </li><ul><li>Because they are running different network protocols, the connection document will tell the servers how to “find” each other.
  21. 21. They can use a “bridge” to find each other: </li><ul><li>An intermediary Domino server running a second matching NNN. </li></ul></ul></ul>
  22. 22. Users and Notes Named Networks <ul><li>When users open a database and browse “Other” in the server list, the list of server names that will automatically show up are those servers in the same NNN as the user's home server!
  23. 23. When users find a replica of a database, it will automatically “find” replicas of databases also based on servers in the same NNN as the user's home server. </li></ul>
  24. 24. Setting the Notes Named Network <ul><li>Make sure the port is first set up and available in Notes.ini of all servers that will use it.
  25. 25. In the Server doc, go to the Ports-->Notes Network Ports tab.
  26. 26. Enter the port name. Domino will automatically set the protocol.
  27. 27. Enter the Notes Network name. </li><ul><li>Best to put in the protocol and what it's for, ie. “TCPIP Cluster” </li></ul><li>Enter the net address of the port. </li><ul><li>This MUST be reachable by other servers that will use the port for routing! </li></ul><li>Finally, enable the port. </li></ul>
  28. 28. How Connection Documents Work <ul><li>INSIDE THIS SECTION </li><ul><li>Intro to Connection Documents
  29. 29. Keeping it Simple
  30. 30. Tips and Gotchas </li></ul></ul>
  31. 31. Intro to Connection Documents <ul><li>Connection documents provide servers with the information necessary to connect to other servers for mail routing and replication purposes.
  32. 32. A connection document provides two types of information </li><ul><li>Network information </li><ul><li>Defines which server to connect to
  33. 33. How that connection is made and what protocol to use </li></ul><li>Schedule information. </li><ul><li>Defines when and how often activities are performed
  34. 34. Replication and routing to a particular server </li></ul></ul><li>For Mail Routing, two documents are required </li><ul><li>One for each server
  35. 35. Unless the servers are in the same Notes Named Network (NNN) </li></ul><li>For Replication only one document is required </li><ul><li>And it can be one of the mail routing documents </li></ul></ul>
  36. 36. Keeping it Simple <ul><li>Servers in different NNNs only route mail on schedule </li><ul><li>As defined in the Connection document
  37. 37. Plan accordingly </li></ul><li>Keep the number of connection documents between servers to a minimum
  38. 38. Design your mail routing topology so that servers are grouped into Notes Named Networks for routing without connection documents </li><ul><li>Implement a hub-and-spoke replication topology to keep connections simple
  39. 39. This will help you avoid nasty troubleshooting problems </li></ul></ul>
  40. 40. Tips and Gotchas <ul><li>Most code that needs information in Connection docs looks to the same place </li><ul><li>A hidden view called $Connections
  41. 41. If the information in this view is stale, stuff won't work
  42. 42. Like mail routing! </li></ul><li>Never, ever mess with the design of the views in your Directory </li><ul><li>Bad things can happen </li></ul><li>Make sure the View Indexes stay current </li></ul>
  43. 43. How Mail Routing Works <ul><li>INSIDE THIS SECTION </li><ul><li>Introduction to mail routing
  44. 44. Basic Mail Routing
  45. 45. The Routing Table
  46. 46. Routing Mail Efficiently
  47. 47. Transfer Queues and </li></ul></ul>
  48. 48. Intro to Mail Routing <ul><li>Mail Routing for Lotus Notes uses the server task Router </li><ul><li>Lotus Notes can transfer NRPC (Lotus Notes) and SMTP (Internet) mail </li><ul><li>We'll discuss NRPC mail </li></ul><li>The router creates and controls the
  49. 49. Uses them to process messages </li></ul><li>All mail goes first through a </li><ul><li>Clients can deposit mail there
  50. 50. Other servers can deposit mail there </li></ul><li>Router performs Message Transfer </li><ul><li>Recipient is on another server </li></ul><li>Router Performs Message Delivery </li><ul><li>Recipient is on the same server as the </li></ul><li>Router depends on a routing table </li><ul><li>It tells where to send the mail </li></ul></ul>
  51. 51. Basic Mail Routing <ul><li>The Router task initializes </li><ul><li>For example, at server startup
  52. 52. After a restart command </li></ul><li>Router builds the routing table,
  53. 53. Router determines the maximum number of threads to allocate
  54. 54. Router checks MAIL.BOX. </li><ul><li>If the Router finds new or changed messages in </li><ul><li>Its main thread builds the main message queue </li></ul><li>The message queue contains </li><ul><li>An entry (a list item) for each new or modified message
  55. 55. Summary information about the message </li><ul><li>Recipients, destination, date sent, etc. </li></ul><li>After building the message queue, the main thread dispatches each message in the queue </li></ul></ul></ul>
  56. 56. The Routing Table <ul><li>Routing tables </li><ul><li>Use Connection documents, Domain documents, and Server documents in the Domino Directory,
  57. 57. Settings in the server notes.ini file </li></ul><li>Router builds the routing table and determines which servers are connected
  58. 58. The Router periodically checks certain views in the Domino Directory for edits and additions to the documents </li><ul><li>$Connections, $Domains, and $Servers </li></ul><li>The Router does not pick up a change until one of the views changes </li><ul><li>If you change a value in the Server document, the Router is not aware of it until the view refreshes
  59. 59. View indexing is important! </li></ul></ul>
  60. 60. The Routing Table (con't) <ul><li>By default the router polls for changes every 5 minutes </li><ul><li>Use &quot;Tell router update config&quot; to process changes immediately
  61. 61. Or restart the router task
  62. 62. Global Domain Document settings are changed only on server restart </li></ul><li>Router basically builds a graph </li><ul><li>Of all servers in the domain
  63. 63. Plus all servers that use Adjacent domain documents to connect to other domains
  64. 64. In a format that ensures fast lookups. </li></ul><li>The Router tries to check the views before dispatching each message. </li><ul><li>If it finds changes, it reloads the routing table. </li></ul><li>To view the routing table </li><ul><li>“tell router dump routingtables”
  65. 65. Since Version 8.5.1 </li></ul></ul>
  66. 66. Routing Mail Efficiently <ul><li>When Router finds users that are on the same server as the holding the message </li><ul><li>It marks the message for “local delivery”
  67. 67. Delivers the message to one or more mail files on the server </li></ul><li>When Servers are in the same Notes Named Network (NNN), mail is transferred to the server without using connection records </li><ul><li>Remember this when planning connections </li></ul><li>When the transfer thread connects to MAIL.BOX on a server, it performs a NoteUpdate that temporarily locks MAIL.BOX </li><ul><li>If a large message is being delivered, the opportunity for a logjam occurs </li></ul><li>If there are multiple MAIL.BOX databases on the destination server </li><ul><li>A transfer thread can move to an available MAIL.BOX if one MAIL.BOX is locked </li></ul><li>Multiple transfer threads and multiple MAIL.BOX databases on the receiving server result in faster processing of messages for that destination </li></ul>
  68. 68. Transfer Queues and <ul><li>Message Transfer queues are in-memory queues that move a message from one server to another. </li><ul><li>Each transfer thread handles a single message for a single destination, but deals with all recipients of that message at that destination
  69. 69. The sending server tries to transfer as many pending messages to a destination as possible over an open connection for maximum efficiency </li></ul><li>Sending servers only use multiple threads to a single destination if the connection is fast enough
  70. 70. Use “Tell router show” to see the transfer queues </li><ul><li>The console displays the destination, number of messages pending, and state for each active transfer queue.
  71. 71. You can sometimes see your slow connections! </li></ul></ul>
  72. 72. How Domino domains work <ul><li>IN THIS SECTION: </li><ul><li>What is a Domino domain used for?
  73. 73. What do servers in a domain share?
  74. 74. What are the types of Domino domains? </li></ul></ul>
  75. 75. What is a Domino domain used for? <ul><li>A Domino domain is a group of Domino servers that share a Domino Directory </li><ul><li>names.nsf </li></ul><li>A Domino domain can be used to control several things: </li><ul><li>Server access
  76. 76. Domino server groups
  77. 77. Clustering
  78. 78. Mail routing </li></ul><li>A Domino domain is specified at the end of a user's common name, org units, and certifier. </li><ul><li>“Jessica Stratton/Qualinesti/Solace@Solace” </li></ul></ul>
  79. 79. What do Domino servers in a domain share? <ul><li>Busytime </li><ul><li>Or clubusy.nsf if they are clustered (more on that later!) </li></ul><li>The Domino Directory </li><ul><li>names.nsf </li></ul><li>The Administration Process </li><ul><li>adminp.nsf </li></ul><li>Monitoring
  80. 80. The Certification Log
  81. 81. These databases need replicas of each other on each server in the domain! </li></ul>
  82. 82. What are the types of Domino domains? <ul><li>Adjacent Domain document </li><ul><li>These are most commonly used to restrict or allow mail to be sent to/from Domino servers through Domino domains. </li></ul><li>Non-adjacent Domain document </li><ul><li>These are used when a “bridge” Domino domain is used to connect two Domino domains not connected via Connection documents.
  83. 83. These can be used for “next-hop” instructions, and also restriction/allow rules.
  84. 84. Calendar servers can be specified here for free-time lookups between domains </li></ul><li>Foreign Domain document </li><ul><li>These are used to specify a routing link between Domino and a non-Domino application, such as a fax gateway. </li></ul><li>Foreign SMTP Domain document </li><ul><li>Use these when a Domino server does not use SMTP and needs to locate a “next-hop” server for DNS lookups to route outbound Internet mail. </li></ul></ul>
  85. 85. How SMTP Works <ul><li>IN THIS SECTION </li><ul><li>Introduction to SMTP
  86. 86. Configuring an Internet domain for SMTP
  87. 87. Configuring Domino for SMTP
  88. 88. What happens when a message is sent
  89. 89. What happens when a message is received </li></ul></ul>
  90. 90. Introduction to SMTP <ul><li>SMTP stands for Simple Mail Transfer Protocol.
  91. 91. In its simplest form, mail is sent from one server directly to another over port 25. </li></ul>
  92. 92. Configuring an Internet domain for SMTP <ul><li>A domain name, once registered, needs certain records placed in the Domain Name System (DNS). </li><ul><li>An “A” record, or host record, tells DNS what IP address is matched to your domain over port 80, to get to a website.
  93. 93. An “MX” record, or mail exchange record, tells DNS what IP address is matched to your domain over port 25 for the SMTP protocol. </li></ul><li>These records do not have to go to the same server.
  94. 94. So basically, whatever IP address you set your MX record to, MUST have an SMTP-enabled server that is “listening” on port 25. </li><ul><li>Which, fortunately, Domino is! </li></ul></ul>
  95. 95. Configuring Domino for SMTP <ul><li>Domino must be configured to SEND mail (the Router task), and RECEIVE mail (the SMTP listener task).
  96. 96. Domino must have a, or multiple Mail.boxes.
  97. 97. To SEND mail: </li><ul><li>Make sure DNS is set up correctly from Domino
  98. 98. Enable SMTP to be used outside the local Internet domain (Config doc)
  99. 99. Specify a relay host when sending message outside the local domain (Config doc)
  100. 100. Set up mail relay restrictions to avoid spammers (Config doc)
  101. 101. Set up outbound email address format (Domain doc) </li></ul><li>To RECEIVE mail: </li><ul><li>Enable the SMTP listener task (Server doc)
  102. 102. Populate your Domino Directory with usernames and Lotus Notes as their mail system. </li><ul><li>Each name must have an Internet address specified, and a physical .nsf mailbox </li></ul></ul></ul>
  103. 103. What happens when a message is sent <ul><li>Domino checks the message format for a <localpart>@<domain> format, which is how it knows how to look up the domain name over the Internet through DNS, rather than routing it internally.
  104. 104. The Router task looks up the least-cost route to a Domino server that has “SMTP allowed for all messages”.
  105. 105. If enabled, the Router task converts the message to MIME format.
  106. 106. DNS looks up the MX record for the <@domain>, which returns an IP address. </li><ul><li>Domino says, “OK, now I know where to deposit the email.” </li></ul><li>Domino then initiates a conversation with the server at that IP address, over port 25. </li><ul><li>It connects to the server, and deposits the message. </li></ul><li>The connection is closed, as the transaction is now over. </li></ul>
  107. 107. A conversation between two servers... <ul><li>The sending server's “conversation” with the receiving server is via a shared language. </li><ul><li>A text line is sent, and a reply is sent by the receiving server.
  108. 108. This happens with EVERY outbound email through Domino! </li></ul></ul>
  109. 109. What happens when a message is received <ul><li>The SMTP listener task listened, and had a conversation with an incoming mail server through the Router task.
  110. 110. The Router picks up the incoming message and deposits it into Domino's
  111. 111. The Router looks up the incoming address against the $Users view in the Domino Directory.
  112. 112. If it finds a match (and there are no restrictions against the address in the Configuration document) it looks up the user's home server in their Person document.
  113. 113. The routing tables finds the least-cost path to deposit the message in the of the user's home server.
  114. 114. Finally, the home server's Router task looks up their mail file in their Person document, and if the server has sufficient access in the ACL, deposits the message into the database. </li></ul>
  115. 115. How ACLs Work <ul><li>IN THIS SECTION </li><ul><li>Introduction to the access control list
  116. 116. The access levels and user types
  117. 117. Roles and readers fields
  118. 118. Enforcing a consistent access control list
  119. 119. The maximum Internet name and password
  120. 120. Understanding -Default- </li></ul></ul>
  121. 121. Introduction to the Access Control List <ul><li>The access control list is a property of EVERY Lotus Notes database that controls who can read and write documents, change the design, and manage the physical database.
  122. 122. Because every aspect of Domino Administration is database-driven, the ACL is the first step in troubleshooting any issue. </li><ul><li>The Administration Process is a database, admin4.nsf
  123. 123. The Domino Directory itself is a database, names.nsf
  124. 124. Replication success relies on the servers having the proper access
  125. 125. Busytime/calendaring and scheduling relies on being able to access user calendars </li></ul></ul>
  126. 126. The access levels and user types <ul><li>There are 7 access levels of a Lotus Notes database. </li><ul><li>Each level higher gets all the rights of the levels below it.
  127. 127. A user can never be granted more rights in a database than what's been given to them in the ACL, no matter how the database is designed or what the Domino Directory says about them.
  128. 128. There are switches to fine-tune each access level, also called privileges . </li></ul></ul>
  129. 129. The seven access levels: <ul><li>NO ACCESS </li><ul><li>You cannot access the database. Period! </li></ul><li>DEPOSITOR </li><ul><li>You can only create documents into a database, you cannot read them. </li></ul><li>READER </li><ul><li>You can only read documents in a database, you cannot deposit them. </li></ul><li>AUTHOR </li><ul><li>You can create documents, but read only documents you've created.
  130. 130. You can read documents that you are listed in an “Author”'s field.
  131. 131. You may not be able to create documents, but you can edit any document in which you are listed in an “Author”'s field. </li><ul><li>Creating documents is a privilege for the Author access level. </li></ul></ul></ul>
  132. 132. The seven access levels (cont) <ul><li>EDITOR </li><ul><li>Can create and edit all documents.
  133. 133. Can delete documents if given fine-tuned permission. </li></ul><li>DESIGNER </li><ul><li>Can create design elements, including LotusScript agents.
  134. 134. Designers can also create shared agents. </li></ul><li>MANAGER </li><ul><li>Can delete the physical database.
  135. 135. Can add/edit the database access control list </li></ul></ul>
  136. 136. The five user types <ul><li>There are 5 user types, in addition to the access levels.
  137. 137. These are so Domino knows what ID file type it should be expecting to go along with a name/Certifier combination.
  138. 138. Leaving a user or group as “Unspecified” in the ACL will make it possible for a user to create a local group titled as a person's name to gain higher access. </li></ul>
  139. 139. The five user types (cont) <ul><li>PERSON & PERSON GROUP </li><ul><li>The server knows what groups you are in before you even try to access a database.
  140. 140. If you have a local group that is the same name as a person, you won't be able to access the database by that group name. </li></ul><li>SERVER & SERVER GROUP </li><ul><li>This settings can lock down databases who should only be accessed via back-end processes, as only an ID of type Server, or a group whose membership is only servers can access it this way. </li></ul><li>MIXED GROUP </li><ul><li>Users, groups, and servers can have access, as long as it is one of those three.
  141. 141. This allows you to cover your bases, and not leave an entry as “Unspecified”. </li></ul></ul>
  142. 142. Roles and Readers fields <ul><li>Roles are a sub-group that can only be used in the scope of the database it's listed in.
  143. 143. Roles can be added to a database for form/document development. </li><ul><li>Hide/Whens can be tested on Role membership.
  144. 144. Readers fields can be populated by Role membership. </li></ul><li>First you create the role, then you assign ACL entries to the role. </li><ul><li>You can add servers to roles, also!
  145. 145. In fact, this is crucial for Readers fields! </li></ul></ul>
  146. 146. Enforcing a consistent access control list <ul><li>With the option “Enforce a consistent access control list” selected, a local database replica's ACL can NEVER change a person to higher rights than they have on the server replica. </li><ul><li>If you TRY and change the ACL locally to give yourself higher rights, all replication to and fro the database will stop!
  147. 147. This prevents local ACL changes from propagating back up to servers and being replicated around an organization. </li></ul><li>Also, Readers fields will not be honored on local databases UNLESS this value is checked. </li></ul>
  148. 148. The maximum Internet name and password <ul><li>This option was created as a security feature to ward off potential database pitfalls over the web. </li><ul><li>What does a user need to do to a database while accessing it over the web that would require Designer or Manager access?
  149. 149. Even background agents online use server access to run.
  150. 150. Why open a can of worms? </li></ul></ul>
  151. 151. Understanding -Default- <ul><li>Any user that accesses a database and is NOT assigned an access level will get what you have specified as -Default- access. </li><ul><li>Setting it to “No Access” will not let anyone in if they are not explicitly listed in the ACL as either a person or as group membership.
  152. 152. Setting it to “Reader” will allow anyone who access it to read the contents, rather than putting in an entire organization's group membership in the ACL.
  153. 153. This will vary depending on the database! </li></ul><li>Use “Anonymous” to cover any Internet user who has not authenticated. </li><ul><li>There may be a reason for this to be different than Default access.
  154. 154. If you don't use Anonymous, Default is used. </li></ul></ul>
  155. 155. How Readers Fields Work <ul><li>INSIDE THIS SECTION: </li><ul><li>Introduction to Readers fields </li></ul><ul><li>When would you use Readers fields?
  156. 156. Readers fields vs. other security measures
  157. 157. How do you implement Readers fields?
  158. 158. What are some common gotcha's with Readers fields? </li></ul></ul>
  159. 159. Introduction to Readers fields <ul><li>Readers fields are a field type that explicitly states who can read documents created from the form the field is currently located on. </li><ul><li>Some other field types are: </li><ul><li>Text
  160. 160. Date/Time
  161. 161. Number
  162. 162. ...etc. </li></ul></ul><li>The contents of a Readers field can be Usernames, Groups, or Roles that have been created in the current database's ACL. </li></ul>
  163. 163. When would you use Readers fields? <ul><li>Readers fields are used when you need to “hide” documents for certain users. </li><ul><li>If a user is not listed in the Readers field, then to them, the document doesn't exist in the database! </li><ul><li>It is , however, counted in the Document Count field in Database Properties. </li></ul></ul><li>Readers fields are used when you need TRUE document security in Lotus Notes. </li><ul><li>There is no “backdoor” access, unless you are listed as a Full Access Administrator.
  164. 164. There is no changing to another view. </li><ul><li>Well, you CAN, but the document won't be visible in that view, either. </li></ul><li>There is no right-clicking on Document Properties to see field values. </li><ul><li>Why? Oh yeah – there is no document! </li></ul><li>If your ID file Username is not listed in a Reader field, you don't even know about the document! </li></ul></ul>
  165. 165. Readers fields vs other security measures <ul><li>Controlled-Access sections </li><ul><li>These use ACL and Group memberships to control who can expand a section on a document. </li></ul><li>View Access </li><ul><li>Just because a user can't access a VIEW does not mean they can't access a document. </li></ul><li>Hide/When field formulas </li><ul><li>This data is still easily viewable by the “Fields” tab in document properties! </li></ul><li>Readers fields </li><ul><li>These are considered “true” security measures as it trumps the database ACL. </li><ul><li>A user can be listed as a Manager in the ACL and not see documents if they are not listed in the Readers field on a document.
  166. 166. We will cover this in the “gotcha's” section!
  167. 167. It will only taketh away; you cannot grant a “No Access” user access by listing them in a Readers field. </li></ul></ul></ul>
  168. 168. How do you implement Readers fields? <ul><li>Create a new field on a form and give it a field type of Readers. </li><ul><li>Make sure it is a multi-value field. </li></ul><li>Add allowable readers of the document using any of the following, separated by a “:” </li><ul><li>Roles in the ACL (recommended)
  169. 169. Explicitly listed user names in Canonical format
  170. 170. Groups
  171. 171. Other field names on the same form containing resolvable names.
  172. 172. Some examples: </li><ul><li>“Administrators”:”CN=Jessica Stratton/O=Solace”:”[HR]” </li></ul></ul></ul>
  173. 173. What are some common gotcha's of Readers fields? <ul><li>HELP! I'm the administrator and I locked myself out of all the documents! </li><ul><li>Always create a role in the ACL called [Admins] and give the following items the role: </li><ul><li>The database admins
  174. 174. LocalDomainServers
  175. 175. The Administration server </li></ul><li>This role should be your first entry in the Readers field list!
  176. 176. You can also take Full Access Administrator to grant yourself access. </li></ul><li>The documents aren't replicating to other servers, even though I can see them all! </li><ul><li>See item #1.
  177. 177. All servers need to be listed as allowable readers too, otherwise the documents are invisible to them, too. </li></ul></ul>
  178. 178. Common gotcha's (cont.) <ul><li>Abbreviated names will not work. Canonical is best! </li><ul><li>GOOD: CN=Jessica Stratton/O=Solace, Jessica Stratton
  179. 179. BAD: Jessica Stratton/Solace </li></ul><li>Readers fields aren't being honored in local replicas! </li><ul><li>“Enforce a consistent ACL” must be enabled in the ACL in the advanced properties tab. </li></ul></ul>
  180. 180. How Replication Works <ul><li>INSIDE THIS SECTION </li><ul><li>Introduction to replication
  181. 181. Preparing for a replication infrastructure
  182. 182. Implementing replication
  183. 183. Ways to initiate replication
  184. 184. The science behind replication
  185. 185. Deletion stubs and replication </li></ul></ul>
  186. 186. Introduction to replication <ul><li>A database replica is a special copy of a database on another server, or local workstation. </li><ul><li>It shares a common property called the replica ID that even an OS filecopy will retain. </li><ul><li>The only way to break the replica is by creating a new copy instead. This will issue a new replica ID to the database. </li></ul><li>Databases can have different titles, filenames, even a different design template. </li><ul><li>But if they share a replica ID, they can replicate! </li></ul></ul></ul>
  187. 187. Introduction to replication (cont) <ul><li>When change is made in a database, the change can be propagated to any other replicas of the same database. </li><ul><li>So any user on any server who needs an up-to-date version will always have it. </li></ul><li>The changes are propagated most often by Connection documents in the Domino Directory between servers. </li><ul><li>You can schedule the connection documents on any interval, and even have multiple schedules according to database priority.
  188. 188. In the database replication settings, you can specify a subset of documents to replicate, say, for a particular physical work location. </li></ul></ul>
  189. 189. Introduction to replication (cont.) <ul><li>If you have multiple servers, they need to replicate common databases even if you have no production databases that are used by users.
  190. 190. Remember: servers need to replicate, even if users don't!
  191. 191. Servers in the same domain share: </li><ul><li>Names.nsf (The Domino Directory)
  192. 192. Adminp.nsf (The Administration Process)
  193. 193. Certlog.nsf (The Certification Log)
  194. 194. ... more.
  195. 195. These databases need to stay in sync! </li></ul></ul>
  196. 196. Preparing for a replication infrastructure <ul><li>Make sure both servers have a level of access at least as high as they need to each databases they need to replicate.
  197. 197. If any form in the database that will replicate has Readers fields, make sure the servers are listed in those fields.
  198. 198. The Replicator server task should be listed in the Notes.ini file under “ServerTasks”. </li><ul><li>This task is enabled by default! </li></ul><li>Create connection documents, specifying: </li><ul><li>What database will replicate
  199. 199. When they will replicate, and how often the replication interval will be
  200. 200. Which server initiates the replication </li></ul></ul>
  201. 201. Preparing, cont. <ul><li>The following are types of replication in the connection document: </li><ul><li>Pull-Push </li><ul><li>One server first pulls changes, then pushes its changes to the second. </li></ul><li>Pull-Pull </li><ul><li>One server pulls the changes, then the other server pulls the changes. </li></ul><li>Push-Only </li><ul><li>One way replication in which the initiating server pushes changes to the second. </li></ul><li>Pull-Only </li><ul><li>One way replication in which the initiating servers pulls changes from the second. </li></ul></ul></ul>
  202. 202. Table of server access levels for replication: (from Notes Help) Access level Allows a server to push these changes Assign to Manager ACL settings Database encryption settings Replication settings All elements allowed by lower access levels Servers you want to use as a source for ACL changes. For tight database security, give this access to as few servers as possible. In a hub-and-spoke server configuration, you typically give the hub server Manager access. Designer Design elements All elements allowed by lower access levels Servers you want to use as the source for design changes. Use Manager access instead if you want one server to control ACL and design changes. Editor All new documents All changes to documents Servers that users use only to add and modify documents. In a hub-and-spoke configuration, you typically give the spoke servers Editor access. Author New documents No servers. You don't typically use this access for servers. Reader No changes; server can only pull changes Servers that should never make changes. Servers in the OtherDomainServers group are often given Reader access. Depositor New documents. Also prevents the server from pulling changes. No servers. You don't typically use this access for servers. No Access No changes. Also prevents the server from pulling changes. Servers to which you want to deny access. Servers in the OtherDomainServers group are sometimes given No Access.
  203. 203. Implementing Replication <ul><li>After database ACLs are set, Connection docs are created, and the replica task is running, replicas must be created on the second server.
  204. 204. What are some ways to get replicas on the second server? </li><ul><li>Manually </li><ul><li>File-->Replication-->New Replica </li></ul><li>OS copy/paste </li><ul><li>Windows Explorer via mapped drive
  205. 205. Or, USB stick into the Data directory of the second server </li></ul><li>From the Administrator Client </li><ul><li>Go to the Files tab
  206. 206. Highlight all databases to be copied
  207. 207. Select Database-->Create Replica(s) from the right Tools pane. </li></ul></ul></ul>
  208. 208. Ways To Initiate Replication <ul><li>Manually at the Domino console </li><ul><li>Some server console command examples: </li><ul><li>“Replicate Server1/Acme”
  209. 209. “Replicate Server1/Acme names.nsf”
  210. 210. “Push Server1/Acme names.nsf “
  211. 211. “Pull Server1/Acme” </li></ul></ul><li>From the database icon </li><ul><li>Replication-->Replicate </li></ul><li>From scheduled Connection documents
  212. 212. From Program documents </li></ul>
  213. 213. The Science Behind Replication <ul><li>It starts when scheduled replication begins, and the Replicator task springs into action!
  214. 214. Then, each server makes sure they can authenticate with each other through matching, signed certificates.
  215. 215. The initiating server searches the second server for databases. </li><ul><li>It constructs a “list” of databases that contains matching replica IDs on each server. </li></ul><li>The initiating server looks at the replication history to find the last time the two replica databases replicated.
  216. 216. The initiating server looks at its own database for changes since that last time. </li><ul><li>The Replicator task performs a special search on the database.
  217. 217. The search results are a list, containing the Originator IDs of all the documents that have been modified. </li><ul><li>The Originator ID is a long string containing the doc UNID, a sequence number (how many times the doc has been modified), and a timestamp when it was last modified. </li></ul></ul></ul>
  218. 218. The Science (cont) <ul><li>The initiating server's Replicator task then performs another search on the second server, using the UNIDs from the modified docs of the initiating server. </li><ul><li>It compiles a list of the Originator IDs, just like it did from the first server. </li></ul><li>Now that the Replicator task has two OIDs for the same document on each server, it compares them. </li><ul><li>If it can't find a matching OID for a document, then it is a new document and must be pushed to the server that doesn't have it.
  219. 219. If the OIDs are the same, no changes have been made to either document.
  220. 220. If the OIDs are different, the Replicator task looks at the contents of the $Revisions field on each document. </li><ul><li>(The $Revisions field gets updated during replication so it will be “cleared” for next time)
  221. 221. The revision history tells the Replicator task whether a conflict exists. </li></ul></ul></ul>
  222. 222. The Science (cont) <ul><li>If a conflict exists, the Replicator task checks for a $ConflictAction field. </li><ul><li>If $ConflictAction contains “1”, then the database properties has “Merge replication conflicts” set and the changes can be merged successfully. </li><ul><li>HOWEVER – If the sequence number tells the task that the same field has been changed, a merge can not occur no matter what, and a replication conflict will still occur!
  223. 223. The document with the most recent time stamp in its sequence number is the “winner”. The other document is the “loser” and is the conflicting document. </li></ul><li>The same tests occur during replication for design elements, but the “loser's” changes are simply removed, there are no conflict documents created. </li></ul></ul>
  224. 224. Deletion Stubs and Replication <ul><li>Deletion stubs remain in a database after a document has been deleted. </li><ul><li>It's to let the Replicator task know to also remove the document from a replica database. </li><ul><li>As long as “Deletions” is checked off in the “Remove incoming:” field in Replication settings. </li></ul></ul><li>You can specify how long deletion stubs will remain in the database before they are purged. </li><ul><li>If the database replicates AFTER the deletion stub is gone, the Replicator task will not know to delete the document from the second server.
  225. 225. Worse, it will think the still-existing document in the second database is a new document and replicate it back over again. </li><ul><li>So now, the first database will have the deleted document re-appear. </li></ul></ul></ul>
  226. 226. How Clustering Works <ul><li>INSIDE THIS SECTION </li><ul><li>Introduction to clustering
  227. 227. Cluster Manager
  228. 228. Other Clustering Tasks
  229. 229. The Cluster Replicator Task
  230. 230. Tweaking CLREPL
  231. 231. How all this Cluster Stuff Works </li></ul></ul>
  232. 232. Intro to Clustering <ul><li>A cluster is a group of two or more servers </li><ul><li>That provides users with constant access to data
  233. 233. Balances the workload between servers
  234. 234. Improves server performance </li></ul><li>There are several components that make clustering function </li><ul><li>The Cluster Manager
  235. 235. The Cluster Database Directory
  236. 236. The Cluster Database Directory Manager
  237. 237. The Cluster Administrator
  238. 238. The Cluster Replicator
  239. 239. AdminP </li></ul></ul>
  240. 240. Cluster Manager <ul><li>Cluster Manager runs on each server in a cluster </li><ul><li>When it starts, the Cluster Manager </li><ul><li>Looks in the ClusterName field in its Server document for its cluster name
  241. 241. Then looks at the cluster membership list for the names of the other servers
  242. 242. It maintains this information in memory in the server's cluster name cache </li></ul></ul><li>Each Cluster Manager exchanges messages (probes) with the other servers in the cluster </li><ul><li>Cluster Manager uses the NSPingServer command to probe the other clustermates
  243. 243. The Cluster Manager issues the NSPingServer command once every minute by default </li><ul><li>Change with Server_Cluster_Probe_Timeout NOTES.INI setting </li></ul></ul></ul>
  244. 244. Cluster Manager <ul><li>The cluster name cache contains the following information: </li><ul><li>The name of the cluster
  245. 245. The names of the servers in the cluster
  246. 246. The server availability index of each cluster server, sorted by the most available first
  247. 247. The state of the server if it is BUSY, MAXUSERS, or RESTRICTED
  248. 248. The cluster probe timeout value </li></ul><li>When a session is closed (server or client), this is saved to cluster.ncf </li><ul><li>This file populates the cache initially on restart
  249. 249. This file has been known to contain erroneous data </li></ul><li>To see what's in the cluster name cache, type show cluster at the console </li><ul><li>Or open with a text editor </li></ul></ul>
  250. 250. Other Clustering Tasks <ul><li>The Cluster Database Directory (CLDBDIR.NSF) is on each server in a cluster </li><ul><li>It contains a document for each database and replica in the cluster.
  251. 251. Contains the database name, server, path, and replica ID, and other info </li></ul><li>The Cluster Database Directory Manager task (Cldbdir) </li><ul><li>Creates the Cluster Database Directory and keeps it up to date
  252. 252. But sometimes the database has stale data </li><ul><li>Note that the first hint you have of this is the Resource Reservations system stops working! </li></ul></ul><li>Since version 8.5, cldbdir runs automatically on clustered servers </li><ul><li>All earlier versions need this in servertasks </li></ul><li>The Cluster Administrator </li><ul><li>Does the housekeeping
  253. 253. Adds/removes databases and clustermates </li></ul></ul>
  254. 254. The Cluster Replicator task <ul><li>The Cluster Replicator task (clrepl) keeps the data in sync within the cluster </li><ul><li>Whenever a change occurs clrepl immediately pushes the change to the other replicas in the cluster </li><ul><li>By default, one clrepl runs per server, but you'll want more </li><ul><li>Cluster_Replicators= </li></ul></ul></ul><li>The Cluster Replicator gets it information from CLDBDIR.NSF </li><ul><li>If that info is wrong, clrepl has a problem </li></ul><li>The Cluster Replicator task pushes changes only to servers in the cluster </li><ul><li>The standard Replicator replicates changes to and from servers outside the cluster </li></ul><li>This is high traffic stuff, so use a dedicated LAN connection for this traffic </li><ul><li>Your users will thank you </li><ul><li>Or they just won't hurt you </li></ul></ul></ul>
  255. 255. Tweaking CLREPL <ul><li>Pausing Cluster Replication </li><ul><li>When you pause cluster replication vs stopping it, it retains the data it has in memory
  256. 256. Use tell clrepl pause/resume </li></ul><li>By default, clrepl polls for changes every 15 seconds </li><ul><li>If you feel your servers can handle it, try this
  257. 257. CLREPL_POLL_INTERVAL=10 </li></ul></ul>
  258. 258. How All this Cluster Stuff Works <ul><li>With all clustermates up and running correctly, nothing happens
  259. 259. When one server goes down </li><ul><li>Mail routing uses the information in the cache to determine which clustermate gets the mail meant for that server </li></ul><li>When a user requests something from a server that's down </li><ul><li>The local cluster.ncf data is used from the cache to find the next available server </li></ul></ul>
  260. 260. How Busytime Works <ul><li>INSIDE THIS SECTION </li><ul><li>Intro to Busytime
  261. 261. How it works
  262. 262. Where it looks
  263. 263. Clustering Busytime
  264. 264. Doing a Free Time Search
  265. 265. Tips and Gotchas </li></ul></ul>
  266. 266. Intro to Busytime <ul><li>The busytime system is responsible for tracking the availability of people and resources </li><ul><li>Two tasks populate busytime
  267. 267. Schedule Manager (Sched) and Rooms and Resources Manager (RnRMgr)
  268. 268. One task communicates between servers (calconn) </li></ul><li>If busytime ain't happy, nobody's happy </li><ul><li>Users, Rooms, Resources, all depend on busytime being correct </li></ul></ul>
  269. 269. Intro to Busytime (con't) <ul><li>When not in a cluster </li><ul><li>Each server contains a Free Time database (BUSYTIME.NSF)
  270. 270. It includes scheduling information for all users and resource databases (RRDB) on that server </li></ul><li>In a cluster </li><ul><li>There is one Free Time database for all users and RRDBs whose servers are in the cluster (CLUBUSY.NSF)
  271. 271. Every server in the cluster contains a replica of this database
  272. 272. Since the replicaID must be unique to the cluster, its not like other system databases </li><ul><li>The replicaID is not taken from the Directory
  273. 273. Its taken from the CLREPLID field in the server documents </li></ul></ul></ul>
  274. 274. How it Works <ul><li>Schedule Manager </li><ul><li>Scans and processes any database that has a calendar profile and a calendar </li><ul><li>It does this at 2 AM or when the server is restarted </li></ul><li>Uses fields in Person documents to determine where the database is located (which server) and the database’s file name
  275. 275. If schedule manager finds a database with a valid calendar profile and a calendar, </li><ul><li>It creates a record in busytime.nsf </li></ul><li>When databases have calendar entries, Sched stores them in busytime.nsf and, as appropriate, marks time as “busy”
  276. 276. If a database exists and has no matching person document, Sched lets you know it </li><ul><li>SchedMgr: Error processing calendar profile document (NoteID: NT00000926) in database mailABCDEFG.nsf: Cannot find user in Domino Directory </li></ul><li>This means that the calendar profile was not valid </li><ul><li>This user will not go into busytime.nsf </li></ul></ul></ul>
  277. 277. How it Works <ul><li>Rooms and Resources Manager </li><ul><li>Runs first if both Sched and RnRMgr are on a server </li><ul><li>RnRMgr looks for any database with a Room/Resource profile document
  278. 278. But it looks at all databases with a profile document along the way </li></ul><li>Also validates the profile, creates a record in busytime.nsf and marks times as busy
  279. 279. RnRMgr uses fields in the Resource documents in the Directory to validate against </li><ul><li>SchedMgr: Error processing calendar profile document (NoteID: NT001568EA) in database resource.nsf: Cannot find user in Domino Directory
  280. 280. This means that no resource document exists in the Directory for this resource </li><ul><li>That's REALLY bad </li></ul></ul></ul></ul>
  281. 281. Where it Looks <ul><li>Validation of Users and Resources is done in one place </li><ul><li>$Users View in the Domino Directory </li><ul><li>This must be kept up to date
  282. 282. Good place to start when troubleshooting! </li></ul></ul><li>Certain fields are required in order to add users/resources or free time </li><ul><li>If any of the fields are incorrect, errors will occur
  283. 283. For Sched – In Person Documents </li><ul><li>User Name Field: FullName = $busyname in the calendar profile of the mail database – Canonical format
  284. 284. MailServer Field = server the busytime task is running on
  285. 285. MailFile = correct mail file for the user
  286. 286. CalendarDomain (Miscellaneous tab): Used if user is on a non-Notes calendar system </li><ul><li>If this field is used, sched will not list the person in the busytime.nsf. </li></ul><li>ForwardingAddress: If used, user is not listed in busytime </li></ul></ul></ul>
  287. 287. Where it Looks (con't) <ul><li>RnRMgr looks in $Users view also </li><ul><li>Searches for Resource forms
  288. 288. The field names are the same </li><ul><li>FullName = Resource or Room Name </li><ul><li>Must be canonical and match the value on the Resource Document in the RRDB </li></ul><li>MailServer = Home server of the RRDB
  289. 289. MailFile = Name of the RRDB (with path) </li></ul></ul><li>Manually editing Resource documents is a major cause for problems </li><ul><li>Be vewwy careful if you must do this
  290. 290. Spaces are hard to see </li></ul></ul>
  291. 291. Clustering Busytime <ul><li>When you add a server to the cluster, </li><ul><li>Sched deletes BUSYTIME.NSF and creates CLUBUSY.NSF </li><ul><li>When removing a server from the cluster, it does the reverse </li></ul><li>It then replicates with the other servers in the cluster </li></ul><li>Rebuilding clubusy.nsf if very difficult to do right </li><ul><li>And when needed, it must be done right
  292. 292. Check the create date on all copies in the cluster </li></ul><li>There should be no duplicate entries
  293. 293. There should be no rep/save conflicts </li></ul>
  294. 294. Doing a Free Time Search <ul><li>When a user searches for free time for another user or room </li><ul><li>The user's home server looks at the $Users view for the requested User/Room
  295. 295. Determines whether to look in its own BUSYTIME.NSF or ask CalConn to go fetch from another server
  296. 296. Or whether to pass the request off to an outside system </li><ul><li>But that's beyond the scope of this session </li></ul></ul><li>When a user in a cluster looks for free time </li><ul><li>The server looks in its own CLUBUSY.NSF first if other users are on clustermates
  297. 297. For users whose mail servers are outside the cluster, CalConn sends out for the information </li></ul><li>When a user outside a cluster makes a request about a user in a cluster </li><ul><li>The request fails over to another server in the cluster if the user's mail server is unavailable </li></ul></ul>
  298. 298. Tips and Gotchas <ul><li>Easy troubleshooting tip
  299. 299. If there’s a gray line where there should be information </li><ul><li>Touch that gray line with your mouse and look at the bottom of your screen </li></ul><li>The message usually tells you what’s wrong </li><ul><li>In this case, the system couldn’t find Jess </li></ul></ul>
  300. 300. Tips and Gotchas <ul><li>RnRMgr and Sched respond to the same Tell commands
  301. 301. Tell Sched Val does nothing useful </li><ul><li>Unless followed immediately with Tell Sched Check </li></ul><li>Tell Sched Show User Name/OU/O </li><ul><li>Dumps the information the server has about the user's appointments </li><ul><li>This may not match calendar </li></ul></ul><li>Tell Sched List User Name/OU/O </li><ul><li>Shows what the server thinks is the user's preferences </li><ul><li>Again, this may not match reality </li></ul></ul></ul>
  302. 302. How Agent Manager Works <ul><li>INSIDE THIS SECTION </li><ul><li>Intro to Agent Manager
  303. 303. Queues and Rights
  304. 304. When it Works
  305. 305. Keep an Eye on Stuff
  306. 306. Tips and Gotchas </li></ul></ul>
  307. 307. Intro to Agent Manager <ul><li>Agent Manager is the server task that manages and runs agents on a server. </li><ul><li>It determines who can run agents, </li><ul><li>Where they should run
  308. 308. When they should run </li></ul><li>It handles Scheduled and Event-driven agents (there are other kinds) </li></ul><li>It sets up the context for the agents to run in, </li><ul><li>It checks security,
  309. 309. Handles loading, invocation, caching, error reporting, and logging </li></ul><li>The Agent Manager runs by default on a server
  310. 310. Depending on the type of agent </li><ul><li>Agent Manager may perform database operations for simple actions, evaluate formulas, or call back-end classes
  311. 311. For event-triggered agents, the Agent Manager monitors events and then determines when the agents should be invoked
  312. 312. It also watches the clock and invokes scheduled agents when the right time comes. </li></ul></ul>
  313. 313. Queues and Rights <ul><li>The Agent Manager has three different queues </li><ul><li>One queue for agents that are eligible to run (E)
  314. 314. Another queue for agents that are scheduled to run (S)
  315. 315. A third for event-triggered agents that are waiting for their event to occur (V) </li></ul><li>Scheduled and Event-triggered agents stay in their queue until its time to run </li><ul><li>Then they move to the eligible to run to wait for their turn </li></ul><li>The creator or signer of the agent must have the rights to run on the server and the database </li><ul><li>Rights are set in the Server document as well as the database ACLs </li></ul></ul>
  316. 316. When it Works <ul><li>Agent Manager periodically checks to see if it has any new agents that it needs to schedule. </li><ul><li>Two environment variables control how quickly an agent gets into the queue: </li><ul><li>AMgr_SchedulingInterval specifies a delay (in minutes) between running of the Agent Manager's scheduler. </li><ul><li>Valid values: one minute to 60 minutes. The default value is one minute. </li></ul><li>AMgr_UntriggeredMailInterval specifies a delay (in minutes) between running of the Agent Manager's check for untriggered mail. </li><ul><li>Mail is &quot;untriggered&quot; when it's added to a database through replication, which does not cause a new mail trigger to fire.
  317. 317. Valid values: one minute to 1440 minutes
  318. 318. The default value is 60 minutes. </li></ul></ul><li>The variables are tunable depending on your needs </li></ul></ul>
  319. 319. When it Works <ul><li>Scheduled agents are executed in the order in which they are found in the queue by Agent Manager. </li><ul><li>If more than one agent in a database is scheduled to run at the same time </li><ul><li>The one that is saved and enabled first will be more likely to go into the queue first and therefore be executed first </li></ul></ul><li>Agent Manager doesn't run ALL agents </li><ul><li>Router does some (before new mail arrives)
  320. 320. Server does some (run on server)
  321. 321. The HTTP task does those invoked by a browser </li></ul></ul>
  322. 322. Keep an Eye on Stuff <ul><li>Agent writers can get a little ambitious </li><ul><li>Poorly written agents have been know to bring down servers or lock up CPUs
  323. 323. There's an easy way to watch for these
  324. 324. Use Domino Domain Monitoring
  325. 325. Use Tell Commands to get more information </li></ul><li>Look at the queues using the Administrator client
  326. 326. Run more than one instance if queues back up </li></ul>
  327. 327. Tips and Gotchas <ul><li>Most Agent Manager problems are really problems with bad agents </li><ul><li>Or agents without the proper rights
  328. 328. Use Tell Commands for quick results
  329. 329. Tell amgr sched </li><ul><li>E S 04:03 PM Today agent1 CENTRAL.NSF
  330. 330. S S 05:04 PM Today agent2 CENTRAL.NSF
  331. 331. V U agent3 CENTRAL.NSF </li></ul></ul><li>Enable Agent logging if having problems </li><ul><li>Log_AgentManager=value </li><ul><li>0 - Do not log agent execution events
  332. 332. 1 - Log agent execution events (partially and completely successful)
  333. 333. 2 - Log agent execution events (completely successful only) </li></ul></ul></ul>
  334. 334. Tips and Gotchas <ul><li>Enable Debug (short term) for more info </li><ul><li>Debug_AMgr=* </li><ul><li>Have lots of time to read the output!
  335. 335. See technote on the Stuff page for less info </li></ul></ul><li>Study and use the Tell Commands to make stuff work better </li><ul><li>Cancel, Run, debug, Load </li></ul></ul>
  336. 336. How AdminP Works <ul><li>INSIDE THIS SECTION </li><ul><li>Introduction to AdminP
  337. 337. How AdminP requests are created
  338. 338. How AdminP requests are processed
  339. 339. How AdminP Works
  340. 340. Example AdminP Request
  341. 341. Tips and Gotchas - AdminP </li></ul></ul>
  342. 342. Introduction to AdminP <ul><li>AdminP is a server task that automates stuff in Domino </li><ul><li>It was created for name changes but does much more today
  343. 343. It usually works on items that must be exact </li></ul><li>It runs on every server in the domain
  344. 344. The admin4.nsf database controls and records all requests </li><ul><li>It is created when a server is created
  345. 345. Shares a replica ID with every server in your domain
  346. 346. This database must replicate properly and be kept healthy </li></ul><li>Requests process on varying intervals </li><ul><li>Most are adjustable </li></ul><li>Requests process at varying places </li><ul><li>The administration server of the domain
  347. 347. All servers in the domain
  348. 348. On specific target servers </li></ul></ul>
  349. 349. How AdminP requests are created <ul><li>Something initiates the process </li><ul><li>An administrator requests a name change
  350. 350. A user delegates her mail file
  351. 351. A server gets upgraded
  352. 352. A database gets clustered </li></ul><li>A completed request generates the next step request </li><ul><li>And depending on the request and settings, it lingers for up to 21 days or more
  353. 353. Name change requests can be made to last for months </li></ul><li>It works like multiple mini-batch files </li><ul><li>Each request goes off and does what its asks, then reports back to the controller (admin4.nsf)
  354. 354. Then the next thing happens </li></ul></ul>
  355. 355. How AdminP requests are processed <ul><li>The AdminP task looks for new documents in the AdminP database </li><ul><li>It builds a table of requests to process
  356. 356. Looks for new requests first
  357. 357. Then for requests to re-run a request
  358. 358. Builds the table of Note Ids of the documents </li></ul><li>When a request is processed a response document is created </li><ul><li>This document tells the result of the request
  359. 359. Its called an Administration Process Log document
  360. 360. In earlier versions of the product it was created even when no work was done </li><ul><li>Check your server doc for the proper setting </li></ul></ul></ul>
  361. 361. How AdminP Works <ul><li>Servers are asked to process certain items </li><ul><li>Like changes in ACLs
  362. 362. Each action has its own code (ProxyAction) </li></ul><li>The Administration Process is multi-threaded </li><ul><li>The main administration process thread looks for new work </li><ul><li>Then creates a table of note IDs. </li></ul><li>Worker threads wait until a new copy of the note ID table is available. </li><ul><li>One thread then begins processing the first ID; a second thread processes the next; and so forth.
  363. 363. After processing a request, a thread looks for another ID and the process continues until all IDs are processed. </li><ul><li>By default, three threads are assigned to the Administration Process
  364. 364. This is adjustable in the Server Document
  365. 365. May be needed in times of high activity </li></ul></ul></ul></ul>
  366. 366. Example AdminP Request <ul><li>Delete User from Domino Directory
  367. 367. This isn't even a complicated request
  368. 368. See Admin Help for other flow charts </li></ul>
  369. 369. Tips and Gotchas - AdminP <ul><li>AdminP works best when left alone
  370. 370. Make sure admin4.nsf replicates to all production servers correctly </li><ul><li>Destroy all non-production servers </li></ul><li>Consider using a replication formula on hub servers to keep the database size in check </li><ul><li>See me for an example </li></ul><li>Consult the multitude of resources online to find Best Practices and other details </li></ul>
  371. 371. How ID files Work <ul><li>IN THIS SECTION </li><ul><li>Introduction to the Notes ID in the Domino Security Model
  372. 372. What's in an ID file?
  373. 373. Who needs an ID file?
  374. 374. How public and private key pairs work
  375. 375. How encryption keys work
  376. 376. How validation and authentication work </li></ul></ul>
  377. 377. Introduction to the Notes ID in the Domino Security Model <ul><li>Lotus Notes and Domino is built on a layered security model. </li><ul><li>Each user or server has to get through each layer to access the next system below it. </li></ul><li>After firewall traffic, the Notes ID file is the next highest layer. </li><ul><li>The ID file gains you access to the server.
  378. 378. The ACL gets you access to your databases (using your ID file).
  379. 379. Document and Form fields have Reader and Author access fields on them. </li><ul><li>These all use your ID file, too! </li></ul></ul><li>The ID file is based on authentication. </li><ul><li>Encrypted data in a physical file, a “key”, to prove you are who you say you are. </li></ul><li>Notes ID file authentication is based on certificates. </li><ul><li>A “stamp” by a Domino Certifier. </li></ul></ul>
  380. 380. What's in an ID file? <ul><li>Certificates
  381. 381. Encryption keys
  382. 382. Recovery info (if you use it)
  383. 383. Public and private key pairs
  384. 384. Finally, the user's name and Lotus Notes license number </li></ul>
  385. 385. Who needs an ID file? <ul><li>A user who needs to authenticate with a Domino server that has public key checking enabled.
  386. 386. A user who needs to encrypt their mail, or a document.
  387. 387. A user who needs to sign an email.
  388. 388. A user who needs an encryption key to see the contents of a certain field.
  389. 389. A Domino server </li></ul>
  390. 390. How public and private key pairs work <ul><li>Public keys are located in server docs, person docs, and certifier docs. </li><ul><li>Why?
  391. 391. Because anything encrypted with a public key can ONLY be decrypted with the private key on the ID file! </li></ul><li>Your public key is stored on your Person doc and your ID file. </li><ul><li>However, your private key is ONLY available on your ID file! </li></ul><li>When a public and private key are put together, they are mathematically related and identify the user.
  392. 392. When someone sends you encrypted mail, they are reading your public key from the Domino directory. </li><ul><li>Your ID file's private key decrypts the mail! </li></ul></ul>
  393. 393. How encryption keys work <ul><li>It's possible for a developer to encrypt just one field on a form. </li><ul><li>A credit card number, salary, or social security number </li></ul><li>A Secret key is created from an ID file </li><ul><li>File-->Security-->User Security
  394. 394. The key is mailed to the users who need access to the field.
  395. 395. Those users import the key into their ID file. </li></ul><li>It IS possible to place all sorts of restrictions on the key... </li><ul><ul><li>Who can access it, can it be mailed, etc. </li></ul></ul><li>The form properties “Security” tab is then changed to have the key as the default encryption key </li></ul>
  396. 396. How validation and authentication work <ul><li>When a user tries to connect with a Domino server, two things happen: </li><ul><li>VALIDATION: The user's ID file is validated against the certifier.
  397. 397. AUTHENTICATION: Once validated, the ID file sends back a message. </li></ul><li>Domino uses three rules to trust a public key for validation: </li><ul><li>Trust the public key of the server's ancestors if they are in a user's ID file.
  398. 398. Trust any public key from a valid certificate issued by ancestors.
  399. 399. Trust any public keys certified by a trusted certifier. </li></ul><li>Those rules, translated: </li><ul><li>Domino checks each certifier in the ID file for a trust.
  400. 400. If an ID file's public key is trusted, Domino sends a number challenge out.
  401. 401. The workstation encrypts the number with the private key from the ID file and sends back a response.
  402. 402. The same public key is used to decrypt the number on the server side.
  403. 403. If the numbers match, the user's ID file has successfully authenticated. </li></ul></ul>
  404. 404. How Recertifying works <ul><li>IN THIS SECTION </li><ul><li>What does a certificate contain?
  405. 405. Where is the certificate stored?
  406. 406. When would you need to recertify a user?
  407. 407. How do you recertify a user?
  408. 408. Recertifying vs renaming vs moving certifiers </li></ul></ul>
  409. 409. What does a certificate contain? <ul><li>Like an ID file, a certificate (or certifier ) contains several pieces of info: </li><ul><li>The certificate owner's name
  410. 410. The certificate expiration date
  411. 411. The certifier name
  412. 412. The public key
  413. 413. A digital signature to prove authenticity
  414. 414. However, unlike a user or server ID file, a certificate does not contain a private key. </li></ul></ul>
  415. 415. Where is the certificate stored? <ul><li>It's stored as a physical ID file.
  416. 416. It's also stored in the Domino directory. </li><ul><li>Along with any other issued certificates that have been cross-certified. </li></ul><li>Wait, it's stored in the Domino directory?? </li><ul><li>Remember, the certificate itself is public.
  417. 417. It's the contents that's on the physical certifier ID file that must be protected! </li></ul></ul>
  418. 418. Why would you need to recertify a user? <ul><li>Certificates are issued to users with a shelf life – they expire. </li><ul><li>If a user ID file is allowed to expire, it cannot be used to gain access to a server if it's found one day.
  419. 419. Basically, a user ID is set to expire specifically so it can no longer access a server. </li></ul><li>The Certification Log (certlog.nsf) will tell you everything! </li><ul><li>It will tell you who is registered with what server, and when they were registered.
  420. 420. It will tell you when they will expire.
  421. 421. It will tell you their recertification history and Notes license. </li></ul><li>If you don't have one, create one! </li><ul><li>You only need one for your entire Domino system.
  422. 422. Call it “Certification Log” using the certlog.ntf template. </li></ul></ul>
  423. 423. How do you recertify users? <ul><li>Select the users from the Domino Administrator client. </li><ul><li>On the Tools pane, select People-->Recertify
  424. 424. Select the SAME certifier. </li><ul><li>You can recertify batches of users, but they must be using the same certifier, otherwise the process will end with an error. </li></ul></ul></ul>
  425. 425. Recertifying vs renaming vs moving certifiers... <ul><li>Recertify a user when their existing ID file is due to expire. </li><ul><li>All you are doing is appending new expiration dates to their ID file.
  426. 426. Think of it as “renewing.” </li></ul><li>Rename a user when you change their common name. </li><ul><li>Marriage, adding an initial, fixing an incorrectly spelled last name.
  427. 427. Renaming does not alter or change the certifier in any way. </li></ul><li>Move a user to a new certifier when you want to change them in the hierarchy. </li><ul><li>Uses the “Request move to new certifier” toolbar option under “Rename”.
  428. 428. Must be approved by Adminp. </li></ul><li>Name and certifier changes will be updated in all ACLs, readers, names and authors fields whose databases have an Administration Server set. </li></ul>
  429. 429. How Cross Certification Works <ul><li>INSIDE THIS SECTION </li><ul><li>Introduction to Cross Certitifcation
  430. 430. Why use Cross Certification
  431. 431. Details of Cross Certification
  432. 432. Tips and Gotchas </li></ul></ul>
  433. 433. Intro to Cross Certification <ul><li>Notes ID Files, certifications and recertification works great for users in the same Notes Domain </li><ul><li>Where all IDs are created from the same root certifier </li></ul><li>When a merger happens, things change </li><ul><li>Users need to share data from servers in separate Domains
  434. 434. Or you may simply need to exchange data with another Notes shop on a regular basis </li></ul><li>Cross certification allows a trust network to be established </li></ul>
  435. 435. Why use Cross Certification <ul><li>Notes Cross Certification allows users in different domains to send encrypted Notes mail
  436. 436. Servers in other organizations can be accessed by users or other servers </li><ul><li>If the proper ACL rights are granted
  437. 437. Remember that even with cross certification, ACLs and Reader Lists help keep your data more secure </li></ul><li>Cross Certification is useful especially if you plan to merge domains down the road </li><ul><li>It can be a temporary solution, or a permanent one </li></ul></ul>
  438. 438. Details of Cross Certification <ul><li>Each organization provides the public key for their Organization or OU to another entity </li><ul><li>There are several ways to do it
  439. 439. The easiest way is to create a SAFE.ID using the Administrator client </li><ul><li>Send it to the other Organization </li></ul><li>And have them so the same </li><ul><li>For complete cross certification </li></ul></ul><li>Contents of the SAFE.ID file </li><ul><li>Your Canonical Name of the ID you're sending
  440. 440. The Public Key </li></ul></ul>
  441. 441. Details of Cross Certification <ul><li>You can even cross certify using the phone </li></ul><ul><ul><li>By reading out that incredibly long number to the other Administrator
  442. 442. Not a fun thing to do </li></ul><li>The certificates are stored in the Domino Directory </li><ul><li>Or the user's personal address book
  443. 443. When placed into edit mode, the entire public key is visible </li></ul></ul>
  444. 444. Tips and Gotchas <ul><li>Choose which level you want to cross certify </li><ul><li>The entire organization or just a certain OU? </li></ul><li>Users can copy the cross certificates from the Domino Directory to their personal Address Book if they need to </li><ul><li>Sometimes handy for troubleshooting </li></ul><li>Use cross-certification if you need to sign and encrypt across Notes Domains </li><ul><li>A similar process exists for Internet Domains </li><ul><li>But its a little more complex </li></ul></ul></ul>
  445. 445. How the Indexer works <ul><li>IN THIS SECTION </li><ul><li>Introduction to the Indexer
  446. 446. View indexes vs full-text indexes
  447. 447. Updall vs Update
  448. 448. How view design affects the Indexer </li></ul></ul>
  449. 449. Introduction to the Indexer <ul><li>The Indexer is a Domino process that keeps database views and full-text indexes up to date. </li><ul><li>They need to be kept up to date after documents are added, removed, or modified. </li></ul><li>The Indexer is simply comprised of two server tasks: </li><ul><li>The Updall task
  450. 450. The Update task </li></ul><li>These tasks use two NOS services: </li><ul><li>NIF (Notes Index Facility)
  451. 451. Full-Text services </li></ul></ul>NOS = Notes Object Services. They are portable C++ functions that can access information in databases.
  452. 452. Introduction to the Indexer (cont) <ul><li>NIF is a process that stores collections of documents in a binary tree structure to present to the user in a Notes view.
  453. 453. A b-tree data structure consists of three nodes: </li><ul><li>A left pointer
  454. 454. A right pointer
  455. 455. A data element </li></ul><li>The left and right pointers can point to smaller subtrees on either side.
  456. 456. A “null” pointer is a b-tree element with no elements.
  457. 457. SO... recursively speaking: </li><ul><li>A binary tree is either a null pointer (empty), or a single node where the left and right pointers point to another binary tree.
  458. 458. This structure allows for incredibly fast lookups and/or insertions. </li></ul></ul>
  459. 459. View indexes vs full-text indexes <ul><li>A full-text index is a collection of files that indexes text in a Notes database to process user search queries.
  460. 460. A full-text index on a database must be created manually on the database properties tab, with four options to update it: </li><ul><li>Daily </li><ul><li>Updall task runs nightly </li></ul><li>Scheduled </li><ul><li>Must have a program document to run Updall </li></ul><li>Hourly </li><ul><li>Chronos keeps a timer to trigger the Update task </li></ul><li>Immediate </li><ul><li>Update task runs immediately </li></ul></ul></ul>
  461. 461. View indexes vs full-text indexes (cont) <ul><li>A view index is a collection of the data structure on every view. </li><ul><li>The developer decides how often it updates.
  462. 462. The collection contains: </li><ul><li>An index of parent-child relationships in the view.
  463. 463. An index sorted by note number.
  464. 464. Indexes defined by the view sort columns (and user-defined sorts!). </li></ul></ul><li>Both view indexes and full-text indexes utilize the Update server task. </li></ul>
  465. 465. Updall vs Update <ul><li>Update does the following : </li><ul><li>Updates all views in the Domino Directory first
  466. 466. Updates views in all other databases </li><ul><li>If there have been at least 20 other note changes in that database
  467. 467. And if the database has been accessed in the last 7 days </li></ul><li>Updates full-text indexed databases </li></ul><li>Update is run on server startup, and then continually.
  468. 468. It is listed in Notes.ini to run on startup: </li><ul><ul><li>Servertasks= Update ,Replica,Router,AMgr,AdminP,CalConn,etc. </li></ul></ul></ul>
  469. 469. Updall vs Update (cont) <ul><li>Any views that have recorded changes gets the entire database placed in the $UpdateQueue </li><ul><li>Recorded change = A document is added, removed or modified, remember? </li></ul><li>This $UpdateQueue is checked every five seconds.
  470. 470. When a database enters the $UpdateQueue, Update waits 15 minutes to update all view indexes in that database in case any more views need updating. </li><ul><li>This maximizes the Indexer efficiency. </li></ul><li>The Update tasks checks a modified date of each view against the last time the Update task ran. </li><ul><li>This is how it knows which views in the database to update. </li></ul></ul>
  471. 471. Updall vs Update <ul><li>The Updall task is similar if not the same as Update, HOWEVER: </li><ul><li>It does not run continuously, it is a “one-off”, or single instance of the Update task. </li></ul><li>It runs when it's told to: </li><ul><li>Entered manually via Domino console command
  472. 472. From a program document
  473. 473. Nightly from a Notes.ini parameter to update FT Index frequencies marked “Daily” </li><ul><li>ServerTasksAt2=Updall </li></ul></ul><li>Updall also performs additional tasks that Update does not: </li><ul><li>Purges deletion stubs
  474. 474. Discards unused view indexes (every 45 days unless otherwise specified)
  475. 475. You can also specify parameters to turn off and on certain functions </li><ul><li>Or even just run it on a single database </li></ul><li>Runs on ALL databases, not just ones flagged as changed in a queue like Update </li></ul></ul>
  476. 476. How view design affects the Indexer <ul><li>Reader fields = more Indexer work </li><ul><li>A view is evaluated for Reader access before it can even display the view to the user, and will refresh based on what documents it is “allowed” to show. </li></ul><li>@Now or @Today in views </li><ul><li>This will cause the view to be refreshed on a constant basis. </li></ul><li>More views = more Indexer work
  477. 477. More sortable columns = more Indexer work </li><ul><li>The alternatively sorted data is available immediately when clicked, thanks to the Indexer. </li></ul></ul>
  478. 478. How Transaction Logging works <ul><li>INSIDE THIS SECTION </li><ul><li>Introduction to Transaction Logging (T/L)
  479. 479. Benefits of Transaction Logging
  480. 480. Requirements for Transaction Logging
  481. 481. Under the Hood
  482. 482. Types of Transaction Logging
  483. 483. Implementing Transaction Logging
  484. 484. How it works </li></ul></ul>
  485. 485. Introduction to Transaction Logging <ul><li>A transaction is a single API call </li><ul><li>Includes creating, reading, modifying documents </li></ul><li>A transaction log is a history of actions executed on a system </li><ul><li>A binary file with an extension of .txn in Lotus Domino </li></ul><li>Transaction Logging is a process that allows these actions to be recorded before they are saved to disk </li><ul><li>Uses write-ahead logging to write a sequential record of changes
  486. 486. The changes can be saved shortly afterward. </li></ul><li>The transaction log consists of log extents and the log control file (NLOGCTRL.LFH). </li><ul><li>A log extent is one of the log files into which the transaction logs are written. It has the form Sxxxxxxx.TXN, where x represents a seven-digit number that is unique to that server. </li></ul></ul>
  487. 487. Benefits of Transaction Logging <ul><li>Better data integrity </li><ul><li>Reduces the chance of data loss to virtually zero </li></ul><li>Faster restart time </li><ul><li>Servers start faster from a cold start
  488. 488. Servers start dramatically faster after unplanned outages </li></ul><li>More efficient processing </li><ul><li>Domino can defer some work during periods of high activity </li></ul><li>Faster Backup/Restore time </li><ul><li>Only changes are backed up, not full databases </li></ul><li>Enables you to use DAOS </li><ul><li>You should use DAOS </li></ul></ul>
  489. 489. Requirements for Transaction Logging <ul><li>The T/L directory must be placed on a separate physical device devoted solely to transaction logging </li><ul><li>Any performance gains that you thought you'd get will disappear
  490. 490. Having the T/L on the same disk normally results in a 25% decrease in performance </li><ul><li>Or worse </li></ul></ul><li>Each Domino server requires its own T/L drive, including partitioned servers. </li><ul><li>The rule of thumb is “one log device per data directory, and one data directory per log device.” </li></ul><li>A dedicated, mirrored RAID1 device
  491. 491. If using Archive style transaction logging, a dedicated backup and restore system is required </li></ul>
  492. 492. Requirements for Transaction Logging on a SAN <ul><li>Use a separate file system, separate pathway, and separate disks for the transaction logs. </li><ul><li>Use RAID 1/0 (Stripe mirror) or mirrored pair (RAID 1), rather than RAID 5.
  493. 493. Use the fastest, most reliable disks available.
  494. 494. Configure the device with a Hot Spare available in case a disk physically fails
  495. 495. Do not share the disk controller (SAN and NAS) with any other users, if possible </li></ul><li>Consider the following </li><ul><li>Use larger disk block size and matching Stripe size
  496. 496. OS file system cache is not used. NVRAM cache in the disk subsystem helps. </li></ul><li>Use 2 GB Fibre Channel rather than 1 GB. Have dedicated channels and avoid using data switches </li><ul><li>Make sure you have adequate I/O capacity for transaction logging. </li></ul><li>If the logs are placed on a SAN, they should be placed on dedicated devices within the SAN </li><ul><li>Each DPAR should have its own HBA connection to the SAN. </li></ul></ul>
  497. 497. Under the Hood <ul><li>The Recovery Manager and Logger tasks are used to implement transaction logging
  498. 498. The Logger records information passed to it by the Recovery Manager
  499. 499. The Recovery Manager </li><ul><li>Is the sole NSF component that interfaces with the logger
  500. 500. Writes transaction-undo to the logger
  501. 501. Writes database recovery records to the logger
  502. 502. Reconstructs databases after a server has crashed </li><ul><li>Replays database recovery records from the log
  503. 503. Undoes partially-completed database transactions using transaction-undo from the log </li></ul></ul></ul>
  504. 504. Under the Hood (con't) <ul><li>You've seen them working: </li><ul><li>Opening dirty previously logged DB F:LotusDominodatamail2baddb.nsf still logged, containers being dropped.
  505. 505. DbOpen AutoFixup of Dirty Logged DB F:LotusDominodatamail2baddb.nsf
  506. 506. Clearing DBIID 0DB5EC6C for DB F:LotusDominodatamail2baddb.nsf
  507. 507. Completed consistency check on mail2baddb.nsf
  508. 508. Recovery Manager: Assigning new DBIID for F:LotusDominodatamail2baddb.nsf (need new backup for media recovery). </li></ul></ul>
  509. 509. Under the Hood (con't) <ul><li>A unique database instance ID (DBIID) is generated for a database when it is first created </li><ul><li>It is meaningful only if the database resides on a server with T/L
  510. 510. It changes later whenever the database is compacted with any option other than -b </li><ul><li>Or when fixup is run </li></ul></ul><li>When Domino records a transaction in the log, it includes this DBIID. During recovery, Domino uses the DBIID to match transactions to databases
  511. 511. Why the DBIID changes </li><ul><li>Compacting and fixup temporarily disable transaction logging for a database </li><ul><li>This prevents large amounts of logging data from being spewed out to the recovery log
  512. 512. Because a large amount of I/O is done during database maintenance </li></ul><li>Since T/L was disabled, there will be a gap in the data for that database
  513. 513. The DBIID is changed to prevent these logs from being applied to the newly compacted databases </li></ul><li>Databases must be backed up immediately after maintenance </li></ul>
  514. 514. Types of Transaction Logging <ul><li>Circular logging </li><ul><li>Server reuses a fixed amount of disk space (up to 4GB) for transaction logs.
  515. 515. After the log fills, the server starts overwriting old transactions
  516. 516. Use circular logging if the size of the log needed between full database backup intervals is less than 4GB.
  517. 517. Does not support incremental backups
  518. 518. Most useful for faster server restarts </li></ul><li>Linear logging </li><ul><li>Is like circular logging, except allows more than 4GB
  519. 519. Use linear logging if the size of the log needed between full database backup intervals is greater than 4GB
  520. 520. And you are not using archive media </li></ul></ul>
  521. 521. Types of Transaction Logging (con't) <ul><li>Archive logging : </li><ul><li>Creates log files as needed
  522. 522. Simplifies backup and restore
  523. 523. Provides online and partial backups
  524. 524. The log files are not overwritten until you archive them
  525. 525. Requires a backup utility to back up the filled log extents </li><ul><li>So that they can be reused when needed.
  526. 526. If you do not have a backup utility or it does not work properly </li><ul><li>The server continues to create log extents
  527. 527. It fills up the disk space, and then panics
  528. 528. Plan accordingly </li></ul></ul></ul></ul>
  529. 529. Details and Gotchas <ul><li>Make sure your database ODS is the latest to get full functionality </li><ul><li>For most things actually </li></ul><li>Never put logs on the same disk as your server
  530. 530. Use the latest improvements </li><ul><li>Create_R85_Log=1 </li></ul><li>Manage your disk space </li><ul><li>Don't run out of room </li></ul><li>Make sure your backup solution supports newer versions before you upgrade </li></ul>
  531. 531. Implementing Transaction Logging <ul><li>Prepare your environment properly
  532. 532. Enable in the Server document </li><ul><li>Select the options you want </li></ul><li>Use the admin client to disable logging on any databases who wish to </li><ul><li>Some databases can be not logged </li><ul><li>Those that have replicas everywhere (AdminP)
  533. 533. Those that constantly write (clubusy.nsf) </li></ul></ul><li>Restart the server </li></ul>
  534. 534. How it Works <ul><li>On a normal day </li><ul><li>The Logger writes to the .txn file
  535. 535. The log fills and is reused or backed up then flushed </li><ul><li>Depending on the T/L style </li></ul><li>The server is a little faster </li></ul><li>On a bad day </li><ul><li>The Logger writes to the .txn file
  536. 536. The server stops unexpectedly
  537. 537. After the server restart, </li><ul><li>The changes not saved are played back by the Recovery Manager
  538. 538. All is well </li></ul></ul></ul>
  539. 539. How Program Documents Work <ul><li>IN THIS SECTION: </li><ul><li>What are program documents?
  540. 540. What can program documents be used for?
  541. 541. How to pass parameters to program documents </li></ul></ul>
  542. 542. What are program documents? <ul><li>A program document will automatically run a server task at a scheduled time. </li><ul><li>Just like a Windows batch file. </li></ul><li>You can pass parameters to it.
  543. 543. You can specify which Domino server to run it on.
  544. 544. You can specify the days of the week, time, and repeat interval. </li><ul><li>Setting a repeat interval of “0” means the program document will only run once. </li></ul></ul>
  545. 545. What can program documents be used for? <ul><li>Scheduled server shutdowns and restarts
  546. 546. Late-night fixups, updalls and compacts
  547. 547. Running Domino batch files
  548. 548. Replication
  549. 549. Scheduled Domino console commands
  550. 550. Any command on an individual database
  551. 551. When program documents are used, Domino issues a NEW INSTANCE of the program or task. </li></ul>
  552. 552. How to pass parameters to program documents <ul><li>To send Domino console commands, make sure the program name is correct! </li></ul><ul><ul><li>Program name: nserver
  553. 553. Command line: </li><ul><li>-c “tell router update config”
  554. 554. -c “dbcache flush”
  555. 555. -c “tell amgr q” </li></ul><li>Program name: compact
  556. 556. Command line: - B
  557. 557. Program name: nserver
  558. 558. Command line: -c &quot;c:lotusdominodatacompact.txt&quot; </li><ul><li>Compact.txt contains: </li></ul></ul></ul>load COMPACT apps -B load COMPACT mail*.nsf -B
  559. 559. How Smart Upgrade works <ul><li>IN THIS SECTION: </li><ul><li>Introduction to Smart Upgrade
  560. 560. The steps to set up Smart Upgrade
  561. 561. The trigger and user experience </li></ul></ul>
  562. 562. Introduction to Smart Upgrade <ul><li>Smart Upgrade is a built-in Notes feature that will automatically install client upgrades to users. </li><ul><li>It can track who has upgraded, and who failed with issues
  563. 563. It can upgrade the mail file template at the same time
  564. 564. Users can defer the upgrade until a date you specify
  565. 565. You can build a custom MSI package to fine-tune the installation. </li><ul><li>But, you don't have to! </li></ul></ul></ul>
  566. 566. The steps to set up Smart Upgrade <ul><li>1. Create the Smart Upgrade database </li><ul><li>User the Smart Upgrade Kits template. </li></ul><li>2. Update the Server configuration document with a doclink pointing to the database you just created. </li><ul><li>You can also limit the concurrent downloads via the Smart Upgrade Governor here. </li></ul><li>3. (Optional) Create the Smart Upgrade Tracking Reports database using the template. </li><ul><li>This needs a mail-in document for that database on the server! </li></ul></ul>
  567. 567. The steps to set up Smart Upgrade (cont) <ul><li>4. Create an upgrade kit document in the Smart Upgrade database. </li><ul><li>A “kit” is just a fancy word for the install files!
  568. 568. Point it to a network share, or attach the upgrade files to the kit document.
  569. 569. Specify who can use it in the “allowable users” field.
  570. 570. Optionally include silent install switches here! </li></ul><li>5. (Optional) Create a Desktop policy to track smart upgrades.
  571. 571. 6. (Optional) Create a Desktop policy to upgrade their mail file at the same time. </li></ul>
  572. 572. The trigger and user experience <ul><li>How is Smart Upgrade triggered via the client? </li><ul><li>A user authenticates with their home server
  573. 573. Or, it can be triggered manually via Tools-->Notes Smart Upgrade </li></ul><li>Smart Upgrade does NOT use the DCC (dynamic client configuration). </li><ul><li>It uses its own process
  574. 574. However, as Smart Upgrade tracking is pushed down via policy, the tracking uses DCC </li></ul></ul>
  575. 575. The user experience <ul><li>The Notes client release number is matched up to a source version of the Kit document and install type. </li><ul><li>Just the Notes client vs. Client, Administrator and Designer
  576. 576. Notes Basic vs. Notes Standard </li></ul><li>If a matching kit is found, the SU process sends back a flag to the Notes client.
  577. 577. The user is then prompted with a dialog box prompting to upgrade. </li><ul><li>If the user has a policy that sets a deadline, they are forced to upgrade!
  578. 578. There will not be a prompt if the upgrade Governor has been set and the concurrent upgrade totals have been reached. </li></ul><li>When a user finishes the upgrade, it sends a message to the Domino server to decrease the current active upgrade count for the Governor.
  579. 579. If a user is downloading the kit instead of installing across a network share, they will not receive notification to upgrade until the kit has completed downloading and the installation is ready to execute! </li></ul>
  580. 580. Whew! In Closing <ul><li>Thanks for your attention
  581. 581. Please fill out your evals – they DO matter
  582. 582. Contact Jess: </li><ul><li>At GURUPalooza
  583. 583. And Wednesday 3PM in Swan 7-10
  584. 584. [email_address]
  585. 585. She blogs on
  586. 586. </li></ul><li>See Susan in the Solutions Development Lab on the Showroom floor </li><ul><li>Also at GURUPalooza </li><ul><li>Where she won't answer questions because she's technically not a guru
  587. 587. She's
  588. 588. Also </li></ul></ul></ul>
  589. 589. Related Sessions <ul><li>ID103: Reducing Costs Through Improved Serviceability
  590. 590. ID104: IBM Lotus Domino Server Availability: Best Practices and Tuning Tips
  591. 591. ID105: DAOS Deployment and Best Practices
  592. 592. ID107: Smarter IBM Lotus Domino Monitoring: From Activity Trends to Statistics and Reporting
  593. 593. BP101: Adminblast 2011
  594. 594. BP103: Got Problems? Let's Do a Health Check
  595. 595. BP107: Performing Your Own IBM Lotus Domino Security Review
  596. 596. BP108: Admin for the Developer: Build and Secure Your Own IBM Lotus Domino Server Playground -- in an Hour!
  597. 597. BP110: Discovering the Mysterious and Dangerous Secrets of STATREP.NSF
  598. 598. BP112: 10 Tips to Make You an Admin Star (While Reducing Your Workload)
  599. 599. BP116: Backup 101: The What, How, and When </li></ul>
  600. 600. Related Sessions (cont) <ul><li>BP117: IBM Lotus Domino Server and Application Performance in the Real World
  601. 601. BP118: Proactive Server Management: Learn How to Maximize Your Server Uptime
  602. 602. BP119: Ground Control to IBM Lotus Notes: Client Management Explained
  603. 603. SHOW102: Statistics and Events Base Camp: Proactive Monitoring of Your IBM Lotus Domino Servers
  604. 604. SHOW104: Crispy Certificates with Spicy SSL Salsa
  605. 605. SHOW109: How To Build a Better Cluster From a Standing Start
  606. 606. GEEK101: Speedgeeking!
  607. 607. GURU101: GURUpalooza!
  608. 608. NERD101: Nerd Girl Panel: Work is Not a Romance Novel or a Football Game </li></ul>
  609. 609. Legal Disclaimer © IBM Corporation 2011. All Rights Reserved. The information contained in this publication is provided for informational purposes only. While efforts were made to verify the completeness and accuracy of the information contained in this publication, it is provided AS IS without warranty of any kind, express or implied. In addition, this information is based on IBM’s current product plans and strategy, which are subject to change by IBM without notice. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this publication or any other materials. Nothing contained in this publication is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software. References in this presentation to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in this presentation may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. Nothing contained in these materials is intended to, nor shall have the effect of, stating or implying that any activities undertaken by you will result in any specific sales, revenue growth or other results. All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual environmental costs and performance characteristics may vary by customer. IBM, the IBM logo, Lotus, Lotus Notes, Notes, Domino, Quickr, Sametime, WebSphere, UC2, PartnerWorld and Lotusphere are trademarks of International Business Machines Corporation in the United States, other countries, or both. Unyte is a trademark of WebDialogs, Inc., in the United States, other countries, or both. HowStuffWorks™, A Discovery Company is the trademark of HowStuffWorks, Inc. and/or Discovery Communications, LLC, A Silver Spring, MD company in the United States Adobe, the Adobe logo, PostScript, and the PostScript logo are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States, and/or other countries. Microsoft and Windows are trademarks of Microsoft Corporation in the United States, other countries, or both. All references to Blossom refer to a fictitious company and are used for illustration purposes only.