Foxhound 3.0 FAQ
Foxhound 3.0 FAQ Home      Foxhound Home      RisingRoad      Breck.Carter@gmail.com     


How ... ? (general)

How do I backup my Foxhound database?
How do I backup my Foxhound database on a regular basis?
How do I change the ADHOC password?
How do I change the Alerts criteria? (threshold settings, etcetera)
How do I display the Help again, after I have turned it off?
How do I figure out what went wrong during an installation?
How do I find the post_setup_trace.txt file?
How do I force Foxhound to use the 32-bit version of SQL Anywhere?
How do I get a copy of Foxhound?
How do I get a registration key for Foxhound?
How do I get an activation key for Foxhound?
How do I get an HTTP request log for Foxhound?
How do I get the new Global Database Id value to show up when I change it?
How do I get the new value of the FOXHOUND3 environment variable to show up after Foxhound is installed?
How do I get the "Send Test Email" button to respond?
How do I hide and show the Help for Foxhound?
How do I install a new version of Foxhound?
How do I install Foxhound?
How do I install version 16 of SQL Anywhere on the same machine used to run an earlier version of SQL Anywhere?
How do I keep the Foxhound database file from growing so large?
How do I keep the Foxhound log file from growing so large?
How do I make Foxhound web pages available on the internet?
How do I make the post-setup process run faster when a large Foxhound database is being upgraded?
How do I make the upgrade process run faster?
How do I measure latency and throughput?
How do I monitor a large number of databases?
How do I move Foxhound to a different disk drive?
How do I move the Foxhound transaction log to a different physical disk drive?
How do I move the SQL Anywhere temporary file for Foxhound to a different physical drive?
How do I protect the security of my target database?
How do I read the Foxhound exception messages?
How do I reduce the amount of space used by the Foxhound database file?
How do I reduce the amount of space used by the Foxhound transaction log?
How do I reinstall an earlier build of Foxhound?
How do I reinstall Foxhound?
How do I remove Foxhound from my system?
How do I rename a connection string on the String tab of the Foxhound Menu page?
How do I renew the Rental Edition of Foxhound 3?
How do I report unexpected errors and exceptions?
How do I restore the Foxhound database from a backup?
How do I restore the old build of Foxhound after installing a new build?
How do I run adhoc queries on the Foxhound database?
How do I run Foxhound as a service?
How do I run the Foxhound "unsetup" process?
How do I "Save As" an existing connection string to a new string with a different name on the String tab of the Foxhound Menu page?
How do I see Foxhound diagnostics, errors and exceptions?
How do I see the schema for adhoc reporting?
How do I set the environment variable used by Foxhound?
How do I set up Foxhound to monitor a large number of target databases?
How do I show the Help for Foxhound?
How do I shrink the size of the Foxhound database?
How do I specify the HTTPS transport-layer security for Foxhound?
How do I start Foxhound?
How do I start Foxhound in "debug mode"?
How do I start Foxhound in "safe mode"?
How do I start Foxhound with the 32-bit version of SQL Anywhere when both the 32-bit and 64-bit versions of SQL Anywhere are installed?
How do I stop and restart Foxhound?
How do I stop Foxhound?
How do I stop the "User Id:" and "Password:" from being redisplayed on the Foxhound Menu page?
How do I tell Foxhound to send Alert emails via the Gmail SMTP server smtp.gmail.com?
How do I tell Foxhound to use an HTTP port other than 80?
How do I tell if Foxhound has been started in safe mode?
How do I tell if Foxhound is running on the 32-bit or 64-bit version of SQL Anywhere?
How do I turn "safe mode" on and off?
How do I uninstall Foxhound?
How do I "unsetup" Foxhound?
How do I upgrade Foxhound from one edition to another?
How do I upgrade from Foxhound 1 to 3?
How do I upgrade from Foxhound 2 to 3?
How do I upgrade from the Basic Edition of Foxhound 3 to the Extended Edition?
How do I upgrade from the Rental Edition of Foxhound 3 to the Basic Edition?
How do I upgrade from the Rental Edition of Foxhound 3 to the Extended Edition?
How do I upgrade to a new version of Foxhound without losing any of my data?
How do the different FOXHOUND3UPGRADE values work?
How do the Foxhound backup shortcuts work?
How many target databases can one copy of Foxhound monitor?
How much overhead does the Foxhound connection add to the target database?

[ Top ]
Question: How do I backup my Foxhound database?

Answer:

See Help - Introduction - Backup.


[ Top ]
Question: How do I backup my Foxhound database on a regular basis?

Answer:

See Help - Introduction - Backup.


[ Top ]
Question: How do I change the ADHOC password?

Answer:

Use dbisql to connect to the Foxhound database with the original password for the ADHOC user id...

-c "ENG=foxhound3;DBN=f;UID=ADHOC;PWD=SQL"
...then use the GRANT CONNECT command to change the password:
GRANT CONNECT TO ADHOC IDENTIFIED BY 'JqDCt64Kfy73';
Now you can use the new password to connect:
-c "ENG=foxhound3;DBN=f;UID=ADHOC;PWD=JqDCt64Kfy73"

See also...
How do I run adhoc queries on the Foxhound database?
How do I see the schema for adhoc reporting?


[ Top ]
Question: How do I change the Alerts criteria? (threshold settings, etcetera)

Answer: Alerts criteria are specific to each Monitor session.

Use the Monitor Options button on the Foxhound menu to open the Monitor Options page, and then (if necessary) pick a different target database from the drop-down list ans click on Switch Display to show the options for that page.

See also...
Help - Monitor Options


[ Top ]
Question: How do I display the Help again, after I have turned it off?

Answer:

Use Foxhound Options - Show Help to turn it back on, and then redisplay the page you were looking at.


[ Top ]
Question: How do I figure out what went wrong during an installation?

Answer: If the problem occurred during the post-setup part of the Foxhound installation, a complete record of everything that happened may be found in the following files:

$$BUILD_NUMBER.txt
$$FOXHOUND3UPGRADE.txt
$post_setup.bat            
diagnostic_01.txt
diagnostic_02.txt
diagnostic_03.txt
diagnostic_04.txt
diagnostic_05.txt
find1.txt
find2.txt
old_foxhound1_debug.txt
old_foxhound1_debug_startup.txt
post_setup_trace.txt
which are located here on Windows XP:
C:\Documents and Settings\All Users\Application Data\RisingRoad\Foxhound3\setup\post_setup_trace.txt
and here on Vista and Windows 7:
C:\ProgramData\RisingRoad\Foxhound3\setup\post_setup_trace.txt

If you need help, zip them up and send them to Breck.Carter@gmail.com.

See also...
How do I see Foxhound diagnostics, errors and exceptions?
How do I backup my Foxhound database?
How do the Foxhound backup shortcuts work?


[ Top ]
Question: How do I get a copy of Foxhound?

Answer: Foxhound comes in two parts: An Installshield setup file and a registration key.

The setup file can be downloaded from the Foxhound home page.

A registration or activation key for a new copy of Foxhound 3 can be purchased as follows:
30-day Rental Key $99.95

New Basic Key $395.00

New Extended Key $495.00

What are the differences among the different editions of Foxhound: Rental, Basic and Extended?
If you are upgrading from Foxhound Version 1 or 2 you can upgrade for a reduced price:
Basic Upgrade Key $295.00

Extended Upgrade Key $395.00
If you already have the Basic Edition of Foxhound Version 3 installed, you can purchase an upgrade key:
Basic To Extended Key $195.00

For more information about editions, see What are the differences among the different editions of Foxhound: Rental, Basic and Extended?

For more information about activation keys, see What are the differences among all the activation keys?


It is also possible to obtain Foxhound via Purchase Order and Invoice; contact Breck.Carter@gmail.com.


See also...
How do I install Foxhound?
How do I reinstall Foxhound?
How do I upgrade Foxhound from one edition to another?
What are the Foxhound system requirements?
What are the differences among the different editions of Foxhound: Rental, Basic and Extended?
What are the differences among all the activation keys?
What happens when a copy of Foxhound expires?


[ Top ]
Question: How do I get an HTTP request log for Foxhound?

Answer:

At the very least, you must add both the dbn=f and the log=filespec network protocol parameters to the dbsrv16 -xs http(...) parameter when starting Foxhound.

Don't forget the dbn=f parameter; it's not documented as being required, but if you leave it out nothing will be written to the log file.

Also, if you include the lf= network protocol parameter with embedded spaces, the whole http() parameter must be enclosed in double quotes: dbsrv16 -xs "http(...)"

Here is an excerpt from the C:\ProgramData\RisingRoad\Foxhound3\$start_foxhound3_engine.bat command file showing a modified -xs http(...) parameter:

"%SQLANY16%\%BIN%\dbspawn.exe"^
  -f "%SQLANY16%\%BIN%\dbsrv16.exe"^
  -c 25p^
  -ch 50p^
  -cr-^
  -gk all^
  -gn 120^
  -gna 0^
  -n foxhound3^
  -o foxhound3_debug.txt^
  -oe foxhound3_debug_startup.txt^
  -on 1M^
  -sb 0^
  -ufd restart^
  -x tcpip^
  -xd^
  -xs http(port=80;maxsize=0;to=600;kto=600)^
  foxhound3.db^
  -n f

Here's what the resulting output file C:\temp\foxhound_http_log.txt looks like:

