If there is a problem starting the server, start_iq returns a non-zero value. If you did not specify a log file after the -o switch on startup, the error is written to the first one of the following that is defined:
$IQDIR15/logfiles/<servername>.nnnn.stderr
$IQDIR15/logfiles/<servername>.nnnn.srvlog
The Systems applications log file
Transaction log file does not match the database.
Server cannot find the transaction log.
Operating system is not at proper patch level.
Network connections are not working.
Server name is not unique on your network.
Server port number is not unique on the machine.
Server is already running as a Windows service (Windows systems only).
Not enough available memory.
Environment variables are not set correctly.
You cannot run start_iq.
Transaction log file does not match the database The following messages appear in the server log file (.srvlog) and in the window where you are starting the server:
Starting database "dbname" (/dbdir/dbname.db) at Fri Apr 27 2009 10:53 Transaction log: dbname.log Error: Cannot open transaction log file -- Can't use log file "dbname.log" since the database file has been used more recently Cannot open transaction log file -- Can't use log file "dbname.log" since the database file has been used more recently Database server stopped at Fri Apr 27 2009 10:53
If these errors are reported when you are starting the server, check to be sure the server is using the correct transaction log file. If you cannot find the correct transaction log file, the safest way to recover from this situation is to restore from the last valid backup.
If you cannot find the correct transaction log and restoring from backup is not an option, then use the emergency recovery method described in “Emergency recovery without a transaction log”.
Server cannot find the transaction log If the server fails to start because it cannot find the transaction log, the following messages appear in the server log file:
Transaction log: /dbdir/dbname.log... Error: Cannot open transaction log file -- No such file or directory Cannot open transaction log file -- No such file or directory
If this error is reported when you attempt to start the server, find the transaction log file and copy the file to the same directory as the database .db file. If you cannot find the correct transaction log file, then restore from the last valid backup.
If no other option for starting the server is available, you may be able to start the server using the method discussed in “Emergency recovery without a transaction log”. Contact Sybase Technical Support for assistance, if necessary.
WARNING! This procedure is highly risky and is not recommended except in extreme cases.
Server name is not unique on your network If the server name is not unique on your network, i.e., multiple systems have a server with the same name, the following messages appear in the server log file (*.srvlog or the name specified in the -o startup option) when you attempt to start the server using start_iq:
DBSPAWN ERROR: -85 Communication error
If you see these errors in the server log file and the server will not start, try to start the server using the iqsrv15 command. (See “You cannot run start_iq” for syntax and prerequisites.) The iqsrv15 command returns a more specific error message:
A database server with that name has already started
Once you have verified that the problem is a duplicate server name on your network, start the server with a name that is different from the names of servers that are already running.
Server port number is not unique on the machine If a Sybase IQ server is running and you attempt to start another Sybase IQ server on the same machine using the same port number, the following messages appear in the server log file (*.srvlog):
Trying to start TCPIP link ... TCPIP communication link not started Unable to initialize requested communication links ... DBSPAWN ERROR: -85 Communication error Server failed to start
If you see these messages in the server log file and the server will not start, run the stop_iq command to display the names and port numbers of Sybase IQ servers already running on the machine. Then try to start your server, specifying either a port number that is not in use or no port number. When you start a server and do not provide a port number (and the default port number is already in use), Sybase IQ generates an available port number.
Here are the messages you see in the server log file, when you start the server and do not specify a port number:
Trying to start TCPIP link ... Unable to start on default port; starting on port 49152 instead TCPIP link started successfully Now accepting requests ... Server started successfully
Not enough memory on Windows If the Sybase IQ server will not start on a 32-bit Windows system, make sure you have enabled the Microsoft 4GT RAM Tuning feature, if appropriate for your version of Windows server. The 4GT option configures the Windows operating system at boot time to allow the allocation of up to 3GB of dynamic memory for a user process. See “System requirements” in the chapter “Installing Sybase IQ” in the Installation and Configuration Guide for Windows for a list of supported Windows platforms and details on enabling the 4GT feature.
Environment variables are not set correctly If your database configuration file parameters differ from those used by start_iq, make sure the correct parameters are used to start the server. See “Setting environment variables” in Chapter 1, “File Locations and Installation Settings,” in Reference: Building Blocks, Tables, and Procedures.
You cannot run start_iq If you cannot run the start_iq command and you normally use a configuration file or other command line switches, try starting the server using only start_iq with the server name and database name. If the server starts with this simple command, then the problem is probably caused by one or more of the switches or parameters entered on the command line or in the configuration file. Try to isolate which parameter or switch is preventing the server from starting.
If the server does not start with the most basic start_iq command, try starting the iqdemo demo database using your configuration file and command line switches. If the server starts with the iqdemo database, there may be a problem with your database. Refer to the section “Database connection issues”.
If you still cannot run the start_iq command, use the Tools > Sybase IQ 15 > Start Server in Sybase Central or the iqsrv15 command.
Use iqsrv15 only for troubleshooting server start-up errors. Always use start_iq to start Sybase IQ servers.
Before running iqsrv15, you must perform the following tasks (which start_iq normally does for you):
Remove all limits, and then set limits on the stack size and descriptors. To do so, go to the C shell and issue these commands:
% unlimit % limit stacksize 8192 % limit descriptors 4096
Be aware that unlimit affects soft limits only. You must change any hard limits by setting kernel parameters.
Set all server options appropriately for your platform. For details about appropriate options and how to set them in a configuration file, see the Installation and Configuration Guide.
Add the path $IQDIR/lib64/ocs to the environment to load the engine and required libraries before you invoke iqsrv15. Put this path in the environment only during testing, as follows:
On AIX:
% setenv LIBPATH "${LIBPATH}:{IQDIR15}/lib64/ocs"
On other UNIX/LINUX platforms:
% setenv LD_LIBRARY_PATH "${LD_LIBRARY_PATH}:${IQDIR15}/lib64/ocs"
For any database created with a relative path name, you must start the database server from the directory where the database is located.
Note what directory you are in when you start the server. The server startup directory determines the location of any new database files you create with relative path names. If you start the server in a different directory, Sybase IQ cannot find those database files.
Any server startup scripts should change directory to a known location before issuing the server startup command.
Syntax for iqsrv15 is as follows:
iqsrv15 -n server-name -gm number [ other-server-switches ] [ database-file [ database-switches ] ]
On the iqsrv15 command line, the last option specified takes precedence, so if you want to override your configuration file, list any options you want to change after the configuration file name. For example:
iqsrv15 @iqdemo.cfg -x 'tcpip{port=1870}' iqdemo
The –x parameter here overrides connection information in the iqdemo.cfg file.
When you start the server with the iqsrv15 command, it does not run in the background, and messages do not automatically go to the server log. However, if you include the -o file name server switch, messages are sent to the named file in addition to the server window.
If the server fails to start when you run the iqsrv15 command, then attempt to start again using the iqsrv15 utility with minimal switches and parameters. For example:
iqsrv15 -n <servername> <dbname>.db -c 32m -gd all -gl all
If the server starts with the minimum parameters and switches, then one of the parameters or switches normally used to start the server may be causing a problem. Try to isolate which parameter or switch is preventing the server from starting.
Chapter 2, “Running Sybase IQ,” and Chapter 3, “Sybase IQ Connections” for more information on server startup, including “Troubleshooting startup, shutdown, and connections”