The schema daemon

When the LDAP service runs on a server, it spawns a schema daemon that runs at regular intervals. The schema daemon running on the administration server for the Domino® Directory implements schema changes and propagates the changes to other (subordinate) servers in the domain that run the LDAP service. The schema daemon running on each subordinate server updates its LDAP service with the schema changes propagated from the administration server. The Domino® LDAP Schema database (SCHEMA.NSF) is the vehicle for propagating the schema changes.

The schema daemon ensures that each LDAP service running in the domain uses a schema that is up-to-date and consistent across servers. The schema daemon runs when the LDAP service first starts, and then after that at 15-minute intervals by default.

The LDAP service runs by default on the administration server for the Domino® Directory. The schema daemon spawned by the LDAP service on the administration server does the following to maintain the schema for the domain:

  1. Creates the Domino® LDAP Schema database (SCHEMA.NSF) from the SCHEMA.NTF template (the first time the schema daemon runs in this release, and subsequently if the Schema database is ever deleted).
  2. Builds the schema for the domain into memory by loading information from the following files:
    • LDAP-standard schema elements from the local LSCHEMA.LDIF file -- these elements do not change.
    • Forms and fields from the primary Domino® Directory, which supply the Domino-specific schema elements, and optionally, extended schema elements added as forms and fields. For performance reasons, this step is done only once every 24 hours by default. You can use the NOTES.INI setting Schema_Daemon_Reloadtime to change the default interval.
    • Schema elements from the Extended Documents view of its local Domino® LDAP Schema database.
      Note: If the schema daemon finds the same schema element defined in more than one of these files, it uses this order of precedence to determine which definition to use: 1) LSCHEMA.LDIF, 2) Domino® Directory, 3) Schema database.
  3. The first time it runs, publishes the schema in memory to disk in the All Schema Documents view of the Schema database. Subsequently, it compares its in-memory schema to the on-disk schema published in the Schema database, and if the two schemas are different, the daemon updates the All Schema Documents view of the Schema database with the more recent in-memory schema. For performance reasons, this step is done only once every 24 hours by default. You can use the NOTES.INI setting Schema_Daemon_Resynctime to change the default interval.
  4. Replicates its local Schema database with replicas on subordinate servers that run the LDAP service if the contents of the two replicas are different. This replication occurs without the use of Connection documents immediately after step 3 is complete. If a subordinate server does not yet have a local replica of the Schema database, the schema daemon on the administration server creates one on the subordinate server.

The schema daemon on each subordinate server in the domain that run the LDAP service does the following:

  1. Replicates information from the replica of the Schema database on the administration server for the Domino® Directory to its local Schema database if the two replicas are different.

    If the subordinate server doesn't yet have a local replica of the Schema database and the administration server is running, it pulls a replica from the administration server. If the administration server is unavailable, the subordinate server uses a local LSCHEMA.LDIF file and Domino® Directory forms to determine the schema until the administration server is available.

  2. The first time it runs, loads the schema published on disk in the All Schema Documents view of its local Schema database into memory. Subsequently, it compares its in-memory schema to the on-disk schema published in its local Schema database. If the two are different, updates its in-memory schema with the more recent schema published in the local Schema database.
Tip: You can use the server command Tell LDAP ReloadSchema to manually initiate the steps described in the preceding task.