11/13 15:18:23.771 - ::1 - / - 200 OK - 597 - 1.143 - 
11/13 15:18:23.845 - ::1 - /rroad_help_frame?f=foxhound_menu - 200 OK - 18319 - 0.065 - 
11/13 15:18:23.882 - ::1 - /rroad_display_image?f=help.gif - 200 OK - 1261 - 0.010 - 
11/13 15:18:26.483 - ::1 - /rroad_menu - 200 OK - 43596 - 2.706 - 
11/13 15:18:26.498 - ::1 - /rroad_display_image?f=foxhound_100_75_feathered.JPG - 200 OK - 3027 - 0.001 - 
11/13 15:18:26.499 - ::1 - /rroad_display_image?f=help.gif - 200 OK - 1261 - 0.000 - 
11/13 15:18:28.195 - ::1 - /rroad_menu?zt=3&sf1=Automatic%20Refresh&z1=49751546-ba06-472d-84c1-7ec195de3ee2 - 200 OK - 43616 - 0.166 - 
11/13 15:18:28.209 - ::1 - /rroad_display_image?f=help.gif - 200 OK - 1261 - 0.000 - 
11/13 15:18:28.209 - ::1 - /rroad_display_image?f=foxhound_100_75_feathered.JPG - 200 OK - 3027 - 0.001 - 
11/13 15:18:29.399 - ::1 - /foxhound?t=rroad_monitor_database3&zi=4 - 200 OK - 618 - 0.010 - 
11/13 15:18:29.456 - ::1 - /rroad_help_frame?f=foxhound_monitor - 200 OK - 73640 - 0.025 - 
11/13 15:18:29.485 - ::1 - /rroad_display_image?f=help.gif - 200 OK - 1261 - 0.001 - 
11/13 15:18:36.627 - ::1 - /rroad_monitor_database3?zi=4 - 200 OK - 40843 - 7.197 - 
11/13 15:18:36.671 - ::1 - /rroad_display_image?f=help.gif - 200 OK - 1261 - 0.001 - 
11/13 15:18:38.449 - ::1 - /rroad_menu?zt=3&sf1=Automatic%20Refresh&z1=49751546-ba06-472d-84c1-7ec195de3ee2 - 200 OK - 43418 - 0.217 - 
11/13 15:18:38.464 - ::1 - /rroad_display_image?f=foxhound_100_75_feathered.JPG - 200 OK - 3027 - 0.001 - 
11/13 15:18:38.470 - ::1 - /rroad_display_image?f=help.gif - 200 OK - 1261 - 0.001 - 

See also...
SQL Anywhere 16 Help - DatabaseName (DBN) protocol option
SQL Anywhere 16 Help - LogFile (LOG) protocol option
SQL Anywhere 16 Help - LogFormat protocol (LF) option
SQL Anywhere 16 Help - LogOptions (LOPT) protocol option
SQL Anywhere 16 Help - LogMaxSize (LSIZE) protocol option


[ Top ]
Question: How do I get the new Global Database Id value to show up when I change it?

Answer:

Stop and re-start the Foxhound Monitor sampling session to see the new value.


[ Top ]
Question: How do I get the "Send Test Email" button to respond?

Answer:

Try putting a valid value in the "SMTP Port:" field; use 25 for standard SMTP and 587 for smtp.gmail.com.


[ Top ]
Question: How do I hide and show the Help for Foxhound?

Answer:

See Help - Foxhound Options - Show Help .


[ Top ]
Question: How do I install a new version of Foxhound?

Answer: Here's how to install a new version of Foxhound while at the same time preserving some or all of your existing Foxhound data:

  1. Run the Foxhound "unsetup" process: start - All Programs - Foxhound3 - Tools - Unsetup Foxhound

    This will reverse the actions of the original Foxhound InstallShield setup process, but it will not remove the Foxhound database from your system; see Why is it called "unsetup" instead of "uninstall"?

  2. Run the new Installshield setup you have downloaded (see How do I install Foxhound?).

  3. The post-setup process will ask how much data you want to preserve; just press Enter for ALL data:
    Post-Setup Process for Foxhound Version 3.0
    *** Checking for a post-setup path parameter...
    *** A post-setup path parameter was provided...
    C:\ProgramData\RisingRoad\Foxhound3\
    *******************************************************************
    ***                   Foxhound 3.0.4380
    ***
    *** Here's where Foxhound is being installed:
    *** C:\ProgramData\RisingRoad\Foxhound3\
    ***
    *** Starting the Foxhound 3.0.4380 post-setup process...
    *** Creating foxhound3.db.3.0.4380.ORIGINAL_COPY...
    *** Checking for an existing Foxhound3 installation...
    ***  ...yes, there is an existing Foxhound3 installation.
    *** Checking if the existing data should be upgraded...
    ***  ...yes, the existing Foxhound3 data should be upgraded.
    ******************************************************************
    *** PLEASE READ THIS, AND CONFIRM OR CHANGE **********************
    ******************************************************************
    ***
    *** "FOXHOUND3UPGRADE" 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...
    ***    FOXHOUND3UPGRADE=ALL which means upgrade all the data
    *** just press Enter.
    ******************************************************************
    Current FOXHOUND3UPGRADE=ALL
    New     FOXHOUND3UPGRADE=
    

    See also How do the different FOXHOUND3UPGRADE values work?

  4. When you restart Foxhound you won't need to provide a registration key... unless you specified NOTHING in Step 3.


Caution: A successful installation overwrites existing files. It is your responsibility to make a backup of your existing Foxhound installation if you want one. The simplest way to make a complete backup is to stop the Foxhound engine, then make a copy of the entire Foxhound3 folder and subfolders... do this before installing the new version of Foxhound.

By default, Foxhound is installed in this location on Windows XP:

C:\Documents and Settings\All Users\Application Data\RisingRoad\Foxhound3
and on Vista and Windows 7 it is here:
C:\ProgramData\RisingRoad\Foxhound3

Note: Before overwriting the current foxhound.db and log files, the post-setup process will move them to the backup\previous_build subfolder under the locations listed above.

Caution: If you are running Foxhound as a service, stop the service before installing the new version. The installation process needs to stop and restart the existing Foxhound database, and it probably won't be able to do that if it's already running as a service.

Caution: If you are using the Windows Vista or 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; see The $backup_foxhound3.bat file looked for a path specification in the FOXHOUND3 environment variable and it was empty.


See also...
How do the different FOXHOUND3UPGRADE values work?
How do I install Foxhound?
How do I reinstall Foxhound?
Another version of this product is already installed.
Why is it called "unsetup" instead of "uninstall"?
How do I remove Foxhound from my system?
How do I backup my Foxhound database?
How do I backup my Foxhound database on a regular basis?
How do the Foxhound backup shortcuts work?
The $backup_foxhound3.bat file looked for a path specification in the FOXHOUND3 environment variable and it was empty.


[ Top ]
Question: How do I install Foxhound?

Answer:

Step 1: Download the Foxhound Installshield setup file from the Foxhound home page.

Step 2: Run Installshield setup file; it should display this dialog box when it starts up:

If you see either of these dialog boxes instead, it means you already have a copy of Foxhound 3 installed:

In the first case, you can run the Foxhound "unsetup" process before doing Step 2 again (run the Installshield setup file).

In the second case, neither Modify nor Repair will work (they won't hurt, but they won't help either)... however, you can use Remove and then do Step 2 again (run the Installshield setup file).

The unsetup and Remove processes will not delete your existing Foxhound database. For more information see:

Another version of this product is already installed.

Why is it called "unsetup" instead of "uninstall"?

Step 3: When the Installshield setup portion of the Foxhound installation is complete, this dialog box will appear; click on the Post-Setup button to continue the installation.

This part is critical; if you don't let the post-setup process run, Foxhound won't be fully installed:

Step 4: When the post-setup process finishes, press Enter to start the Foxhound engine:


At this point, the Foxhound Activation page should appear:

See also...
How do I get a copy of Foxhound?
What are the Foxhound system requirements?
How do I install a new version of Foxhound?
How do I reinstall Foxhound?
Another version of this product is already installed.
Why is it called "unsetup" instead of "uninstall"?
How do I remove Foxhound from my system?


[ Top ]
Question: How do I install version 16 of SQL Anywhere on the same machine used to run an earlier version of SQL Anywhere?

Answer: Follow the normal process for installing SQL Anywhere 16; version 16 of SQL Anywhere can coexist on the same computer as all earlier versions from 5.5 through 12.

There is one caveat, however: The SQL Anywhere 16 installation modifies the Windows PATH environment variable. If you have been relying on the PATH to determine where SQL Anywhere utilities such as dbbackup.exe and dbvalid.exe are located, your Windows command lines and batch files may start executing the version 16 copies of those utilities instead of the version you want. Either change the PATH variable, or modify your Windows command lines to explicitly specify the folder containing the utilities.

Each version of SQL Anywhere comes with its own environment variable that makes it easier to code commands; here's an example of how to use the SQLANY10 environment variable to execute the version 10 copy of dbvalid.exe:

   "%SQLANY10%\win32\dbvalid.exe" -c "ENG=ddd10;DBN=ddd10;UID=dba;PWD=sql" -d -o dbvalid_log_ddd10.txt

Here's a list of the environment variables for each version:

  • Version 5.5: SQLANY
  • Version 6: ASANY

  • Version 7: ASANY7

  • Version 8: ASANY8

  • Version 9: ASANY9

  • Version 10: SQLANY10

  • Version 11: SQLANY11

  • Version 12: SQLANY12

  • Version 16: SQLANY16

See also...
What are the Foxhound system requirements?


[ Top ]
Question: How do I keep the Foxhound database file from growing so large?

Answer:

See Help - Introduction - Controlling Growth.

See also...

Help - Foxhound Options - Connection Sampling Threshold
Help - Foxhound Options - Purge Process
How do I shrink the size of the Foxhound database?


[ Top ]
Question: How do I keep the Foxhound log file from growing so large?

Answer:

See Help - Introduction - Controlling Growth.

See also...
Help - Introduction - Backup
How do the Foxhound backup shortcuts work?


[ Top ]
Question: How do I make Foxhound web pages available on the internet?

Answer:

By default the built-in Foxhound web server is internet-ready so if the computer running Foxhound is visible on the internet then so are the Foxhound web pages.

For example, if the Foxhound engine is started on a computer with IP address aaa.bbb.ccc.ddd, you can display the Foxhound pages on another computer by specifying the following URL in a browser:

http://aaa.bbb.ccc.ddd/


