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


Why ... ? (general)

Why are my Alert emails garbled?
Why are the values empty in the Last Statement column?
Why are the values empty in the Total Waits, Waiting Time columns?
Why are the values so large in the Interval and Sample Time columns?
Why are there so many "Connection timeout" messages in Foxhound - Options - Display Diagnostics?
Why aren't more "Uninteresting Connections" being deleted by the Foxhound purge process?
Why did Foxhound start automatically after I stopped it?
Why do I get an ALERT #28 - Long transaction when there are no connections running long transactions?
Why do I see so many Alert #1 - Database unresponsive messages?
Why do I see so many "Timed out" messages on the Monitor display?
Why does Foxhound issue Alert #1 - Database unresponsive immediately after Foxhound is started?
Why does Foxhound keep sending emails even though "Send Alert emails" is unchecked on the Foxhound Options page?
Why does the Foxhound post-upgrade process take so long?
Why doesn't the Foxhound backup process create the generation2 subfolder?
Why is Alert #1 - Database unresponsive issued and cleared with every sample gathered?
Why is Foxhound unresponsive when it starts?
Why is it called "unsetup" instead of "uninstall"?
Why is the Alert #15 threshold still set at 10 incomplete file I/O operations, instead of the new default value of 256?
Why is the "bytes per row" larger than the actual amount of data in each row?
Why is the "Choose a DSN:" drop down list empty?
Why won't the sample connection strings on the String tab work on Vista or Windows 7?
Why won't the target database auto-start when Foxhound tries to connect to it?

[ Top ]
Question: Why are my Alert emails garbled?

Answer: Different email clients handle HTML text in different ways, with some garbling the text more than others. At the present time (June 2010) Yahoo Mail (ymail.com) does one of the best jobs handling Foxhound Alert emails, and Google Mail does the worst job.

See also...
The Alerts Criteria Page - Send alert emails


[ Top ]
Question: Why are the values empty in the Last Statement column?

Answer: See How do I get something to show up in the Last Statement column?


[ Top ]
Question: Why are the values empty in the Total Waits, Waiting Time columns?

Answer: See How do I get something to show up in the Total Waits, Waiting Time columns?


[ Top ]
Question: Why are the values so large in the Interval and Sample Time columns?

Answer: Check to see if the target database is "Using 1 CPU". When a personal server (dbeng*.exe) is heavily loaded as far as CPU usage is concerned, it may not respond quickly to sampling requests from Foxhound. Try using the network server (dbsrv*.exe) so that it can use multiple CPUs.

See also...
The Monitor Database Page - The Monitor Status Area


[ Top ]
Question: Why are there so many "Connection timeout" messages in Foxhound - Options - Display Diagnostics?

Answer: In some special circumstances (described here) the Foxhound Monitor will enter "Connection timeout" state when it can't connect to a target database for about 15 seconds.

After a minute or so (by default, described here), the Foxhound Monitor will try connecting again, and if the special circumstances persist you'll see another "Connection timeout" message, and another, and so on. These messages will appear about 1 minute and 15 seconds apart in Foxhound Options - Display Diagnostics:

1531 2010-04-13 11:10:20.221 Full Build 3659a 1000000003 202a3a(202eh1) Connection timeout for target DSN ... after 19.9s (timeout threshold is 15.0s; see Foxhound Options) - 1000000005
1532 2010-04-13 11:11:35.895 Full Build 3659a 1000000003 202a3a(202eh1) Connection timeout for target DSN ... after 15.2s (timeout threshold is 15.0s; see Foxhound Options) - 1000000046
1533 2010-04-13 11:12:51.696 Full Build 3659a 1000000003 202a3a(202eh1) Connection timeout for target DSN ... after 15.1s (timeout threshold is 15.0s; see Foxhound Options) - 1000000075

See also...
Foxhound Options - Connection Timeout
Foxhound Options - Timeout Retry
How do I see Foxhound diagnostics, errors and exceptions?
Why do I see so many "Timed out" messages on the Monitor display?


[ Top ]
Question: Why aren't more "Uninteresting Connections" being deleted by the Foxhound purge process?

Answer: An "Uninteresting Connection" is a connection that isn't doing anything and isn't preventing any other connection from doing anything.

