Lotus Notes/Domino Application Development Exam Cram 2, chapter 2

Excerpt: Lotus Notes/Domino Application Development Exam Cram 2, chapter 2, "Database management"
by Dave Hatter and Tim Bankes

Lotus Notes/Domino Application Development Exam Cram 2 Dave Hatter and Tim Bankes have written another book on Notes/Domino application development for certification exam preparation. This chapter, "Database management," briefly describes the various IBM Lotus Notes and Domino 6 clients available (as well as how each client is used), defines the Lotus Notes database, outlines how to create a Lotus Notes database and describes how to set up the database for application design.

To purchase this book, click here.

Chapter 2: Database management

Terms you'll need to understand:

  • Integrated Development Environment (IDE)
  • Design template
  • Inheritance
  • Document locking
  • Database Access Control List (ACL)
  • Design synopsis
Techniques you'll need to master:
  • Defining what constitutes a Notes database
  • Controlling what gets replicated
  • Copying a Database
  • Creating a blank database
  • Creating a design template
  • Creating database help documents
  • Creating database icons
  • Monitoring/maintaining replication
  • Preventing design inheritance
  • Printing from the designer
  • Setting database properties
  • Setting up design inheritance
  • Setting up document locking
  • Troubleshooting database access
  • Using design synopsis to analyze application elements
  • Using design templates to refresh an application design
IBM/Lotus defines the Lotus Notes client as "the leading integrated e-mail and collaborative software for the Internet." Since Release 5.0, Lotus Notes has comprised three individual software clients, each client geared toward a specific function and user type:
  • Lotus Notes 6 Client (for the standard user)
  • Domino Administrator 6
  • Domino Designer 6
Note: The Domino Designer is an integrated development environment enabling Notes developers and Web designers to create, manage and deploy secure interactive Notes client/server and Web applications.

However, in addition to the three clients offered by Lotus, you may be designing applications for other client types:

  • iNotes Web Access client -- a Web client that delivers Domino messaging, collaboration and PIM (personal information management) capabilities to Web browsers

  • iNotes for Microsoft Outlook -- a collaborative server solution that delivers the messaging, calendar, scheduling and PIM services of Lotus Domino technology to Outlook 2000 and 2002 clients

  • Other POP/IMAP clients -- other third-party e-mail clients utilizing POP (Post Office Protocol) and IMAP (Internet Messaging Access Protocol)

  • Mobile clients -- clients that include PDAs, Internet-enabled phones and so on
The Domino Designer 6 client enables developers to design applications for Notes clients, Web browser clients and mobile clients (a feature enhanced with Lotus Domino 6) with the same rapid application development (RAD) tool, which uses a consistent programming environment for all support languages. In addition, you can easily integrate third-party application development tools, and Domino 6 supports Web-based Distributed Authoring and Versioning (WebDAV), enabling users to access and edit Domino design elements without using the Lotus Domino Designer clients (assuming that users are using a editor that supports WebDAV). This is covered in more detail in chapter 12, "Programming."

Many (though not all) of the design elements used to design for a specific platform (for example, the native Lotus Notes client) are compatible with an alternate platform (such as a Web browser). According to Lotus documentation, about 85% of your database design is compatible with both Lotus Notes clients and Web clients. Thus, only 15% of your application would require custom development for each respective platform. These figures may be generous and may assume a level of application functionality that falls short of your application requirements. Nonetheless, many design elements are well suited for both platforms and can significantly reduce your application development investment.

Because you are preparing to become a certified Application Developer, you are probably very familiar with the Lotus Notes client and Domino Designer client. This chapter focuses on the different considerations Domino application designers must address when designing applications for Web users, native Lotus Notes users, mobile users or all three.

What is a Notes database?

The Database object is an essential element in creating Domino Web applications and/or native Lotus Notes client/server applications. A Domino database is an object store that contains data, logic and design elements for the application.

A Domino database is not synonymous with an application. On the contrary, most sophisticated applications comprise several Domino databases. There is no inherent difference between the structural format or definition of databases for the Web, native clients/servers or mobile applications.