[ Top ]
Question: How do I make the post-setup process run faster when a large Foxhound database is being upgraded?

Answer:

Try using the SATMP environment variable to put the SQL Anywhere temporary file on a different physical disk drive.


[ Top ]
Question: How do I measure latency and throughput?

Answer:

See Help - Monitor Database - Latency and Help - Monitor Database - Throughput.


[ Top ]
Question: How do I move Foxhound to a different disk drive?

Answer:

1. Run the Foxhound "unsetup" process. This will remove the shortcuts and some other settings and files but it won't delete the Foxhound database.

2. Install Foxhound to a different "Destination Folder".

3. Move these two files from the old location to the new one, overwriting the two files that were created in Step 2: foxhound3.db and foxhound3.log

4. Start Foxhound.

See also...
How do I run the Foxhound "unsetup" process?
How do I install Foxhound?


[ Top ]
Question: How do I move the Foxhound transaction log to a different physical disk drive?

Answer:

  1. Shut down Foxhound if it is running.

  2. Create a folder for the transaction log on a different physical drive; e.g., G:\data\foxhound_log

  3. Move the foxhound3.log file to that folder. By default, foxhound3.log is installed in this location on Windows XP:
    C:\Documents and Settings\All Users\Application Data\RisingRoad\Foxhound3
    and on Vista and Windows 7 it is here:
    C:\ProgramData\RisingRoad\Foxhound3

  4. Run dblog.exe to modify the foxhound3.db file to point to the new location for the foxhound3.log file:

    PAUSE Have you shut down the database?
    
    "%SQLANY16%\Bin32\dblog.exe" -t "G:\data\foxhound_log\foxhound3.log" "%FOXHOUND3%\foxhound3.db"
    
    PAUSE
    

  5. Here's what the output looks like:

    C:\temp>PAUSE Have you shut down the database?
    Press any key to continue . . .
    
    C:\temp>"C:\Program Files\SQL Anywhere 16\Bin32\dblog.exe" -t "G:\data\foxhound_
    log\foxhound3.log" "C:\ProgramData\RisingRoad\Foxhound3\\foxhound3.db"
    SQL Anywhere Transaction Log Utility Version 12.0.1.3356
    "C:\ProgramData\RisingRoad\Foxhound3\\foxhound3.db" was using log file "foxhound
    1.log"
    "C:\ProgramData\RisingRoad\Foxhound3\\foxhound3.db" is using no log mirror file
    "C:\ProgramData\RisingRoad\Foxhound3\\foxhound3.db" is now using log file "G:\da
    ta\foxhound_log\foxhound3.log"
    Transaction log starting offset is 0011371032
    Transaction log current relative offset is 0474894106
    
    C:\temp>PAUSE
    Press any key to continue . . .
    

  6. Now you can start Foxhound again.


[ Top ]
Question: How do I move the SQL Anywhere temporary file for Foxhound to a different physical drive?

Answer:

One method is to set the SATMP environment variable to specify the folder where SQL Anywhere will put all its temporary files:

Control Panel in Windows XP...

  System 
      - Advanced tab 
         - Environment Variables button 
            - System variables 
               - New button
                  - New System Variable dialog box
                    Variable name:  SATMP
                    Variable value: F:\data\SQL_Anywhere_temp

Control Panel in Windows 7... 

   System 
      - Advanced system settings 
         - Advanced tab 
            - Environment Variables button 
               - System variables 
                  - New... button
                     - New System Variable dialog box
                       Variable name:  SATMP
                       Variable value: F:\data\SQL_Anywhere_temp
In a batch file...

   SET SATMP=F:\data\SQL_Anywhere_temp

Another method is to modify the dbsrv16.exe command line which starts Foxhound to include the -dt F:\data\SQL_Anywhere_temp option; this will only affect the temporary file associated with the Foxhound database:

"%SQLANY16%\%BIN%\dbspawn.exe"^
  -f "%SQLANY16%\%BIN%\dbsrv16.exe"^
  -c 25p^
  -ch 50p^
  -cr-^
  -dt F:\data\SQL_Anywhere_temp^
  -gk all^
  -gn 120^
  -gna 0^
  -n foxhound3^
  -o foxhound3_debug.txt^
  -oe foxhound3_debug_startup.txt^
  -on 1M^
  -sb 0^
  -ufd restart^
  -x tcpip^
  -xd^
  -xs http(port=80;maxsize=0;to=600;kto=600)^
  foxhound3.db^
  -n f
Here's the list of Foxhound command files which contain the dbsrv16.exe command:
$backup_foxhound3.bat
$start_foxhound3_chrome.bat
$start_foxhound3_chrome_debug.bat
$start_foxhound3_default_browser.bat
$start_foxhound3_default_browser_debug.bat
$start_foxhound3_engine.bat
$start_foxhound3_firefox.bat
$start_foxhound3_firefox_debug.bat
$start_foxhound3_ie.bat
$start_foxhound3_ie_debug.bat

By default, those command files are installed here on Windows XP:

   C:\Documents and Settings\All Users\Application Data\RisingRoad\Foxhound3

and on Windows 7 they are here:

   C:\ProgramData\RisingRoad\Foxhound3


[ Top ]
Question: How do I protect the security of my target database?

Answer:

One way to protect the security of your target database is to use the HTTPS protocol. For more information see How do I specify the HTTPS transport-layer security for Foxhound?

Another technique is to create a new user id on the target database with no privileges other than CONNECT, and use that user id for Foxhound to connect:

-- Run this command on the target database:

GRANT CONNECT TO FOXHOUND IDENTIFIED BY SQL;

-- Set up a connection string like this on the String tab of the Foxhound Menu:

Name:   ddd16
String: ENG=ddd16; DBN=ddd16; UID=FOXHOUND; PWD=SQL; DRIVER=SQL Anywhere 16; 

The Display Schema feature should work OK with the new "FOXHOUND" user id. The Monitor Database feature should also work, but Foxhound's own performance might suffer because Foxhound can't create the three high-performance procedures on the target database it needs to gather performance data efficiently; in this case the Monitor page will display "SPs are OK: NNN" instead of "SPs are OK: YYY".

You can install those three procedures on the target database yourself; for step-by-step instructions see Help - Introduction - Connecting to Target Databases.

See also...
How do I specify the HTTPS transport-layer security for Foxhound?
Help - Introduction - Connecting to Target Databases


[ Top ]
Question: How do I reinstall an earlier build of Foxhound?

Answer: The regular re-installation process will work for an earlier build. HOWEVER, the post-upgrade process will NOT copy the data from your current Foxhound database to the one that's being installed when the current installed build number is later than the one that's being installed. That means you lose your sample data and option settings, and it means you will have to activate Foxhound as if it were a brand new installation.

You can preserve some of your data if you plan ahead and take a backup of your current Foxhound database before installing a new version. Then, if you decide to re-install the old version, you can do a restore rather than run another installation process. You will lose all the sample data recorded while the new version was running, plus all the changes you made to option settings... but you will get your old data back and you won't have to activate Foxhound again.

See also...
How do I reinstall Foxhound?
How do I backup my Foxhound database?
How do I backup my Foxhound database on a regular basis?
How do the Foxhound backup shortcuts work?
How do I restore the Foxhound database from a backup?


[ Top ]
Question: How do I reinstall Foxhound?

Answer:


Note: A successful installation overwrites existing files. It is your responsibility to make a backup of your existing Foxhound installation if you want one. The simplest way to make a complete backup is to stop the Foxhound engine, then make a copy of the entire Foxhound3 folder and subfolders... do this BEFORE installing the new version of Foxhound.

By default, Foxhound is installed in this location on Windows XP:

C:\Documents and Settings\All Users\Application Data\RisingRoad\Foxhound3
and on Vista and Windows 7 it is here:
C:\ProgramData\RisingRoad\Foxhound3

To reinstall Foxhound, run the InstallShield setup.

What you do next depends on which dialog box appears...


If you see a dialog box that looks like this, you have to run the Foxhound "unsetup" process first and then run the Foxhound InstallShield setup as described below:

The unsetup process will not delete your Foxhound database; for more information see Another version of this product is already installed.


If you see this dialog box, you can proceed with the reinstallation:

When the InstallShield process reaches the end, click on the Post-Setup button to continue the installation.

This part is critical; if you don't let the post-setup process run, the old installation of Foxhound will not be replaced:

The post-setup process will ask how much data you want to preserve; just press Enter for ALL data:

Post-Setup Process for Foxhound Version 3.0
*** Checking for a post-setup path parameter...
*** A post-setup path parameter was provided...
C:\ProgramData\RisingRoad\Foxhound3\
*******************************************************************
***                   Foxhound 3.0.4380
***
*** Here's where Foxhound is being installed:
*** C:\ProgramData\RisingRoad\Foxhound3\
***
*** Starting the Foxhound 3.0.4380 post-setup process...
*** Creating foxhound3.db.3.0.4380.ORIGINAL_COPY...
*** Checking for an existing Foxhound3 installation...
***  ...yes, there is an existing Foxhound3 installation.
*** Checking if the existing data should be upgraded...
***  ...yes, the existing Foxhound3 data should be upgraded.
******************************************************************
*** PLEASE READ THIS, AND CONFIRM OR CHANGE **********************
******************************************************************
***
*** "FOXHOUND3UPGRADE" 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...
***    FOXHOUND3UPGRADE=ALL which means upgrade all the data
*** just press Enter.
******************************************************************
Current FOXHOUND3UPGRADE=ALL
New     FOXHOUND3UPGRADE=

See also How do the different FOXHOUND3UPGRADE values work?


If you see this dialog box, click on Remove to run the Foxhound "unsetup" process, and then run the Foxhound InstallShield setup as described above.

Do not click on Modify or Repair; they won't damage anything, but nothing will happen when you click on the Post-Setup button at the end of Modify or Repair process:


Caution: If you are using the Windows Vista or 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; see The $backup_foxhound3.bat file looked for a path specification in the FOXHOUND3 environment variable and it was empty.