In particular, it's a connection that

  • hasn't used any CPU time, issued any new requests, executed any commit or rollback operations or caused any pages to be written to the rollback log for a while,
  • isn't holding any locks, and

  • isn't blocking any other connections.

For example, if your Foxhound database contains a large amount of Monitor data for idle connections to a target database, check to see if those connections were holding any locks. If so, then the "Uninteresting Connections" purge criteria won't be satisfied; try using the "Purge all sample data: after 1 day ... 1 week ..." criteria instead.

See also...
The Foxhound Options Page - Purge Process


[ Top ]
Question: Why did Foxhound start automatically after I stopped it?

Answer:

One possibility is that your Foxhound database is being backed up on a regular basis by a scheduled task, and that task runs the $backup_foxhound1.bat command file which automatically starts the database if it isn't already running.

See also...
How do I backup my Foxhound database on a regular basis?
Foxhound Introduction - Backup and Restore


[ Top ]
Question: Why do I get an ALERT #28 - Long transaction when there are no connections running long transactions?

Answer: If Foxhound is running on one computer and the target database on another, and you see occasional false ALERT #28 - Long transaction messages, each one eventually followed by an ALL CLEAR #28 message, it is possible that the system clock is slowly drifting forward and then resetting on the computer running Foxhound.

Foxhound requires the CURRENT TIMESTAMP values from both computers, and in this one case (detecting a long transaction) Foxhound does not properly account for the difference in values.

This problem will be fixed in a future free upgrade of Foxhound. You will be able to download and apply that upgrade without losing any of your data.

See also...
The Alerts Criteria Page - Alert #28


[ Top ]
Question: Why do I see so many "Timed out" messages on the Monitor display?

Answer: When Foxhound tries to connect to the target database, and it doesn't get any response at all (success or failure) before the Foxhound Options - Connection Timeout period expires, it displays the "Timed out" message and waits for the Foxhound Options - Timeout Retry period before trying again.

Normally you will only see one "Timed out" message in the Monitor display even when many "Connection timout" exceptions are recorded in the Foxhound database.

Sometimes, however, Foxhound will get a failed response like "Database server not found" before the timeout period expires, and you will see alternating messages like this:

 7:45:42 AM   2m 31.0s   -- Timed out --  
 7:43:11 AM       0s     -- Timed out at --  
 7:43:11 AM     15.0s    -- Database server not found --  
 7:42:56 AM    1m 0.4s   -- Database server not found at --  
 7:41:56 AM   22m 40.1s  -- Timed out --  
 7:19:15 AM      .1s     -- Timed out at --  
 7:19:15 AM     15.0s    -- Database server not found --  
 7:19:00 AM    1m 0.7s   -- Database server not found at --  
 7:18:00 AM   2m 32.3s   -- Timed out --  
 7:15:27 AM      .1s     -- Timed out at --  
 7:15:27 AM     15.0s    -- Database server not found --  
 7:15:12 AM    1m 0.9s   -- Database server not found at --  
 7:14:11 AM   16m 22.3s  -- Timed out --  
 6:57:49 AM      .1s     -- Timed out at --  
One workaround is to increase the Foxhound Options - Connection Timeout period to one minute. That may give Foxhound enough time to consistently receive the failed response before the timeout period expires. It will also allow Foxhound to promptly connect to the target database when it becomes available.

If you are only monitoring one database, or if you are not experiencing any Foxhound performance issues related to long waits for connection failure responses, try using the "never timeout" setting.

See also...
Foxhound Options - Connection Timeout
Foxhound Options - Timeout Retry
How do I see Foxhound diagnostics, errors and exceptions?
Why are there so many "Connection timeout" messages in Foxhound - Options - Display Diagnostics?


[ Top ]
Question: Why does Foxhound issue Alert #1 - Database unresponsive immediately after Foxhound is started?

Answer: Foxhound does not actually issue Alert #1 right away, it waits for at least one minute (or whatever the Alert #1 criteria has been set to) after Foxhound is started.

Here is an example where it looks like the Alert #1 was issued right after the "Foxhound stopped" period ended. However, the timestamps show that the "Foxhound stopped" period ended at 6:53:15 AM but the Alert #1 wasn't issued until 6:55:26 AM:

