LDD Today

Ask Professor INI
A sampling of new Domino 6 variables
Professor INI has been with Notes/Domino a long time—a very long time—and has seen every release since the first. In that time, Notes and Domino have evolved and grown into the feature-rich, flexible products we know today. But there's one common thread running through all these releases: each one introduced new Notes.ini variables. Notes/Domino 6 is no exception; with the new additions in this release, you now have more than 270 fully supported and documented variables to work with!

That's not to say the role of the Notes.ini file hasn't changed over the years. In the early days, Notes.ini often served as the sole interface for a great deal of client and server functionality. It was also frequently used for enterprise-wide tasks such as rolling out a standard desktop. Nowadays, most of this functionality is available through the Domino and Notes user interfaces, thus reducing your reliance on Notes.ini (and in the process minimizing your risk of damaging this file to the point that Notes/Domino can no longer run properly). But Notes.ini can still be a useful tool for the experienced Domino administrator, especially in areas such as performance and troubleshooting.

This month Professor INI examines several important new server-related variables introduced in Domino 6. Next month, we'll turn our attention to new Notes 6 client variables. Note that this article is not an exhaustive list of all new variables in this release, only a sampling of ones you might be likely to encounter and use. Some of these belong to groups associated with particular components of Domino functionality, for example, the HTTP server or Java. Others are related to new Domino 6 features, such as full access administrator. We'll be looking more closely at many of these variables in future installments of Ask Professor INI.

As always, you should refrain from modifying your Notes.ini file unless you're experienced with Notes and Domino and/or have been advised to do so by Lotus Support.

The full access administrator variable
Domino 6 offers a new, advanced level of access called full access administrator. If you are designated as a full access administrator on the Security tab of the Server document, you have manager access to all databases, with all privileges and roles enabled, on the server, regardless of whether or not you are listed in the database ACLs.

The Notes.ini setting Secure_Disable_FullAdmin enables or disables the Full Access Administrators field in the Server document. Secure_Disable_FullAdmin=1 causes the server to ignore any entries in that field, while a value of 0 (zero) enables it. The field is enabled by default.

For more information on full access administrator, see the Domino 6 Administrator Help.

Mail and router variables
There are a number of new variables designed to handle new mail and router functionality in Domino 6, including SMTP mail.

MailCompactHour=<time>
This variable specifies the time at which the router should perform mailbox compaction. The time is based on a 24-hour clock. For example, MailCompactHour=20 will initiate compaction at or around 8 PM.

RouterEnableMailByDest=<n>
This variable generates verbose mail routing statistics per destination. If you set RouterEnableMailByDest=1, the router maintains statistics for each mail routing destination, which include the last successful/unsuccessful transfer time, total number of messages routed, and the total number of failures. These statistics may be useful when attempting to troubleshoot routing-related problems.

SMTPExpandDNSBLStats=<n>
This variable, when set to 1, causes the SMTP server to generate host-specific DNS Blacklist Filter statistics, which indicate the total number of hits per DNSBL site, per connecting host's IP address. If you set SMTPExpandDNSBLStats=0 (or omit it from Notes.ini), the SMTP task maintains statistics that track the total number of connecting hosts that were found on the combined DNSBL of all sites as well as how many were found on the DNSBL of each configured site.

SMTPNoVersionInRcvdHdr=<n>
This variable prevents Domino server product information from being disclosed in SMTP Received headers.

Console logging variables
In Notes/Domino 6, we've added the ability to allow console logging to be dynamically started or stopped. To help you work with this feature, we've included the following Notes.ini variables.

Console_Log_Enabled=<n>
This variable specifies whether or not to enable logging to the Console Log file (console.log, by default). Console_Log_Enabled=1 causes the router to maintain statistics for each mail routing destination, which include the last successful/unsuccessful transfer time, total number of messages routed, and the total number of failures. A setting of 0 results in no destination-based statistics generated by the router.

Console_Loglevel=<level>
This variable controls the level of information displayed on the status bar when you trace a connection. The following values are possible:
0 - No information is displayed.
1 - Only errors are displayed.
2 - Summary progress information is displayed.
3 - Detailed progress information is displayed.
4 - Full trace information is displayed.

Console_Log_Max_Kbytes=<size>
This variable specifies the maximum size for the Console Log file. If the Console_Log_Max_Kbytes setting is not present or is set to 0, then the file size is unlimited. When the maximum file size is reached, new logging output starts to overwrite existing logging output at the beginning of the file.

Debug_Outfile=<filename>
This variable specifies the file name for the Console Log file.

LogFile_Dir=<directory name>
This variable specifies the directory for the Console Log file.

HTTP-related variables
The following variables give you more control over how the Domino HTTP service (also known as the Domino Web server) runs.

HTTPEnableConnectorHeaders=<n>
This variable enables the Domino HTTP service to process special headers that are added to requests by a WebSphere 4.0.3 plug-in installed on a foreign Web server. When the plug-in relays an HTTP request to the Domino back-end server, the plug-in adds headers that include information about the front-end server's configuration and user authentication status. HTTPEnableConnectorHeaders=1 instructs the Domino HTTP task to process the special headers; a setting of 0 results in these headers not being processed.

HTTPLogUnauthorized=<n>
This variable, when set to 1, instructs the HTTP service to log Error 401 instances to the server console. These instances are generated in two cases: A user attempts to access a resource but is not authorized for it or a user has failed to authenticate. If HTTPLogUnauthorized=0, Error 401 instances are not logged to the server console (although they are logged to the Web Server logs, regardless of whether this variable is enabled or disabled).