See also...
How do the different FOXHOUND3UPGRADE values work?
How do I install Foxhound?
How do I install a new version of Foxhound?
Another version of this product is already installed.
Why is it called "unsetup" instead of "uninstall"?
How do I remove Foxhound from my system?
How do I backup my Foxhound database?
How do I backup my Foxhound database on a regular basis?
How do the Foxhound backup shortcuts work?
Help - Introduction - Backup
The $backup_foxhound3.bat file looked for a path specification in the FOXHOUND3 environment variable and it was empty.


[ Top ]
Question: How do I remove Foxhound from my system?

Answer: First, stop the Foxhound database if it's running.

You can do this by clicking on start - All Programs - Foxhound3 - Tools - Stop Foxhound Engine.

Second, run the Foxhound "unsetup" process. There are three ways to do this:

  • Click on start - All Programs - Foxhound3 - Tools - Unsetup Foxhound, or
  • use the Control Panel - Add or Remove Programs dialog to remove Foxhound Version 1, or

  • run this command: MsiExec.exe /X{66FB3DEC-3714-4701-8CA0-792BF45273E3}

Third, delete the Foxhound3 folder and all the files and subfolders.

By default, Foxhound is installed in this location on Windows XP:

C:\Documents and Settings\All Users\Application Data\RisingRoad\Foxhound3
and on Vista and Windows 7 it is here:
C:\ProgramData\RisingRoad\Foxhound3

See also...
How do I install Foxhound?
How do I install a new version of Foxhound?
How do I reinstall Foxhound?
Another version of this product is already installed.
Why is it called "unsetup" instead of "uninstall"?


[ Top ]
Question: How do I rename a connection string on the String tab of the Foxhound Menu page?

Answer:

There is no "Rename" button; you have to copy-and-save and then delete:

  1. Select the connection string with the old name on the String tab of the Foxhound Menu page.

  2. Type the new name in the "Name:" field.

  3. Click on the Save button.

  4. Select the connection string with the old name again.

  5. Click on the Delete button.


[ Top ]
Question: How do I renew the Rental Edition of Foxhound 3?

Answer:

Step 1: Get 30-day Rental Key; see How do I get a copy of Foxhound?

Step 2: Open the Foxhound About page.

Step 3: Click on the "Renew or Upgrade Foxhound" button to open the Foxhound Activation page, and follow the instructions.

See also...
How do I get a copy of Foxhound?
What are the differences among the different editions of Foxhound: Rental, Basic and Extended?
What are the differences among all the activation keys?


[ Top ]
Question: How do I report unexpected errors and exceptions?

Answer:

First, use the Foxhound Options - Diagnostics - Display Diagnostics button to see if there are any diagnostic messages associated with this problem. If so, use the Export Diagnostics button to copy the Foxhound diagnostic messages to a text file.

C:\temp\foxhound_diagnostics.txt
Then, run this adhoc query to determine if Foxhound has captured any diagnostic dumps associated with those diagnostic messages; see How do I run adhoc queries on the Foxhound database?
SELECT exception_id, 
       dump_id,  
       dump_inserted_at
  FROM exception_dump
 ORDER BY exception_id,
       dump_id;
If so, run this adhoc query to copy the diagnostic dumps to another text file:
SELECT *
  FROM exception_dump
 ORDER BY exception_id,
       dump_id;
OUTPUT TO 'C:\temp\foxhound_dumps.txt';
Finally, send both files to Breck.Carter@gmail.com

See also...
Help - Foxhound Options - Diagnostics
How do I run adhoc queries on the Foxhound database?


[ Top ]
Question: How do I restore the Foxhound database from a backup?

Answer:

See Help - Introduction - Restore.


[ Top ]
Question: How do I restore the old build of Foxhound after installing a new build?

Answer: Foxhound's executable code is stored together with Foxhound data inside the Foxhound database, so "restoring the old build of Foxhound" is the same as "restoring the old Foxhound database".

The post-setup process creates a backup copy of your existing Foxhound database, and you can restore that copy by copying the foxhound.db and foxhound.log files as follows:

On Windows XP, copy the foxhound.db and foxhound.log files from:
C:\Documents and Settings\All Users\Application Data\RisingRoad\Foxhound3\backup\previous_build
to:
C:\Documents and Settings\All Users\Application Data\RisingRoad\Foxhound3

On Windows Vista or Windows 7, copy the foxhound.db and foxhound.log files from:

C:\ProgramData\RisingRoad\Foxhound3\backup\previous_build
to:
C:\ProgramData\RisingRoad\Foxhound3

See also...
How do I backup my Foxhound database?
How do the Foxhound backup shortcuts work?
What is the upgrade policy for installing new builds of Foxhound?


[ Top ]
Question: How do I run adhoc queries on the Foxhound database?

Answer:

You can use the following connection parameters with dbisql, or with any other query tool that can connect to a SQL Anywhere database:

-c "ENG=foxhound3;DBN=f;UID=ADHOC;PWD=SQL"

Here's a Windows command line for running adhoc queries via dbisql:

"%SQLANY16%\bin64\dbisql.com" -c "ENG=foxhound3; DBN=f; UID=ADHOC; PWD=SQL; CON=Foxhound3-ADHOC" 

See also...

How do I see the schema for adhoc reporting?

How do I change the ADHOC password?

Views available for adhoc queries.


Examples of Adhoc Queries

Active alerts for each target database.

Count active alerts for each target database.

Alert #1 Database unresponsive activity for a particular target database.

Recent purge runs.

Selected columns from the most recent purge runs.

Sample sessions for all target databases.

Recent sample headers for each target database.

Recent sample headers and details for each target database.

Recent sample headers, details and connections for each target database.

Sample details selected by exact primary key values.

Sample header, details and connections selected by exact primary key values.

Recent blocked connections.

Long-running queries.

Latency and throughput with 100-sample moving averages.

Busy SQL statements.


Views available for adhoc queries.   [Top]
alert  One row per alert.
alert_cancelled  One row per alert cancellation.
alert_union  A UNION of all the rows in the alert, alert_cancelled, all_clear and sampling_options views to make reporting easier.
alerts_criteria  One row containing the Monitor Options page settings for each sampling session, plus rows for 'Factory Settings' and 'Saved Defaults'.
all_clear  One row per alert all-clear.
build_number  A single-row table containing some attributes of the current installation of the Foxhound database.
connection_string  One row for each connection string displayed on the String tab of the Foxhound main menu.
data_upgrade_history  One row for each time the data in an existing Foxhound database has been copied into a new Foxhound database as part of the installation process.
email_failure  One row for each time Foxhound failed in an attempt to send an Alert or other email.
exception_diagnostic  One row for each time Foxhound detected an error or other important event. In some cases, a single underlying error may result in two or more rows in exception_diagnostic recorded by nested exception handlers in Foxhound.
exception_dump  One row for each time Foxhound stored extra internal diagnostic information associated with an event recorded in exception_diagnostic.
expiry_date  A single-row table containing some attributes of the current installation of the Foxhound database.
global_options  A single-row table containing some options affecting how Foxhound behaves.
monitor_sampler_control  A single-row table containing some information about current execution of the Foxhound database.
peaks  One row for each Foxhound Monitor target database, holding various peak values and links to the corresponding samples.
purge_run  One row for each run of the Foxhound database purge process, holding information about the progress of the current run and the work accomplished by previous runs.
run_characteristics  A single-row table containing some information about current execution of the Foxhound database.
sample_detail  One row for each sample recorded by the Foxhound Database Monitor, holding various additional server and database-level properties and computed columns.
sample_connection  One row for each connection recorded for each Foxhound Database Monitor sample, holding various connection-level properties and computed columns.
sample_header  One row for each sample recorded by the Foxhound Database Monitor, holding various server and database-level properties and computed columns.
sampling_options  One row for each Foxhound Monitor target database, holding various options affecting how the Monitor behaves and information about the current status of the Monitor session.
serial_number  A single-row table containing the Foxhound serial number as shown on the About page.
session_options  One row for each HTTP session established during the current execution of the Foxhound database.
used_activation_key  One row for each different key used in the Foxhound activation process.


Active alerts for each target database.   [Top]
SELECT IF sampling_options.selected_tab = 1 
          THEN 'DSN' 
          ELSE 'String' 
       END IF AS connection_type,
       sampling_options.selected_name AS target_database,
       alert_union.*
  FROM sampling_options
          INNER JOIN alert_union
          ON alert_union.sampling_id = sampling_options.sampling_id
 WHERE alert_union.record_type                 = 'Alert'
   AND alert_union.alert_is_clear_or_cancelled = 'N'
 ORDER BY target_database ASC,
       alert_union.sample_set_number DESC;


Count active alerts for each target database.   [Top]
SELECT IF sampling_options.selected_tab = 1 
          THEN 'DSN' 
          ELSE 'String' 
       END IF AS connection_type,
       sampling_options.selected_name AS target_database,
       COUNT(*) AS "Active Alerts"
  FROM sampling_options
          INNER JOIN alert_union
          ON alert_union.sampling_id = sampling_options.sampling_id
 WHERE alert_union.record_type                 = 'Alert'
   AND alert_union.alert_is_clear_or_cancelled = 'N'
 GROUP BY sampling_options.selected_tab,
       sampling_options.selected_name,
       alert_union.sampling_id
 ORDER BY target_database ASC;


Alert #1 Database unresponsive activity for a particular target database.   [Top]
SELECT IF sampling_options.selected_tab = 1 
          THEN 'DSN' 
          ELSE 'String' 
       END IF AS connection_type,
       sampling_options.selected_name AS target_database,
       alert_union.*
  FROM sampling_options
          INNER JOIN alert_union
          ON alert_union.sampling_id = sampling_options.sampling_id
 WHERE target_database = 'Inventory'
   AND alert_union.alert_number = 1
 ORDER BY alert_union.recorded_at ASC;