6:55:39 AM   8.1s  .1s / .1s  2  ...
6:55:36 AM   ALL CLEAR - Alert #1: Foxhound has been unable to gather samples for 1m or longer.
6:55:31 AM   2m 16.2s  .1s / .1s  2  ...
6:55:26 AM   Alert #1: Foxhound has been unable to gather samples for 1m or longer.
6:53:15 AM   27.5s      -- Foxhound stopped --
6:52:47 AM   1h 6m 41s  -- Foxhound stopped at --

See also...
The Alerts Criteria Page


[ Top ]
Question: Why does Foxhound keep sending emails even though "Send Alert emails" is unchecked on the Foxhound Options page?

Answer: Try unchecking "Send Alert emails" on the Alerts Criteria page for the target database instead.

You can reach the Alerts Criteria page for each target database by going to the Monitor page for that database and clicking on the "Alerts Criteria" link at the top right. If you are monitoring multiple target databases, you have to go to the Alerts Criteria page for each database and uncheck "Send Alert emails" there.

There are four settings that appear on both the Foxhound Options page and the Alerts Criteria page

             Send Alert emails: x
  Email address(es) for Alerts: ...
            Use HTML in emails: x
Host[:port] for URLs in emails: localhost

The values on the Alerts Criteria page for each target database are the values that are used at runtime.

The values on the Foxhound Options page are default values used to fill in the Alerts Criteria page when monitoring is first started for a new target database. This is a one-time "fill in the values" operation for each target database; later changes to any of these four values on the Foxhound Options page will not affect any target database for which monitoring has already been started.

See also...
The Alerts Criteria Page
Foxhound Options - Email Settings


[ Top ]
Question: Why does the Foxhound post-upgrade process take so long?

Answer: The Foxhound database can grow very large when there are a lot of connections to the target databases, and when that sample data is maintained for a long time. All of that data must be copied from the old Foxhound database to the new one when you install a new version of Foxhound, and that process can take a long time.

See also...
How do I keep the Foxhound database file from growing so large?
How do I shrink the size of the Foxhound database?


[ Top ]
Question: Why doesn't the Foxhound backup process create the generation2 subfolder?

Answer: Here's the short answer: Look for two identical scheduled tasks and delete one of them.

You should also rename the generation1 subfolder to generation2 because that's the name it should have.

The database backup subfolders are stored here on Windows XP:

C:\Documents and Settings\All Users\Application Data\RisingRoad\Foxhound1\backup
and on Vista and Windows 7 they are stored here:
C:\ProgramData\RisingRoad\Foxhound1\backup


Here is the long answer:

The Foxhound backup process

All Programs - Foxhound1 - Tools - Backup Foxhound Database
is supposed to save the most recent three generations of backup files in three subfolders: generation1 (the oldest), generation2 and generation3 (the latest), which are stored here on Windows XP:
C:\Documents and Settings\All Users\Application Data\RisingRoad\Foxhound1\backup
On Vista and Windows 7 the three subfolders are stored here:
C:\ProgramData\RisingRoad\Foxhound1\backup
If you accidentally schedule two backup tasks to run at the same time using the technique described in How do I backup my Foxhound database on a regular basis? there will be a conflict. Here is a description of the symptoms and one possible cause:

If the Foxhound backup generation2 subfolder is missing, but generation1 and generation3 are present, and the generation1 folder contains the second-most-recent backup (which normally would be stored in generation2), it is possible that two instances of the Foxhound backup process were started at the same time. If that is the case, the backup_log.txt diagnostic trace file in the generation3 subfolder will show the overlap:

Thu 04/29/2010  1:00:00.33 ********************************* 
Thu 04/29/2010  1:00:00.33 *** Foxhound backup started 
Thu 04/29/2010  1:00:00.78 *** Starting dbeng11 if necessary... 
Thu 04/29/2010  1:00:00.78 ********************************* 
Thu 04/29/2010  1:00:00.78 *** Foxhound backup started 
Thu 04/29/2010  1:00:00.78 *** Starting dbeng11 if necessary... 
Thu 04/29/2010  1:00:02.11 *** Starting dbbackup... 
Thu 04/29/2010  1:00:02.14 *** Starting dbbackup... 
SQL Anywhere Backup Utility Version 11.0.1.2276
SQL Anywhere Backup Utility Version 11.0.1.2276
 (463407 of 462632 pages, 100% complete)
