Programming language toolkit variables
In the
October 2001
and
November 2001
columns, Professor INI examined NOTES.INI variables associated with LotusScript, Lotus Connectors, the formula language, and Java.
To round out the review of programming-related variables, this month's column discusses the NOTES.INI variables related to the Notes/Domino programming language toolkits.
Q: I want to know how NOTES.INI variables are used with the Notes/Domino C and C++, COM, Java/CORBA, and NotesSQL toolkits. What NOTES.INI variables affect their APIs?
Note:
NOTES.INI variables concerning debugging are not addressed in this article. For more information concerning NOTES.INI debug variables, please see the Ask Professor INI column,
Using debugging variables
.
This article focuses on the NOTES.INI variables specific to the toolkits. NOTES.INI variables that are accessed through the Administrator client are not addressed, even though they may be accessed by some of the toolkits, except to describe a unique use of that variable or if there is information about the variable that is not available in the documentation. For this reason, some toolkits, such as XML and LDDJ (Lotus Domino Driver for JDBC), are not discussed in this article.
Remember that the NOTES.INI variables associated with the programming language toolkits are generally well-documented. Much of the information contained in this article can be found in the product documentation. We’ve added a few additional details, however, gathered through discussions with the developers.
Variables and the C API
The following variables are used specifically for the Lotus C API for Notes and Domino. Most of them can be found in the
C API toolkit documentation
, which you should reference for further information.
AddInMenus
This variable specifies the name or names of the menu add-in DLLs. Multiple add-in DLL names must be separated by commas. This variable's syntax is:
AddInMenus=<
uiaddin1.dll
>,<
uiaddin2.dll
>,…<
uiaddinn.dll
>
This variable is set in the server's NOTES.INI file.
Editexp, Editimp, Viewexp, and Viewimp
These values indicate the import and export libraries available to the Notes workstation—edit-level export library, edit-level import library, view-level export library, and view-level import library, respectively.
You can use the C API to write custom import and export libraries in addition to those provided by Notes. This variable must be set for each custom import or export library in order to be recognized by Notes.
Here is an example of the syntax for these variables:
Editimpxx=<
File Format Name
>,<
Export Param
>,<
Library Name
>,<
w4w arg
>,<
extension
>,...
where:
xx is a number that starts at 1. It is incremented for each successive edit-level import library.
<File Format Name
> describes the file format this library handles.
<Export Param
> provides information about certain export libraries (for import libraries this is always 0).
<Library Name>
is the name of the executable program library file.
<w4w>
is used only when
Library Name
is _W4W. It provides the alternate library name.
<extension
> is a file name extension that Notes associates with this file format.
This variable is set in the client's NOTES.INI file.
Extmgr_Addins
This variable is used to identify the executable program library for extension manager applications. Use only one entry in NOTES.INI, separating multiple extension manager libraries with a comma. For example:
Extmgr_Addins=nextmngr.dll,nextpwd.dll
This variable is set in the client's or server's NOTES.INI file, or in both, depending on what you want the application to do.
NameLookup_MAX_MB
This variable is used by the C API function, NAMELookup2. It defines how much data can be returned in a single call to this function. This variable's syntax is:
NameLookUp_MAX_MB=<
number of megabytes
>
This variable is set in the client's or server's NOTES.INI file, or in both, depending on what you want the application to do.
Nsf_Hooks
This variable identifies the hook driver, which is an executable program library installed in the Notes/Domino directory. Separate multiple drivers with commas, and do not specify the prefix character or the DLL extension. This variable's syntax is:
Nsf_Hooks=<
driver1
>,<
driver2
>,…<
drivern
>
This variable is set in the client's or server's NOTES.INI file, or in both, depending on what you want the application to do.
ServerTasks
In general, this variable specifies the server tasks that begin automatically at server startup.
You can use the C API to write custom server tasks. In order to start these tasks automatically at server startup, you need to add their names to the server tasks listed for this variable. Separate server tasks with commas. This variable's syntax is:
ServerTasks=<
names of server tasks
>
where <
names of server tasks>
specifies all server tasks that are to begin automatically at server startup, separated by commas.
This variable is set in the server's NOTES.INI file.
Backup and Recovery Services variables
The following three NOTES.INI variables are used in Domino Backup and Recovery Services. For particulars on using these variables, please refer to the
C API User's Guide
for additional information.
Translog_Mediaonly
This variable is used as part of Media-only recovery to recover nonessential databases. By specifying this variable, recovery can be performed on alternative machines or partitions and not affect production server performance. This variable's syntax is:
Translog_Mediaonly=1
This variable is set in the server's NOTES.INI file.
Translog_Path
This variable specifies the path name of the transaction log. It is used in the recovery services of the C API. This variable's syntax is:
Translog_Path=
<a valid (empty) directory>
This variable is set in the server's NOTES.INI file.
Translog_Recreate_Logctrl
This variable is used in the archive style logging disaster recovery services of the C API. It facilitates the creation of a new control file. This variable's syntax is:
Translog_Recreate_Logctrl=1
This variable is set in the server's NOTES.INI file.
UpgradeApps
You can use the C API to write custom upgrade applications (in addition to those provided by Domino) for migrating users to Notes and Domino. This variable is used to specify the file names of the custom Domino upgrade services (DUS). This variable must be set in order for the custom services to be recognized by Domino. The specified files must reside in the Domino executable directory.
This variable's syntax is:
UpgradeApps=<
filename1, filename2, filename3,
...>
This variable is set in the server's NOTES.INI file.
Variables and the C++ API
Most of the variables listed here can be found in the
C++ API toolkit documentation
, unless otherwise noted.
$Lncppap_Max_Cache_Entries
Increasing the number of entries in the view cache speeds view navigation. You can use this variable to change the default cache size. Its syntax is:
$Lncppapi_Max_Cache_Entries=
<number of cache entries>
The default is 100. This variable may be set in either the client's or the server's NOTES.INI file, as it affects the default number of cache entries used by all processes on that particular system.
Editexp, Editimp, Viewexp, and Viewimp
These variables are used with the C++ API in the same way they are used with the C API. These values indicate the import and export libraries available to the Notes workstation—edit-level export library, edit-level import library, view-level export library, and view-level import library, respectively.
You can use the C++ API to write custom import and export libraries in addition to those provided by Notes. This variable must be set for each custom import or export library in order to be recognized by Notes.
Here is an example of the syntax for these variables:
Editimpxx=<
File Format Name
>,<
Export Param
>,<
Library Name
>,<
w4w arg
>,<
extension
>,...
where:
xx is a number that starts at 1. It is incremented for each successive edit-level import library.
<File Format Name
> describes the file format this library handles.
<Export Param
> provides information about certain export libraries (for import libraries this is always 0).
<Library Name>
is the name of the executable program library file.
<w4w>
is used only when
Library Name
is _W4W. It provides the alternate library name.
<extension
> is a file name extension that Notes associates with this file format.
This variable is set in the client's NOTES.INI file.
MailFile
This variable specifies the mail database. It is accessed if the C++ program is running on the server. This variable's syntax is:
MailFile=mail\<
firstinitallastname
>.nsf
MailFile appears only in a client's NOTES.INI file, and it specifies the path to that user's mail file on the server specified by the MailServer variable.
ServerTasks
In general, this variable specifies the server tasks that begin automatically at server startup.
You can use the C++ API to write custom server tasks. In order to start these tasks automatically at server startup, you need to add their names to the server tasks listed for this variable. Separate server tasks with commas. This variable's syntax is:
ServerTasks=<
names of server tasks
>
where <
names of server tasks>
specifies all server tasks that are to begin automatically at server startup, separated by commas.
This variable is set in the server's NOTES.INI file.
Variables and COM
In addition to the Administrator client–set variables KeyFileName, Log, and MailServer, the COM toolkit only uses one other variable, MailFile. This NOTES.INI variable can be found in the
COM toolkit documentation
. Please note that the COM toolkit has been discontinued and is not supported.
MailFile
This variable specifies the mail database. It is accessed if the COM program
is running on a workstation. This variable's syntax is:
MailFile=mail\<
firstinitiallastname
>.nsf
MailFile appears only in a client's NOTES.INI file, and it specifies the path to that user's mail file on the server specified by the MailServer variable.
Variables and Java/CORBA
Everything that applies to the Java/CORBA toolkit applies to (and comes from) core support in Domino and Designer. For more information, refer to both the
Java/CORBA toolkit documentation
and the
Domino Designer documentation
.
DIIOP_Disable_IP_Checking
Setting this variable to 1 disables the cookie IP check. However, we do not recommend that you set this variable because disabling the cookie IP check also disables security. The only time you might want to set this variable is for debugging authentication problems. Do not set this variable on production systems.
This variable's syntax is:
DIIOP_Disable_IP_Checking=1
DIIOP_IOR_Host
Setting this variable configures the DIIOP server for firewall support. Set this to the public IP address or host name of the Domino server. This is necessary when there is a firewall between your Domino server and your Java applets or applications. This variable's syntax is:
DIIOP_IOR_Host=
[Public IP address or host name of the Domino server (as it is known outside the firewall)]
This variable is set in the Domino server's NOTES.INI file.
JavaUserClasses
Applets in the Notes client, agents on the server or the client, and servlets won’t load classes that use native code, create custom class loaders, or perform certain other restricted operations. If your program requires a class that can't be loaded for one of these reasons, you can try loading it with the Domino JVM class loader.
The JVM loader is normally responsible for loading classes from the standard Java archives installed with Domino, in particular the java.* and lotus.* packages. You can force a class to be loaded by the JVM loader listing it on the JVM classpath. The JVM classpath is specified by the NOTES.INI variable JavaUserClasses.
This variable's syntax is:
JavaUserClasses=<
classpath
>
where
<classpath>
is a list of the class and jar files to be loaded, separated by semicolons.
ServerTasks
In general, this variable must be set for anything to run on the server. Java/CORBA requires that the specific server tasks HTTP and DIIOP be running, so you must include them in the ServerTasks list. For example:
ServerTasks=<
any tasks
>,http,diiop
where <
any tasks>
are any other needed server tasks. This variable is set in the server's NOTES.INI file.
Variables and NotesSQL
The NOTES.INI variables for the NotesSQL driver can be found in the
NotesSQL documentation
.
Note:
You should not modify these variables directly. All the necessary information is created or updated automatically when you manage Data Source Names (DSNs) with the ODBC Data Source Administrator or manage users with the NotesSQL Authentication List Manager (ALM).
KeyFileName
This variable determines what Notes ID file is used for authentication. Its syntax is:
KeyFileName=
[username.id]
This variable is set in the client's NOTES.INI file.
NotesSQL_CFG_Path
This variable determines where NotesSQL looks for the NotesSQL configuration file, which contains an authentication list of user names and the paths to the Notes ID files associated with each. This variable's syntax is:
NotesSQL_CFG_Path=<
directory path
>notessql.cfg
This variable can be set in either the client's or server's NOTES.INI file, depending on where the application is run.
Conclusion
This concludes our overview of NOTES.INI variables and Notes/Domino programmability. Be sure to check out the two earlier articles on
Formula language, LotusScript, and Lotus Domino Connector variables
and
Java/CORBA and JVM variables
. And be sure to send Professor INI any further questions you may have about NOTES.INI variables and programmability.
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
Iris Cafe Notes/Domino Gold Release Forum
where someone from the general Notes community might be able to help, or contact
Lotus Customer Support
.