Recent purge runs.   [Top]
SELECT TOP 100 * 
  FROM purge_run
 ORDER BY run_number DESC;


Selected columns from the most recent purge runs.   [Top]
SELECT TOP 100
       run_number,
       progress,
       started_at,
       DATEDIFF ( second, started_at, completed_at ) AS sec,
       is_complete,
       old_sample_set_delete_count,
       uninteresting_connections_delete_count,
       sample_purge_interval,
       uninteresting_connections_purge_interval,
       purge_speed,
       * 
  FROM purge_run
 ORDER BY run_number DESC;


Sample sessions for all target databases.   [Top]
SELECT sampling_id,
       IF selected_tab = 1 
          THEN 'DSN' 
          ELSE 'String' 
       END IF AS connection_type,
       selected_name AS target_database,
       sampling_should_be_running, 
       connection_status_message, 
       last_sample_finished_at
  FROM sampling_options
 ORDER BY target_database;


Recent sample headers for each target database.   [Top]
SELECT sample_header.row_order,
       IF sampling_options.selected_tab = 1 
          THEN 'DSN' 
          ELSE 'String' 
       END IF AS connection_type,
       sampling_options.selected_name AS target_database,
       sample_header.*
  FROM sampling_options
       INNER JOIN ( SELECT *,
                           RANK() OVER sample_window AS row_order
                      FROM sample_header
                    WINDOW sample_window AS (
                              PARTITION BY sampling_id
                              ORDER BY sample_set_number DESC ) 
                  ) AS sample_header
       ON sample_header.sampling_id = sampling_options.sampling_id
 WHERE sample_header.row_order <= 10
 ORDER BY target_database,
       sample_header.sample_set_number DESC;


Recent sample headers and details for each target database.   [Top]
SELECT sample_header.row_order,
       IF sampling_options.selected_tab = 1 
          THEN 'DSN' 
          ELSE 'String' 
       END IF AS connection_type,
       sampling_options.selected_name AS target_database,
       '     HEADER:',
       sample_header.*,
       '     DETAIL:',
       sample_detail.*
  FROM sampling_options
       INNER JOIN ( SELECT *,
                           RANK() OVER sample_window AS row_order
                      FROM sample_header
                    WINDOW sample_window AS (
                              PARTITION BY sampling_id
                              ORDER BY sample_set_number DESC ) 
                  ) AS sample_header
       ON sample_header.sampling_id = sampling_options.sampling_id
       INNER JOIN sample_detail
       ON sample_detail.sample_set_number = sample_header.sample_set_number
 WHERE sample_header.row_order <= 10
 ORDER BY target_database,
       sample_header.sample_set_number DESC;


Recent sample headers, details and connections for each target database.   [Top]
SELECT sample_header.row_order,
       IF sampling_options.selected_tab = 1 
          THEN 'DSN' 
          ELSE 'String' 
       END IF AS connection_type,
       sampling_options.selected_name AS target_database,
       '     HEADER:',
       sample_header.*,
       '     DETAIL:',
       sample_detail.*,
       '     CONNECTION:',
       sample_connection.*
  FROM sampling_options
       INNER JOIN ( SELECT *,
                           RANK() OVER sample_window AS row_order
                      FROM sample_header
                    WINDOW sample_window AS (
                              PARTITION BY sampling_id
                              ORDER BY sample_set_number DESC ) 
                  ) AS sample_header
       ON sample_header.sampling_id = sampling_options.sampling_id
       INNER JOIN sample_detail
       ON sample_detail.sample_set_number = sample_header.sample_set_number
       LEFT OUTER JOIN sample_connection
       ON sample_connection.sample_set_number = sample_detail.sample_set_number
 WHERE sample_header.row_order <= 10
 ORDER BY target_database,
       sample_header.sample_set_number DESC,
       sample_connection.connection_number;


Sample details selected by exact primary key values.   [Top]
-- Samples selected by these [sampling_id,sample_set_number] key values shown on the Monitor and History pages:
--    [1,438407]
--    [1,438406]
--    [1,1497]
--    [1,89]
--    [1,88]

SELECT sample_detail.*
  FROM sample_detail
 WHERE sample_detail.sampling_id = 1
   AND sample_detail.sample_set_number IN ( 88, 89, 1497, 438406, 438407 )
 ORDER BY sample_detail.sample_set_number DESC;


Sample header, details and connections selected by exact primary key values.   [Top]
-- Samples selected by these [sampling_id,sample_set_number] key values shown on the Monitor and History pages:
--    [1,438407]
--    [1,438406]
--    [1,1497]
--    [1,89]
--    [1,88]

SELECT IF sampling_options.selected_tab = 1 
          THEN 'DSN' 
          ELSE 'String' 
       END IF AS connection_type,
       sampling_options.selected_name AS target_database,
       '     HEADER:',
       sample_header.*,
       '     DETAIL:',
       sample_detail.*,
       '     CONNECTION:',
       sample_connection.*
  FROM sampling_options
       INNER JOIN sample_header
       ON sample_header.sampling_id = sampling_options.sampling_id
       INNER JOIN sample_detail
       ON sample_detail.sample_set_number = sample_header.sample_set_number
       LEFT OUTER JOIN sample_connection
       ON sample_connection.sample_set_number = sample_detail.sample_set_number
 WHERE sample_header.sampling_id = 1
   AND sample_header.sample_set_number IN ( 88, 89, 1497, 438406, 438407 )
 ORDER BY sample_header.sample_set_number DESC,
       sample_connection.connection_number;


Recent blocked connections.   [Top]
SELECT TOP 1000
       sample_connection.sampling_id,
       IF sampling_options.selected_tab = 1 
          THEN 'DSN' 
          ELSE 'String' 
       END IF AS connection_type,
       sampling_options.selected_name AS target_database,
       sample_connection.sample_set_number,
       sample_header.sample_finished_at           AS sample_recorded_at,
       sample_connection.connection_number        AS blocked_connection_number,
       sample_connection.BlockedOn                AS blocked_by_connection_number,
       sample_connection.LastReqTime,
       sample_connection.LastStatement,
       sample_connection.blocker_reason           AS reason_for_block,
       sample_connection.blocker_owner_name       AS owner_name,
       sample_connection.blocker_table_name       AS table_name,
       sample_connection.blocker_row_identifier   AS row_identifier
  FROM sampling_options
          INNER JOIN sample_connection
                  ON sample_connection.sampling_id = sampling_options.sampling_id
          INNER JOIN sample_header
                  ON sample_header.sampling_id       = sampling_options.sampling_id
                 AND sample_header.sample_set_number = sample_connection.sample_set_number
 WHERE sample_connection.BlockedOn <> 0
 ORDER BY sample_connection.sample_set_number DESC,
       sample_connection.connection_number ASC;


Long-running queries.   [Top]
-- Each connection is uniquely identified by sampling_id, connection_number and LoginTime.
-- Each query is uniquely identified by sampling_id, connection_number, LoginTime and LastReqTime.

WITH long_running_query AS
   ( SELECT sample_connection.sampling_id               AS sampling_id, 
            sample_connection.connection_number         AS connection_number, 
            sample_connection.LoginTime                 AS LoginTime,
            sample_connection.LastReqTime               AS LastReqTime,
            MIN ( sample_connection.sample_set_number ) AS from_sample_set_number, 
            MAX ( sample_connection.sample_set_number ) AS to_sample_set_number 
       FROM sample_connection
      WHERE sample_connection.ReqStatus = 'Executing'
        AND sample_connection.time_since_last_request > 0
        AND TRIM ( COALESCE ( sample_connection.LastStatement, '' ) ) <> ''
      GROUP BY sample_connection.sampling_id, 
            sample_connection.connection_number, 
            sample_connection.LoginTime,
            sample_connection.LastReqTime
     HAVING from_sample_set_number <> to_sample_set_number )
SELECT long_running_query.sampling_id                AS sampling_id,
       IF sampling_options.selected_tab = 1 
          THEN 'DSN' 
          ELSE 'String' 
       END IF                                        AS connection_type,
       sampling_options.selected_name                AS target_database,
       long_running_query.connection_number          AS connection_number, 
       long_running_query.to_sample_set_number       AS sample_set_number,
       long_running_query.LoginTime                  AS LoginTime,
       long_running_query.LastReqTime                AS started_at,
       sample_header.sample_finished_at              AS recorded_at,
       CAST ( sample_connection.time_since_last_request / 1000 AS BIGINT )  AS elapsed_seconds,
       sample_connection.LastStatement               AS LastStatement,
       sample_connection.LastPlanText                AS LastPlanText 
  FROM sampling_options
          INNER JOIN long_running_query
                  ON long_running_query.sampling_id = sampling_options.sampling_id
          INNER JOIN sample_header
                  ON sample_header.sampling_id       = sampling_options.sampling_id
                 AND sample_header.sample_set_number = long_running_query.to_sample_set_number
          INNER JOIN sample_connection
                  ON sample_connection.sample_set_number = long_running_query.to_sample_set_number 
                 AND sample_connection.connection_number = long_running_query.connection_number;