HTTP_Pwd_Change_Cache_Hours=<hours>
This variable caches Change Password requests, which allows both the new password and the old password to work on the HTTP service for the specified number of hours.

Java-related variables
Domino 6 Notes.ini variables include a group of settings that affect how Java programs run on your server. Here are some of these Java-related variables:

JavaEnableJIT=<n>
This variable enables or disables the default Java Just-in-Time compiler (JIT), if one is provided. JavaEnableJIT=1 allows normal loading of the default JIT; 0 disables the JIT.

JavaJITName=<name>
This variable enables the specified JIT. Use the JavaJITName setting to load a JIT other than the default JIT (if one exists).

JavaMaxHeapSize=<bytes>
This variable specifies the maximum size the Java heap can reach. You can specify the number of bytes directly or use the suffix MB to indicate megabytes. For example, specifying 64 MB is the same as specifying 67108864.

JavaMinHeapSize=<bytes>
This variable specifies the initial size of the Java heap at Java Virtual Machine (JVM) startup. As with JavaMaxHealSize, you can specify the number of bytes directly or use the suffix MB to indicate megabytes.

JavaNoAsyncGC=<n>
This variable prevents or allows the JVM from running the garbage collection (GC) mechanism in a separate background thread. Specify JavaNoAsyncGC=1 to prevent the GC from running in the background. (This can help you debug internal JVM problems.)

JavaNoClassGC=<n>
This variable, when set to 1, prevents the GC mechanism of classes, which protects static fields.

JavaStackSize=<bytes>
This variable specifies the size of each Java thread's execution stack.

JavaUserClasses=<list>
This variable allows code-sharing across agents and applets.The value <list> is a list of directories, JAR files, or ZIP files that are added to the Java Virtual Machine's internal classpath so that classes can be found via the system loader (rather than via attachments to the agent or applet). Use a semicolon to separate list items for Win32 and OS/2 systems, and use a colon to separate list items for UNIX systems. For example, a valid list for Win32 is:

c:\classes;d:\appxyz\stuff.jar

JavaVerbose=<n>
This variable enables or disables the verbose setting of the JVM, which causes the JVM to issue many messages while it runs. Specify JavaVerbose=1 to enable verbose JVM, which can help troubleshoot runtime problems.

JavaVerboseGC=<n>
This variable enables or disables the verbose setting of the GC mechanism in JVM, which causes the JVM to issue many messages about memory usage as GC runs. JavaVerboseGC=1 enables this setting, which can help you troubleshoot problems.

LDAP schema daemon variables
When you run the LDAP service on your Domino server, it spawns a schema daemon that runs periodically. This daemon ensures that each LDAP service running in the domain uses the same up-to-date and consistent schema. The daemon runs when the LDAP service first starts, and then every 15 minutes afterward by default. The following four variables let you determine how the LDAP schema daemon runs.

Schema_Daemon_Breaktime=<seconds>
This variable specifies how often (in seconds) the daemon checks to see if it should shut down because its parent LDAP task is shutting down.

Schema_Daemon_Idletime=<minutes>
This variable specifies how long (in minutes) the daemon remains idle after it has completed its tasks. After the daemon has been idle for the specified interval, it begins its tasks again.

Schema_Daemon_Reloadtime=<hours>
This variable specifies how often (in hours) the daemon adds schema elements for new or changed Domino Directory forms and fields to its in-memory schema.

Schema_Daemon_Resynctime=<hours>
This variable specifies how often (in hours) the daemon updates the schema published in the Domino LDAP Schema database with a newer in-memory schema.

In addition, you can disable the LDAP service itself by setting DisableLDAPOnAdmin=1. This prevents the LDAP service from running on the administration server of a domaon's Domino Directory.

Other variables of interest
This section presents a sample of other Domino 6 variables you may encounter.

Debug_SSO_Trace_Level=<level>
This variable obtains detailed debugging information for protocols that support single sign-on, such as HTTP and DIIOP. Debug_SSO_Trace_Level=1 prints debugging information as tokens are generated and verified, as well as configuration details. Debug_SSO_Trace_Level=2 prints detailed memory dumps as tokens are generated and verified, in addition to the preceding information.

DominoR5IntlURLDecoding=<n>
This variable enables or disables the decoding of international URL strings using a proprietary encoding scheme. By default, Domino 6 encodes URLs according to the IRI (International Resource Identifiers) standard and does not decode URL strings encoded by Domino 5. DominoR5IntlURLDecoding=1 enables Domino 5 international URL decoding; a setting of 0 disables it.

Enable_ACL_Files=<n>
This variable enables or disables ACL file checking on a server. ACL files are an option for protecting server directories and contain the names of users authorized to access those directories. For non-xSP configurations, this variable is set to 0 (disabled) by default. For xSP configurations, it is set to 1 (enabled).

FT_Max_Search_Results=<results number>
Specifies the maximum number of results that can be retrieved at one time on a database without an index. The value can be any number up to 2,147,483,647.

More to come
As we said, this is just a sampling of the new server-related Notes.ini variables for Notes/Domino 6. Over the next few months, Professor INI will explore more new Notes/Domino 6 variables.


Do you have a Notes.ini question? Send it in to Professor INI. We'll answer as many questions as we can in future "Ask Professor INI" columns. Keep in mind, however, that we may not be able to answer every question, nor can we quickly respond to requests that require immediate attention. If you need an immediate response to a question, we recommend you post it in the Notes/Domino 6 Forum or the Notes/Domino 4 and 5 Forum where someone from the general Notes community might be able to help, or contact Lotus Support Services.