Foxhound 1.2 FAQ
Loading
Foxhound 1.2 FAQ Home      Foxhound Home      RisingRoad      Breck.Carter@gmail.com     


Why ... ? (general)

Why are different colors used to highlight identical values on the Monitor page?
Why are my Alert emails garbled?
Why are the "User Id:" and "Password:" values redisplayed after I blank them out on the Foxhound Menu page?
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 are values on the Peaks line on the History page sometimes smaller than the values shown on the Top Sample line?
Why aren't more "Uninteresting Connections" being deleted by the Foxhound purge process?
Why can't I see my ODBC DSNs any more on the DSN tab of the Foxhound Menu page?
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 do the Monitor and History pages show samples in different orders?
Why does Foxhound issue Alert #1 - Database unresponsive immediately after Foxhound is started?
Why does Foxhound "lock up" and become unresponsive?
Why does it still say "Status: ...stopping" after the Stop Sampling button was clicked?
Why does it take so long for Foxhound to start a large number of Monitor sampling sessions?
Why does my target database engine start up again right after I shut it down?
Why does the Delete All Sessions button display "- skipped, currently starting or running" after I click on Stop All Sessions?
Why does the Facts & Figures display "O/S: Windows Vista Build 7601 Service Pack 1" for a SQL Anywhere 9 database running on Windows 7?
Why does the Foxhound post-upgrade process take so long?
Why doesn't an upgrade with FOXHOUND1UPGRADE = yyyymmdd or nnn remove old Alerts?
Why doesn't sampling stop when I close the Foxhound Monitor display page?
Why doesn't the display scroll by exactly the number of lines I requested on the History Page?
Why doesn't the Foxhound backup process create the generation2 subfolder?
Why doesn't the Foxhound unsetup process completely remove the Foxhound1 installation folder?
Why doesn't the Locks Held number in the Most Recent or Top Sample section agree with the total of the values shown in the Connections section?
Why doesn't the new Global Database Id value show up when I change it?
Why doesn't the purge process remove old Alerts?
Why doesn't the "Send Test Email" button respond?
Why doesn't the Unsetup Foxhound process delete all the shortcuts in All programs - Foxhound1?
Why don't I get emails for the Alerts that appear on the Monitor page?
Why don't the Alerts disappear from the Monitor tab on the Foxhound Menu page when the All Clear lines appear on the Monitor page?
Why don't the connection strings show up on the String tab of the Foxhound Menu page after they were created on the Monitor Options page?
Why is Alert #1 - Database unresponsive issued and cleared with every sample gathered?
Why is Alert #14 - Waiting requests issued before the threshold is reached?
Why is Alert #27 - Connection CPU issued when the overall server CPU Time is lower than the Alert 27 threshold?
Why is Foxhound taking so long to gather samples?
Why is Foxhound unresponsive when it starts?
Why is it called "unsetup" instead of "uninstall"?
Why is scrolling stuck in the History display?
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 is the CPU Time % so large for an inactive database?
Why is the Force Default Settings On All Targets button disabled on the Monitor Options page?
Why is the ODBC Administrator button disabled on the DSN tab of the Foxhound Menu page?
Why is the Restore Default Settings button disabled on the Monitor Options page?
Why is the Save Settings As Default button disabled on the Monitor Options page?
Why is the Stop Foxhound Engine button disabled on the Foxhound Options page?
Why is the temporary DBSPACE file size shown in the Facts & Figures section larger than the Temp Space amount shown on the Monitor page?
Why isn't an Alert #1 - Database unresponsive issued when Foxhound can't connect to the target database?
Why isn't the new value of the FOXHOUND1 environment variable available immediately after Foxhound is installed?
Why isn't the purge process deleting anything?
Why won't sampling start?
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 different colors used to highlight identical values on the Monitor page?

Answer:

Some figures, like Sample Time, are rounded. This occasionally results in different color highlighting being used for values that look the same.

For example, if the largest sample time was 140 msec followed by two samples of 93 msec and 63 msec, they would all be rounded to display as 0.1s. The line with the 140 msec would be highlighted as the peak, the line with 93 msec would be highlighted orange because it is at least 50% as large as the peak (140 msec), and the line with 63 msec would not be highlighted at all because it is less than 50% of the peak.