Latency and throughput with 100-sample moving averages.   [Top]
SELECT IF sampling_options.selected_tab = 1 
          THEN 'DSN' 
          ELSE 'String' 
       END IF AS connection_type,
       sampling_options.selected_name AS target_database,
       sample_detail.sample_set_number,
       sample_detail.sample_recorded_at,
       ( sample_detail.interval_msec / 1000.0 )                AS interval_sec,
       sample_detail.ConnCount                                 AS connections,
       sample_detail.interval_CPU_percent                      AS CPU_percent,
       ( sample_detail.canarian_query_elapsed_msec / 1000.0 )  AS heartbeat_sec,
       ( sample_detail.sample_elapsed_msec         / 1000.0 )  AS sample_sec,
       sample_detail.interval_Req    / interval_sec            AS requests_per_sec,
       sample_detail.interval_Commit / interval_sec            AS commits_per_sec,
       ( sample_detail.interval_BytesReceived 
         + sample_detail.interval_BytesSent ) / interval_sec   AS bytes_per_sec,   
       AVG ( connections )      OVER moving_window             AS avg_connections,
       AVG ( CPU_percent )      OVER moving_window             AS avg_CPU_percent,
       AVG ( heartbeat_sec )    OVER moving_window             AS avg_heartbeat_sec,
       AVG ( sample_sec )       OVER moving_window             AS avg_sample_sec, 
       AVG ( requests_per_sec ) OVER moving_window             AS avg_requests_per_sec, 
       AVG ( commits_per_sec )  OVER moving_window             AS avg_commits_per_sec  
  FROM sampling_options
       INNER JOIN sample_detail
          ON sample_detail.sampling_id = sampling_options.sampling_id
 WHERE sample_detail.sampling_id = 4
   AND sample_detail.sample_lost = 'N'
   AND sample_detail.sample_recorded_at BETWEEN 'Feb 21 1:14:49 PM' AND 'Feb 21 3:32:34 PM'
WINDOW moving_window AS
          ( ORDER BY sample_detail.sample_set_number DESC
            ROWS BETWEEN CURRENT ROW AND 99 FOLLOWING )
 ORDER BY sample_detail.sample_set_number DESC;


Busy SQL statements.   [Top]
SELECT sampling_options.selected_name         AS target_database,
       sample_connection.LoginTime,
       sample_connection.connection_number, 
       sample_connection.Name                 AS connection_name,
       sample_connection.Userid,
       MAX ( sample_connection.busy_percent ) AS busy_percent,
       sample_connection.LastStatement,  
       sample_connection.LastPlanText  
  FROM sampling_options
          INNER JOIN sample_connection
                  ON sample_connection.sampling_id = sampling_options.sampling_id
 WHERE sample_connection.busy_percent >= 5
   AND sample_connection.LastStatement <> ''
   AND sample_connection.Name NOT LIKE 'Foxhound%'
 GROUP BY sampling_options.selected_name,
       sample_connection.LoginTime,
       sample_connection.connection_number, 
       sample_connection.Name,
       sample_connection.Userid,
       sample_connection.LastStatement, 
       sample_connection.LastPlanText  
 ORDER BY target_database,
       sample_connection.LoginTime,
       sample_connection.connection_number; 

See also...
How do I see the schema for adhoc reporting?
How do I change the ADHOC password?


[ Top ]
Question: How do I run Foxhound as a service?

Answer:

See Help - Introduction - Running Foxhound as a Service.


[ Top ]
Question: How do I run the Foxhound "unsetup" process?

Answer: There are three ways to run the Foxhound "unsetup" process:

  • Click on start - All Programs - Foxhound3 - Tools - Unsetup Foxhound, or
  • use the Control Panel - Add or Remove Programs dialog to remove Foxhound Version 1, or

  • run this command: MsiExec.exe /X{66FB3DEC-3714-4701-8CA0-792BF45273E3}

See also...
Why is it called "unsetup" instead of "uninstall"?
How do I remove Foxhound from my system?


[ Top ]
Question: How do I "Save As" an existing connection string to a new string with a different name on the String tab of the Foxhound Menu page?

Answer:

There is no "Save As" button; you have to change the name and then save:

  1. Select the existing connection string on the String tab of the Foxhound Menu page.

  2. Type the new name in the "Name:" field.

  3. Click on the Save button.


[ Top ]
Question: How do I see Foxhound diagnostics, errors and exceptions?

Answer:

You can use Foxhound Options - Display Diagnostics to see messages recorded by Foxhound itself.

Here is an example of a Foxhound exception message with an explanation of the different sections:

exception id: 1, 2, 3...
|   date and time of the exception
|   |                       Foxhound build number
|   |                       |                Foxhound connection number that detected the exception
|   |                       |                |          exception location within Foxhound code
|   |                       |                |          |              diagnostic text: variable format              target database id and name
|   |                       |                |          |              |                                                                    |
67  2011-11-11 11:49:08.768 Full Build 4013a 1000009471 701.a3(701eh1) Permission denied: Cannot CREATE PROCEDURE rroad_engine_properties. [5-ddd12]

Also, you can use one of these "debug" shortcuts to start Foxhound

All Programs - Foxhound3 - Tools - Start Foxhound via default browser - debug

All Programs - Foxhound3 - Tools - Start Foxhound via Chrome - debug

All Programs - Foxhound3 - Tools - Start Foxhound via Firefox - debug

All Programs - Foxhound3 - Tools - Start Foxhound via IE - debug
so that messages produced by the SQL Anywhere engine will be captured to this file on Windows XP:
C:\Documents and Settings\All Users\Application Data\RisingRoad\Foxhound3\foxhound3_debug.txt
and this file on Vista and Windows 7:
C:\ProgramData\RisingRoad\Foxhound3\foxhound3_debug.txt

See also...
How do I report unexpected errors and exceptions?
How do I start Foxhound in "debug mode"?
How do I start Foxhound in "safe mode"?
How do I figure out what went wrong during an installation?


[ Top ]
Question: How do I see the schema for adhoc reporting?

Answer:

A separate empty database file adhoc_schema1.db is delivered with Foxhound, containing all the views and underlying tables that are available for adhoc reporting.

You can view these tables and views by selecting this connection string on the String tab of the Foxhound menu

Foxhound 3 Adhoc Schema - autostart and connect
and clicking Display Schema.

For the record (and in case you delete that connection string), here's how to auto-start and connect to this database:

ENG=adhoc_schema1; DBN=adhoc_schema1; UID=DBA; PWD=sql; DRIVER=SQL Anywhere 16; 
START=C:\Program Files\SQL Anywhere 16\Bin32\dbeng16.exe; 
DBF=C:\ProgramData\RisingRoad\Foxhound3\adhoc_schema1.db; AUTOSTART=YES;  

See also...
How do I run adhoc queries on the Foxhound database?
How do I see the schema for adhoc reporting?
How do I change the ADHOC password?


[ Top ]
Question: How do I set up Foxhound to monitor a large number of target databases?

Answer:

See Help - Monitor Options - Manage Multiple Monitor Sessions.


[ Top ]
Question: How do I shrink the size of the Foxhound database?

Answer:

One method is to use the Foxhound upgrade process to purge old sample data by reinstalling Foxhound and specifying FOXHOUND3UPGRADE = yyyymmdd or nnn when the prompt appears during the post-setup process. For more information see

How do I reinstall Foxhound?
and
How do the different FOXHOUND3UPGRADE values work?

Even if you use a very old value of FOXHOUND3UPGRADE = yyyymmdd or a very large value of FOXHOUND3UPGRADE = nnn to copy all of the sample data, the Foxhound database will probably shrink somewhat because the reinstallation process removes free space.

Another method is to let the purge process delete old and/or uninteresting sample data and then reinstall Foxhound as follows:

  • Use the Foxhound Options - Purge Process feature to speed up the deletion of old sample data.
  • Wait until the background purge process has had enough time to increase the amount of free space to the level you want; for example, from 2% to 75%.

    This may take a few hours or even days if you have a lot of data to delete; watch the amount of free space displayed by the Foxhound Options - Purge Process feature.

  • Reinstall Foxhound following these instructions.

    This process will create and reload a new Foxhhound database with just the remaining data and much less free space.

See also...
How do I reinstall Foxhound?
How do the different FOXHOUND3UPGRADE values work?
Help - Foxhound Options - Purge Process
How do I keep the Foxhound database file from growing so large?
How do I keep the Foxhound log file from growing so large?


[ Top ]
Question: How do I specify the HTTPS transport-layer security for Foxhound?

Answer: You can modify the Foxhound startup command line to specify RSA encryption and the HTTPS protocol as follows:

  • Obtain an identity certificate and the associated private key for your Foxhound installation.
  • Store the identity certificate file in a known location.

  • Change the -xs option to specify https on the dbsrv16.exe command line used to start Foxhound.

    Specify the identity certificate file and private key in the -xs https identity= and identity_password= parameters.

    Note that the default port for HTTPS is 443.

Here is an example of a dbsrv16.exe command line modified to allow only HTTPS access to Foxhound data using the sample certificate that comes with SQL Anywhere 16:

"%SQLANY16%\%BIN%\dbspawn.exe"^
  -f "%SQLANY16%\%BIN%\dbsrv16.exe"^
  -c 25p^
  -ch 50p^
  -cr-^
  -gk all^
  -gn 120^
  -gna 0^
  -n foxhound3^
  -o foxhound3_debug.txt^
  -oe foxhound3_debug_startup.txt^
  -on 1M^
  -sb 0^
  -ufd restart^
  -x tcpip^
  -xd^
  -xs https(identity="%SQLANYSAMP16%\Certificates\rsaserver.id";identity_password=test;port=443;maxsize=0;to=600;kto=600)^
  foxhound3.db^
  -n f

If you want to allow both HTTP and HTTPS access, specify both as follows:

  -xs http(port=80;maxsize=0;to=600;kto=600),https(identity="%SQLANYSAMP16%\Certificates\rsaserver.id";identity_password=test;port=443;maxsize=0;to=600;kto=600)^
Here's the list of Foxhound command files which contain the dbsrv16.exe -xs option:
$backup_foxhound3.bat
$start_foxhound3_chrome.bat
$start_foxhound3_chrome_debug.bat
$start_foxhound3_default_browser.bat
$start_foxhound3_default_browser_debug.bat
$start_foxhound3_engine.bat
$start_foxhound3_firefox.bat
$start_foxhound3_firefox_debug.bat
$start_foxhound3_ie.bat
$start_foxhound3_ie_debug.bat

By default, those command files are installed here on Windows XP:

   C:\Documents and Settings\All Users\Application Data\RisingRoad\Foxhound3

and on Windows 7 they are here:

   C:\ProgramData\RisingRoad\Foxhound3

See also...
How do I tell Foxhound to use an HTTP port other than 80?


