Connecting to Your Database with lmcfg.txt

 

 

The lmcfg.txt file defines the database type, name and authentication information that ListManager will use when connecting to your database. The installer will insert the values you choose as part of the installation process. To change the SQL server, database, user or password, use a plain text editor to edit the lmcfg.txt file.

 

Each variable is given a "$name", followed by an equals sign (=) and the value, in quotation marks. A semicolon (;) should be at the end of each line. All lines which begin with a hash (#) are commented out, and not read when connecting to the database.

 

$node_name

The $node_name variable specifies the machine name of this ListManager instance. If you are running ListManager in a clustered configuration, each node must have a distinct node name. This name is usually the machine's hostname.

 

Do not edit or change the node name! If you do so, ListManager will create a new node in the database with no configuration information. ListManager will not function properly until the node is removed. See Database Operations for more information about the renamenode function.

 

$sql_type

The $sql_type variable defines which database driver ListManager should use. Valid values for $sql_type are:

 

"MSSQL" - Native Microsoft SQL Server.

 

"Oracle" - Native Oracle OCI driver.

 

Example:

$sql_type="MSSQL";

 

$sql_server

The $sql_server value is the host name of the machine running the your SQL server software. This value should be blank if the database is local for MSDE, or Microsoft SQL Server. Example:

$sql_server="mysqlserver.example.com";

 

$sql_user

The $sql_user value is the login name of the user to connect to the database. This user must have full permissions to create/delete/modify values in this database. May be blank if using MSSQL and integrated security. Example:

 

$sql_user="lyris";

 

$sql_encoded_user

This value is the encrypted login name of the user to connect to the database. The user name may be encrypted by running lm encode_string from the command prompt. The encrypted string may then be used in the lmcfg.txt file for a more secure login to ListManager, as the SQL database user will not be passed in clear text to ListManager. The $sql_user value should not be used or commented out when using $sql_encoded_username. Example:

 

$sql_encoded_user="we418c53"

  

$sql_password

The $sql_password value is the login password of the user to log in as. May be blank if using MSSQL and integrated security. Example:

$sql_password="lyrissqlpassword";

 

$sql_encoded_password

This value is the encrypted password of the user to connect to the database. The password may be encrypted by running lm encode_string from the command prompt. The encrypted string may then be used in the lmcfg.txt file for a more secure login to ListManager, as the SQL database password will not be passed in clear text to ListManager. The $sql_password value should not be used or commented out when using $sql_encoded_username. Example:

 

$sql_encoded_password="we418c53"

 

 $sql_database

The $sql_database value is the name of the database ListManager should use. This value is ignored by Oracle. Example:

$sql_database="listmanager";

 

$sql_askpassword

The $sql_askpassword option causes ListManager to ignore $sql_password and prompt for the SQL database password on the console. The $sql_password parameter is only valid when starting ListManager from the console, not when starting as a service or as a daemon. This feature enables ListManager to be run without having the SQL database password saved unencrypted in the lmcfg.txt file.

 

To enable this option, enter the variable and set to "yes". Example:

 

$sql_askpassword="yes"

 

$sql_pool

The $sql_pool value is the maximum size of the connection pool that ListManager will keep. This allows ListManager to recycle connections rather than creating a new connection for every command. Example:

$sql_pool="25";

 

With the exception of the MSDE server which is optimized for 8 connections, a setting of 25 will give good performance for most database connections. By default, the $sql_pool value is set to 8 for MSDE installations and 25 for all other installations. The minimum number of database connections typically in use by ListManager is 15. Even if you set a number lower than this, ListManager will set to 15 (8 for MSDE).

 

$log_startup_messages

If set to "no", the ListManager startup messages will not be logged, either to the console or the log file. Example:

 

$log_startup_messages="no"

 

$log_directory

 

The $log_directory value is the directory where log files will be placed. For example, "/var/log/lm" or "C:\lm\log." Log file names have the format "lognnnn.txt" where "nnnn" is a positive integer. If not set the log files will be placed in the same directory as the ListManager executable.

 

$log_new_file_on_startup

 

The $log_new_file_on_startup value should be "yes" or "no." When set to "yes" a new log file will be created each time ListManager is run. When set to "no" ListManager will append to the latest log file. If not set ListManager will create a new log file on startup.

 

$max_socket_connections

Limits the number of simultaneous socket connections that ListManager is allowed. The default setting is 3000. If you are getting warning messages during mail send that indicate ListManager is running low on file descriptors, you may need to raise this amount by several hundred or more. If you are running low on memory and experiencing stability problems, you may need to lower the amount.

 

$mailstreams_restricted

Used to prevent Site and List Admins from selecting and viewing all MailStreams.

By default, this parameter is set to "false" to allow Site and List admins the same access to MailStreams as in versions earlier than 11.1a.

 

Set this parameter to "true" to enforce this restriction for Site and List admins.

 

When set to "true", Site and List Admins will see a disabled dropdown list for MailStreams, with only the default MailStream visible. This applies to Segments, Mailings, and Lists. The admins will not be able to access the Utilities->Administration->MailStreams pages.

 

For Linux users:

You must open the S96lm script and raise the ulimit -n amount by 500.

 

Learn more about limiting the number of sockets

 

Database Timeout Values

 

If your database is exceptionally large, you may experience performance issues. In extreme cases, the web server can lock up waiting for a database connection due to long running database queries. To prevent this, you can specify database timeouts as options in the lmcfg.txt file. These options initialize the timeout values and the size of the reserved pool. They are recommended values; you can fine-tune as necessary.

 

NOTE You can also set these values in ListManager. The time in both places is measured in seconds.

 

$sql_reserved_pool = "1";
$sql_default_pool_timeout = "-1"; // indefinite (default).
$sql_default_command_timeout = "3600"; // 2 hrs.
$sql_list_posting_timeout = "3600"; // 2 hrs.
$sql_nightly_job_timeout = "3600"; // 2 hrs.
$sql_incremental_update_timeout = "600"; // 10 minutes
$sql_tclport_pool_timeout = "60"; // 1 minute
$sql_tclport_command_timeout = "60"; // 1 minute
$sql_master_thread_pool_timeout = "1"; // 1 second
$sql_master_thread_command_timeout = "1"; // 1 second

 

Descriptions:

 

$sql_reserved_pool: This is not a timeout. It is a count of the number of database connections to be used by certain processes.


$sql_default_pool_timeout: Pool timeouts not defined by any other timeout type.


$sql_default_command_timeout: Command timeouts not defined by any other timeout type.


$sql_list_posting_timeout: Task that handles the processing of an incoming mailing.


$sql_nightly_job_timeout: Used for nightly jobs.


$sql_incremental_update_timeout: Update summary statistics for only those mailings that have changes since the previous update.


$sql_tclport_pool_timeout: Timeout to get a TCL port command connection.


$sql_tclport_command_timeout: Timeout when TCL port command takes too long. Used for GUI (web server) transactions (HTTP GETs and REQUESTs).


$sql_master_thread_pool_timeout: Timeout to get a master thread command connection.


$sql_master_thread_command_timeout: Timeout when Master thread command takes too long. Used to accept incoming socket connections.

 

 

Specifying lmcfg.txt on Startup

You can specify a different lmcfg.txt file by adding a command-line argument. This option allows programmers to have different icons on the desktop for different lmcfg.txt files.

 

You can use an alternate configuration file using the cfgfile command-line option. The file to load is specified after the "cfgfile" command-line argument. For example:

 

lm.exe start cfgfile mycfg.txt

 

The cfgfile arg can appear anywhere in the command line, and must be a relative path.