Transaction log truncated
Database backup completed
 (268235 of 267633 pages, 100% complete)
Transaction log truncated
Database backup completed
Thu 04/29/2010  1:06:22.96 *** Moving backup to the generation3 subfolder  
Thu 04/29/2010  1:06:23.13 *** Foxhound backup OK 

The Task Scheduler accessory in Windows Vista and Windows 7 makes it quite easy to accidentally create two copies of the same scheduled task in two different task folders:

Delete one of the scheduled tasks to eliminate the conflict.

You should also rename the generation1 subfolder to generation2 because that's the name it should have:

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


[ Top ]
Question: Why is Alert #1 - Database unresponsive issued and cleared with every sample gathered?

Answer:

Here's a quick workaround, to stop Foxhound from issuing so many Alert #1 - Database unresponsive messages...

Use the Alerts Criteria Page to increase the threshold for Alert #1 - Database unresponsive from 1 minute to some value larger than the time it takes the Foxhound Monitor to gather a sample (the "Interval" time shown on the Monitor page).

Here's the long answer...

When the target database server is heavily overloaded, Foxhound may take longer than one minute (or whatever the threshold is for Alert #1 - Database unresponsive) to gather a sample. In that case Foxhound will issue Alert #1 while it's waiting for the sample data to be returned, and then immediately issue an All Clear when it does get the data.

This is new behavior for Foxhound. Previously, Alert #1 messages were only issued if Foxhound failed to gather a successful sample. In this case, however, Foxhound isn't actually failing to gather samples, it's just taking a long time.

The change was made because it is important for you to know when your server is hopelessly overloaded as well as when it is completely unavailable. However, the multiple Alert - ALL CLEAR messages are annoying, and something will probably be done about that in the future.

The following image shows what "hopelessly overloaded" looks like. The target database server is using 64% of a four-core CPU, but the server computer is actually running at 100% CPU... it's also running a multi-threaded client application with 1003 database connections performing 7,400 database update transactions per second. The client application wants to do more, but everything is maxed out, and instead of recording a sample every 10 seconds, Foxhound is taking more than two minutes for each one. To make matters worse, Foxhound is also running on the server computer; in this case, the first step should be to move Foxhound and the client application to some other computer(s).

See also...
The Alerts Criteria Page


[ Top ]
Question: Why is Foxhound unresponsive when it starts?

Answer: This may be due to some problem that affects the normal ability of the Foxhound Monitor to reconnect to target database(s) in order to resume sampling when Foxhound is restarted. This is not an expected situation: even if Foxhound can't connect to the target databases it shouldn't become unresponsive.

In order to get Foxhound to respond so you can figure out what's going wrong, you can suppress the automatic reconnection process by starting Foxhound in "safe mode", also known as safe startup.

Here is an example of this scenario: A Foxhound Monitor session used the SQL Anywhere 11 ODBC driver to connect to a local SQL Anywhere 8 target database server on a Windows Vista system where no SQL Anywhere 8 ODBC driver software had been installed. Not only did Foxhound become unresponsive, but restarting Foxhound didn't help until sampling was stopped by using safe-mode startup.

See also...
How do I start Foxhound in "safe mode"?
How do I start Foxhound in "debug mode"?
How do I see Foxhound diagnostics, errors and exceptions?


[ Top ]
Question: Why is it called "unsetup" instead of "uninstall"?

Answer: The Foxhound installation process involves more than just an InstallShield / Windows Installer "setup" step, it includes a "post-setup" step. When you run the InstallShield / Windows Installer "uninstall" process, it only reverses the actions performed by the original "setup" step, not the "post-setup" command file...

That's why around here we call it "unsetup" instead of "uninstall".

The unsetup process uses the Microsoft Windows Installer command MsiExec.exe /X{B6CE87CB-2838-49AC-9E48-6E867BDD4B93} command to reverse the actions of the original Foxhound InstallShield setup process. The MsiExec.exe /X unsetup process

  • removes shortucts from Start menu,
  • deletes files that were copied to the hard drive by the original setup step, and
  • generally makes it possible to install Foxhound again.

The unsetup process does not affect any of the files that were moved or copied by the post-setup process. In particular, the unsetup process will not delete the Foxhound database. This fact makes it possible to upgrade an existing database by first running unsetup and then installing a new version of Foxhound.

If you want to completely remove Foxhound from your system, you have to run the unsetup process and then manually delete the Foxhound folder.

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

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

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.
How do I remove Foxhound from my system?


[ Top ]
Question: Why is the Alert #15 threshold still set at 10 incomplete file I/O operations, instead of the new default value of 256?

Answer: The factory setting for Alert #15 was changed from 10 to 256 incomplete file I/O operations in build 3677.

However, when you installed an earlier build of Foxhound, you became responsible for making any changes to Alerts Criteria settings stored for each target database, plus any changes made to the default settings. The data upgrade process to build 3677 or later only changed the factory settings and the extreme settings.

If you want to use the new Factory Settings for a target database, press the Restore Factory Settings button on the Alerts Criteria page for that database.

If you then want those settings to be used as the defaults for future target databases, press Save Settings as Default.

There are four kinds of Alerts Criteria settings:

  • One set for each target database, copied from the default settings when you start sampling that database and under your control after that,
  • the default settings, set to the factory settings with the first installation and under your control after that via Save Settings as Default,

  • the factory settings, delivered with each installation and available for you to copy to the current target database settings via Restore Factory Settings, and

  • the extreme settings, delivered with each installation and available for you to copy to the current target database settings via Use Extreme Settings.

See also...
The Alerts Criteria Page - Alert #15


[ Top ]
Question: Why is the "bytes per row" larger than the actual amount of data in each row?

Answer: The bytes per row amount is based on the disk space used for table data, extension and index pages. It doesn't include free pages in the database, but it does count free space in pages allocated to this table. As such, this number is usually larger, sometimes quite a bit larger, than the average number of bytes a query might return. To avoid showing inflated numbers for very small tables, the bytes per row is only shown for tables with at least 2 data or 2 extension pages.

See also...
The Display Schema Page - The Tables List


[ Top ]
Question: Why is the "Choose a DSN:" drop down list empty?

Answer: The delivered file rroad1.dll may be missing from the folder containing Foxhound executables. To confirm this, look at Foxhound Options - Display Diagnostics to see if there is a message "Could not load dynamic library ' ... \rroad1.dll'".

See also...
Could not load dynamic library ' ... \rroad1.dll'
How do I see Foxhound diagnostics, errors and exceptions?


[ Top ]
Question: Why won't the sample connection strings on the String tab work on Vista or Windows 7?

Answer: The samples on the String tab are coded for Windows XP, not Vista or Windows 7. For example, the path for the DBF parameter in the SQL Anywhere 11 Demo looks like this for XP:

DBF=C:\Documents and Settings\All Users\Documents\SQL Anywhere 11\Samples\demo.db
like this for Windows Vista:
DBF=C:\Users\Public\Documents\SQL Anywhere 11\Samples\demo.db
and this for Windows 7:
DBF=C:\Users\Public\Public Documents\SQL Anywhere 11\Samples\demo.db

[ Top ]
Question: Why won't the target database auto-start when Foxhound tries to connect to it?

Answer: The answer depends on whether Foxhound is connecting via the DSN tab or the String tab.

If you are connecting via the DSN tab Foxhound uses AUTOSTART=NO and AutoStop=NO even if you have specified something different inside the ODBC DSN. The reason is this: In general, folks don't want Foxhound auto-starting and auto-stopping their databases, they want that functionality reserved for their applications.

In this case, you will have to start the database before trying to get Foxhound to connect to it. For example, you can use the ODBC Administrator Test Connection button, or run your application to auto-start the database, or start the engine via a command-line script (batch file).

If you are connecting via the String tab Foxhound also defaults to AUTOSTART=NO and AutoStop=NO, but you can override that with an explicit AUTOSTART=YES if you want.

See also...
The Foxhound Menu Page - The DSN Tab


This page was last generated on October 24, 2011.      Foxhound 1.1 FAQ      Foxhound Home      RisingRoad      Breck.Carter@gmail.com