[ Top ]
Question: How do I start Foxhound?

Answer:

See Help - Introduction - Starting Foxhound.

See also...
How do I start Foxhound in "debug mode"?
How do I start Foxhound in "safe mode"?
How do I see Foxhound diagnostics, errors and exceptions?
How do I stop Foxhound?
How do I stop and restart Foxhound?
Help - Introduction - Starting Multiple Copies of Foxhound


[ Top ]
Question: How do I start Foxhound in "debug mode"?

Answer: The following shortcuts help with debugging. Each one stops the Foxhound database if it's running, starts the Foxhound database, displays any diagnostic messages that might have been produced, and then connects to Foxhound from your browser:

All Programs - Foxhound3 - Tools - Start Foxhound via default browser - debug

All Programs - Foxhound3 - Tools - Start Foxhound via Chrome - debug

All Programs - Foxhound3 - Tools - Start Foxhound via Firefox - debug

All Programs - Foxhound3 - Tools - Start Foxhound via IE - debug
See also...
How do I start Foxhound?
How do I start Foxhound in "safe mode"?
How do I see Foxhound diagnostics, errors and exceptions?
How do I stop Foxhound?
How do I stop and restart Foxhound?
Help - Introduction - Starting Multiple Copies of Foxhound


[ Top ]
Question: How do I start Foxhound in "safe mode"?

Answer:

See Help - Introduction - Safe Mode Startup.

See also...
How do I start Foxhound in "debug mode"?
How do I see Foxhound diagnostics, errors and exceptions?
Why is Foxhound unresponsive when it starts?
How do I see Foxhound diagnostics, errors and exceptions?


[ Top ]
Question: How do I start Foxhound with the 32-bit version of SQL Anywhere when both the 32-bit and 64-bit versions of SQL Anywhere are installed?

Answer:

First, set the FOXHOUND3BIN environment variable to Bin32 as follows:

Control Panel in Windows XP...

  System 
      - Advanced tab 
         - Environment Variables button 
            - System variables 
               - New button
                  - New System Variable dialog box
                    Variable name:  FOXHOUND3BIN
                    Variable value: Bin32

Control Panel in Windows 7... 

   System 
      - Advanced system settings 
         - Advanced tab 
            - Environment Variables button 
               - System variables 
                  - New... button
                     - New System Variable dialog box
                       Variable name:  FOXHOUND3BIN
                       Variable value: Bin32
Then, shut down and restart Foxhound.

See also...
How do I tell if Foxhound is running on the 32-bit or 64-bit version of SQL Anywhere?
What environment variables are used by Foxhound?


[ Top ]
Question: How do I stop and restart Foxhound?

Answer: Follow the instructions here:

How do I stop Foxhound?
How do I start Foxhound?
Alternative: The following shortcuts help with debugging. Each one stops the SQL Anywhere engine if it's running, starts it again with extra diagnostics turned on, and then connects to Foxhound from your browser:
All Programs - Foxhound3 - Tools - Start Foxhound via default browser - debug

All Programs - Foxhound3 - Tools - Start Foxhound via Chrome - debug

All Programs - Foxhound3 - Tools - Start Foxhound via Firefox - debug

All Programs - Foxhound3 - Tools - Start Foxhound via IE - debug
See also...
How do I start Foxhound?
How do I stop Foxhound?


[ Top ]
Question: How do I stop Foxhound?

Answer: Method 1: Use the following desktop shortcut:

Start - All Programs - Foxhound3 - Tools - Stop Foxhound Engine
Method 2: Go to the Foxhound Options page, scroll to the bottom and click on the Stop Foxhound Engine button.

Method 3: Open the Processes tab in Task Manager, click on the "Image Name" column name to sort the process names alphabetically, select the dbsrv16.exe task that's running the Foxhound database and then click on the End Process button.

Caution: If you have two or more SQL Anywhere engines running it can be difficult to determine which one's running the Foxhound database.
See also...
How do I start Foxhound?
How do I stop and restart Foxhound?


[ Top ]
Question: How do I stop the "User Id:" and "Password:" from being redisplayed on the Foxhound Menu page?

Answer:

If you are using Firefox as your browser, try unchecking "Remember passwords for sites" on the Firefox - Tools - Options - Security tab.


[ Top ]
Question: How do I tell if Foxhound has been started in safe mode?

Answer:

The Foxhound About page displays Y or N for "Foxhound is running in safe mode:"

See also...
How do I start Foxhound in "safe mode"?


[ Top ]
Question: How do I tell if Foxhound is running on the 32-bit or 64-bit version of SQL Anywhere?

Answer:

The Foxhound About page displays rroad1.dll or rroad164.dll for "Foxhound Windows API support DLL:"

  • rroad1.dll means Foxhound is running on the 32-bit version of SQL Anywhere.

  • rroad164.dll means Foxhound is running on the 64-bit version of SQL Anywhere.

See also...
How do I start Foxhound with the 32-bit version of SQL Anywhere when both the 32-bit and 64-bit versions of SQL Anywhere are installed?
What environment variables are used by Foxhound?


[ Top ]
Question: How do I tell Foxhound to send Alert emails via the Gmail SMTP server smtp.gmail.com?

Answer:

In order to use smtp.gmail.com you need to provide three pieces of identification:

  1. a Google Mail account,

  2. the password for that account and

  3. the SSL certificate currently used by Google Mail.

Items 1 and 2 are easy to get; here's how to get number 3:

  • Choose a folder to store the SSL certificate; e.g., c:\temp

  • Open this link to the Equifax SSL certificate in your browser: Download - Equifax Secure Certificate Authority (Base-64 encoded X.509)

  • Click right-mouse - Save As... on the certificate displayed in your browser.

  • Choose a File name: c:\temp\Equifax_Secure_Certificate_Authority.cer

  • Choose a Save as type: Web Page, Complete

  • Click on Save.

Now you can fill in the blanks on the Foxhound Options page:

2. Global Email Settings

                 SMTP Sender: xxx@yyy.com	
                 SMTP Server: smtp.gmail.com
                   SMTP Port: 587
                SMTP Timeout: 60
SMTP Authorization User Name: zzz@gmail.com
 SMTP Authorization Password: ********
   SMTP Certificate Filespec: c:\temp\Equifax_Secure_Certificate_Authority.cer

Before actually sending any emails, you must also fill in the "Email address(es) for Alerts:" field on the Monitor Options page:

2. Database-Specific Email Settings for [Default Settings]

             Send Alert emails:	
  Email address(es) for alerts: aaa@bbb.com	
            Use HTML in emails:	
Host[:port] for URLs in emails:	

See also...
SMTP Error Codes & SMTP Status Codes & SMTP Reply Codes Reference 2010


[ Top ]
Question: How do I tell Foxhound to use an HTTP port other than 80?

Answer: You can edit one or more of the following Windows command files to specify a different HTTP port:

$backup_foxhound3.bat
$start_foxhound3_chrome.bat
$start_foxhound3_chrome_debug.bat
$start_foxhound3_default_browser.bat
$start_foxhound3_default_browser_debug.bat
$start_foxhound3_engine.bat
$start_foxhound3_firefox.bat
$start_foxhound3_firefox_debug.bat
$start_foxhound3_ie.bat
$start_foxhound3_ie_debug.bat

By default, those command files are installed here on Windows XP:

   C:\Documents and Settings\All Users\Application Data\RisingRoad\Foxhound3

and on Windows 7 they are here:

   C:\ProgramData\RisingRoad\Foxhound3
Look for a line inside each command file that says this:
-xs http(port=80;maxsize=0;to=600;kto=600)^
and change the 80 to something else, like 12345:
-xs http(port=12345;maxsize=0;to=600;kto=600)^
Then, look for a line that says this:
http://localhost/foxhound
and if you find it (all the "chrome", "firefox" and "ie" command files have it) change it like this:
http://localhost:12345/foxhound

See also...
How do I specify the HTTPS transport-layer security for Foxhound?
What HTTP port should I use for Foxhound?
IANA port number assignments
Can't start HTTP listener on address 127.0.0.1:80
Database server shutdown due to startup error


[ Top ]
Question: How do I upgrade Foxhound from one edition to another?

Answer:

It depends on what you want to do...

See also...
How do I get a copy of Foxhound?
What are the differences among the different editions of Foxhound: Rental, Basic and Extended?
What are the differences among all the activation keys?


[ Top ]
Question: How do I upgrade from the Rental Edition of Foxhound 3 to the Basic Edition?

Answer:

Step 1: Get a New Basic Key; see How do I get a copy of Foxhound?

Step 2: Open the Foxhound About page.

Step 3: Click on the "Renew or Upgrade Foxhound" button to open the Foxhound Activation page, and follow the instructions.

See also...
How do I get a copy of Foxhound?
What are the differences among the different editions of Foxhound: Rental, Basic and Extended?
What are the differences among all the activation keys?


[ Top ]
Question: How do I upgrade from the Rental Edition of Foxhound 3 to the Extended Edition?

Answer:

Step 1: Get a New Extended Key; see How do I get a copy of Foxhound?

Step 2: Open the Foxhound About page.

Step 3: Click on the "Renew or Upgrade Foxhound" button to open the Foxhound Activation page, and follow the instructions.

See also...
How do I get a copy of Foxhound?
What are the differences among the different editions of Foxhound: Rental, Basic and Extended?
What are the differences among all the activation keys?


[ Top ]
Question: How do I upgrade from the Basic Edition of Foxhound 3 to the Extended Edition?

Answer:

Step 1: Get a Basic To Extended Key; see How do I get a copy of Foxhound?

Step 2: Open the Foxhound About page.

Step 3: Click on the "Upgrade Foxhound" button to open the Foxhound Activation page, and follow the instructions.

See also...
How do I get a copy of Foxhound?
What are the differences among the different editions of Foxhound: Rental, Basic and Extended?
What are the differences among all the activation keys?


[ Top ]
Question: How do the different FOXHOUND3UPGRADE values work?

