If there is a problem starting the server, start_asiq 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:
$ASLOGDIR/<servername>.xxxx.srvlog
$ASDIR/logfiles/<servername>.xxxx.srvlog
$ASLOGDIR/start_asiq.log
$ASDIR/logfiles/start_asiq.log
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_asiq.
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 Jun 27 2006 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 Jun 27 2006 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_asiq:
DBSPAWN ERROR: -82 Unable to start specified database Server failed to start
If you see these errors in the server log file and the server will not start, try to start the server using the asiqsrv12 command. The asiqsrv12 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_asiq 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 Sybase IQ 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_asiq, make sure the correct parameters are used to start the server. See “Setting environment variables” in Chapter 1, “File Locations and Installation Settings,” in the Sybase IQ Reference Manual.
You cannot run start_asiq If you cannot run the start_asiq command and you normally use a configuration file or other command line switches, try starting the server using only start_asiq 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_asiq command, try starting the asiqdemo demo database using your configuration file and command line switches. If the server starts with the asiqdemo database, there may be a problem with your database. Refer to the section “Database connection issues”.
If you still cannot run the start_asiq command, use the Start Database Server utility in Sybase Central or the asiqsrv12 command.
Before running asiqsrv12, you must perform the following tasks (which start_asiq 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.
Be careful to set all server options appropriately for your platform. For details about appropriate options and how to set them in a configuration file, see the Sybase IQ Installation and Configuration Guide.
For any database created with a relative pathname, 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 pathnames. 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 asiqsrv12 is as follows:
asiqsrv12 -n server-name -gm number [ other-server-switches ] [ database-file [ database-switches ] ]
On the asiqsrv12 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:
asiqsrv12 @asiqdemo.cfg -x 'tcpip{port=1870}' asiqdemo
The –x parameter here overrides connection information in the asiqdemo.cfg file.
When you start the server with the asiqsrv12 command, it does not run in the background, and messages do not automatically go to the server log. However, if you include the -o filename 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 asiqsrv12 command, then attempt to start again using the asiqsrv12 utility with minimal switches and parameters. For example:
asiqsrv12 -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” in the Sybase IQ System Administration Guide for more information on server startup, including the section “Troubleshooting startup, shutdown, and connections.”