This is not a common problem, and it only affects small values.


[ 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 Monitor Options Page - Send alert emails


[ 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 are values on the Peaks line on the History page sometimes smaller than the values shown on the Top Sample line?

Answer:

In the following image the Totals for Cache Panics is 2 but the corresponding Peaks value is empty.

The reason is that the Totals value is a cumulative server property whereas the Peaks value is computed by Foxhound, and in this case sampling was started after the two cache panics had occurred.

Another explanation could have been that the Reset Peaks button had been pressed after the two cache panics had occurred.


[ 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 can't I see my ODBC DSNs any more on the DSN tab of the Foxhound Menu page?

Answer:

If the Foxhound engine is started as a service it will only be able to use System DSNs, not User DSNs.

Try using the String tab of the Foxhound Menu page instead of the DSN tab.

Alternatively, you can delete each User DSN and recreate it as a System DSN.


[ 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 Monitor Options 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 do the Monitor and History pages show samples in different orders?

Answer:

The timestamps for some samples like "Sampling stopped" and "Database not found" are recalculated over time, as time marches on but the condition remains the same. In some cases, this may cause the display order of these samples to change over time by just a little bit; i.e., two samples may exchange position, and for a short time they Monitor and History display orders may be different.

Here's an example of the History page showing two CANCELLED Alert messages after a "Sampling stopped" line:

5:48:40 AM		 CANCELLED - Alert #26: The number of connections has reached 1,000 or more for 10 or more recent samples.
5:48:40 AM		 CANCELLED - Alert #1: Foxhound has been unable to gather samples for 1m or longer.
5:48:40 AM	 11.9s 	 -- Sampling stopped --
5:48:28 AM	 - 	 -- Sampling stopped at --
5:48:28 AM	 13h 35m 44s 	 -- Foxhound stopped --
Nov 27 4:12:44 PM	 - 	 -- Foxhound stopped at --
Nov 27 4:12:44 PM	 2.3s 	 -- Sampling stopped by Safe Startup --
Nov 27 4:12:41 PM	 2.6s 	 -- Sampling stopped by Safe Startup at --

Here's what the Monitor page displayed instead; the "Sampling stopped" line appears after the two CANCELLED Alert messages:

5:51:24 AM	 2m 55.6s 	 -- Sampling stopped --
5:48:40 AM		 CANCELLED - Alert #26: The number of connections has reached 1,000 or more for 10 or more recent samples.
5:48:40 AM		 CANCELLED - Alert #1: Foxhound has been unable to gather samples for 1m or longer.
5:48:28 AM	 - 	 -- Sampling stopped at --
5:48:28 AM	 13h 35m 44s 	 -- Foxhound stopped --
Nov 27 4:12:44 PM	 - 	 -- Foxhound stopped at --
Nov 27 4:12:44 PM	 2.3s 	 -- Sampling stopped by Safe Startup --
Nov 27 4:12:41 PM	 2.6s 	 -- Sampling stopped by Safe Startup at 

The reason is that the History page isn't refreshed automatically, so the "Sampling stopped" line doesn't move like it does on the Monitor page when its timestamp is recalculated.

Here is what the History page looked like after it was refreshed; everything is in the same order as the Monitor page:

5:52:31 AM	 4m 3.0s 	 -- Sampling stopped --
5:48:40 AM		 CANCELLED - Alert #26: The number of connections has reached 1,000 or more for 10 or more recent samples.
5:48:40 AM		 CANCELLED - Alert #1: Foxhound has been unable to gather samples for 1m or longer.
5:48:28 AM	 - 	 -- Sampling stopped at --
5:48:28 AM	 13h 35m 44s 	 -- Foxhound stopped --
Nov 27 4:12:44 PM	 - 	 -- Foxhound stopped at --
Nov 27 4:12:44 PM	 2.3s 	 -- Sampling stopped by Safe Startup --
Nov 27 4:12:41 PM	 2.6s 	 -- Sampling stopped by Safe Startup at --


[ 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 Monitor Options Page


[ Top ]
Question: Why does Foxhound "lock up" and become unresponsive?

Answer:

One reason may be that a database monitor session is repeatedly trying to connect to a target database that is not available. In this case the workaround is to switch to the Monitor tab of the Foxhound menu, and click on the Cancel button to stop Foxhound from repeatedly trying to connect to that database.


[ Top ]
Question: Why does it still say "Status: ...stopping" after the Stop Sampling button was clicked?

Answer:

If the situation persists, check to see if the evaluation period has expired in which case the entire sampling process is disabled. In this case, "Status: ...stopping" will change to "Stopped" when an Evaluation Renewal, Basic or Extended activation key is applied.

If that isn't the reason, and the situation persists, please report the problem.

See also...
How do I renew the Evaluation Edition of Foxhound?
How do I report unexpected errors and exceptions?


[ Top ]
Question: Why does it take so long for Foxhound to start a large number of Monitor sampling sessions?

Answer:

After starting each sampling session Foxhound waits 2 seconds before starting the next one in order to prevent performance problems within Foxhound itself.

For example, if Foxhound itself is shut down and restarted, and there are 100 separate target databases for it to monitor, it will take at least 99 * 2 seconds = 3 minutes and 18 seconds for Foxhound to restart all 100 monitor sessions.


[ Top ]
Question: Why does my target database engine start up again right after I shut it down?

Answer:

If all of the following conditions are true

  • Foxhound is set up to monitor that target database,

  • the DSN or connection string used by Foxhound to connect to that database includes the AUTOSTART=YES connection parameter,

  • the target database runs on the same computer as Foxhound,

then Foxhound will keep trying to connect to the target database after you have shut it down, and the AUTOSTART=YES connection parameter will cause that database to be automatically restarted.

Even if you shut Foxhound down before stopping your target database, as soon as you start Foxhound again it will automatically restart your target database.

Here are two solutions:

  • Remove the AUTOSTART=YES connection parameter from the DSN or connection string, or

  • tell Foxhound to stop sampling that database.


[ Top ]
Question: Why does the Delete All Sessions button display "- skipped, currently starting or running" after I click on Stop All Sessions?

Answer:

The message will be changed to "- skipped, not stopped yet" in a future release.

It takes a while for all the sessions to stop, and they all have to be stopped before the Delete All Sessions button will delete them. The Delete All Sessions button doesn't "queue up" requests to delete sessions, so you have to wait.


[ Top ]
Question: Why does the Facts & Figures display "O/S: Windows Vista Build 7601 Service Pack 1" for a SQL Anywhere 9 database running on Windows 7?

Answer:

That's what the SQL Anywhere 9 engine returns from a call to SELECT PROPERTY ( 'PlatformVer' ) instead of "Windows 7 ...".


[ 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 an upgrade with FOXHOUND1UPGRADE = yyyymmdd or nnn remove old Alerts?

Answer:

That's a Foxhound design decision: old Alerts are preserved when FOXHOUND1UPGRADE = yyyymmdd or nnn is specified.


[ Top ]
Question: Why doesn't sampling stop when I close the Foxhound Monitor display page?

Answer:

The Foxhound Monitor sampling process runs in the background, separately from the Monitor display page. You can stop and start the sampling process by pressing buttons on the Monitor display page, but opening and closing the Monitor display page has no effect.


[ Top ]
Question: Why doesn't the display scroll by exactly the number of lines I requested on the History Page?

Answer:

Alert, All Clear and Cancelled lines aren't counted in the scroll amounts. For example, if you clicked on "« 100" and there are two Alert lines displayed among the newer 100 samples, the display will scroll by 102 lines.


[ 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 doesn't the Foxhound unsetup process completely remove the Foxhound1 installation folder?

Answer:

The Foxhound Installshield unsetup process only removes files and shortcuts that were installed by the original Foxhound Installshield setup process.

Other files which are created by the post-setup or other later processes are not removed. The foxhound1.db.ORIGINAL_COPY is an example of a file created (via the COPY command) during the post-setup process, so it isn't removed by the unsetup. However, it will be overwritten by the next post-setup process.


[ Top ]
Question: Why doesn't the Locks Held number in the Most Recent or Top Sample section agree with the total of the values shown in the Connections section?

Answer:

The Locks Held at the database level often disagrees with the total of the Locks Held at the connection level. The values are captured at slightly different moments in time, and locks are often obtained and released at a very high rate.


[ Top ]
Question: Why doesn't the purge process remove old Alerts?

Answer:

That's a Foxhound design decision: old Alerts are preserved by the purge process.


[ Top ]
Question: Why doesn't the Unsetup Foxhound process delete all the shortcuts in All programs - Foxhound1?

Answer:

On rare occasion some of the Foxhound shortcuts may still be visible even after Unsetup Foxhound has deleted them; if you try to delete them manually via right mouse - Delete a "not found" message is displayed, and if you reboot the shortcuts will no longer be visible.


[ Top ]
Question: Why don't I get emails for the Alerts that appear on the Monitor page?

Answer:

Most Alert settings are specific to each target database, including the "Send Alert emails:" and "Email address(es) for alerts:" fields on the Monitor Options page.

If you filled in or changed the [Default Settings] on the Monitor Options page after sampling was started for a target database, those changes won't automatically apply to that target database, only to new target databases when sampling is started for them. When you have a large number of target databases, it is easy to forget to fill in the Monitor Options page for all the right targets.

You can either use the Switch Display button on the Monitor Options page to go and fix the settings for the existing target database, or use the Force Default Settings On All Targets button to "publish" the [Default Settings] to all existing target databases.

Also check the Foxhound Options page for the global email settings:

  • Make sure the "Enable Emails" button is checked in the Global Overrides section.

  • Make sure the "SMTP Sender:" and other fields are filled in in the Global Email Settings section.


[ Top ]
Question: Why don't the Alerts disappear from the Monitor tab on the Foxhound Menu page when the All Clear lines appear on the Monitor page?

Answer:

Check to see if you have pressed the Disable Refresh button on the Monitor tab on the Foxhound Menu page.

If so, press the Refresh Display or Enable Refresh button to update the Monitor tab display.


[ Top ]
Question: Why don't the connection strings show up on the String tab of the Foxhound Menu page after they were created on the Monitor Options page?

Answer:

If you don't see your new connection strings on the String tab of the Foxhound Menu page right away after you used the Create Connection Strings button on the Monitor Options page, try using the browser refresh button to force the Foxhound Menu page to be redisplayed.


[ 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 Monitor Options 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 Monitor Options Page


[ Top ]
Question: Why is Alert #14 - Waiting requests issued before the threshold is reached?

Answer:

The default threshold for Alert #14 is defined as "The number of requests waiting to be processed has reached 5 or more for 10 or more recent samples."

In that definition, "10 or more recent samples" is not the same as "10 or more consecutive samples". Here's how Foxhound counts "recent samples" for Alert #14:

  • Samples at or above the threshold count as +1 recent samples.

  • Samples below the threshold count as -2 recent samples.

Here's why: Just because one single sample fell below 5 waiting requests doesn't mean the counting of "recent samples" must start over again from zero.

In the following example Alert #14 was issued after the threshold count of 5 was reached after only 3 "consecutive samples" because the number of "recent samples" was much higher:

                   Active Req,
                     Max Req,
    Samples   ...  Waiting Req  ...
 6:12:52 AM   Alert #14: The number of requests waiting to be processed has reached 5 or more for 10 or more recent samples. 
 6:12:51 AM   ...  4 / 20 / 38  ...
 6:12:41 AM   ...  4 / 20 / 10  ...
 6:12:31 AM   ...  4 / 20 / 11  ...
 6:12:21 AM   ...  4 / 20 / 4   ...
 6:12:11 AM   ...  4 / 20 / 15  ...
 6:12:01 AM   ...  4 / 20 / 13  ...
 6:11:51 AM   ...  3 / 20 / 10  ...
 6:11:41 AM   ...  4 / 20 / 30  ...
 6:11:31 AM   ...  4 / 20 / 4   ...
 6:11:21 AM   ...  3 / 20 / 18  ...
 6:11:11 AM   ...  3 / 20 / 14  ...
 6:11:01 AM   ...  4 / 20 / 15  ...
 6:10:51 AM   ...  3 / 20 / 18  ...
 6:10:41 AM   ...  4 / 20 / 17  ...
 6:10:31 AM   ...  4 / 20 / 20  ...
 6:10:21 AM   ...  3 / 20 / 24  ...
 6:10:11 AM   ...  4 / 20 / 2   ...
 6:10:01 AM   ...  3 / 20 / 16  ...
 6:09:51 AM   ...  4 / 20 / 7   ...
 6:09:41 AM   ...  4 / 20 / 9   ...
 6:09:31 AM   ...  4 / 20 / 6   ...
 6:09:21 AM   ...  4 / 20 / 11  ...


[ Top ]
Question: Why is Alert #27 - Connection CPU issued when the overall server CPU Time is lower than the Alert 27 threshold?

Answer:

Here is an example of an Alert #27 (Connection CPU) that was displayed when the overall server CPU Time was only 7.2%:

May 13 1:51:54 PM  Alert #27: The approximate CPU time has reached 25% of elapsed time or more for at least one connection during 10 or more recent samples.

Here's the explanation:

  • There were 4 CPUs in use, and Foxhound calculates the overall server CPU Time figure of 7.2% as the fraction of the total CPU capacity available. If only 1 CPU had been used then (all other things being equal) the overall server CPU Time would have been 4 * 7.2 = 28.8%.

  • The "approximate CPU time" referred to in Alert #27 is not the overall server CPU Time, it is the CPU time spent at a connection level.

  • The Alert #27 threshold of 25% is calculated as a fraction of the clock-on-the-wall time, not the total CPU capacity available. It is possible for this number to exceed 100% for two reasons: measurement errors (that's why it is called "approximate"), and intra-query parallelism (where SQL Anywhere uses two or more CPUs to process a single query).

  • It is not necessary for a single connection to exceed the Alert #27 threshold during 10 or more recent samples, it is only necessary for at least one connection to do so during each of the samples. In other words, the heavy CPU usage may be alternating among two or more connections.


[ Top ]
Question: Why is Foxhound taking so long to gather samples?

Answer:

The "Interval" times on the Monitor page should be 10 seconds or close to it, and the "Sample Times" should be less than 1 second

Here is an example where Foxhound is taking longer than normal to gather samples:

                         Heartbeat, 
                          Sample 
     Samples  Interval     Times  
  5:40:56 AM   14.3s    .1s / 13.2s
  5:40:42 AM   12.3s    .1s / 11.3s
  5:40:30 AM   15.9s    .1s / 14.9s

Have a look at the "SPs are OK:" field in the Monitor Status Area at the top of the Monitor page.

If it is showing SPs are OK: NNN or something other than SPs are OK: YYY, try to ensure that the Foxhound's three stored procedures for gathering performance statistics are installed on the target database; see Connecting to Target Databases.


[ 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 CPU Time % so large for an inactive database?

Answer:

The CPU Time % is for the server, not the database. If the server is running more than one database, the CPU Time % includes the time spent by the server on all the databases.


[ Top ]
Question: Why is the Force Default Settings On All Targets button disabled on the Monitor Options page?

Answer:

It is disabled when the [Default Settings] are not currently displayed.

To enable the Force Default Settings On All Targets button, use the Switch Display button to switch to the [Default Settings].


[ Top ]
Question: Why is the ODBC Administrator button disabled on the DSN tab of the Foxhound Menu page?

Answer:

You can only use ODBC Administrator button on the DSN tab of the Foxhound Menu if Foxhound is running on the same computer as the web browser; otherwise, the button is disabled.

This restriction is a practical one: The ODBC Administrator button starts the ODBC Administrator on the same computer as the web browser, and it only has access to DSNs located on that local computer. If Foxhound is running on some other computer on the network, it can only use DSNs located on that other computer, which makes the ODBC Administrator button on the local computer useless... and that's why it is disabled.

Workaround: Use the String tab of the Foxhound Menu to create and edit connection strings, instead of using the DSN tab. The connection strings on the String tab are available to you for editing via a web browser running on a different computer from Foxhound, and they are stored inside the Foxhound database so they are available to Foxhound for making connections to target databases.


[ Top ]
Question: Why is the Restore Default Settings button disabled on the Monitor Options page?

Answer:

It is disabled when the [Default Settings] are already being displayed.

To cancel any changes you have made on the Monitor Options page, close the page without pressing any of the Save buttons.

To enable the Restore Default Settings button, use the Switch Display button to switch to a target database rather than [Default Settings].


[ Top ]
Question: Why is the Save Settings As Default button disabled on the Monitor Options page?

Answer:

It is disabled when the [Default Settings] are currently displayed.

To save any changes you have made on the Monitor Options page, press one of the various Save buttons.

To enable the Save Settings As Default button, use the Switch Display button to switch to a target database rather than [Default Settings].


[ Top ]
Question: Why is the Stop Foxhound Engine button disabled on the Foxhound Options page?

Answer:

You can only use Stop Foxhound Engine button on the Foxhound Options page if Foxhound is running on the same computer as the web browser; otherwise, the button is disabled.

This restriction is the result of a design decision to limit remote administration of Foxhound.


[ Top ]
Question: Why is the temporary DBSPACE file size shown in the Facts & Figures section larger than the Temp Space amount shown on the Monitor page?

Answer:

The Facts & Figures section shows the file size whereas the Monitor page shows how much of that space is currently used.


[ Top ]
Question: Why is scrolling stuck in the History display?

Answer:

Here is an example where scrolling may appear to be stuck on the History page; the top line shows that Foxhound had been stopped for over three days as of 9:09:20 AM on September 4:

       9:09:20 AM  3d 17h 3m 43s  -- Foxhound stopped --
Aug 31 4:05:37 PM  3.1s           -- Foxhound stopped at --

If you try to scroll to an earlier sample by one "Day »" Foxhound won't do anything because there were no samples recorded on September 3.

Try clicking on a different scroll amount (e.g., "1 sample »") or click on one of the sample lines before the gap (e.g., the "Aug 31 4:05:37 PM" line).


[ 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 Monitor Options 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 isn't an Alert #1 - Database unresponsive issued when Foxhound can't connect to the target database?

Answer:

It is a design decision to not issue Alert #1 - Database unresponsive when Foxhound has never been able to connect to a target database and collect a sample.

This situation typically arises when Foxhound is attempting to connect for the first time but cannot because of some problem such as "Specified database not found".

In particular, Foxhound will not issue an Alert #1 unless it can find one of the following:

  • At least one successful sample recorded earlier for this database,

  • a "Sampling stopped" condition recorded earlier for this database, or

  • a "Foxhound stopped" condition recorded earlier.


[ Top ]
Question: Why isn't the new value of the FOXHOUND1 environment variable available immediately after Foxhound is installed?

Answer:

The FOXHOUND1 environment variable may not be properly set by the InstallShield setup until you (a) reboot or (b) open and close Environment Variables in Control Panel. If necessary, you can reboot to put the new value into effect, or you just use Control Panel to display the environment variables which seems to have the same effect:

Start 
  - Control Panel 
    - System 
      - Advanced system settings 
        - Environment Variables... 
At this point, you can just click OK to close the Environment Variable window, then OK to close the System Properties window, and the FOXHOUND1 environment variable should be set OK. You can also go further and check the actual value:
Start 
  - Control Panel 
    - System 
      - Advanced system settings 
        - Environment Variables... 
          - System variables 
              - select FOXHOUND1 
              - verify that it contains D:\Foxhound1\
              - if not, click Edit... and fix it.

See also...
What environment variables are used by Foxhound?


[ Top ]
Question: Why isn't the purge process deleting anything?

Answer:

Here are some possible explanations:

  • The "after 1 day / 1 week / ..." calculations for Purge all sample data: are based on the most recent successful sample, not the current timestamp. That means the most recent "1 day / 1 week / ..." worth of successful samples will be preserved if sampling is turned off or stops for some other reason. It also means that if there are no successful samples, nothing is purged.

  • Safe mode may be on.

  • The evaluation period may have expired.

See also...
Why aren't more "Uninteresting Connections" being deleted by the Foxhound purge process?
How do I tell if Foxhound has been started in safe mode?
What is "safe mode"?
How do I renew the Evaluation Edition of Foxhound?


[ Top ]
Question: Why won't sampling start?

Answer:

Check to see if you have started Foxhound in "safe mode".

If so, shut down Foxhound, delete the startup.txt file, and start Foxhound again.

See also...
How do I tell if Foxhound has been started in safe mode?
How do I start Foxhound in "safe mode"?


[ 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 February 26, 2012. Foxhound 1.2 FAQ Home      Foxhound Home      RisingRoad      Breck.Carter@gmail.com