Answer:

The most effective way to make the upgrade process faster is to change the FOXHOUND3UPGRADE value from ALL to some other value during the post-update stage of the Foxhound installation process:

Post-Setup Process for Foxhound Version 3.0
*** Checking for a post-setup path parameter...
*** A post-setup path parameter was provided...
C:\ProgramData\RisingRoad\Foxhound3\
*******************************************************************
***                   Foxhound 3.0.4380
***
*** Here's where Foxhound is being installed:
*** C:\ProgramData\RisingRoad\Foxhound3\
***
*** Starting the Foxhound 3.0.4380 post-setup process...
*** Creating foxhound3.db.3.0.4380.ORIGINAL_COPY...
*** Checking for an existing Foxhound3 installation...
***  ...yes, there is an existing Foxhound3 installation.
*** Checking if the existing data should be upgraded...
***  ...yes, the existing Foxhound3 data should be upgraded.
******************************************************************
*** PLEASE READ THIS, AND CONFIRM OR CHANGE **********************
******************************************************************
***
*** "FOXHOUND3UPGRADE" 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...
***    FOXHOUND3UPGRADE=ALL which means upgrade all the data
*** just press Enter.
******************************************************************
Current FOXHOUND3UPGRADE=ALL
New     FOXHOUND3UPGRADE=
Note: In all cases, Foxhound will preserve the existing copy of the Foxhound database and transaction log files in the backup\previous_build folder. See How do I restore the old build of Foxhound after installing a new build?

Here's how the different FOXHOUND3UPGRADE values work; the following descriptions apply even if you are "upgrading" to exactly the same version of Foxhound; i.e., you are reinstalling the same version in order to shrink and/or reorganize the Foxhound database.

  • ALL    Upgrade all the data.

    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 accomodate 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.

  • OPTIONS    Upgrade all the Foxhound settings and options, including the Foxhound activation status and the Monitor Options for all the target databases, but don't copy any of the sample data.

    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.

  • yyyymmdd    Upgrade all the Foxhound options plus all the samples recorded since yyyymmdd. You can specify any valid timestamp as long as it at least 8 characters long and in the past, but no more than 100000 days in the past; e.g., 20110801, 2011-08-01 23:59:59.999, 2011-7-7 12 are all valid timestamps.
    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. See How do I restore the old build of Foxhound after installing a new build?

    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.

  • nnn    Upgrade all the Foxhound options plus all the samples recorded in the past nnn days. You can specify any positive integer from 1 to 100000.
    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. See How do I restore the old build of Foxhound after installing a new build?

    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.

  • NOTHING    Don't upgrade any data, no options or settings, not even the activation status.
    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. See How do I restore the old build of Foxhound after installing a new build?

  • EVERYTHING    Same as ALL.

  • SETTINGS    Same as OPTIONS.

  • NONE    Same as NOTHING.

  • FRESH    Same as NOTHING.

If you specify an invalid value, Foxhound uses OPTIONS.

See also...
How do I install Foxhound?
How do I reinstall Foxhound?
How do I upgrade Foxhound from one edition to another?
How do I restore the old build of Foxhound after installing a new build?


[ Top ]
Question: How do the Foxhound backup shortcuts work?

Answer:

The All Programs - Foxhound3 - Tools - Backup Foxhound Database shortcut runs the following command file:

C:\ProgramData\RisingRoad\Foxhound3\$backup_foxhound3.bat

The $backup_foxhound3.bat command file creates a full online backup of both the Foxhound database file foxhound3.db and the transaction log foxhound3.log.

This process can be run even while Foxhound is busy monitoring databases, and the backup files it creates can be used to restore the Foxhound database after a problem occurs.

Here's how it works:

  1. The subfolder C:\ProgramData\RisingRoad\Foxhound3\backup is created if it doesn't exist already.

  2. The subfolder C:\ProgramData\RisingRoad\Foxhound3\backup\generation_temp is removed if it is exists; if it does exist, it means a previous backup failed, and the contents of this subfolder cannot be trusted.

  3. The subfolder C:\ProgramData\RisingRoad\Foxhound3\backup\generation_temp is created.

    This is where the full backup copies of foxhound3.db and foxhound3.log will be written.

    This subfolder will be renamed if the backup process is successful.

  4. The Foxhound database is started via dbsrv16.exe if it isn't running already.

    All full backups are created as online backups which require the SQL Anywhere engine to be running.

  5. The dbbackup.exe utility is run to create full backup copies of foxhound3.db and foxhound3.log.

    The dbbackup -x option is used to delete and restart the online transaction log to control its growth.

  6. If the dbbackup.exe utility worked, the backup subfolders are manipulated as follows:

    • The subfolder C:\ProgramData\RisingRoad\Foxhound3\backup\generation1 is removed if it exists.

    • generation2 is renamed to generation1 if it exists.

    • generation3 is renamed to generation2 if it exists.

    • generation_temp is renamed to generation3.


The All Programs - Foxhound3 - Tools - Backup Foxhound Transaction Log shortcut runs the following command file:

C:\ProgramData\RisingRoad\Foxhound3\$backup_foxhound3_log.bat

The $backup_foxhound3_log.bat command file creates an online incremental backup of the transaction log foxhound3.log and stores it together with the most recent full backup that was created by the $backup_foxhound3.bat command file.

This process can be run even while Foxhound is busy monitoring databases, and the backup files it creates can be used to restore the Foxhound database after a problem occurs.

The $backup_foxhound3_log.bat command file may be run multiple times after each run of $backup_foxhound3.bat.

Here's how it works:

  1. The subfolder C:\ProgramData\RisingRoad\Foxhound3\backup\generation3 is checked to make sure it exists and that it contains the foxhound3.db and foxhound3.log file.

    If not, the command file displays an error message and stops; there is no point in creating an incremental backup copy of the transaction log if there is no previous full backup to apply it to.

  2. The subfolder C:\ProgramData\RisingRoad\Foxhound3\backup\generation3\logs is created.

    This is where the incremental backup copies of foxhound3.log will be written.

  3. The dbbackup.exe utility is run to create the incremental backup copy of foxhound3.log.

    The dbbackup -x option is used to delete and restart the online transaction log to control its growth.

See also...
How do I backup my Foxhound database on a regular basis?
How do I restore the Foxhound database from a backup?


[ Top ]
Question: How many target databases can one copy of Foxhound monitor?

Answer: A single copy of the Basic edition of Foxhound is limited to monitoring 10 target databases, and the Extended edition can monitor up to 100 target databases.

However, the Extended Edition of Foxhound does not limit the number of separate copies of the Foxhound database that may be created and started using separate instances of SQL Anywhere on the same local network; see Help - Introduction - Starting Multiple 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.

See also...
Help - Introduction - Starting Multiple Copies of Foxhound
What are the differences among the different editions of Foxhound: Rental, Basic and Extended?
Help - Introduction - End User License Agreement


[ Top ]
Question: How much overhead does the Foxhound connection add to the target database?

Answer:

Note: This FAQ does not discuss the impact of running the Foxhound database on the same computer as the target database. If both databases are heavily loaded it is probably a good idea to move Foxhound to a different computer.

Foxhound's overhead is approximately the same as a single persistent ODBC client-server connection that performs a small-to-medium (depending upon your point of view) amount of read-only query requests (three SELECTs) every ten seconds. The "Sample Times" column on the Monitor page shows how long it takes for Foxhound to do its work.

Generally speaking, if Foxhound's overhead causes any problems, the target database is already in serious difficulty for other reasons.

You can see the Foxhound connection in Foxhound itself; e.g., Foxhound-p001. It's not "zero impact" but it's not a heavy load either. The overhead goes up linearly with the number of other connections to the target database. For example, I have seen the CPU usage rise to 4% on a target database with 1000 idle connections; i.e., Foxhound was using 4% of the target server's CPU to gather information about 1000 connections every 10 seconds, even though those connections aren't doing anything.

Foxhound's overhead affects the CPU and client-server communications only; Foxhound performs no database disk I/O on the target database.

The Foxhound Monitor does almost all of its work inside its own SQL Anywhere server, so if you run that server on a different computer the impact on the target database server will be minimized. On the other hand, if you run Foxhound on the same box, and your target database is heavily loaded with a lot of connections, you can run into trouble.

Historically, Foxhound itself has had internal performance problems from time to time, but there has never been clear evidence of Foxhound adversely affecting a *target* database. "Clear evidence" would be a target database that performs well without Foxhound, and performs poorly with Foxhound.

One other factor has a large impact on Foxhound's own internal efficiency; here's a description:

In the status area of the Monitor page (just below the buttons), there is an SP OK: field over to the right. SPs OK: YYY, NNN or some combination of Ys and Ns indicates whether or not Foxhound has deployed, and is using, these three stored procedure on the target database: rroad_connection_properties, rroad_database_properties and rroad_engine_properties.

These stored procedures are used by Foxhound to improve the performance of the sampling process, but they are not absolutely required. If the user id that Foxhound uses to connect to the target database doesn't have the RESOURCE authority then Foxhound won't be able to CREATE these procedures on the target database.

The source code for the three procedures is in the Foxhound3 folder (C:\ProgramData\RisingRoad\Foxhound3 on Windows 7) so you can see what they do yourself:

rroad_connection_properties.sql
rroad_database_properties.sql
rroad_engine_properties.sql

The effect of these procedures is to reduce the number of rows of data, and the number of bytes, transferred from the target database to Foxhound every 10 seconds. That, in turn, has a significant effect on Foxhound itself if there a large number of connections. When those procedures are not available on the target database, Foxhound calls these three system procedures on the target database every ten seconds: sa_conn_properties(), sa_db_properties() and sa_eng_properties().

For more information about these procedures see Help - Introduction - Connecting to Target Databases.


This page was last generated on July 27, 2016. Foxhound 3.0 FAQ Home      Foxhound Home      RisingRoad      Breck.Carter@gmail.com