Help for Foxhound 4.0.4740a
Table of Contents [RisingRoad]
Foxhound is two products in one: it is both a database monitor and a schema troubleshooter for SQL Anywhere.A database monitor is a computer program that measures the activity of a database management system and displays those measurements in a meaningful way, so that you can easily see that everything's OK or quickly learn about problems and threats to performance and availability. A monitor can also send email alerts and even drop connections when something goes wrong.
A schema troubleshooter is a computer program that performs a static analysis of the tables, columns, indexes, foreign key relationships and other objects in the database, displays those objects in a way that's easy to understand and easy to navigate, together with various facts, figures and curiosities which may be problems that need attention.
Requirements Connecting to Target Databases Starting Multiple Copies of Foxhound
SAP® SQL Anywhere® is a trademark of SAP AG.
1. Windows - Foxhound works with target databases running on other operating systems but the Foxhound engine itself only runs on Windows, and has been tested on Microsoft Windows 7.
2. ODBC - Foxhound itself uses ODBC to connect to your target databases. You don't necessarily need ODBC installed on the servers running your target databases, and you can specify DSN-less connections for Foxhound by using the "String" tab on the main menu page.
3. Chrome, Firefox, IE - The Foxhound client has been tested with the latest versions of Chrome, Firefox and Internet Explorer.
4. JavaScript - Foxhound needs "JavaScript" or "Active scripting" to be enabled in your browser.
5. SQL Anywhere versions 6, 7, 8, 9, 10, 11, 12, 16 and 17 for target databases - Foxhound has also been tested with target databases created with SQL Anywhere 5.5 and running on SQL Anywhere 6 software.
6. SQL Anywhere 16 (build 2127 or later) or SQL Anywhere 17 for Foxhound - Foxhound works with target databases using 6 to 17 of SQL Anywhere but the Foxhound engine itself needs the 32-bit or 64-bit non-authenticated version of SQL Anywhere 16 (build 2127 or later) or SQL Anywhere 17 to run.
7. SQLANY16 or SQLANY17 - The delivered Foxhound shortcuts expect that the SQLANY16 and/or SQLANY17 environment variables will be created by the SQL Anywhere installation (which will happen by default). If neither is the case you may have to modify the corresponding *.bat files. Here are the default settings for Windows 7:
SET SQLANY16=C:\Program Files\SQL Anywhere 16
SET SQLANY17=C:\Program Files\SQL Anywhere 17
8. FOXHOUND4 - The delivered Foxhound shortcuts expect that the FOXHOUND4 environment variable will be created by the Foxhound installation (which will happen by default). If that is not the case you may have to modify the corresponding *.bat files. Here is the default setting for Windows 7:
SET FOXHOUND4=C:\ProgramData\RisingRoad\Foxhound4\
9. Disk space - When re-installing or upgrading Foxhound, 60% or more extra disk space may be required during the post-setup process. The "60% or more" figure applies to the amount of disk space occupied by the existing Foxhound installation, not the total used disk space on the drive.
Foxhound consists of server and client components.
The Foxhound server (or "engine") runs as a single SQL Anywhere database in a Version 16 or 17 network server configured to run as an HTTP (web) server.
The Foxhound client is browser based, with the default URL being this:
http://localhost:80/
The standard Foxhound installation creates Windows Start menu shortcuts to batch files that start both the Foxhound engine and the Foxhound client on the same computer.
Starting Foxhound is a two-step process: Starting the Foxhound database in a SQL Anywhere engine, and connecting to the Foxhound HTTP server from your browser.
Method 1: The following desktop shortcuts do both steps:
The shortcuts above work even if the SQL Anywhere engine is already running; they just ignore the error message produced because the engine's already running, and they press on connecting to Foxhound from the browser.All Programs - Foxhound4 - Start Foxhound via default browser All Programs - Foxhound4 - Tools - Start Foxhound via Chrome All Programs - Foxhound4 - Tools - Start Foxhound via Firefox All Programs - Foxhound4 - Tools - Start Foxhound via IE
Method 2: The following "debug" versions of those shortcuts do exactly the same thing, except that (a) they stop the Foxhound database if it is running, before starting it again, and (b) they display any diagnostic messages produced if the Foxhound database fails to start:
All Programs - Foxhound4 - Tools - Start Foxhound via default browser - debug All Programs - Foxhound4 - Tools - Start Foxhound via Chrome - debug All Programs - Foxhound4 - Tools - Start Foxhound via Firefox - debug All Programs - Foxhound4 - Tools - Start Foxhound via IE - debug
Method 3: You can also start the Foxhound database and open the browser in separate steps:
Start - All Programs - Foxhound4 - Tools - Start Foxhound Engine Specify http://localhost in your browser.
By default the Foxhound shortcuts choose SQL Anywhere 16 over 17, and 64-bit over 32-bit, depending on which folders exist.
You can override those choices with the FOXHOUND4SVER and FOXHOUND4BIN environment variables.
This applies to the version of SQL Anywhere being used to run Foxhound itself, and has nothing to do with the version of SQL Anywhere being used to start your target databases.
Here's how those choices are made by the command files used by the Foxhound shortcuts:
IF EXIST "!SQLANY17!" ( SET SDIR=!SQLANY17! SET SPGM=dbsrv17.exe ) IF EXIST "!SQLANY16!" ( SET SDIR=!SQLANY16! SET SPGM=dbsrv16.exe ) IF /I "!FOXHOUND4SVER!z"=="17z" ( SET SDIR=!SQLANY17! SET SPGM=dbsrv17.exe ) IF /I "!FOXHOUND4SVER!z"=="16z" ( SET SDIR=!SQLANY16! SET SPGM=dbsrv16.exe ) IF EXIST "!SDIR!\Bin32" (SET BIN=Bin32) IF EXIST "!SDIR!\Bin64" (SET BIN=Bin64) IF /I "%FOXHOUND4BIN%z"=="Bin32z" (SET BIN=Bin32) IF /I "%FOXHOUND4BIN%z"=="Bin64z" (SET BIN=Bin64)
$backup_foxhound4.bat $start_foxhound4_chrome.bat $start_foxhound4_chrome_debug.bat $start_foxhound4_default_browser.bat $start_foxhound4_default_browser_debug.bat $start_foxhound4_engine.bat $start_foxhound4_firefox.bat $start_foxhound4_firefox_debug.bat $start_foxhound4_ie.bat $start_foxhound4_ie_debug.bat By default, those command files are installed here on Windows 7: C:\ProgramData\RisingRoad\Foxhound4
You can customize those batch files, or create new ones as you see fit. Each one contains the following commands or a variation thereof:
SET SDIR=!SQLANY16! SET SPGM=dbsrv16.exe SET BIN=Bin32 CD /D "%FOXHOUND4%" "!SDIR!\!BIN!\dbspawn.exe"^ -f "!SDIR!\!BIN!\!SPGM!"^ -c 25p^ -ch 50p^ -cr-^ -gk all^ -gn 220^ -gna 0^ -n foxhound4^ -o foxhound4_debug.txt^ -oe foxhound4_debug_startup.txt^ -on 1M^ -sb 0^ -ufd restart^ -x tcpip^ -xd^ -xs http(port=80;maxsize=0;to=600;kto=600)^ foxhound4.db^ -n f
Here is a description of each part of those commands:
Use the SQLANY16 or SQLANY17 environment variable to specify the version of SQL Anywhere.
Use dbsrv16.exe or dbsrv17.exe to run the Foxhound database.
Use Bin32 or Bin64 to specify the 32-bit or 64-bit version of SQL Anywhere.
Use the FOXHOUND4 environment variable to change the current directory.
Launch the SQL Anywhere server indirectly so the batch file will continue running after SQL Anywhere starts.
Force dbspawn to start another SQL Anywhere server even if one is already running.The Foxhound application resides inside the foxhound4.db database file, and that database must be run on its own SQL Anywhere engine. In other words, you cannot start the foxhound4.db database on an engine that is already running some other database, and you cannot start another database on an engine that is already running Foxhound. You can run other databases on the same computer, of course; they just need their own engine(s).
Set the initial RAM cache size to 25% of available memory.
Set the maximum RAM cache size to 50% of available memory.
Disable cache warming to speed Foxhound startup.
Enable Foxhound batch files to execute dbstop.exe.
Enable Foxhound to collect samples and/or perform ping-only sampling on up to 100 separate target databases.If you never sample more than a few target databases at the same time, you can safely reduce this value.
Prevent SQL Anywhere's automatic tuning process from changing the -gn value.
Set the Foxhound runtime server name.The -n option must be set to foxhound4 for the Rental and Basic editions of Foxhound because only one copy of the Foxhound engine may be run at one time on one network.
The -n option may be set to any acceptable value for the Extended Edition of Foxhound because multiple copies of the Foxhound engine may be run at one time on one network.
Record Foxhound console log messages in a text file.
Record Foxhound server startup and other serious error messages in a text file.
Rename the console log text file foxhound4_debug.txt to foxhound4_debug.old and restart it when it grows to this size.If foxhound4_debug.old exists it is overwritten.
Do not listen for UDP broadcasts.
If a database-level assertion error occurs in the Foxhound database, this option tells SQL Anywhere to shut the database down and attempt to restart it.
Enable the TCPIP protocol for adhoc queries via network communications.
Prevent the Foxhound database server from becoming the default server for other connection attempts.
Enable HTTP communications.
Explicitly set the HTTP port to the default 80.Use a different value like 8080 or 12347 if there is some other HTTP server already running on the same machine and using port 80. When you specify a different value here, you also have to specify it when you launch Foxhound in a browser window; for example, http://localhost:8080/
Allow unlimited size HTTP requests.
Increase the HTTP idle timeout to 10 minutes.
Increase the HTTP keep-alive timeout to 10 minutes.
The Foxhound database file, which contains all the Foxhound executable code.
Set the Foxhound runtime database name.
Foxhound is often used to monitor heavily-loaded target databases, and in such an environment some care must be taken to ensure Foxhound's own CPU and disk requirements don't adversely affect overall performance. The simplest solution is to run the Foxhound engine on its own computer that is:
It is often more important to locate the Foxhound engine close to the target database, than to locate the client-side web browser close to the Foxhound engine. That's because the communication between Foxhound and the target database is more intense and more susceptible to long-range response time (latency) issues than is the HTTP traffic between the browser and Foxhound.
Having said all that, a centrally-located Foxhound engine is easier to set up and administer when it is run as a Windows service using the dbsrv16.exe network server.
You can use Sybase Central or the dbsvc.exe utility to create Windows service; both techniques are described in the SQL Anywhere Help.
Here is an example of a Windows 7 script that deletes and creates a service for running Foxhound using the 64-bit version of SQL Anywhere 16; it also displays the service parameters after it is created, and then lists all the SQL Anywhere-related services that exist:
ECHO Create SQL Anywhere 16 Bin64 Foxhound Service "C:\Program Files\SQL Anywhere 16\Bin64\dbsvc.exe" -d Foxhound4 -y PAUSE ECHO Create SQL Anywhere 16 Bin64 Foxhound Service "C:\Program Files\SQL Anywhere 16\Bin64\dbsvc.exe" -d Foxhound4 -y PAUSE "C:\Program Files\SQL Anywhere 16\Bin64\dbsvc.exe"^ -o "C:\ProgramData\RisingRoad\Foxhound4\dbsvc_log.txt"^ -y ^ -as ^ -i^ -s Automatic^ -sn Foxhound4^ -sd "Foxhound Version 4 Database Monitor Bin64 Service"^ -t Network^ -w Foxhound4 "C:\Program Files\SQL Anywhere 16\Bin64\dbsrv16.exe"^ -c 25p^ -ch 50p^ -cr-^ -gk all^ -gn 220^ -gna 0^ -n foxhound4^ -o "C:\ProgramData\RisingRoad\Foxhound4\foxhound4_debug.txt"^ -oe "C:\ProgramData\RisingRoad\Foxhound4\foxhound4_debug_startup.txt"^ -on 1M^ -qn^ -sb 0^ -ufd restart^ -x tcpip^ -xd^ -xs http(port=80;maxsize=0;to=600;kto=600)^ "C:\ProgramData\RisingRoad\Foxhound4\foxhound4.db"^ -n f PAUSE "C:\Program Files\SQL Anywhere 16\Bin64\dbsvc.exe" -g Foxhound4 PAUSE "C:\Program Files\SQL Anywhere 16\Bin64\dbsvc.exe" -l PAUSE PAUSE "C:\Program Files\SQL Anywhere 16\Bin64\dbsvc.exe" -g Foxhound4 PAUSE "C:\Program Files\SQL Anywhere 16\Bin64\dbsvc.exe" -l PAUSE
To use SQL Anywhere 17 to run the service,
Note: When you run Foxhound as a service, you will probably have to create System DSNs instead of User DSNs if you want your target databases to appear on the DSN tab of the Foxhound Menu page.
You may also have to launch the ODBC Administrator from Control Panel - Administrative Tools rather than from the Foxhound Menu page, and you may have to specify TCP/IP rather than Shared Memory for the Foxhound connections to your target databases even if they are running on the same computer.Also, those DSNs must be set up on the same computer that is running the Foxhound engine. In other words, if you move the Foxhound engine from your workstation to a server somewhere else, you will have to move or copy the DSNs over there as well.
Foxhound uses ODBC to connect to the target databases. If you have an ODBC DSN, you can choose it on the DSN tab of the Foxhound Menu page.
If you don't have a DSN, or don't want to use one, you can specify a DSN-less connection by specifying the connection string on the String tab of the Menu page. The main difference between using the String tab and setting up a DSN in the ODBC Administrator is the String tab needs to know what driver to use, as in:
DRIVER=SQL Anywhere Native;
Foxhound needs to connect to the target database in order to collect Monitor statistics and display schema information. For most purposes, a user id with CONNECT permission is sufficient:
GRANT CONNECT TO FOXHOUND IDENTIFIED BY 'ZAdt5Yq8'; -- or -- CREATE USER FOXHOUND IDENTIFIED BY 'ZAdt5Yq8';
That user id can then be used to connect to a SQL Anywhere database using a connection string like this:
Name: ddd String: ENG=ddd; DBN=ddd; UID=FOXHOUND; PWD=ZAdt5Yq8; DRIVER=SQL Anywhere Native;
A user id with only CONNECT permission does have some limitations, depending on the version of SQL Anywhere being used to run the target database.
Tip: For a SQL Anywhere Version 12 or earlier target database, here's how to let the FOXHOUND user id do everything EXCEPT the following:
GRANT CONNECT TO FOXHOUND IDENTIFIED BY 'ZAdt5Yq8'; GRANT RESOURCE TO FOXHOUND; GRANT EXECUTE ON dbo.sa_locks TO FOXHOUND; GRANT EXECUTE ON dbo.sa_disk_free_space TO FOXHOUND; |
Tip: For a SQL Anywhere Version 16 or later target database, here's how to let the FOXHOUND user id do everything with no exceptions:
CREATE USER FOXHOUND IDENTIFIED BY 'ZAdt5Yq8'; GRANT RESOURCE TO FOXHOUND; GRANT MANAGE ANY DBSPACE TO FOXHOUND; GRANT MONITOR TO FOXHOUND; GRANT DROP CONNECTION TO FOXHOUND; GRANT SET ANY SYSTEM OPTION TO FOXHOUND; GRANT SERVER OPERATOR TO FOXHOUND;
Tip: If you are willing to GRANT DBA TO FOXHOUND then all the problems go away.
If not, here's a table introducing the symptoms and solutions:
Target SQL Anywhere Version Symptom Reason Solution(s) ================================================================================================ GRANT CONNECT TO FOXHOUND IDENTIFIED BY 'ZAdt5Yq8'; -------------- ------------------------- --------------------- --------------------------- 12 and earlier Foxhound Monitor displays Foxhound is not GRANT RESOURCE TO FOXHOUND; "SPs NNN" and may perform allowed to CREATE the target database. three special -- or -- stored procedures on the target CREATE the procedures database. manually using SQL files delivered with Foxhound (see below). -------------- ------------------------- --------------------- --------------------------- 12 and earlier Foxhound doesn't display Foxhound is not GRANT EXECUTE ON free space on the target allowed to call the dbo.sa_disk_free_space database disk drives, sa_disk_free_space() TO FOXHOUND; and doesn't issue Alerts procedure on the 5, 6, 7 or 8 about low target database. -- or -- disk space. GRANT DBA TO FOXHOUND; -- this solves all the other problems too. -------------- ------------------------- --------------------- --------------------------- 12 and earlier Foxhound doesn't display Foxhound is not GRANT EXECUTE ON detailed information allowed to call the dbo.sa_locks about why a connection is sa_locks() procedure TO FOXHOUND; blocked. on the target target database. -- or -- GRANT DBA TO FOXHOUND; -- this solves all the other problems too. -------------- ------------------------- --------------------- --------------------------- 12 and earlier Foxhound can't AutoDrop Foxhound is not GRANT DBA TO FOXHOUND; any connections on the allowed to execute target database. the DROP CONNECTION -- this solves all the statement on the other problems too. target database. -------------- ------------------------- --------------------- --------------------------- 12 and earlier Foxhound can't set the Foxhound is not GRANT DBA TO FOXHOUND; DEDICATED_TASK option on allowed to execute the target database. the SET TEMPORARY -- this solves all the OPTION DEDICATED_TASK other problems too. statement on the target database. -------------- ------------------------- --------------------- --------------------------- 12 and earlier Foxhound can't make the Foxhound is not GRANT DBA TO FOXHOUND; changes specified by the allowed to call the Change Target Settings sa_server_option() -- or -- section of the Monitor procedure on the Option page. target database. Use dbsrv12 -zp -zl -zt ================================================================================================ CREATE USER FOXHOUND IDENTIFIED BY 'ZAdt5Yq8'; -------------- ------------------------- --------------------- --------------------------- 16 and later Foxhound Monitor displays Foxhound is not GRANT RESOURCE TO FOXHOUND; "SPs NNN" and may perform allowed to CREATE slowly. three special -- or -- stored procedures on the target CREATE the procedures database. manually using SQL files delivered with Foxhound (see below). -------------- ------------------------- --------------------- --------------------------- 16 and later Foxhound doesn't display Foxhound is not GRANT MANAGE ANY DBSPACE anything in Free Disk allowed to call the TO FOXHOUND; Space Sys, Temp, Log, sa_disk_free_space() Other, and doesn't issue procedure on the -- or -- Alerts 5, 6, 7 or 8 about target database. low disk space. GRANT EXECUTE ON dbo.sa_disk_free_space TO FOXHOUND; -------------- ------------------------- --------------------- --------------------------- 16 and later Foxhound Monitor doesn't Foxhound is not GRANT MONITOR TO FOXHOUND; gather information about allowed to call the any connections other CONNECTION_PROPERTY() than Foxhound's own function on the connection to the target target database for database. any other connections. Foxhound is also not allowed to call the sa_locks() procedure on the target database. -------------- ------------------------- --------------------- --------------------------- 16 and later Foxhound can't AutoDrop Foxhound is not GRANT DROP CONNECTION any connections on the allowed to execute TO FOXHOUND; target database. the DROP CONNECTION statement on the target database. -------------- ------------------------- --------------------- --------------------------- 16 and later Foxhound can't set the Foxhound is not GRANT SET ANY SYSTEM OPTION DEDICATED_TASK option on allowed to execute TO FOXHOUND; the target database. the SET TEMPORARY OPTION DEDICATED_TASK statement on the target database. -------------- ------------------------- --------------------- --------------------------- 16 and later Foxhound can't make the Foxhound is not GRANT SERVER OPERATOR changes specified by the allowed to call the TO FOXHOUND; Change Target Settings sa_server_option() section of the Monitor procedure on the -- or -- Option page. target database. Use dbsrv16 -zp -zl -zt ================================================================================================
All the solutions use simple GRANT statements shown above, except one; here's the full story on the special Foxhound stored procedures:
How To Install The Foxhound SPs Three stored procedures are delivered with Foxhound for installation on your target databases.
These procedures are optional but highly recommended:
- rroad_connection_properties greatly improves Foxhound performance when the target database has a large number of client connections.
- rroad_database_properties improves Foxhound performance when gathering database-level properties, as well as enabling these Foxhound display fields:
- Log Size - based on DB_EXTENDED_PROPERTY ( 'FileSize', 'translog' )
- Log Used - based on DB_EXTENDED_PROPERTY ( 'FreePages', 'translog' )
- Temp Size - based on DB_EXTENDED_PROPERTY ( 'FileSize', 'temp' )
- Temp Used - based on DB_EXTENDED_PROPERTY ( 'FreePages', 'temp' )
- Temp Frags - based on DB_EXTENDED_PROPERTY ( 'DBFileFragments', 'temp' )
- rroad_engine_properties improves Foxhound performance when gathering server-level properties.
Foxhound will automatically install and call these stored procedures if it can.
The phrase "if it can" means "the user id with which Foxhound connects to the target database has the RESOURCE authority" as in:
Foxhound will keep trying to install those procedures each time it connects to the target database; e.g., each time sampling is stopped and started, or each time Foxhound is started.GRANT RESOURCE TO FOXHOUND;As mentioned above, Monitor performance will suffer without those procedures, especially if the target database has a lot of connections. The Foxhound Monitor page displays SPs YYY if finds the three procedures, and SPs NNN if it doesn't.
. . . but Wait, There Is Another Way!
If you don't want to let the Foxhound user id to have either RESOURCE or DBA privileges on the target database, but you are willing to install those three procedures on the target database yourself, here's how:
(Note: If you choose to use this method, you will have to repeat these steps for each target database you wish to monitor, and again each time you upgrade to a new version or build of Foxhound.)
- Create a user id to be used by Foxhound on the target database; e.g.:
GRANT CONNECT TO FOXHOUND IDENTIFIED BY 'ZAdt5Yq8';
- Find the following three text files in the Foxhound folder (which defaults to C:\ProgramData\RisingRoad\Foxhound4 on Windows 7 and C:\Documents and Settings\All Users\Application Data\RisingRoad\Foxhound4 on Windows XP):
rroad_connection_properties.sql rroad_database_properties.sql rroad_engine_properties.sql
- Edit each file to specify the user id you chose in step 1; e.g., change {OWNER} to FOXHOUND:
CREATE PROCEDURE FOXHOUND.rroad_connection_properties() CREATE PROCEDURE FOXHOUND.rroad_engine_properties() CREATE PROCEDURE FOXHOUND.rroad_database_properties(d INTEGER)
- Use dbisql to run those files against the target database.
- If the Foxhound Monitor is already connected to the target database, click on Stop Sampling, then Start Sampling.
- Check to make sure "SPs YYY" appears on the Foxhound Monitor page.
Tip: One of the reasons to run Foxhound on the 32-bit version of SQL Anywhere is to make it easier to use the 32-bit version of ODBC to connect to your target database... but that may not be necessary!
For example, if you have a SQL Anywhere 9 target database you may be able to connect to it using a more recent SQL Anywhere ODBC driver.It's easiest to do this with Foxhound Menu - String tab rather than the DSN tab... you don't have to mess around with the ODBC Administrator.
The following connection string worked for Foxhound connecting to a SQL Anywhere 9.0.2.3951 database:
Name: ddd9 String: ENG=ddd9; DBN=ddd9; UID=dba; PWD=sql; DRIVER=SQL Anywhere 16;You can also use the magic "SQL Anywhere Native" driver to let SQL Anywhere choose which driver to use:
This also works for SQL Anywhere 6.0.3 database running on a 6.0.4 (3594) server:Name: ddd9 String: ENG=ddd9; DBN=ddd9; UID=dba; PWD=sql; DRIVER=SQL Anywhere Native;Name: ddd6 String: ENG=ddd6; DBN=ddd6; UID=dba; PWD=sql; DRIVER=SQL Anywhere 16;
It is a good idea to take regular backups of the Foxhound database, for two reasons: To protect against loss, and to control the growth of the Foxhound transaction log file.
Foxhound doesn't take backups automatically, but the standard Foxhound installation creates two Windows Start menu shortcuts to batch files that perform full and incremental log backups:
Here's how to set up a scheduled backup task on Windows XP:All Programs - Foxhound4 - Tools - Backup Foxhound Database - Backup Foxhound Transaction Log
1. Click on start - All Programs - Accessories - System Tools - Scheduled Tasks.Here's how to set up a scheduled backup task on Vista or Windows 7:2. Doubleclick on Add Scheduled Task.
3. Proceed with the Scheduled Task Wizard, using the Browse button to specify this command to execute:
C:\Documents and Settings\All Users\Application Data\RisingRoad\Foxhound4\$backup_foxhound4.bat
1. Click on start - All Programs - Accessories - System Tools - Task Scheduler.Once you have set up a scheduled task, you can click on right mouse - Run to make sure the backup task runs ok.2. Click on Action - Create Basic Task...
3. Proceed with the Create Basic Task Wizard, using the Browse button to specify this command to execute:
C:\ProgramData\RisingRoad\Foxhound4\$backup_foxhound4.bat
Here's where the backups are stored on Windows 7:
C:\ProgramData\RisingRoad\Foxhound4\backup\generation1 (the oldest)
C:\ProgramData\RisingRoad\Foxhound4\backup\generation2
C:\ProgramData\RisingRoad\Foxhound4\backup\generation3 (the latest)
Caution: If you are using the Windows 7 Task Scheduler to take regular backups of your Foxhound database using the technique described here, you should reboot your computer after installing a new version of Foxhound.
Caution: If you are using the Windows 7 Task Scheduler to take regular backups of your Foxhound database using the technique described here, be careful not to accidentally create two copies of the same scheduled task.
A typical Foxhound backup consists of a full backup of the database and log files, plus zero or more subsequent incremental log backup files, created by running the following shortcuts:
Foxhound4 - Tools - Backup Foxhound Database - Backup Foxhound Transaction Log
Here is a step-by-step example of a Foxhound restore (for a detailed description of the restore process see this article Which log backups are required to restore a database?):
1. Verify that the full and incremental backup files exist; in this example there is a full backup of the database and log plus two incremental log backup files:
Directory of C:\ProgramData\RisingRoad\Foxhound4\backup\generation3 07/28/2014 02:56 PM 1,297 backup_log.txt 07/28/2014 02:55 PM 1,572,806,656 foxhound4.db 07/28/2014 02:55 PM 13,680,640 foxhound4.log 07/28/2014 02:56 PM <DIR> logs Directory of C:\ProgramData\RisingRoad\Foxhound4\backup\generation3\logs 07/28/2014 02:56 PM 65,536 140728AA.log 07/28/2014 02:56 PM 65,536 140728AB.log
Note that the latest backups are always placed in the "generation3" folder; earlier backups may be found in "generation2" and "generation1".
2. Copy the full backup database file from the "generation3" folder to the main "Foxhound4" folder:
From: C:\ProgramData\RisingRoad\Foxhound4\backup\generation3\foxhound4.db To: C:\ProgramData\RisingRoad\Foxhound4\foxhound4.db
3. Prepare a command file to apply all the transaction log files that exist in the "generation3" and "generation3\logs" folders:
"%SQLANY16%\bin64\dbsrv16.exe"^ -gn 220^ -o C:\ProgramData\RisingRoad\Foxhound4\foxhound4_debug.txt^ -oe C:\ProgramData\RisingRoad\Foxhound4\foxhound4_debug_startup.txt^ -on 1M^ C:\ProgramData\RisingRoad\Foxhound4\foxhound4.db^ -ad C:\ProgramData\RisingRoad\Foxhound4\backup\generation3 PAUSE "%SQLANY16%\bin64\dbsrv16.exe"^ -gn 220^ -o C:\ProgramData\RisingRoad\Foxhound4\foxhound4_debug.txt^ -oe C:\ProgramData\RisingRoad\Foxhound4\foxhound4_debug_startup.txt^ -on 1M^ C:\ProgramData\RisingRoad\Foxhound4\foxhound4.db^ -ad C:\ProgramData\RisingRoad\Foxhound4\backup\generation3\logs PAUSE
To use SQL Anywhere 17 to run the restore, change all occurrences of '16' to '17' in the script above.
4. Run that command file; here are some excerpts from the foxhound4_debug.txt file:
I. 07/28 15:03:17. SQL Anywhere Network Server Version 16.0.0.1915 ... I. 07/28 15:03:17. Starting database "foxhound4" (C:\ProgramData\RisingRoad\Foxhound4\foxhound4.db) at Mon Jul 28 2014 15:03 I. 07/28 15:03:17. Database recovery in progress I. 07/28 15:03:17. Last checkpoint at Mon Jul 28 2014 14:55 I. 07/28 15:03:17. Checkpoint log... I. 07/28 15:03:18. Transaction log: C:\ProgramData\RisingRoad\Foxhound4\backup\generation3\foxhound4.log... I. 07/28 15:03:19. Checkpointing... I. 07/28 15:03:19. Starting checkpoint of "foxhound4" (foxhound4.db) at Mon Jul 28 2014 15:03 I. 07/28 15:03:20. Finished checkpoint of "foxhound4" (foxhound4.db) at Mon Jul 28 2014 15:03 I. 07/28 15:03:20. Recovery complete I. 07/28 15:03:20. Database server shutdown automatically after log applied I. 07/28 15:03:22. Database server stopped at Mon Jul 28 2014 15:03 I. 07/28 15:03:25. SQL Anywhere Network Server Version 16.0.0.1915 ... I. 07/28 15:03:25. Starting database "foxhound4" (C:\ProgramData\RisingRoad\Foxhound4\foxhound4.db) at Mon Jul 28 2014 15:03 I. 07/28 15:03:26. Database recovery in progress I. 07/28 15:03:26. Last checkpoint at Mon Jul 28 2014 15:03 I. 07/28 15:03:26. Transaction log: C:\ProgramData\RisingRoad\Foxhound4\backup\generation3\logs\140728AA.log... I. 07/28 15:03:27. Starting checkpoint of "foxhound4" (foxhound4.db) at Mon Jul 28 2014 15:03 I. 07/28 15:03:27. Finished checkpoint of "foxhound4" (foxhound4.db) at Mon Jul 28 2014 15:03 I. 07/28 15:03:27. Starting checkpoint of "foxhound4" (foxhound4.db) at Mon Jul 28 2014 15:03 I. 07/28 15:03:28. Finished checkpoint of "foxhound4" (foxhound4.db) at Mon Jul 28 2014 15:03 I. 07/28 15:03:28. Transaction log: C:\ProgramData\RisingRoad\Foxhound4\backup\generation3\logs\140728AB.log... I. 07/28 15:03:28. Starting checkpoint of "foxhound4" (foxhound4.db) at Mon Jul 28 2014 15:03 I. 07/28 15:03:28. Finished checkpoint of "foxhound4" (foxhound4.db) at Mon Jul 28 2014 15:03 I. 07/28 15:03:28. Checkpointing... I. 07/28 15:03:28. Starting checkpoint of "foxhound4" (foxhound4.db) at Mon Jul 28 2014 15:03 I. 07/28 15:03:29. Finished checkpoint of "foxhound4" (foxhound4.db) at Mon Jul 28 2014 15:03 I. 07/28 15:03:29. Recovery complete I. 07/28 15:03:29. Database server shutdown automatically after log applied I. 07/28 15:03:31. Database server stopped at Mon Jul 28 2014 15:03
5. Start the Foxhound engine normally.
Note: This example assumes a full restore from backup. In particular, it assumes the transaction log C:\ProgramData\RisingRoad\Foxhound4\foxhound4.log will be automatically recreated in Step 5. If an old copy of that file remains in that folder, Step 5 will fail with an error message "Can't use log file "foxhound4.log" since the database file has been used more recently".
The Foxhound Monitor process will cause the Foxhound database and transaction log files to grow in size. This growth can be quite rapid, as much as several gigabytes per day, if target databases have hundreds or thousands of connections.
There are several ways you can limit the growth of the Foxhound database:
To limit the growth of the Foxhound Transaction log you can use the Foxhound4 - Tools - Backup Foxhound Database shortcut which will backup and restart the active Foxhound transaction log file, keeping only the three most recent backups and discarding older copies.
Another way to limit the transaction log size is to specify the dbsrv16 -m option in the following command files, to tell SQL Anywhere to truncate the transaction log whenever a checkpoint is performed:
$backup_foxhound4.bat $start_foxhound4_chrome.bat $start_foxhound4_chrome_debug.bat $start_foxhound4_default_browser.bat $start_foxhound4_default_browser_debug.bat $start_foxhound4_engine.bat $start_foxhound4_firefox.bat $start_foxhound4_firefox_debug.bat $start_foxhound4_ie.bat $start_foxhound4_ie_debug.bat By default, those command files are installed here on 7: C:\ProgramData\RisingRoad\Foxhound4
If Foxhound takes too long to start up, perhaps because there are a large number of Monitor sessions to start or because Foxhound simply becomes unresponsive, you can try starting Foxhound in "safe mode".
Safe mode startup, also known as "safe startup", stops sampling of all target databases by the Foxhound Monitor when Foxhound is started, and then temporarily disables most Monitor functionality. This sometimes helps if Foxhound is unresponsive when it starts.
Here's how you can turn safe mode startup on and off to "reset" Foxhound:
safeand placing that file in the Foxhound installation folder.
By default, Foxhound is installed in this location on Windows 7:
C:\ProgramData\RisingRoad\Foxhound4
Tip: Safe Mode Startup can be used to start an old Foxhound database without losing any old data to the purge process:
You can use the Extended Edition of Foxhound to start multiple copies of the Foxhound database, each running in a separate SQL Anywhere database server and monitoring a separate set of target databases.
Example 1: Make 9 Copies Of Foxhound Example 2: Start 10 Copies Of Foxhound
Note: Here's what the End User License Agreement has to say...
In the case of the Extended Edition, an unlimited number of copies of the Foxhound database may be created and started using separate instances of SQL Anywhere on the same local network, with the requirement that a separate Extended Edition registration key be purchased for each multiple of 10 copies of Foxhound started.Here's an example showing how 10 copies of Foxhound can be set up on one computer:
- Make sure your original copy of the Foxhound database is activated as an Extended Edition copy.
- Stop and/or delete any Foxhound Monitor sampling sessions you don't want to run on all copies of Foxhound.
Your original copy of the Foxhound database is going to serve as a model or template for the other nine copies. In other words, when the nine new copies are first started they will contain exactly the same settings as the original copy, and you can only customize each copy after it is started.- Shut down your original copy of the Foxhound database.
- Make 9 file copies (see example 1 below) of your original foxhound4.db file in nine different folders.
By default, Foxhound is installed in this location on Windows XP:C:\Documents and Settings\All Users\Application Data\RisingRoad\Foxhound4and on Vista and Windows 7 it is here:C:\ProgramData\RisingRoad\Foxhound4- Use dbsrv16.exe (see example 2 below) to start your original Foxhound database plus the nine copies as follows:
- use different runtime server names: foxhound4, foxhound4b, foxhound4c, ..., foxhound4j
- use different HTTP ports; e.g., 49301, ... 49310
- choose cache memory options carefully; e.g., -c 5p -ch 10p
- Start 10 browser sessions (see example 3 below) using the different HTTP ports.
- Use Monitor Options - 2. Manage Multiple Monitor Sessions in each browser session to set up the target databases for each copy of Foxhound.
- See example 4 below for a script to stop all 10 copies of Foxhound.
Example 1: Make 9 Copies Of Foxhound Example 2: Start 10 Copies Of Foxhound
Here is a sample Windows command file that makes the 9 copies in nine different folders and then starts all 10 copies of Foxhound:
REM ****************************************************************** ECHO Making nine Foxhound database copies... SETLOCAL ENABLEDELAYEDEXPANSION SETLOCAL ENABLEEXTENSIONS CD /D "%FOXHOUND4%" MD b MD c MD d MD e MD f MD g MD h MD i MD j COPY /V /Y foxhound4.db b COPY /V /Y rroad4.dll b COPY /V /Y rroad464.dll b COPY /V /Y foxhound4.db c COPY /V /Y rroad4.dll c COPY /V /Y rroad464.dll c COPY /V /Y foxhound4.db d COPY /V /Y rroad4.dll d COPY /V /Y rroad464.dll d COPY /V /Y foxhound4.db e COPY /V /Y rroad4.dll e COPY /V /Y rroad464.dll e COPY /V /Y foxhound4.db f COPY /V /Y rroad4.dll f COPY /V /Y rroad464.dll f COPY /V /Y foxhound4.db g COPY /V /Y rroad4.dll g COPY /V /Y rroad464.dll g COPY /V /Y foxhound4.db h COPY /V /Y rroad4.dll h COPY /V /Y rroad464.dll h COPY /V /Y foxhound4.db i COPY /V /Y rroad4.dll i COPY /V /Y rroad464.dll i COPY /V /Y foxhound4.db j COPY /V /Y rroad4.dll j COPY /V /Y rroad464.dll j PAUSE |
REM ****************************************************************** ECHO Starting ten Foxhound engines... SETLOCAL ENABLEDELAYEDEXPANSION SETLOCAL ENABLEEXTENSIONS IF EXIST "!SQLANY17!" ( SET SDIR=!SQLANY17! SET SPGM=dbsrv17.exe ) IF EXIST "!SQLANY16!" ( SET SDIR=!SQLANY16! SET SPGM=dbsrv16.exe ) IF /I "!FOXHOUND4SVER!z"=="17z" ( SET SDIR=!SQLANY17! SET SPGM=dbsrv17.exe ) IF /I "!FOXHOUND4SVER!z"=="16z" ( SET SDIR=!SQLANY16! SET SPGM=dbsrv16.exe ) IF EXIST "!SDIR!\Bin32" (SET BIN=Bin32) IF EXIST "!SDIR!\Bin64" (SET BIN=Bin64) IF /I "%FOXHOUND4BIN%z"=="Bin32z" (SET BIN=Bin32) IF /I "%FOXHOUND4BIN%z"=="Bin64z" (SET BIN=Bin64) CD /D "%FOXHOUND4%" REM Maintenance Note: When making changes to the dbspawn command REM line, check all the OTHER command files that execute dbspawn. IF EXIST "%FOXHOUND4%\foxhound4_debug_startup.txt" DEL /F /Q "%FOXHOUND4%\foxhound4_debug_startup.txt" "!SDIR!\!BIN!\dbspawn.exe" -f "!SDIR!\!BIN!\!SPGM!" -c 5p -ch 10p -cr- -gk all -gn 220 -gna 0^ -n foxhound4 -o foxhound4_debug.txt -oe foxhound4_debug_startup.txt^ -o 1M -sb 0 -ufd restart -x tcpip(port=49201) -xd -xs http(port=49301;maxsize=0;to=600;kto=600) foxhound4.db -n f IF ERRORLEVEL 1 GOTO dbsrv_failure IF EXIST "%FOXHOUND4%\b\foxhound4_debug_startup.txt" DEL /F /Q "%FOXHOUND4%\b\foxhound4_debug_startup.txt" "!SDIR!\!BIN!\dbspawn.exe" -f "!SDIR!\!BIN!\!SPGM!" -c 5p -ch 10p -cr- -gk all -gn 220 -gna 0^ -n foxhound4b -o b\foxhound4_debug.txt -oe b\foxhound4_debug_startup.txt^ -o 1M -sb 0 -ufd restart -x tcpip(port=49202) -xd -xs http(port=49302;maxsize=0;to=600;kto=600) b\foxhound4.db -n f IF ERRORLEVEL 1 GOTO dbsrv_failure IF EXIST "%FOXHOUND4%\c\foxhound4_debug_startup.txt" DEL /F /Q "%FOXHOUND4%\c\foxhound4_debug_startup.txt" "!SDIR!\!BIN!\dbspawn.exe" -f "!SDIR!\!BIN!\!SPGM!" -c 5p -ch 10p -cr- -gk all -gn 220 -gna 0^ -n foxhound4c -o c\foxhound4_debug.txt -oe c\foxhound4_debug_startup.txt^ -o 1M -sb 0 -ufd restart -x tcpip(port=49203) -xd -xs http(port=49303;maxsize=0;to=600;kto=600) c\foxhound4.db -n f IF ERRORLEVEL 1 GOTO dbsrv_failure IF EXIST "%FOXHOUND4%\d\foxhound4_debug_startup.txt" DEL /F /Q "%FOXHOUND4%\d\foxhound4_debug_startup.txt" "!SDIR!\!BIN!\dbspawn.exe" -f "!SDIR!\!BIN!\!SPGM!" -c 5p -ch 10p -cr- -gk all -gn 220 -gna 0^ -n foxhound4d -o d\foxhound4_debug.txt -oe d\foxhound4_debug_startup.txt^ -o 1M -sb 0 -ufd restart -x tcpip(port=49204) -xd -xs http(port=49304;maxsize=0;to=600;kto=600) d\foxhound4.db -n f IF ERRORLEVEL 1 GOTO dbsrv_failure IF EXIST "%FOXHOUND4%\e\foxhound4_debug_startup.txt" DEL /F /Q "%FOXHOUND4%\e\foxhound4_debug_startup.txt" "!SDIR!\!BIN!\dbspawn.exe" -f "!SDIR!\!BIN!\!SPGM!" -c 5p -ch 10p -cr- -gk all -gn 220 -gna 0^ -n foxhound4e -o e\foxhound4_debug.txt -oe e\foxhound4_debug_startup.txt^ -o 1M -sb 0 -ufd restart -x tcpip(port=49205) -xd -xs http(port=49305;maxsize=0;to=600;kto=600) e\foxhound4.db -n f IF ERRORLEVEL 1 GOTO dbsrv_failure IF EXIST "%FOXHOUND4%\f\foxhound4_debug_startup.txt" DEL /F /Q "%FOXHOUND4%\f\foxhound4_debug_startup.txt" "!SDIR!\!BIN!\dbspawn.exe" -f "!SDIR!\!BIN!\!SPGM!" -c 5p -ch 10p -cr- -gk all -gn 220 -gna 0^ -n foxhound4f -o f\foxhound4_debug.txt -oe f\foxhound4_debug_startup.txt^ -o 1M -sb 0 -ufd restart -x tcpip(port=49206) -xd -xs http(port=49306;maxsize=0;to=600;kto=600) f\foxhound4.db -n f IF ERRORLEVEL 1 GOTO dbsrv_failure IF EXIST "%FOXHOUND4%\g\foxhound4_debug_startup.txt" DEL /F /Q "%FOXHOUND4%\g\foxhound4_debug_startup.txt" "!SDIR!\!BIN!\dbspawn.exe" -f "!SDIR!\!BIN!\!SPGM!" -c 5p -ch 10p -cr- -gk all -gn 220 -gna 0^ -n foxhound4g -o g\foxhound4_debug.txt -oe g\foxhound4_debug_startup.txt^ -o 1M -sb 0 -ufd restart -x tcpip(port=49207) -xd -xs http(port=49307;maxsize=0;to=600;kto=600) g\foxhound4.db -n f IF ERRORLEVEL 1 GOTO dbsrv_failure IF EXIST "%FOXHOUND4%\h\foxhound4_debug_startup.txt" DEL /F /Q "%FOXHOUND4%\h\foxhound4_debug_startup.txt" "!SDIR!\!BIN!\dbspawn.exe" -f "!SDIR!\!BIN!\!SPGM!" -c 5p -ch 10p -cr- -gk all -gn 220 -gna 0^ -n foxhound4h -o h\foxhound4_debug.txt -oe h\foxhound4_debug_startup.txt^ -o 1M -sb 0 -ufd restart -x tcpip(port=49208) -xd -xs http(port=49308;maxsize=0;to=600;kto=600) h\foxhound4.db -n f IF ERRORLEVEL 1 GOTO dbsrv_failure IF EXIST "%FOXHOUND4%\i\foxhound4_debug_startup.txt" DEL /F /Q "%FOXHOUND4%\i\foxhound4_debug_startup.txt" "!SDIR!\!BIN!\dbspawn.exe" -f "!SDIR!\!BIN!\!SPGM!" -c 5p -ch 10p -cr- -gk all -gn 220 -gna 0^ -n foxhound4i -o i\foxhound4_debug.txt -oe i\foxhound4_debug_startup.txt^ -o 1M -sb 0 -ufd restart -x tcpip(port=49209) -xd -xs http(port=49309;maxsize=0;to=600;kto=600) i\foxhound4.db -n f IF ERRORLEVEL 1 GOTO dbsrv_failure IF EXIST "%FOXHOUND4%\j\foxhound4_debug_startup.txt" DEL /F /Q "%FOXHOUND4%\j\foxhound4_debug_startup.txt" "!SDIR!\!BIN!\dbspawn.exe" -f "!SDIR!\!BIN!\!SPGM!" -c 5p -ch 10p -cr- -gk all -gn 220 -gna 0^ -n foxhound4j -o j\foxhound4_debug.txt -oe j\foxhound4_debug_startup.txt^ -o 1M -sb 0 -ufd restart -x tcpip(port=49210) -xd -xs http(port=49310;maxsize=0;to=600;kto=600) j\foxhound4.db -n f IF ERRORLEVEL 1 ( GOTO dbsrv_failure ) ELSE ( GOTO dbsrv_success ) :dbsrv_failure ECHO ****************************************************************** ECHO *** ERROR ******************************************************** ECHO *** dbspawn/dbsrv set ERRORLEVEL = %ERRORLEVEL% ECHO *** To display startup diagnostics, PAUSE IF NOT EXIST "%FOXHOUND4%\foxhound4_debug_startup.txt" ( GOTO file_does_not_exist ) ELSE ( GOTO file_exists ) :file_does_not_exist REM ****************************************************************** ECHO *** No startup diagnostics are available. PAUSE GOTO end :file_exists REM ****************************************************************** TYPE "%FOXHOUND4%\foxhound4_debug_startup.txt" PAUSE GOTO end :dbsrv_success REM ****************************************************************** IF NOT EXIST "%FOXHOUND4%\foxhound4_debug_startup.txt" ( GOTO end ) ELSE ( GOTO display_file ) :display_file ECHO ****************************************************************** ECHO *** ERROR ******************************************************** ECHO *** To display startup diagnostics, PAUSE TYPE "%FOXHOUND4%\foxhound4_debug_startup.txt" GOTO end :end REM ****************************************************************** ECHO All done... PAUSE EXIT |
REM ****************************************************************** ECHO Starting ten Chrome browser sessions... SETLOCAL ENABLEDELAYEDEXPANSION SETLOCAL ENABLEEXTENSIONS IF EXIST "%UserProfile%\AppData\Local\Google\Chrome\Application\chrome.exe" ( GOTO use_AppData ) ELSE ( GOTO use_LocalSettings ) :use_AppData START "f01" "%UserProfile%\AppData\Local\Google\Chrome\Application\chrome.exe" http://localhost:49301/foxhound START "f02" "%UserProfile%\AppData\Local\Google\Chrome\Application\chrome.exe" http://localhost:49302/foxhound START "f03" "%UserProfile%\AppData\Local\Google\Chrome\Application\chrome.exe" http://localhost:49303/foxhound START "f04" "%UserProfile%\AppData\Local\Google\Chrome\Application\chrome.exe" http://localhost:49304/foxhound START "f05" "%UserProfile%\AppData\Local\Google\Chrome\Application\chrome.exe" http://localhost:49305/foxhound START "f06" "%UserProfile%\AppData\Local\Google\Chrome\Application\chrome.exe" http://localhost:49306/foxhound START "f07" "%UserProfile%\AppData\Local\Google\Chrome\Application\chrome.exe" http://localhost:49307/foxhound START "f08" "%UserProfile%\AppData\Local\Google\Chrome\Application\chrome.exe" http://localhost:49308/foxhound START "f09" "%UserProfile%\AppData\Local\Google\Chrome\Application\chrome.exe" http://localhost:49309/foxhound START "f10" "%UserProfile%\AppData\Local\Google\Chrome\Application\chrome.exe" http://localhost:49310/foxhound GOTO end :use_LocalSettings START "f01" "%UserProfile%\Local Settings\Application Data\Google\Chrome\Application\chrome.exe" http://localhost:49301/foxhound START "f02" "%UserProfile%\Local Settings\Application Data\Google\Chrome\Application\chrome.exe" http://localhost:49302/foxhound START "f03" "%UserProfile%\Local Settings\Application Data\Google\Chrome\Application\chrome.exe" http://localhost:49303/foxhound START "f04" "%UserProfile%\Local Settings\Application Data\Google\Chrome\Application\chrome.exe" http://localhost:49304/foxhound START "f05" "%UserProfile%\Local Settings\Application Data\Google\Chrome\Application\chrome.exe" http://localhost:49305/foxhound START "f06" "%UserProfile%\Local Settings\Application Data\Google\Chrome\Application\chrome.exe" http://localhost:49306/foxhound START "f07" "%UserProfile%\Local Settings\Application Data\Google\Chrome\Application\chrome.exe" http://localhost:49307/foxhound START "f08" "%UserProfile%\Local Settings\Application Data\Google\Chrome\Application\chrome.exe" http://localhost:49308/foxhound START "f09" "%UserProfile%\Local Settings\Application Data\Google\Chrome\Application\chrome.exe" http://localhost:49309/foxhound START "f10" "%UserProfile%\Local Settings\Application Data\Google\Chrome\Application\chrome.exe" http://localhost:49310/foxhound :end PAUSE |
REM ****************************************************************** ECHO Stopping ten Foxhound engines... SETLOCAL ENABLEDELAYEDEXPANSION SETLOCAL ENABLEEXTENSIONS IF EXIST "!SQLANY17!" ( SET SDIR=!SQLANY17! ) IF EXIST "!SQLANY16!" ( SET SDIR=!SQLANY16! ) IF /I "!FOXHOUND4SVER!z"=="17z" ( SET SDIR=!SQLANY17! ) IF /I "!FOXHOUND4SVER!z"=="16z" ( SET SDIR=!SQLANY16! ) IF EXIST "!SDIR!\Bin32" (SET BIN=Bin32) IF EXIST "!SDIR!\Bin64" (SET BIN=Bin64) IF /I "%FOXHOUND4BIN%z"=="Bin32z" (SET BIN=Bin32) IF /I "%FOXHOUND4BIN%z"=="Bin64z" (SET BIN=Bin64) "!SDIR!\!BIN!\dbstop.exe" -c "ENG=foxhound4; UID=STOPPER; PWD=SQL;" -y "!SDIR!\!BIN!\dbstop.exe" -c "ENG=foxhound4b; UID=STOPPER; PWD=SQL;" -y "!SDIR!\!BIN!\dbstop.exe" -c "ENG=foxhound4c; UID=STOPPER; PWD=SQL;" -y "!SDIR!\!BIN!\dbstop.exe" -c "ENG=foxhound4d; UID=STOPPER; PWD=SQL;" -y "!SDIR!\!BIN!\dbstop.exe" -c "ENG=foxhound4e; UID=STOPPER; PWD=SQL;" -y "!SDIR!\!BIN!\dbstop.exe" -c "ENG=foxhound4f; UID=STOPPER; PWD=SQL;" -y "!SDIR!\!BIN!\dbstop.exe" -c "ENG=foxhound4g; UID=STOPPER; PWD=SQL;" -y "!SDIR!\!BIN!\dbstop.exe" -c "ENG=foxhound4h; UID=STOPPER; PWD=SQL;" -y "!SDIR!\!BIN!\dbstop.exe" -c "ENG=foxhound4i; UID=STOPPER; PWD=SQL;" -y "!SDIR!\!BIN!\dbstop.exe" -c "ENG=foxhound4j; UID=STOPPER; PWD=SQL;" -y PAUSE |
FOXHOUND4
The FOXHOUND4 environment variable must have a valid value for the Foxhound 4 shortcuts to work properly.
By default FOXHOUND4 is set by the Foxhound installation process to contain the drive and path of the folder where Foxhound is installed.
Normally you do not have to create the FOXHOUND4 environment variable, but if you do, here's how:
Start - Control Panel - System - Advanced system settings - Environment Variables... - System Variables - Edit... Variable name: FOXHOUND4 Variable value: C:\ProgramData\RisingRoad\Foxhound4\
At least one of the SQLANY16 or SQLANY17 environment variables must have a valid value for the Foxhound 4 shortcuts to work properly.
By default Foxhound will use SQLANY17 unless SQLANY16 is defined in which case Foxhound will use SQLANY16 (to override this rule see FOXHOUND4SVER below).
By default SQLANY16 is set by the SQL Anywhere 16 installation process to contain the drive and path of the folder where SQL Anywhere 16 is installed.
Normally you do not have to create the SQLANY16 environment variable, but if you do, here's how:
Start - Control Panel - System - Advanced system settings - Environment Variables... - System Variables - Edit... Variable name: SQLANY16 Variable value: C:\Program Files\SQL Anywhere 16
Note: This discussion of the SQLANY16 environment variable applies to the version of SQL Anywhere being used to run Foxhound itself, and has nothing to do with the version of SQL Anywhere being used to start your target databases.
At least one of the SQLANY16 or SQLANY17 environment variables must have a valid value for the Foxhound 4 shortcuts to work properly.
By default Foxhound will use SQLANY17 unless SQLANY16 is defined in which case Foxhound will use SQLANY16 (to override this rule see FOXHOUND4SVER below).
By default SQLANY17 is set by the SQL Anywhere 17 installation process to contain the drive and path of the folder where SQL Anywhere 17 is installed.
Normally you do not have to create the SQLANY17 environment variable, but if you do, here's how:
Start - Control Panel - System - Advanced system settings - Environment Variables... - System Variables - Edit... Variable name: SQLANY17 Variable value: C:\Program Files\SQL Anywhere 17
Note: This discussion of the SQLANY17 environment variable applies to the version of SQL Anywhere being used to run Foxhound itself, and has nothing to do with the version of SQL Anywhere being used to start your target databases.
FOXHOUND4BIN is an optional environment variable. It can be used to change the default SQL Anywhere installation subfolder used by Foxhound from Bin32 to Bin64 or vice versa.
By default Foxhound will use Bin32 subfolder unless Bin64 exists in which case Foxhound will use Bin64. To override this rule create FOXHOUND4BIN as follows:
Start - Control Panel - System - Advanced system settings - Environment Variables... - System Variables - Edit... Variable name: FOXHOUND4BIN Variable value: Bin32 -- or -- Bin64
After setting FOXHOUND4BIN you must stop and restart the Foxhound database to put the change into effect.
For example, if you have installed both 32-bit and 64-bit versions of SQL Anywhere, you can force the Foxhound 4 shortcuts to use the 32-bit version by setting FOXHOUND4BIN to Bin32.
Note: This discussion of the FOXHOUND4BIN environment variable applies to the version of SQL Anywhere being used to run Foxhound itself, and has nothing to do with the version of SQL Anywhere being used to start your target databases.
Tip: One of the reasons to run Foxhound on the 32-bit version of SQL Anywhere is to make it easier to use the 32-bit version of ODBC to connect to your target database... but that may not be necessary!
For example, if you have a SQL Anywhere 9 target database you may be able to connect to it using a more recent SQL Anywhere ODBC driver.It's easiest to do this with Foxhound Menu - String tab rather than the DSN tab... you don't have to mess around with the ODBC Administrator.
The following connection string worked for Foxhound connecting to a SQL Anywhere 9.0.2.3951 database:
Name: ddd9 String: ENG=ddd9; DBN=ddd9; UID=dba; PWD=sql; DRIVER=SQL Anywhere 16;You can also use the magic "SQL Anywhere Native" driver to let SQL Anywhere choose which driver to use:
This also works for SQL Anywhere 6.0.3 database running on a 6.0.4 (3594) server:Name: ddd9 String: ENG=ddd9; DBN=ddd9; UID=dba; PWD=sql; DRIVER=SQL Anywhere Native;Name: ddd6 String: ENG=ddd6; DBN=ddd6; UID=dba; PWD=sql; DRIVER=SQL Anywhere 16;
FOXHOUND4SVER is an optional environment variable. It can be used to change the default SQL Anywhere installation version used by Foxhound from 16 to 17 or vice versa.
By default Foxhound will use SQLANY17 unless SQLANY16 is defined in which case Foxhound will use SQLANY16. To override this rule create FOXHOUND4SVER follows:
Start - Control Panel - System - Advanced system settings - Environment Variables... - System Variables - Edit... Variable name: FOXHOUND4SVER Variable value: 16 -- or -- 17
After setting FOXHOUND4SVER you must stop and restart the Foxhound database to put the change into effect.
For example, if you have installed both SQL Anywhere 16 and 17, you can force the Foxhound 4 shortcuts to use SQL Anywhere 17 by setting FOXHOUND4SVER to 17.
Note: This discussion of the FOXHOUND4SVER environment variable applies to the version of SQL Anywhere being used to run Foxhound itself, and has nothing to do with the version of SQL Anywhere being used to start your target databases.
FOXHOUND4UPGRADE is an optional environment variable that is very rarely used. It can be used to change the factory setting default behavior of the post-setup data upgrade process when reinstalling Foxhound.
The factory default setting is ALL which means "upgrade all the data."
When you run the data upgrade process you will be asked to change or confirm the setting:
Post-Setup Process for Foxhound Version 4.0 *** Checking for a post-setup path parameter... *** A post-setup path parameter was provided... C:\ProgramData\RisingRoad\Foxhound4\ ******************************************************************* *** Foxhound 4.0.xxxx *** *** Here's where Foxhound is being installed: *** C:\ProgramData\RisingRoad\Foxhound4\ *** *** Starting the Foxhound 4.0.xxxx post-setup process... *** Creating foxhound4.db.4.0.xxxx.ORIGINAL_COPY... *** Checking for an existing Foxhound4 installation... *** ...yes, there is an existing Foxhound4 installation. *** Checking if the existing data should be upgraded... *** ...yes, the existing Foxhound4 data should be upgraded. ****************************************************************** *** PLEASE READ THIS, AND CONFIRM OR CHANGE ********************** ****************************************************************** *** *** "FOXHOUND4UPGRADE" specifies how much data is to be upgraded. *** *** If you want to CHANGE the setting, type in a new value... *** ALL - upgrade all the data *** OPTIONS - no samples, just the Foxhound options *** yyyymmdd - options plus samples since yyyymmdd *** nnn - options plus last nnn days of samples *** NOTHING - don't upgrade any data *** and press Enter to continue. *** *** If you LIKE the current setting... *** FOXHOUND4UPGRADE=ALL which means upgrade all the data *** just press Enter. ****************************************************************** Current FOXHOUND4UPGRADE=ALL New FOXHOUND4UPGRADE=
You can change the default setting ahead of time by creating the FOXHOUND4UPGRADE environment variable:
Start - Control Panel - System - Advanced system settings - Environment Variables... - System Variables - Edit... Variable name: FOXHOUND4UPGRADE Variable value: ALL -- or -- OPTIONS -- or -- yyyymmdd -- or -- nnn -- or -- NOTHING
If sampling was enabled before the upgrade process was started, sampling will start again as soon as you start Foxhound after the upgrade is finished.
In this case only, Foxhound will use the ALTER DBSPACE SYSTEM ADD command to expand the new Foxhound database file to accommodate all the data plus 10% before starting to copy the data. The new Foxhound database file won't be much (or any) smaller than the old one, but it will be reorganized by the upgrade process.
Performance Tip: The most effective way to make the upgrade process faster is to change the FOXHOUND4UPGRADE value from ALL to some other value during the post-update stage of the Foxhound installation process:It is also one of the best ways to shrink the size of the Foxhound database file.
If sampling was enabled before the upgrade process was started, sampling will start again as soon as you start Foxhound after the upgrade is finished.
In this case, Foxhound will not use ALTER DBSPACE SYSTEM ADD to expand the new database file, with the result being the new Foxhound database file will be quite small.
Caution: If you specify a timestamp more than 100000 days in the past, Foxhound will use the OPTIONS setting and no samples at all will be copied.Foxhound chooses OPTIONS because it runs quickly so you don't have to wait so long if it was a mistake. To correct the error, restore the old copy of the Foxhound database and reinstall Foxhound again.
If sampling was enabled before the upgrade process was started, sampling will start again as soon as you start Foxhound after the upgrade is finished.
In this case, Foxhound will not use ALTER DBSPACE SYSTEM ADD to expand the new database file even if yyyymmdd is earlier than the earliest recorded sample. In other words, you can use an old yyyymmdd to copy all the data while at the same time reorganizing and shrinking the Foxhound database.
Caution: If you specify a number outside the range 1 to 100000, Foxhound will use the OPTIONS setting and no samples at all will be copied.Foxhound chooses OPTIONS because it runs quickly so you don't have to wait so long if it was a mistake. To correct the error, restore the old copy of the Foxhound database and reinstall Foxhound again.
Here is the formula used to convert nnn into a timestamp: DATEADD ( DAY, -nnn, CURRENT TIMESTAMP )
If sampling was enabled before the upgrade process was started, sampling will start again as soon as you start Foxhound after the upgrade is finished.
In this case, Foxhound will not use ALTER DBSPACE SYSTEM ADD to expand the new database file even if nnn is earlier than the earliest recorded sample. In other words, you can use a large nnn to copy all the data while at the same time reorganizing and shrinking the Foxhound database.
Note: Even in this case, Foxhound will preserve the existing copy of the Foxhound database and transaction log files in the backup\previous_build folder.
RisingRoad - 3QC Inc. License Terms
Foxhound Version 4
By using the software, you accept the following terms. IF YOU DO NOT ACCEPT THEM, DO NOT USE THE SOFTWARE.
1. No-Nonsense License Agreement
The Foxhound software is protected by United States and Canadian copyright law and international copyright treaty provisions. Therefore, you must treat Foxhound just like a book, except that you may copy it onto a computer to be used and you may make archival copies of Foxhound for the sole purpose of backing-up our software and your data and protecting your investment from loss.
By saying "just like a book," RisingRoad means, for example, that one copy of Foxhound may be executed on any number of computers, and may be freely moved from one computer to another, so long as there is no possibility of it being executed on one computer while it's being executed on another.
By saying "one copy of Foxhound", RisingRoad means a copy of the Foxhound software that has been activated by the application of one single unique registration key obtained from RisingRoad.
Just like one copy of a book can't be read by two different people in two different places at the same time, neither can one copy of Foxhound be executed on two different computers at the same time. (Unless, of course, this License Agreement has been violated.)
2. Use on a Network and the Internet
In the case of the Rental and Basic Editions, one copy of Foxhound may be executed on a computer attached to a local area network and/or the internet, with multiple users accessing the single Foxhound database from browsers running on different computers. The "just like a book" analogy begins to weaken at this point, but it still applies if you think of more than one person reading the same book over someone else's shoulder... it's still one copy of the book, and one copy of Foxhound executing.
In the case of the Extended Edition, an unlimited number of copies of the Foxhound database may be created and started using separate instances of SQL Anywhere on the same local network, with the requirement that a separate Extended Edition registration key be purchased for each multiple of 10 copies of Foxhound started.
3. Further Explanation of Copyright Law and the Scope of This License Statement
You may not download or transmit your copy of Foxhound electronically (either by direct connection or telecommunication transmission) for the purpose of executing it on multiple computers at the same time.
You may transfer all of your rights to use your copy of Foxhound to another person, provided that you transfer to that person (or destroy) all of the software and documentation provided in this package, together with all copies, tangible or intangible, including copies in RAM or installed on a disk, as well as all back-up copies. Remember, once you transfer your copy of Foxhound, it may only be executed on the single computer to which it is transferred and, of course, only in accordance with copyright law and international treaty provisions.
Except as stated in this paragraph, you may not otherwise transfer, rent, lease, sub-license, time-share, or lend the Foxhound software or documentation. Your use of Foxhound is limited to acts that are essential steps in the use of Foxhound on your computer as described in the documentation. You may not otherwise modify, alter, adapt, merge, decompile or reverse-engineer Foxhound, and you may not remove or obscure RisingRoad copyright notices.
6. Disclaimer of Warranty
The software is licensed "as is". You bear the risk of using it. RisingRoad gives no express warranties, guarantees or conditions. RisingRoad excludes the implied warranties of merchantability, fitness for a particular purpose and non-infringement.