A Domino application enables users to share, collect, track and organize information. To open a Notes database for the first time from the Notes client, follow these steps:

  1. Select File, Database, Open from the pull-down menu.
  2. Enter the server in the server field. (Either select the server from the drop-down menu or type the name of the server if it doesn't show up.)
  3. Select the database from the database list, or type the name of the database file in the filename field (be sure to include the .nsf [Notes Storage Facility], .ntf [Notes Template Facility] or .ns5 [Notes database that retains the R5 on disk structure] extension. Alternatively, select the Browse… button to locate the database from a local drive.
Alert: Be sure to memorize what the acronyms NSF (Notes Storage Facility) and NTF (Notes Template Facility) represent.

After a database has been opened or bookmarked, you can open the database by either clicking on the bookmark or double-clicking the database icon from the workspace.

Alternatively, you can also open a database from the command line. From the command prompt (for example, MS-DOS), change to the Notes root directory. To open a database stored locally on the current machine, enter designer Notes://Database_Replica_ID. To open a database stored on a server, enter designer Notes://Server_Name/Database_Replica_ID. In addition, you can also open a specific document from the command line by entering designer Notes://Server_Name/Database_Replica_ID/Note_ID.

Note: When entering the replica ID of the database, do not include the colons. When entering the note ID of the document, enter the characters following the NT characters displayed in the beginning of the note ID.

The ID used when the Lotus Notes client is launched must have Designer access to the database and the Domino Designer must have been opened before.

The Domino 6 Server and Notes 6 client use a different On Disk Structure (ODS) than R5 (and all previous releases). The ODS of a database does not replicate and has no effect on which client version can access a server version. The ODS only determines how the server of a client writes data to the physical drive. However, some new features in Domino 6 require the latest version of the ODS (43) (for example, quote management). The Information tab of the database properties displays the ODS version. Release 3.x had an ODS of 17, Release 4.x had an ODS of 20, Release 5.x had an ODS of 41 and Notes and Domino 6 has an ODS of 43.

Alert: Be sure to understand what the ODS (On Disk Structure) is and that it does not replicate from one replica database to another.

Controlling what gets replicated

Replication enables Domino databases to exchange all document edits, modifications and deletions, as well as database modifications, database access control lists and security settings, and design elements. Of course, if the databases are located on different servers, the servers must have sufficient access to share replication modifications with one another. Domino 6 has improved on replication capabilities in the areas of selective, scheduled and streaming replication.

Tip: Domino 6 has added support for streaming replication, which improves replication across Domino servers and Lotus Notes clients. One benefit of streaming replication is that Notes clients can begin working with replicated documents before database replication is complete.

Replication settings should not be used as security settings when designing applications. Rather, they should be used to conserve disk space or prevent the replication of unnecessary or irrelevant documents. Replication settings are located from the pull-down menu you find under File, Replication, Settings.

Alert: Be sure understand that replication settings are not considered security features and should be used to reduce database file size and minimize the number of documents replicated between replica databases.

Note: You must have Manager access to set replica settings for a replica database.

You should be familiar with the various replication settings that are available in the Replication Settings dialog box.

The Basics tab

On the Basics tab, you can enable/disable replication, as well as change the replication schedule. The replication schedule is important for databases that may contain time-sensitive information, reside on busy servers or be in use by mobile users.

If the Scheduled Replication Is Enabled option is selected, clicking on the Change Schedule button displays the Replication Schedule dialog, which allows the user the following options:

  • Enable/disable replication for the current location
  • Create new replicas immediately or during the next replication (this option appears only if the Replication Is Enabled for This Location option is selected)
  • Automatically initiate replication when Notes is started (with an option to prompt or not prompt prior to starting)
  • Replication interval (hours, repeat interval and days of week)
  • Additional interval for high-priority databases (hours, repeat interval and days of week)
  • Prompt to replicate when Notes shuts down e-mail (with one option appearing if anything is waiting to be sent and another if the outbox is not empty)
The Replication Schedule dialog box

Another option on the Basics tab is Replicate Using Schedule for Priority Databases. For convenience, the next scheduled replication is displayed under this option.

Under the How Much Will Be Replicated section you need to understand the options to:

  • Send documents to server -- a check box that determines whether local documents (additions, modifications, or deletions) should be sent to the server during replication

  • Receive documents from server options -- a single-select drop-down list box allows users to select

  • Full documents

  • Partial documents -- Selecting this option enables the user to select two additional options: Truncate Documents Larger Than xx Kb and Limit Attachment Size to xx Kb.
The first option reduces the document information replicated to basic information, such as author, subject and so on, and restricts replicating Rich Text fields that are larger that 40KB in size. The second option truncates any attachments larger than 40KB.

When users open documents that have been shortened, the text (truncated) appears in the window title. To receive the complete document, users must select Actions, Retrieve Entire Document from the drop-down menu.

  • Summary only -- Selecting this option replicates basic document information such as author and subject.

  • Smallest first -- Selecting this option replicates documents in order of size (smallest documents first, then summary information of larger documents and finally Rich Text of large documents).

The Space Savers tab

On the Space Savers tab, you should be familiar with the Remove Documents Not Modified In The Last X Days option. This option enables you to set the purge interval for this replica copy. This setting controls whether documents that have not been modified within the interval specified should be automatically deleted when the database is replicated. Documents removed as a result of this setting are also purged. Therefore, no deletion stubs are created for these documents, and the deletions are not propagated to other replica databases.

Because the deletion stub is also purged, you might think that this document would then reappear because the replica would assume that this is a new document. However, by setting the Only Replicate Incoming Documents Saved or Modified After setting, you can prevent purged documents from reappearing in the database.

In addition, this setting also determines when deletion stubs are purged from the database. Because the deletion of documents needs to replicate between replica databases, deletion stubs remain after a document has been deleted and replicate to other databases. However, deletion stubs still take up space within the database and should be removed after they have been replicated to all other replica databases.

Deletion stubs are removed if they are at least as old as the number of days specified in this setting. However, Domino does not check this value every time a database is opened. Rather, the stubs are checked to see whether they should be purged at 1/3 the number of days specified. For example, if the purge interval is 150 days, when the database replicates, Domino checks to see whether deletion stubs need to be purged if it has been 50 days since the last purge. If this is the case, any deletion stubs older than 150 days are then purged.

Tip: The Updall task also purges deletion stubs. This task is set to run at 2:00 a.m. by default when Domino is installed, but it can be run manually by the system administrator.

You must replicate more often than the purge interval. Otherwise, deletion stubs could be purged. Therefore, existing documents in a replica that had been deleted on another replica will be re-created. (Because the deletion stub is gone, the replica that purged the deletion stub assumes the document is a new document.)

Note: Domino automatically removes deletion stubs regardless of whether the Remove Documents Not Modified in the Last x Days check box has been selected.

Also on the Space Savers tab, you should know about the Receive Only A Subset Of The Documents option. This option determines what documents a replica receives by specifying that only documents in a specific folder or view, or ones that match a specified criteria determined in the formula language are replicated.

Note: You cannot use @DBLookup, @DbColumn, @Username, @Environment or @Now in replication formulas.

When using @IsResponseDoc in the selection formula, all response documents will be replicated. To specify that only response documents that match the criteria specified in the formula are replicated, use the @AllChildren or @AllDescendants functions. Also, if the database setting Don't Support Specialized Response Hierarchy is selected, these functions have no affect.

The Send tab

On the Send tab, you should be familiar with the following options:

  • Do Not Send Deletions Made in This Replica to Other Replicas -- This option determines whether a replica can send deletions to another replica.

  • Do Not Send Changes in Database Title and Catalog Info to Other Replicas -- This option determines whether a replica can send changes to the database title and database catalog categories to other replicas. Therefore, database titles can be specific to each database and help identify the purpose of each specific replica.

  • Do Not Send Changes in Local Security Property to Other Replicas -- This option determines whether a replica can send changes made to the database encryption property to other replicas.

The Other tab

On the Other tab, you should be familiar with the following options:

  • Temporarily Disable Replication for This Replica -- This option enables you to disable replication temporarily for the current replica.
    Note: If the database is located on a cluster server, disabling replication disables scheduled replication and cluster replication.

  • Set Scheduled Replication Priority for This -- This option determines the replication priority (high, medium, low) of this database when replicating. Connection documents can then specify times to replicate databases of each respective priority.
    Note: Priority settings have no effect on replicas located on a cluster server because they will automatically replicate whenever a change occurs.

  • Only Replicate Incoming Documents Saved or Modified After -- This option controls the date that a replica can receive new or modified documents since the threshold specified.

  • CD-ROM Publishing Date -- This option determines the publishing date for a database distributed on a CD-ROM. Therefore, users replicate only documents that were created or modified after the date specified are replicated.

The Advanced tab

On the Advanced tab, you should be familiar with the following options:

  • Receive Only a Subset of Information from Other Replicas -- This option determines what documents a replica for a specific server receives by specifying that only documents in a specific folder, view or that match a specified criteria determined in the formula language are replicated for that respective server (or all servers).

  • Receive These Elements from Other Replicas -- This option enables you to specify which design elements replicate between databases. The elements that can be selected are:

    • Design elements -- If selected, this prevents a replica from receiving any design modifications. This option is selected by default.

    • Agents -- If selected, this prevents a replica from receiving any agent modifications. This option is selected by default.

    • Replication formula -- If selected, this ensures that replication settings do not replicate between databases. This option is not selected by default.

    • Access Control List -- If selected, this prevents modifications to the database's ACL from replicating. Of course, the server (or client) must have Manager access to the database to modify the database's ACL settings. This option is selected by default.

    • Deletions -- If selected, the replica can receive document deletions. This option is selected by default.
      Note: This setting can be overwritten by the Do Not Send Deletions Made in This Replica to Other Replicas setting, located on the Send panel of the Replication Settings dialog.

    • Fields -- If selected, only the specified fields are replicated. This option is not selected by default.

Creating a blank database
(skip to Setting database properties)

You have three options when creating a new database:

  • Create a new database from scratch.
  • Create a new database based on an existing template.
  • Copy an existing database and modify its design.
The following section discusses how to create a new database from scratch or from a template. A final subsection explains how to copy a database.

Creating a new database from scratch or a template

Domino ships with several functional database templates. Design templates are databases that contain the structure for the databases (design elements such as pages, forms and views) but do not contain documents. Although these templates are fully functional applications that can be used "out of the box" as quick solutions, they are better utilized if further modified to fit your organization's specific business needs. When modifying templates, be careful not to create additional work. Some of the design elements are complex, using LotusScript and JavaScript. Therefore, be careful not to break existing functionality. These templates are designed for

  • Non-Web clients only
  • Web clients only
  • A hybrid client audience (both Web and native Lotus Notes)
The process for creating a database from a template is the same as creating a database from scratch, except that you select a template database and several template-specific options in the New Database dialog box.

NOTE: Clicking the About button from the New Database dialog box displays the About document of the currently highlighted template.

When creating a new database with Domino Designer, follow these steps to create your database from scratch or when creating a database from an existing template:

  1. Select the folder (bookmark) in which you want to create the database. You can create a new folder by right-clicking the bookmark bar to produce the Create Folder dialog box. The new database is created in the currently selected folder as well as in the Recent Databases folder. You can rename the folder and change the folder icon by right-clicking the folder icon and selecting those respective options from the drop-down menu.

  2. Select File, Database, New, or press Ctrl+N. Notes displays the New Database dialog box shown in Figure 2.3.

    In the top half you set the database's server location, title, filename and other options. The bottom half of the dialog box contains a list of available templates.

  3. In the Server list, select the server on which you want your database to reside. By default, Domino places the database in the local Notes data directory specified for the current user.

  4. In the Title box, enter a descriptive title for the database. The length of the title cannot exceed 96 characters. Your entry will appear as the title on the application title bar when the database is opened and as the title clients see when they browse databases to open. The text entered for the database title defaults to the filename, which is editable, of course. Domino does not require that you use unique database titles. Nevertheless, avoid using duplicate database titles. Use common sense when naming new databases. For example, multiple databases used within an application should share a common naming scheme. The title must be limited 96 characters. However, logic dictates that the title be kept to a minimal length (32-36 characters) that still meaningfully describes the database.

  5. In the File Name box, enter the name of the database file. The name should have an .nsf extension (unless you are creating a database template that has an .ntf extension), such as Contacts.nsf. Domino automatically adds the .nsf extension if you leave it out. Because Domino supports multiple platforms, it is generally good practice to limit filenames to eight characters. Similarly, consider the implications of using mixed case filenames because platforms such as Unix are case sensitive. It is generally a good practice to establish a standard naming convention for the filenames and directories.

    Tip: With Domino 6, agents contained in Domino databases with an .ntf extension no longer execute. Therefore, agents can be enabled on the template database (with databases but it does not actually execute on the template database).

    Caution: You should not use network drives when selecting the path for Domino databases. Doing so gives people an opportunity to access the database without going through a Notes server, which makes it easier for your database to become corrupted.

    When you enter a filename, the database is put into the default data directory for the selected server. For example, if the data directory is c:lotusnotesdata, the full path and filename is c:lotusnotesdatafilename.nsf. You can enter a directory and filename such as docsfilename.nsf. The database is then put into c:lotusnotesdatadatabasefilename.nsf, if c:lotusnotesdata is the data directory. If you selected Local as your server, you can enter a full path and filename for your database, such as d:lotusnotesdocsfilename.nsf. When installing the Domino server and Notes clients, the default data path for the server is c:lotusdominodata. The default data path for the client is c:lotusnotesdata.

    If the database being created is intended to serve as a template for other Domino databases, and you want it to display in the list of available templates, you must give the filename an .ntf extension and place the database in the root Notes data directory (c:lotusdominodatafilename.ntf for the server and c:lotusnotesdatafilename.ntf for the client when you are creating local databases). The lotusnotesdata directory specified here is also the default directory displayed when creating new databases or opening existing databases. Giving the database an .ntf extension causes the database not to appear in the File, Open Database dialog box but does cause it to appear in the list of available templates you see when you create new databases.

  6. If you are creating a local database, you have the option to encrypt it. Database encryption utilizes dual-key RSA cryptosystem to encrypt the data contained within the database. To encrypt a local database, choose Encryption, select Locally Encrypt This Database Using and then choose an encryption type. Three levels of encryption are available:

    • Simple encryption
    • Medium encryption (the default encryption level when encryption is enabled)
    • Strong encryption

    The stronger the encryption that is being enforced on the Domino database, the slower the performance. Also, if the database is encrypted with either Medium or Strong encryption, it cannot be compressed by third-party disk compression programs.

    If you encrypt a local database, anyone who uses your computer must use your ID file and enter your password to access the encrypted database. You do not have to encrypt the database during its creation. Therefore, you can decide to encrypt the database later if you do not know whether encryption is currently required. In addition, you can enable/disable the encryption at any time after originally establishing these settings.

    If you have set the encryption settings to a particular level and want to modify these settings (for example, the current encryption level is set to Simple encryption but you want to increase the encryption level to Medium encryption), you must first select Do Not Locally Encrypt This Database and completely close the database (including the Database Properties dialog box, if it is open). Then click on Encryption Settings, located within the Database Properties dialog box, and select the new encryption level.

  7. To create a full text index for the database, select Create Full Text Index for Searching. This option can also be selected or modified after the database has been created from the Database Properties dialog box, on the Full Text tab. Creating a full text index for a database increases the performance of user-initiated searches as well as functions and commands that perform searches and document lookups. However, when a database is full-text indexed, additional drive space is required for the full-text database.
  8. To optimize the database performance and design, click the Advanced tab to open the Advanced Database Options dialog box. Table 2.1 describes the new settings available within the Advanced Database Options dialog box.

    Table 2.1: Advanced database options
    Dialog Box Selection Description
    Don't Maintain Unread Marks Determines whether the count of unread documents within the database will be tracked. Some databases may not need to track unread documents. Therefore, disabling this feature increases performance. You can also disable views from displaying unread marks, but this does not measurably improve performance. When modifying this selection, you must compact the database for this setting to take affect.
    Optimize Document Table Map This option uses only the forms referenced by the documents contained within each view and associates only the tables using the document forms to update each respective view, thus increasing performance. With the Document Table Bitmap Optimization setting, Domino internally maintains tables containing information about documents contained within each view. Domino uses these tables when it updates or rebuilds the view indexes. If the views contain selection formulas that specify which forms to use, enabling this setting optimizes performance by using only the tables that use the forms specified in the view selection formula.
    Don't Overwrite Free Space As a security feature, Domino automatically overwrites deleted data with new data, ensuring that deleted data cannot be recovered. This causes additional I/O operations to the disk. Marking this selection increases performance but you should consider alternative security options if you choose to do so. Because enabling the Don't Overwrite Free Space option creates potential security risks, this option should be considered only if the information stored within the database is not sensitive information, if it is constantly being reused by new data in a database with a lot of activity, or if the database is located only on a secure server (is encrypted, and so on).
    Maintain Last Accessed Property When enabled, Domino tracks who last read the document. Disabling this option causes Domino to track only who last modified each document, which increases performance because this decreases the disk I/O.
    Disable Transaction Logging After transaction logging has been set up, all Domino database transactions are logged. Disabling this feature increases performance but is generally discouraged because it makes it more difficult to recover from system failures. Transactions are logged in batch mode, when scheduled or when system resources are available.
    Allow Soft Deletions Enabling/disabling this option determines whether users with sufficient Delete access have the capability flag documents for soft deletions.
    Don't Support Specialized Response Hierarchy By default, all documents contain information that enables them to reference parents, siblings and response documents. This information is used by only by the two specialized functions: @AllChildren and @AllDescendants. Disabling this option does not affect the capability to show response documents and their respective hierarchy in views. When modifying this selection, you must compact the database for this setting to take effect.
    Don't Allow Headline Monitoring This feature controls whether users can set up headline monitoring for this database. However, except for databases that contain highly secure information, you typically want to allow for headline monitoring. Working in conjunction with subscription lists, users can use headline monitoring in order to be notified when a document of interest is saved in the database.
    Allow more fields in database This feature enables you to create additional fields in the database. By default, all the field names in a database cannot exceed 64 kilobytes. Typically, this would limit the database to approximately 3000 fields. However, selecting this option enables the database to contain up to 23,000 fields!
    Use LZ1 compression for attachments New with Domino 6 is the capability to use the LZ1 algorithm (rather than the Huffman algorithm) to compress attachments. The LZ1 algorithm is much quicker and more efficient than the Huffman algorithm. When working with databases in a mixed environment of R5 and R6 clients, attachments are automatically compressed with the Huffman algorithm.
    Limit Entries in $UpdatedBy Fields Enables you to limit the number of entries in the $UpdatedBy field. This field contains the canonical name of each person who edited the Notes document. If each document has a lot of activity and many modifications, reducing the number of revisions tracked per document can increase performance. When the limit is reached, the oldest entry is removed.
    Limit Entries in $Revisions Fields Enables you to limit the number of entries in the $Revisions field. This field contains the date and time each Notes Document was edited. If each document has a lot of activity and many modifications, reducing the number of revisions tracked per document can increase performance. When the limit is reached, the oldest entry is removed. By default, this field contains up to 500 entries. Because each entry requires 8 bytes of disk space, the larger this field becomes, the slower the database performance. Domino uses the values contained within the $Revisions field to resolve replication conflicts. Therefore, it is important that the history contained within this field span enough time to properly resolve any conflicts that may occur. Lotus suggests that this value should not be less than 10 to avoid additional replication/save conflicts.
    Soft delete expire time in hours If the Allow Soft Deletions option is selected (also in the Advanced Database Options dialog), this setting determines how long (in hours) the documents are held prior to being deleted.

  9. From the template list, you have the option to select a template you want to use to create your database. Templates are Domino databases that are installed by default for the Domino server and the Notes Designer. Typically, they have an .ntf filename extension and contain no data. However, templates can also have an .nsf extension. Nevertheless, they contain design elements (outlines, framesets, pages, forms, views, agents, navigators, script, libraries and other resources and design elements). When specifying a template, keep the following notes in mind:

    • If you select Blank from the template list, Notes creates an empty database with no forms and one untitled view by default. Use this to create a database from scratch.

    • The template list contains a list of templates available locally on your computer. To select a template located on a server, select Template Server and choose the server on which the template is located. The template list updates itself to list the templates available on the server you select.

    • Templates may or may not be installed on your personal machine, depending on how the Notes installation was performed. If you do not have templates available on your machine, make sure you look for them on a Template Server.

    • If you click Show Advanced Templates, the template list includes system templates such as the Notes Log and Mail Router Mailbox, as well as any other templates marked as advanced templates. In most cases, you do not need to create databases with these templates.

    Note: Clicking the About button from the New Database dialog box displays the About document of the currently highlighted template.

  10. By default, if creating a new Domino database from a template, Domino automatically enables the Inherit Future Design Changes check box. Deselect this option if you intend to make design modifications to the new database. Keep these issues in mind:

    • When this box is checked, the design of your database is automatically synchronized with the design of the template when the Design task runs on the server or the database design is manually refreshed. The Design task refreshes only those databases that are made from templates that reside on the same Domino server.

    • When copying a database, the Inherit Future Design Changes check box is not available to enable/disable within the Copy Database dialog box. However, this setting is still copied over to the new database. Therefore, if the original database was set up to inherit its design from a template database, the new database is also set up to inherit its design by default. Be sure to disable this setting if you are going to make design changes to the new database.

      Tip: Private agents and personal views/folders are not refreshed when the database design is refreshed. Therefore, they must be manually copied and pasted if they are modified in the template.

  11. Click the OK button to create your database. Domino then creates a new file in your Data directory, adds a database link to the currently open design bookmark, adds a database link to the Recent Databases bookmark and opens the new database automatically to the Forms design window.

Creating a copy of an existing database

Using the Domino Designer, follow these steps to create your database as a new copy of an existing Domino database:

  • Select the folder (bookmark) that contains the existing Domino database from which you want to make a new copy. You must select the existing database bookmarked within an existing folder to make a copy. If the database bookmark has not been created, open the database by selecting Select File, Database, Open, or press Ctrl+O. The new database is created in the currently selected folder as well as in the Recent Databases folder.

  • Right-click on the database title and select Database, New Copy from the drop-down menu. This opens the Copy Database dialog box.

    In the top half of the dialog box, you can set the database's server location, title, filename, encryption and full-text indexing as explained in the previous section. The bottom half displays a list of copy options in which you can determine which elements to copy from the original database.

Follow steps 4-11 of the previously listed instructions for creating a database from scratch or from a template. From this point forward, the process is identical.

Creating a design template

Templates are Domino databases that are installed by default for the Domino server and the Notes Designer. Typically, they have an .ntf filename extension and contain no data. However, a template could also have an .nsf extension. Nevertheless, templates contain design elements (outlines, framesets, pages, forms, views, agents, navigators, script, libraries and other resources and design elements).

Prior to rolling an application out to production, it is generally a best practice to make a template copy. Simply make a copy of the database (as described earlier in this chapter), giving the database name an .ntf extension. Typically, you need to copy the design only (rather than the documents as well), and you should modify the database ACL to restrict access to the database from unauthorized users. Lotus recommends the access levels described in Table 2.2.

Table 2.2 -- Template Access Levels
ACL Entry Access Level
Local domain users Reader
Other domain users No access
Designer's username Manager
Database manager (admin) Manager
[Anonymous] No access (or ACL of database)
[Default] No access (or ACL of database)
[LocalDomainServers] Manager (or ACL of database)
[OtherDomainServers] No access (or ACL of database)

Creating database Help documents

The benefits of creating online help within your application are obvious. Integrating information that assists users in understanding and using your application increases its usability and value. You can use the About Database and the Using Database tools to provide online help to the users. The following sections discuss these tools in more detail and provide information about creating or editing the About and Using databases.

The About database

The About database describes the purpose of the database. Optionally, this document can open automatically when a user opens the database. This document is available by selected Help, About Database from the drop-down menu. The About database should include:

  • The purpose of the database/application
  • The intended audience
  • The name and telephone number of the database manager
  • The date the database was implemented
  • Guidelines for the databases use
  • Network requirements
The About database can be set to automatically open with the following options:
  • When Opened in the Notes Client: Open About Database Document
  • Launch First Attachment in About Database
  • Launch First doclink in About Database
  • Show About Database Document If Modified
  • Show About Database Document when Database Is Opened for the First Time
  • When Opened in a Bbrowser: Open About database Document

The Using database

The Using database describes instructions for using the database/application. This document is available when you select Help, Using This Database from the drop-down menu. The Using Database should include:

  • An overview of the database/application
  • The purpose of each view and its organization
  • The purpose of each form and how to complete it
  • The purpose of each agent, when it runs, when it is triggered and the anticipated results
  • The workflow process described in detail

Creating or editing the About or Using databases

To create or edit the About database or Using database document, go to Other, Database Resources section in the Notes Designer.

Exam alert: You cannot add fields, subforms or actions on the About database or Using database document. However, you can create links, buttons, hotspots and attachments.

  • Context-sensitive help is available from the F1 key or Help button within an application. You can associate a help document with a page, form, subform, view or folder by writing a formula for the HelpRequest event.

    Tip: When providing help for a specific element, that setting overrides help already associated with than element.

    Use @Command([OpenHelpDocument]) to specify which help documents to open or @Command([OpenPage]) to open a page. The HelpRequest event is not triggered for Web applications. However, you can still use @Command([OpenHelpDocument]) or @Command([OpenPage]) within a button located on the Web form or Web page.

    Use formulas in the HelpRequest event to specify help based upon various conditions (such as if the document is new, if the document is being edited, field values and so on).

  • Field help provides information for each respective field. Field help is an optional property for editable fields (located on the Advanced tab) that appears at the bottom of the Notes window when a field gets focus. Fields help can contain up to 70 characters but should be kept under 55 characters for multi-lingual applications (to allow for translation). Optionally, you can also use pop-up text for a field label for each respective field.

  • A help view can organize and display custom help documents.

  • Create a link to a separate help database, which can be opened in a separate window (similar to the Notes Client, Notes Designer and Notes Admin help).

Creating a database icon

The database icon (which typically visually represents the purpose of the database) enables users to identify the database quickly on the Bookmark pane or the workspace. Database icons can be created in one of three ways:

  • From scratch with the Notes Designer
  • By copying an existing icon from another database
  • By copying a graphic icon from a third-party graphics application
To add or edit the database icon, open the Notes icon editor by going to Other, Database Resources, Icon from the Designer client.

If copying an icon from another application, you cannot resize or move the icon. The size of the icon should be 32X32 pixels. If the icon is larger than 32X32 pixels, Domino is automatically truncated. To edit the icon, open the icon editor located in the Notes Designer in the Other, Database Resources section.

Note: You must have a mouse to create or edit the database icon.

Monitor/maintain replication

Replication enables replica copies of a database to exchange updates in design elements and database content. Replication can be unidirectional (one way only) or bi-directional (modifications are sent and received). The following procedures can be used to monitor replication:

  • Database replication history -- Records each successful replication session

  • Replication events view -- Displayed in the Notes Log (log.nsf) file, displays information about replication events between servers

  • Replication monitor -- Notifies recipient if a replication of a database does occur within a specified time period; this is an administrative task

  • Database analysis tool -- Collects replication history and replication events from the log file, as well as other database-specific information, and presents the information in an analysis format; this is an administrative task

Preventing design inheritance

Domino Designer enables you to restrict design inheritance on individual design elements or all design elements in a database. Inheritance is the process of distributing design changes (automatically or manually) to one or more databases that are set up to inherit some or all design elements from the template database. You can restrict design inheritance for individual design elements by selecting the option Prohibit Design Refresh or Replace to Modify. Optionally, you can also set the property Propagate This Prohibition of Design Change to propagate this setting to databases inheriting their designs. These settings can be set and modified on the design documents properties dialog.

Tip: A new feature with Domino 6, available on the database properties Design tab, enables the designer to set the database to Refresh Design on Admin Server Only. Therefore, databases with replicas on other servers do not attempt to refresh their designs when the Design task runs.

Users must have Designer or Manager access to replace or refresh a database design.

Some applications may have an open design, allowing designers to modify design elements to suit the application's specific requirements. If a database's design element is modified and the database is set up to inherit its design from a design template, the modifications are lost when the Design task runs (or the database design is manually refreshed). However, setting the check box to Prohibit Design Refresh or Replace to Modify protects the design refresh from overwriting the modifications.

With Domino 6, you can update multiple design element properties at one time. Select multiple design elements from the Designer client (such as views), using the CTRL or SHIFT keys. Then click the properties icon, select File, Properties from the drop-down menu or right-click on the highlighted elements and select Design Properties…from the menu. This opens the Design Documents properties box, enabling you to set common properties for all the design elements at one time.

Printing from the Designer

Using the Print Source dialog box, you can print the contents of the Programmer's pane. This includes the formula language, simple actions, HTML, LotusScript, JavaScript and Java. From within the Domino Designer, select Print from the drop-down file menu, press CTRL-P or right-click in the Programmer's pane and select Print from the context-sensitive menu. This displays the Print Source dialog box.

From within this dialog, you can select some basic printing choices, such as number of copies, print range and print quality. You also can select these options:

  • Select the name of the printer (and optionally modify the printer settings)

  • Select What to Print. The options available are:

    • Current Section -- Prints the current code being displayed in the Programmer's pane. This object is selected by default.
    • Current Object -- Prints all source code for the entire current object (for example, the current form or button).
    • All Objects -- Prints all source code for all objects available for the current design element.
    • Language -- Selects the script language to print (if more than one language is available, such as LotusScript, Java, and so on). This option is available only when the source option is Current Object or All Objects.

  • Choose OK to apply your choices and close the box.

Setting database properties

Many of the settings used during the creation of Domino databases can be modified after the database has been created. Many other options are not available for modification until after the database has been created. Nevertheless, these settings control the database's capabilities for Notes clients and Web clients.

The Database properties box has seven tabs on which you can specify the settings and attributes of the currently selected database. Some of these settings are global to all the documents contained within the database. Other properties control how the Domino server reacts to Web clients versus Notes clients. Some of the newer features contained on the Advanced tab can be modified to improve the database performance and take advantage of the database ODS.

All the database options are available from the Database properties box. To modify the database properties, right-click the database bookmark title and select Database, Properties from the drop-down menu to open the Database properties box shown in Figure 2.8. If the database is currently open, you can also click on the Properties Box icon from either the SmartIcon bar or click the Properties Box button located by the Preview buttons in the top-right corner of the window.

In Creating a database earlier in this chapter, you learned about the Advanced Tab of the Database properties box and its settings. Please refer to Table 2.1 to review that information. The options on each of the remaining Database properties box tabs are described in the following sections.

Database Basics tab

The Database Basics tab is the first tab available from the Database properties box. This tab displays the settings listed in Table 2.3.

Table 2.3 -- Database Basic Properties
Setting Setting Type Description
Title Editable text The database title
Server Display only The server where the current database is located
Filename Display only The file path and filename of the current database
Database Type Drop-down selection Determines the type of design elements the database is to contain and the default functionality
Archive Settings Button Opens the Archive Settings dialog box
Encryption Settings Button Click the Encryption button to choose encryption settings.
Click the Replication button to choose Replication settings.
Replication Settings Button Opens the Replication Settings dialog box
Replication History Button Opens the Replication History dialog box
Web Access: Use JavaScript When Generating Pages Check box Enables the use of additional @commands and multiple buttons on forms and converts many @commands to JavaScript
Web Access: Require SSL Connection Check box Forces Web clients to log in using SSL (Secure Sockets Layer)
Web Access: Don't Allow URL open Check box Restricts Web users from using URL commands to open the database, forms, views, etc.
Disable Background Agents for This Database Check box Determines whether background can be run on the database
Allow Use of Stored Forms in This Database Check box Determines whether the setting to store form design elements in documents can be enabled
Display Images After Loading Check box This setting controls whether images should be displayed after the entire document has been loaded.
Allow Document Locking Check box Allows users with Author access or higher to lock documents
Allow Connections to External Databases Using DCRs Check box Allows forms using a data connection resource (DCR) to exchange data with an external database

Info tab

The Info tab contains general information about the Domino database.

The information contained in the Info tab includes the disk space and document count. Click the % Used button to display the percentage of non-whitespace being used by the database. You can click the Compact button to run the Compact task on the database. The Info tab Activity display shows the date and time the database was created and last modified. User Detail indicates the User Activity, if the activity is being recorded. This tab also shows the Replica ID and the ODS version of the active database (this value is different for previous versions of Domino).

Printing tab

The Printing tab contains information regarding settings and formatting for printed documents.

The settings on the Printing tab enable you to determine how the database documents will be printed. You can specify whether the current settings refer to the headers or footers. You can type editable text in the Header/Footer Text box, and that text will appear in the document headers and/or footers. List box settings for font, size and style determine the text Format. Finally, you can choose whether headers and footers will appear on the first page of the document.

Design tab

The Design tab contains design settings options for the current database.

If the database design is not hidden, the information contained in the Design tab is as described in Table 2.4. If the database design is hidden, no information is displayed on this tab, although the tab still exists. Design locking is described in more detail in "?," later in this chapter.

Table 2.4 -- Database Design Tab
Setting Setting Type Description
Allow Design Locking Check box Enables developers to document locking capabilities
List in Database Catalog Check box Determines whether database should be listed in database catalog
Categories Editable text box If database is set to list in database catalog, determines category for database catalog
Show in 'Open Database' Dialog Check box Determines whether this database should appear in the list of databases that appears when users are opening databases
Include in Multi-Database Indexing Check box Determines whether the database should be included the multi-database search site queries
Do Not Mark Modified Documents as Unread Check box Determines whether modified documents should be marked as unread documents
Inherit Design from Master Template Check box Determines whether the database should inherit its design
Template Name Editable text If the Inherit Design from Template check box is selected, the name of the template database is specified.
Refresh Design on Admin Server Only Check box If the Inherit Design from Template check box is selected and template name is specified, indicates whether the inheritance should occur on the admin server only
Database File is a Master Template Check box Determines whether the database is a template for other databases
Template Name Editable text If the Database is a master template, this field is used to specify the name assigned to this template.
List as Advanced Template in 'New Database' Dialog Check box If selected, the database appears in the template list only when the new database is created as an advanced database template.
Copy Profile Documents with Design Check box If selected, profile documents are copied along with design elements.
Single Copy Template Check box Indicates whether database is single copy template (a new feature in R6 that allows multiple databases to replace design elements with pointers or reference nodes to design elements in the single copy template)
Multilingual Database Check box Determines whether the database should support multiple international languages, time zones and regions. If set, developers can build design elements and associate them with a particular language.
Default Language Drop-down For multilingual databases, allows developer to set default language
Default Region Drop-down For multilingual databases, allows developer to set default region if default language has various regional dialects (such as in Spanish)
Default Sort Order Drop-down For multilingual databases, allows developer to set default sort order for multiple languages
Unicode standard Sorting Check box For multilingual databases with default sort order specified, allows developer to select/deselect Unicode sorting

Launch tab

The Launch tab contains information regarding launch settings for native Lotus Notes clients and Web clients.

The information contained in the Launch tab is described in Table 2.5.

Table 2.5 -- Database Launch Tab
Setting Setting Type Description
When Opened in the Notes Client Drop-down Determines the default design element to open when the database is opened by a native Lotus Notes client. The default launch options for Notes clients are:
  • Restore Last Viewed by User
  • Open "About Database" Document
  • Open Designated Frameset
  • Open Designated Navigator
  • Open Designated Navigator in Its Own Window
  • Launch First Attachment in "About Database"
  • Launch First Doclink in "About Database"
Name Drop-down The list of specific options based upon the option selected for When Opened in the Notes Client
Restore as Last Viewed by User Check box Opens last design element viewed by each respective user
Show "About Database" Document If Modified Check box Determines whether the About document should be displayed to Notes clients if its design has been modified since the user last accessed the database
Show "About Database" Document When Database Is Opened for the First Time Check box Determines whether the About document should be displayed to Notes client when database is opened for first time
Preview Pane Default... Button Determines the default Preview pane layout. This option is not available if the When Opened in the Notes Client option is set to open a Frameset.
When Opened in a Browser Drop-down Determines the default design element to open when the database is opened by a Web client. The default launch options for Web clients are:
  • Use Notes Launch Option
  • Open "About Database" Document
  • Open Designated Frameset. Selecting this option displays an additional option to select the Frameset to open.
  • Open Designated Page. Selecting this option displays an additional option to select the Page to open.
  • Open Designated Navigator in Its Own Window. Selecting this option displays an additional option to select the Navigator to open.
  • Launch First Doclink in "About Database".
  • Launch Designated Doclink. Selecting this option displays an additional buttons to paste the doclink or go to the doclink.
  • Launch First Document in View. Selecting this option displays an additional option to select the View to use when opening the first document.

Full Text tab

Full text indexes enable you to speed up the searching of Notes documents by creating a index of the database (which is stored in another physical database file).

You must have Designer access or higher to create a full-text index of a database.

Exam Alert: If a user does not have access to create, update or delete the full-text index, these options are grayed out to the user.

The Full Text tab contains information regarding Full Text Indexing options.

Click the Update Index button at the top of this tab to update a previously defined index. Click Create Index to open the Create Full Text Index dialog box. The Delete Index button deletes an existing index. Use the Update Frequency drop-down to specify whether updates should occur on a daily, hourly or other scheduled basis. In the Index Settings area, you can see all the full text index settings, including Case Sensitivity, Index Breaks, Index Attachments and Index Encrypted Fields.

Setting up design inheritance

When designing applications, you can distribute design modifications in one of three ways:

  • Make modifications directly to the live database.
  • Make modifications to the database template and manually replicate the design of the database.
  • Make modifications to a master design template and manually refresh the design of the database or use the Design task to refresh the design of the database.
The third method is the most structured option for managing design modifications and the preferred method to control, track, maintain and synchronize changes.

You typically set up design inheritance when a database is initially created or after a database has been created by modifying required parameters on the Design tab of the Database Properties dialog. When a database is created, you can optionally specify a template on which to base the design of the new database. If an existing template is selected (from either the user's local drive or from a specified server), all the design elements from the template are copied into the new database. Optionally, you can select the check box to Inherit Future Design Changes. If this option is selected, the new database is automatically set up to inherit future design changes made to the template when the design task runs on that server or when the database design is manually refreshed by the database designer or database manager.

Tip: Only database templates (files with an .ntf extension) located in the root directory of the server of local data drive appear in the template database list when a new database is being created.

You can also set up design inheritance on an existing database by specifying the master template in the Design tab of the Database properties dialog. If the database was set up to inherit future design changes, as specified in the previous example, this will already be set up. Nevertheless, to set up a database to inherit its design from a master template, follow these steps:

  1. Open the Design tab of the Database Properties dialog box.
  2. Select the Inherit Design from Master Template option located in the Inheritance section of the dialog.
  3. Specify the master template name in the Template Name field.
The master template will have the option of specifying if the Database File Is a Master Template is selected. The Template Name field, located under this check box, must contain the same value as the template name field specified in the database inheriting its design. These values can be any text string that meaningfully describes the database. When the design task is run on the server or the database design is manually refreshed, all the databases on that server are searched until the master template is located. Then all modified design elements are updated in the database inheriting its design. If the master database cannot be found or the value entered in the template name is incorrect, the database design is not updated.

A new check box available with Domino/Notes 6 provides the capability to specify that the database inheritance occurs only on the admin server for that database. This is enabled by selecting the Refresh Design on Admin Server Only check box (the admin server is indicated on the Advanced tab of the database Access Control List dialog box). If this option is set, the database design is refreshed only on the replica copy that exists on the server specified as the Admin server for that database. However, the master template database must still exist on the same server as the database whose design is being refreshed. (Therefore, in this case, the master template must also exist on the admin server.) Additional design inheritance settings are covered in chapter 7, "Database management."

Setting up document locking

Document locking allows users with Author access or higher to lock documents within a database. Locking a document gives exclusive rights to the person who has locked the document to modify it. Other users with the same rights cannot modify the document even if they are working on another replica on the same local area network. Therefore, document locking prevents editing of documents and replication conflicts.

To enable design element locking, specify a Master Lock Administration Server in the Advanced panel of the database Access Control dialog. Then select File, Database, Properties to open the Database properties box. On the Design tab, select the Allow Document Locking option. Of course, document locking must be set up individually for each database.

If you are working locally and are unable to connect to the administration server for the current database, attempting to lock a document causes the Master Lock Database Cannot Be Reached message to display. You are then prompted as to whether you want to proceed with locking the document. If you answer yes, there is a chance that your edits may be lost if the document is edited by another user. When this happens, you will receive an email notifying you that the changes were not saved in the document. When a document is successfully locked, the message "Document successfully locked" is printed to the status bar.

Exam Alert: To unlock a document, you must use the same ID as the ID used when the document was locked. Alternatively, Managers can unlock documents.

To lock a design element, simply right-click the design element and select Lock from the drop-down menu. To unlock a design element, right-click on the design element and select Unlock from the drop-down menu.

Note: When one shared action is locked or unlocked, all shared actions are locked because all the shared actions are considered one design element.

Troubleshooting database access

The most important tool for controlling access to your application is the database's Access Control List (ACL). Within the database ACL, you define which people, groups and/or servers have access to your database and what functions they can each perform.

Note: Every Domino database contains an Access Control List. Users, groups or servers with Manager access can add, modify and remove users and groups, and they assign them specific access to the application. Whenever users attempt to access this database (from either a Notes or Web client), the ACL is used to determine their respective privileges.

ACL fundamentals

Database security for any database on a server is handled by the database Access Control List. The ACL lists users, groups and servers, and assigns them specific rights to the database. Access levels range from Manager, who has total access to the database, to No Access. The database manager creates and controls the ACL. An additional database-level security feature is local encryption, which causes local databases to be encrypted so that only the user who set local encryption can access them.

The users, groups and servers contained within the ACL entries are defined within the Domino Directory. The Domino Directory is actually another Domino database itself. (Prior to Domino Release 5, this database was referred to as the Public Address Book.) Four layers of security are contained within the Domino security framework:

  • Server-level security
  • Database-level security
  • Documents-level security
  • Field-level security

Access levels

Within the Database Access Control List are seven levels of access. Table 2.6 lists each access level and describes each level's access.

Table 2.6 -- Database Access Levels
Access Control Level Privileges
Manager Can perform all functions, create and modify database ACLs and delete the database (using the Notes client)
Designer Can perform all the functions of an Editor (unless there are specific document-level restrictions), make modifications to the database design and design elements, and create/update a full-text index for the database. Designers cannot delete the database or modify the database ACL.
Editor Can create, read and edit all documents (unless there are specific document-level restrictions)
Author An author can create, read and edit documents he has created. However, if the Create Documents ACL setting has been disabled for this entry, users cannot create new documents. For an Author to edit her own document she must have an Authors field with her name in it on the document.
Reader Can only read documents (cannot create, edit or delete documents)
Depositor Can only create documents (cannot read, edit or delete documents even if he or she created them). Users cannot see any documents, either, even those they have previously created.
No Access No access to the database.

Theoretically, a user who has No Access to a database may still be able to view some of the database contents. If a user has been granted No Access to the database, but the Read Public Documents option has been selected, the user has access to read documents contained within a shared view/folder if the documents contain an item title ($PublicAccess) that has a value of 1. This capability is used within the Notes calendaring capability.

In the Access Control List, you list users, groups and servers who need access to your database. Users, groups and servers are given one of the same seven access levels described in Table 2.6.

ACL Entries

ACL entries within a database can be categorized as one of the following:

  • Username
  • Server name
  • Group name
  • Database replica ID
  • Default
  • Anonymous
Usernames in the ACL should be entered exactly as they appear in the user's ID file. If your organization uses hierarchical names, you should enter the fully distinguished hierarchical name -- for example, Tim Bankes/Marketing/LibertasTechnologies. If the server on which your database resides and the person you are adding are both in the same organization, you can enter just the common name in the ACL, but the fully distinguished name is more secure, because two people cannot have the same fully distinguished name.

Server names are entered in much the same way as usernames. You should use the server's fully distinguished name -- for example, Tsunami/Marketing/LibertasTechnologies. But you can use the common name if the servers are in the same organization.

Tip: Notes enables you to use the asterisk wildcard (*) to replace any component of a hierarchical name below the organization. Using wildcards, one ACL entry can grant access to everyone within a single organization or organizational unit. For example, the entry */LibertasTechnologies gives access to anyone in the organization LibertasTechnologies (including Tim Bankes/LibertasTechnologies or Dave Hatter/Development/LibertasTechnologies).

It is possible for users to be assigned to more than one access level by being assigned explicitly within the database ACL and by being a member of a group name in the database ACL. Table 2.7 outlines the possible scenarios in which a user might be assigned with multiple access levels.

Table 2.7 -- Multiple Access Levels
Situation Resolution
The user is listed individually and as a member of a group. The access granted to the explicitly listed username takes precedence over the access granted in the group, even if the group access is higher.
The user is included in two or more groups. The user is granted the access of the group with the highest access, even if one of the groups has been assigned No Access to the database.
The user appears in the ACL as well as in specific design element. The specific design access refines the database access lists.

Group names in the ACL can be any group of people or servers that is defined in the Domino Directory. Using group names in your ACLs has several advantages over individual names, including the following:

  • One group representing many users keeps the number of entries in the ACL low. This makes managing the ACL much easier.
  • You can change the access for an entire group of people rather than changing the access of several individual users.
  • A single group can be in the ACL in several databases. Simplify administration by centralizing changes within the Domino Directory.
  • Using groups, you can list a descriptive name that makes up a set of people, so you don't have to worry about typing in each individual entry, just the group name.
Note: By default, the database Access Control List (ACL) affects only databases stored on a server. If the Enforce a Consistent Access Control List Across All Replicas of This Database property is selected, the ACL is enforced locally and across all other servers that contain database replicas of the current database. When the database replicates, all other replicas must share the same ACL list and specific settings. They can be modified on only the administration server. After they have been modified on the administration server, they are pushed to the other replica copies. If the database is modified on a replica copy that is not designated as the administration server, replication is permanently disabled for that replica database.

To enable this security, choose File, Database, Access Control from the menu bar. Click the Advanced tab that appears and select the Enforce a Consistent Access Control List Across All Replicas of This Database option.

Four standard entries are created by default for every new database:

  • Default -- Set to No Access unless the database was created from another database or a template with the default entry set to another access level.
  • LocalDomainServers -- Set to Manager access.
  • OtherDomainServers -- Set to No Access.
  • Current Server -- If created on a server, this entry is set to Manager access.
  • The database creator -- Set to Manager access.
Beyond these standard entries in the ACL, you will add additional entries for users, servers and groups of users or servers. These additional entries affect the bulk of the database users.

ACL entries are created with the Access Control List dialog box. You can also modify database ACL entries. Right-click the database icon for which you want to set up an ACL and select Database, Access Control.

In the People, Servers, Groups field, you can filter the entries listed in the ACL. You can add, delete or update entries in the list. Use the following procedure to add names to the list:

  1. Click the Add button (located below the People, Servers, Groups list). Domino displays the Add User dialog box.

  2. Enter a single name in the People, Servers, Groups box. Or click the Person button to open the Names dialog box, which is used for looking up entries in the Domino Directory. The entries can be servers, server groups, people, people groups or mixed groups.

  3. When you have added all the desired ACL entries, click OK. The names now appear in the Database ACL list. The default access level of newly added entries matches the access level of the currently highlighted entry in the ACL list.
To rename an item in the list, select the name you want to rename and click on the Rename button in the Access Control dialog box. Enter the new name or use the Domino Directory by clicking on the Person button.

To delete a name from the list, select the name you want to delete and click on the Remove button in the Access Control dialog box.

After you have entered the correct names, you can assign access levels to those names by using the following procedure:

  1. Select a name from the list in the People, Servers, Groups list box.

  2. In the Attributes area of the ACL window, select the appropriate User Type.

  3. Select the appropriate access from the Access pull-down list.

  4. Below the Access list are eight check boxes that you should check to further refine a user's access rights. The rights available for modification depend on the access level you assigned the user. For example, the Create Documents box is unavailable for a user with Reader access because a Reader, by definition, cannot create documents. Any unavailable items are grayed out. Items that are selected and grayed out are automatically set as a result of the access level and cannot be modified. These options are covered in greater detail in chapter 5, "Security: Setting up/configuring/implementing/enabling."

  5. Finally, you can select any roles assigned to this user, if any are defined, in the Roles list box.
You can add, modify and/or remove roles by clicking on the Roles icon located on the left section of the Access Control List dialog box. Roles enable database security to assign a subset of users additional access to specific database components. Role names cannot exceed 15 characters.

You can view the change history of modifications made to the database ACL by clicking on the Log icon located on the left section of the Access Control List dialog box.

You can modify Advanced options by clicking on the Advanced icon located on the left section of the Access Control List dialog box.

With these advanced options, you can:

  1. Select the Administration Server.
  2. Determine whether the Administration Process should modify Reader and Author fields.
  3. Enforce a consistent Access Control List across all replicas of this database.
  4. Set the maximum Internet access with authenticated Web users.
  5. Look up user types for Unspecified users on the Basics tab from the Domino Directory.

Using design synopsis to analyze application elements

The Domino Design Synopsis allows designers to gather a detailed report describing the design of a database. Specifically, the design synopsis report enables you to

  • Gather information on the current database
  • Select design elements to report on
  • Filter contents of the report to shorten the length of the report
  • Display the results of the report to screen or write the results to a Domino database
To create a design synopsis of the current database, perform the following steps:
  1. Open the database on which you want to report.

  2. Select File, Database, Design Synopsis from the pull-down menu.

  3. Select the design elements on which to report from the Choose Design Elements tab by first selecting the design element type, then adding (or removing) specific design elements or all design elements.

  4. On the Choose DB Info tab, select the type of information to include in the report.

    The options include:

    • General Information -- Includes general information such as database title, location and categories.
    • Space Usage -- Include file size information, number of documents, space used by the database, and so on.
    • Replication -- Includes replication information.
    • Access Lists -- Includes database ACL information, such as the database users, groups, and servers, as well as each entry's respective access level and access role.

  5. On the Define Content tab, select the contents of each element type to include in the synopsis.

  6. On the Format Output tab, select the separator for each element within the report (page break or blank line) and where the report output should be directed (document or database). If you select database as the output option, another dialog box enables you to select the destination database server, title, and filename.
Hide-when conditions are now supported by the design synopsis feature.

Using design templates to refresh an application design

Using design templates when creating applications and to update existing applications enables designers to create a consistent design for multiple databases while minimizing development effort. The process of updating a databases design from a design template can be manually triggered by the application designer, by an administrator running the Design task or automatically if the Design task is scheduled to run overnight (for example, at 1:00 a.m.).

Note: The Design task updates all databases that are set up to inherit their design from a design template.

Database designs are refreshed only by design templates that exist on the same server as the database to be refreshed.

The Designer task can be run manually from the workspace or the administrator client, or by using a console command. To run the Design tasks on a server Load Design at the console command. To refresh the design of a single database, you can optionally provide arguments to specify the database, source server, destination server or directory to refresh.


As you would expect, Lotus Notes and Domino 6 have made significant advancements from the R5. References at the end of this chapter direct you to sources that elaborate on the specific enhancements.

The concepts of database management, specifically creating databases and managing their design, are an integral part of application development. In addition, replication and database access issues represent some of the most powerful features of Domino and Notes. Subsequently, they are covered in great deal on the certification exams. Some of the newer features, such as document locking, further expand the capabilities of Domino and Notes. You also can expect to see these items on the certification exams!


Question 1
Tim needs what access level needed to unlock documents locked by other users?

A. Designer
B. Manager
C. Either Designer or Manager
D. None. Documents can only be unlocked by the user who originally locked it.

Answer B is correct. Typically documents that have been locked can be unlocked only by the user who locked the element(s) or the database manager. Although a manager cannot edit a document locked by another user, a manager can unlock the document. Answers A and C are incorrect because Designers do not have sufficient rights to unlock documents if they have not originally locked them. Answer D is wrong because even though users can unlock documents they have locked, Managers can unlock documents as well.

Question 2
Which is not an option for the default launch action when a database is opened in a browser?

A. Restore as last viewed by user.
B. Launch first doclink in About Document.
C. Launch designated doclink.
D. Open About Database document.

Answer A is correct. The option to Restore As Last Viewed by User is an option for the database launch when opened by a Notes client. Answers B, C and D are all valid default launch options when a database is opened in a browser.

Question 3
Where would a developer set the property in order to not send changes made to the database title and then catalog info to other replicas?

A. In the Database properties, Basic tab
B. In the Database properties, Info tab
C. In the Replication settings, Basic tab
D. In the Replication settings, Send tab

Answer D is correct. The Do Not Send Changes in Database Title and Catalog Info to Other Replicas option is located on the Send tab of the Replication Settings dialog. Answer A is incorrect because the Database Properties, Basic tab displays the database title, but does not have a setting to control whether changes made to the title are sent to other replicas. Be careful, because the Database Properties, Basic tab does display a button that opens the Replication Settings dialog (where this setting is modified). Answer B is incorrect because the Database Properties, Info tab displays only Size, Activity, Replica ID, and ODS information. Answer C is incorrect because the Replication settings, Send tab contains settings for how often replication occurs, how much is replicated, and which server to use for replication.

Question 4
Tim wants to modify the design of eight different views in an existing database so that they are hidden from mobile clients. Where would Tim set this?

A. Design properties
B. View properties
C. Database properties
D. This option is not available Domino/Notes 6

Answer A is correct. With Domino/Notes 6 you can now highlight multiple design elements (holding Shift or CTRL while clicking on each design element) from the work pane and set common design properties by using the Design Properties box. Answer B is incorrect because the view properties do not allow you to modify multiple design elements at one time. Answer C is incorrect because the database properties do not allow you to modify this setting.

Question 5
Which is not a print option when printing source code from the programmer's pane in the designer IDE?

A. Simple Actions
B. Formula Language
C. Java
D. They are all print options.

Answer D is correct. All the source code options can be printed from the designer client except Imported Java (which was not listed in the question but is important to know). Answers A, B and C are incorrect because they are all print options and selecting one answer would preclude the remaining options from being correct.

Need to know more?
Lotus Developer Domain. "Notes 6 Technical Overview." Available in printed form or on the Web at http://www.lotus.com/ldd.

Lotus Developer Domain. "Domino 6 Technical Overview," Available in printed form or on the Web at http://www.lotus.com/ldd.

IBM International Technical Support Organization. "IBM Redbook[md]Upgrading to Lotus Notes and Domino 6." Available in printed form, PDF format and HTML format from www.redbooks.ibm.com/pubs/pdfs/redbooks/sg246889.pdf.

IBM International Technical Support Organization. "Domino Designer 6: A Developer's Handbook." Available in printed form, PDF format and HTML format from http://publib-b.boulder.ibm.com/Redbooks.nsf/RedbookAbstracts/sg246854.html?Open.

IBM International Technical Support Organization. "New Features of Lotus Domino 6.0.1: Single Copy Template." Available in printed form, PDF format and HTML format from http://publib-b.boulder.ibm.com/Redbooks.nsf/RedbookAbstracts/redp3681.html?Open.

IBM Lotus. "Release Notes." http://www-10.lotus.com/ldd/notesua.nsf/RN?OpenView.

IBM Lotus. Online Help Databases: help6_admin.nsf, help6_client.nsf, help6_designer.nsf.



  • Favorite iSeries cheat sheets

    Here you'll find a collection of valuable cheat sheets gathered from across the iSeries/Search400.com community. These cheat ...

  • HTML cheat sheet

    This is a really cool cheat sheet if you're looking to learn more about HTML. You'll find just about everything you every wanted ...

  • Carol Woodbury: Security

    Carol Woodbury