Answer: Foxhound is two products in one: it is both a database monitor and a schema troubleshooter for
A database monitor is a computer program that measures the activity of a database management system and
displays those measurements in a meaningful way, so that you can easily see that everything's OK or
quickly learn about problems and threats to performance and availability.
A monitor can also send email alerts when something goes wrong.
A schema troubleshooter is a computer program that performs a static analysis of the tables, columns,
indexes, foreign key relationships and other objects in the database, displays those objects in a way that's
easy to understand and easy to navigate, together with various facts, figures and curiosities which may be
problems that need attention.
The Database Monitor and History pages have been enhanced to allow you to specify
how the Connection section is sorted.
The up or down arrow to the left of a single column title in the Connection section
indicates that entries are sorted in ascending or descending order by
that column. Click on that column title to change the
direction of that sort (ascending to or from descending), or click on
a different column title to sort the entries by that column.
The tie-breaker sort column
is Conn #; if multiple entries in this section have the same value in the selected
sort column, those entries are sorted in ascending order by Connection Number.
Alert emails have been enhanced by sorting the current connections section in an order that is
relevant to the alert condition.
For example, the email for Alert 28 - Long transaction will show this in the
title line for the Connection section:
(sorted in descending order by the "Transaction Running Time" column)
Here's the full list:
Connection Sort Order
Connections Sorted On
1 - Database unresponsive
2 - Long heartbeat
3 - Long sample time
4 - CPU usage
5 - Database disk space
6 - Temp disk space
7 - Log disk space
8 - Other disk space
9 - Arbiter unreachable
10 - Partner unreachable
11 - HA failover
12 - HA mode change
13 - File fragmentation
14 - Waiting requests
15 - Incomplete I/Os
16 - I/O operations
17 - Checkpoint urgency
18 - Recovery urgency
19 - Cache size
20 - Cache satisfaction
21 - Temp file usage
22 - Conn temp file usage
23 - Blocked connections
24 - Conn blocking others
25 - Locks
26 - Connections
27 - Connection CPU
28 - Long transaction
Transaction Running Time
29 - Cache panics
The Global Database Id value is now displayed in more places,
if it is set to a non-default value in the target database.
This makes it easier to tell different remote databases apart
in a replicating or synchronizing environment:
Facts & Figures title line
Database-level Curiosities title line
Table and Column name list title lines
CREATE TABLE and CREATE VIEW title lines
The Foxhound License Agreement
has been simplified and rewritten in the style of the original
Borland "Just like a book" license agreement.
The Display Schema CREATE VIEW display has been enhanced to behave like the CREATE TABLE display:
when you click on a column name in the alphabetical column list in the left frame, not only
does the CREATE VIEW containing that column open in the right frame, but it is scrolled down
to the specific column. Previously, the CREATE VIEW appeared but it was not scrolled down to the column.
The Foxhound Options - Export Samples functionality has been enhanced to include information about Alerts:
The "Frequently Asked Questions" section of the Foxhound website has been updated:
The Global Database Id value is displayed on the Monitor and Display Schema pages, as well as
in Alert emails, if it is set to a non-default value in the target database.
This makes it easier to tell different remote databases apart
in a replicating or synchronizing environment.
The maximum number of active connections displayed on the Monitor page has been reduced
from 100 to 10 because a long dynamically-refreshed list is not very usable.
You may use the manually-refreshed History page to see more connections.
The "Last Statement" column has been moved to a separate line in the Connections section
of the Monitor and History pages. This makes the Connections display more readable by reducing
the amount of left-right scrolling required.
It also makes it less likely the Last Statement will be wrapped.
The Monitor and History displays now show dashes "-" for all omitted column values instead of empty spaces.
This makes it clear which values are not available or not applicable, and it also makes the resulting text somewhat easier
to read when you use copy-and-paste. For example, the "CPU Time" percentage appears as a dash "-" for the first
sample because it can only be calculated for second and later samples.
Note: This use of dashes "-" does not apply to columns which have been entirely omitted because
the data is not available for the version of SQL Anywhere being used for the target database;
e.g., the "CPU Time" column does not appear at all for version 5 and 6 target databases.
The rules governing the Foxhound installation, activation and data upgrade processes have been relaxed to allow upgrading from Beta to Full and
vice versa when installing a new build to replace an old one. Your data will be upgraded and copied to the
new Foxhound database as long as the new build number is greater than or equal to the old build. This means that
you won't lose any data when Foxhound goes GA (Generally Available) and you install a new build of Foxhound and activate it with Full functionality,
you won't lose any data when you try out future Beta builds after activating Foxhound with Full functionality.
you may have to obtain a new (free) registration key to switch back to Full functionality after testing a Beta build.
The following bug has been fixed: When sampling was started after it was stopped by the
"safe startup" process, the first sample
was sometimes incorrectly shown as occurring between the "-- Sampling stopped by Safe Startup at --" and
"-- Sampling stopped by Safe Startup --" entries:
5:42:55 AM 7m 17.4s -- Sampling stopped by Safe Startup --
5:42:06 AM 0s 0s / 0s 1 1 / - / - 1 / 100 / - ...
5:35:38 AM .5s -- Sampling stopped by Safe Startup at --
The following bug has been fixed: Alert #20 was issued for every target database running on SQL Anywhere version 5.5 even though
the information required to calculate cache satisfaction is not available for that version. A value of zero is no longer assumed
and the following Alert is no longer issued for target databases running on version 5.5:
Alert #20: The cache satisfaction (hits/reads) has fallen to 90% or lower for 10 or more recent samples.
The following bug has been fixed: When Foxhound was stopped and restarted, a successful sample
was sometimes incorrectly shown as occurring between the "-- Foxhound stopped at --" and
"-- Foxhound stopped --" entries:
8:23:36 AM 10.4s 0s / .3s ...
8:23:26 AM 59.2s -- Sampling stopped by Safe Startup --
8:22:27 AM 1.6s -- Sampling stopped by Safe Startup at --
8:22:25 AM 14m 25.7s -- Foxhound stopped --
8:08:01 AM 10.6s 0s / .1s ...
8:07:59 AM - -- Foxhound stopped at --
8:07:50 AM 10.0s 0s / 0s ...
The Alerts Criteria page has been fixed so the Restore Factory Settings button no longer
wipes out the values you've put in the following fields:
Send Alert Emails
Use HTML, Host[:port]
The Foxhound Options page has been fixed so it no longer
ignores changes you make to the "Show the Help frame on the right side by default" field.
The "Frequently Asked Questions" section of the Foxhound website has been updated:
Answer: More support for materialized views has been added. In particular, the "Largest tables" has been
renamed "Largest tables and materialized views", and materialized views are included in various
counts, rankings and curiosities:
bytes per row
relative index space percentage of table space
view column counts
index column counts
The ALTER VIEW ... DISABLE statement is now shown for disabled views.
The $post_setup.bat file has been optimized to MOVE instead of XCOPY the new Foxhound database
to speed up the installation process when the existing Foxhound database is very large.
The $backup_foxhound1.bat file has been rewritten to solve several problems. In particular, the
backup subfolders are "rotated" (deleted, renamed) only if the backup succeeds to prevent the oldest backup
from being deleted when something goes wrong and a new backup is not created.
The following options have been added to the Foxhound database startup commands in order to limit
cache growth and to eliminate the time wasted by the cache warming process after a large Foxhound database
has been upgraded: -ch 25p -cr-
Note that for an upgraded Foxhound database this change will only affect the "Restore Factory Settings" values.
It does not affect the "Restore Default Settings" or the settings used for any new or existing monitor sessions.
To put the new default into more widespread use you must change and save the settings yourself.
For a new Foxhound database (not upgraded) this change affects both the "Restore Factory Settings" and "Restore Default Settings" as well as the
initial values used for new monitor sessions.
The background Foxhound database purge process has been changed to run more often but do less work each time it runs, in an effort to keep the purge
from affecting foreground Foxhound performance when deleting gigabytes of sample data. In particular, the purge now runs
every 20 minutes instead of every hour, and is limited in the number of samples it can delete each time it runs.
This means several runs of the purge process may be required to delete all the old data,
and the amount of free space in the Foxhound database may not grow as fast as might otherwise be expected.
The following bug has been fixed: When sampling is started after it has been stopped for a while, the first sample
is sometimes incorrectly shown as occurring between the "-- Sampling stopped at --" and "-- Sampling stopped --" entries:
Answer: There is improved support for shared global temporary tables in the Display Schema function, including the Facts & Figures section.
There is improved support for materialized views in the Display Schema function. In particular, row counts, space usage and bytes per row are displayed for materialized views, and
CREATE INDEX and ALTER MATERIALIZED VIEW statements are generated where necessary to fully describe materialized views.
The DESC column sort order is displayed in FOREIGN KEY and UNIQUE constraints, in the Display Schema function.
A bug in the Monitor Database function was fixed, whereby repeated failed attempts to connect to multiple unavailable databases
would not be handled properly. Eventually, one of those repeated attempts to connect might succeed in connecting to the wrong
database, and the monitor would start sampling that database, instead of continuing to fail to connect to the unavailable database.
The standard Start Foxhound via Firefox and Start Foxhound via IE shortcuts no longer check to see if the dbeng11.exe
command worked, nor do they PAUSE or display error messages, before proceeding to display the Foxhound main menu page
in the browser. In most cases dbeng11.exe fails because the Foxhound database engine is already running and the PAUSE
and error message are simply annoying. If you are actually having problems starting the Foxhound database engine and want
to see what's happening, try using one of the "debug" shortcuts: Foxhound - Tools - Start Foxhound via Firefox - debug
or Start Foxhound via IE - debug.
The dbeng11.exe -qi option was added to the Start Foxhound via Firefox and Start Foxhound via IE shortcuts, as well as the
Foxhound - Tools - Start Foxhound Engine shortcut:
-qi tells the Foxhound database engine to "operate quietly": no system tray icon or console window.
this option was not added to the "debug" shortcuts, so you will see the icon and the console window if you use
Foxhound - Tools - Start Foxhound via Firefox - debug or Start Foxhound via IE - debug.
The dbeng11.exe -sb 0 -xd options were added to all shortcuts which start the Foxhound database engine:
-sb 0 and -xd reduce the likelihood that the Foxhound database engine will accidentally act as a "default server" or make
any attempt to accept unauthorized database connections... only HTTP connections are expected during normal operations.
"SQL Anywhere is a relational database management system (RDBMS) product from the company Sybase iAnywhere, a subsidiary of Sybase."
- from the Wikipedia page
"SQL Anywhere is a comprehensive suite of solutions that provides data management, synchronization and data exchange
technologies that enable the rapid development and deployment of database-powered applications in remote and mobile environments."
- from the Sybase product page
Answer: Work on the original version of Foxhound began in March 1998. Back then it was called the RisingRoad Dictionary, and
it used Oracle PL/SQL scripts to read the catalog views and generate static HTML containing the CREATE TABLE text for
each table in a separate page. These pages included hyperlinks for rapid navigation up and down the parent-child foreign key hierarchy.
The original target audience was application programmers working with an enormous Oracle
database at the Princess Margaret Hospital in Toronto. The database was so big and complex that
graphical diagrams produced by tools like ERwin were virtually unusable by the programmers.
Graphical tools don't scale well; that is just as true today as it was back in 1998.
Following foreign key chains on a diagram is very difficult when there are hundreds or thousands of tables, and any attempt to include
the level of detail necessary for a programmer (physical data types and constraints for every column) instantly makes a diagram so large
it won't fit on any wall let alone a desk. Subsetting a diagram never seems to work; it always seems to leave out stuff
the programmer needs to know.
On the other hand, a text-based display plus hyperlinks and the browser's Back and Forward buttons are ideal for navigating a
large database layout... and there's no shortage of screen real estate when you're showing one table at a time, even with all
the physical details included.
Foxhound then went through a stage as a multi-platform (Oracle, SQL Server, DB2, SQL Anywhere) documentation tool with the
addition of table- and column-level comments stored in its own database (SQL Anywhere).
Eventually, comments were dropped (little demand), as was support for multiple target platforms (too difficult), and Foxhound
became a SQL-Anywhere-centric tool. SQL Anywhere's built-in HTTP server made it possible to display HTML on the fly
rather than generate static HTML files that rapidly become out of date.
Over the years Foxhound has gradually evolved into a consultant's tool for investigating a client's database: how many tables,
what do they look like to a programmer, what are the relationships, how do I get there from here. Foxhound grew to
answer questions like how many rows, how much table/index/extension space is this table taking up, what's the average
row size in terms of disk usage, where are all the database files and how badly fragmented are they.
The concept of "curiosities" was added: this database doesn't have any clustered indexes, that table doesn't
have a primary key, these columns have the same names but different data types, that foreign key has a
cascading action, these database options have been changed from their default settings... and this
database still has OPTIMIZATION_GOAL set to 'First-row' which might explain why that query takes
three hours instead of three minutes.
Then, in early 2007, something really big happened to Foxhound: The "Display Schema" button was joined by
"Monitor Database" and a dynamically refreshed HTML display showing what's happening inside the server.
By the summer of 2009 the Monitor was producing Alerts and All Clear messages about the availability of your
target database and twenty-eight other conditions that fall short of an actual crash.
And now it's 2010... Foxhound has entered the final beta testing stage before going "GA" (generally available) as
a commercial product.
Answer: The to-do list is 200K, so yeah, there's lots of stuff that might get added.
That's 200K of ASCII text, by the way, and FWIW the "done" list is 600K.
But exactly WHAT is in the to-do list? Sorry, not going to say, at least not yet. That's
Secret Competitive Advantage stuff.
Here's what's NOT going to happen: Foxhound is never going to become an "integrated development
environment" like Sybase Central, not even like ISQL. No query building tools, no data transformation
utilities, no programming plugins. Way too much competition out there.
And besides, we use Wordpad, so we don't even want an IDE... we wouldn't be
Foxhound like we do every day.
So we wouldn't do a good job, and you wouldn't buy it.
Maybe we'll add schema comparison... but not a funky abstract comparison like PowerDesigner or a
lowest-common-denominator comparison like those generic ODBC utilities do, but something for actual
programmers who work with actual SQL Anywhere databases and want to see "what changed in my tables?"
Maybe... not soon, it's hard to do it right, to go the extra mile and merge the Compare-It API
into the slick Foxhound hypertext navigation structure.
And it's just one of the to-do items in the 200K list.
Here's a couple of items that are planned for the near future, post-GA: Supporting SQL Anywhere 12 as a target platform, and
then porting Foxhound itself to run on SQL Anywhere 12. Preliminary indications are the second item's going to be easy
and beneficial because proxy tables are a lot faster in Version 12.
Alas, the first item (supporting a new version as target) is never easy... and it's much higher priority than the second.
Answer: You can always install a new build of Foxhound on top of an old one, and your data will be copied and upgraded.
However, in some cases you may be required to provide a new registration key after the data upgrade and installation
A new Beta build can be installed on top of an old Beta build without providing a registration key.
A new Beta build may push the expiry date into the future, but eventually the testing period will end.
At some later date, another Beta testing period may begin, and for that you will need a new Beta registration key.
A new Evaluation build can be installed on top of an old Evaluation build without providing a registration key.
A new Evaluation build will not change the expiry date.
Only one Evaluation period is allowed per customer.
A new Basic build can be installed on top of an old Basic build, and a new Extended build
can be installed on top of an old Extended build, without providing a registration key, until the "free upgrade" period ends.
The end of the current free upgrade period has not been announced.
When such an announcement is made, you may be able to use your "Original Full Build Number" to determine if you need a new registration key.
Your Original Full Build Number is shown on the About page.
You can also switch from Basic or Extended to Beta, and vice versa, when installing a new build.
In each case you will be required to provide a registration key.
When switching from Beta back to Basic or Extended, you will be able to use your original Basic
or Extended registration key (until the "free upgrade" period ends). This allows you to participate in
future Beta programs without losing the ability to return to your original activation status
when the Beta period ends.
An Evaluation copy may be upgraded to Basic or Extended, and a Basic copy may be upgraded to Extended,
at any time by providing a registration key on the About page. This process does not require you to install a new build.
By using the software, you accept the following terms. IF YOU DO NOT ACCEPT THEM, DO NOT USE THE SOFTWARE.
1. No-Nonsense License Agreement
The Foxhound software is protected by United States and Canadian copyright law and international copyright treaty provisions. Therefore, you must treat Foxhound just like a book, except that you may copy it onto a computer to be used and you may make archival copies of Foxhound for the sole purpose of backing-up our software and your data and protecting your investment from loss.
By saying "just like a book," RisingRoad means, for example, that one copy of Foxhound may be executed on any number of computers, and may be freely moved from one computer to another, so long as there is no possibility of it being executed on one computer while it's being executed on another.
By saying "one copy of Foxhound", RisingRoad means a copy of the Foxhound software that has been activated by the application of one single unique registration key obtained from RisingRoad.
Just like one copy of a book can't be read by two different people in two different places at the same time, neither can one copy of Foxhound be executed on two different computers at the same time. (Unless, of course, this License Agreement has been violated, or a Multiple-Copy License has been obtained as explained below.)
2. Simple Bulk Purchase
A simple bulk purchase involves the purchase of multiple registration keys where each registration key is used to activate a separate copy of Foxhound, and each resulting copy meets the definition of "one copy of Foxhound" given earlier. This is analogous to the bulk purchase of multiple copies of a book. Simple bulk purchases are covered by this License Agreement; they do not require a Multiple-Copy License.
3. Use on a Network or the Internet
One copy of Foxhound may be executed on a computer attached to a local area network and/or the internet, with multiple users accessing the single Foxhound database from browsers running on different computers. The "just like a book" analogy begins to weaken at this point, but it still applies if you think of more than one person reading the same book over someone else's shoulder... it's still one copy of the book, and one copy of Foxhound executing.
4. Multiple-Copy License
A Multiple-Copy License involves the purchase of the right to make a limited number of identical copies after one original copy of Foxhound has been activated with one registration key, and to run these identical copies on different computers at the same time. This is analogous to making multiple photocopies of a book, an operation that is normally forbidden by the book's copyright terms. A Multiple-Copy License requires express written permission from RisingRoad, separate from this License Agreement.
5. Further Explanation of Copyright Law and the Scope of This License Statement
You may not download or transmit your copy of Foxhound electronically (either by direct connection or telecommunication transmission) for the purpose of executing it on multiple computers at the same time, except as may be specifically allowed by a Multiple-Copy License.
You may transfer all of your rights to use your copy of Foxhound to another person, provided that you transfer to that person (or destroy) all of the software and documentation provided in this package, together with all copies, tangible or intangible, including copies in RAM or installed on a disk, as well as all back-up copies. Remember, once you transfer your copy of Foxhound, it may only be executed on the single computer to which it is transferred and, of course, only in accordance with copyright law and international treaty provisions.
Except as stated in this paragraph, you may not otherwise transfer, rent, lease, sub-license, time-share, or lend the Foxhound software or documentation. Your use of Foxhound is limited to acts that are essential steps in the use of Foxhound on your computer as described in the documentation. You may not otherwise modify, alter, adapt, merge, decompile or reverse-engineer Foxhound, and you may not remove or obscure RisingRoad copyright notices.
6. Disclaimer of Warranty
The software is licensed "as is". You bear the risk of using it. RisingRoad gives no express warranties, guarantees or conditions. RisingRoad excludes the implied warranties of merchantability, fitness for a particular purpose and non-infringement.
Activation upgrade to a different edition is available
Yes, to Basic or Extended
Yes, to Extended
Free upgrades to new builds are available
Yes, until Beta testing ends
Yes, until the Free Upgrade period ends
Yes, until the Free Upgrade period ends
Upgrade to a new build may change the expiry date
Yes, until Beta testing ends
Limitations on Database Monitor
Maximum number of connections to each target database
Maximum number of physical CPUs used for each target database on a SQL Anywhere 10 or 11 server
Target database may run on a SQL Anywhere 11.0.1 Standard or Advanced Edition server
* This limitation applies to all versions and editions of SQL Anywhere target databases and servers.
The actual limit is 101 connections when you count the connection from Foxhound itself.
** This limitation does not apply to SQL Anywhere version 5.5, 6, 7, 8 or 9 target databases and servers.
Also, it applies to the number of physical processors as given by the NumPhysicalProcessorsUsed server property,
not the number of logical processors shown by "Using n CPUs" value in the Foxhound Database Monitor.
For example, a single Intel Pentium 4 processor counts as 1 physical processor even
though the separate HyperThreading units may show up as "Using 2 CPUs". Similarly, a single Intel Core2 Quad
processor also counts as only 1 physical processor even though it may show up as "Using 4 CPUs".
*** This limitation does not apply to SQL Anywhere target databases and servers earlier than version 11.0.1,
which is when SQL Anywhere introduced the notion of different editions.
Answer: If your installed Beta or Evaluation copy of Foxhound expires, you will be still
able to view the History portion of the Monitor Database feature, as well as
view your Foxhound Options and Alerts Criteria settings. However, the Monitor
Database process will not gather any new samples and by implication the Alert
process will cease to function. Also, the Display Schema feature will be disabled.
Other limitations may be applied to the installation of new builds; e.g., the end of the
"Free Upgrade" period. These limitations
are not yet fully defined, but they will take the form of requiring you to provide a new
registration key to activate the new build. This is not the same as expiration which
prevents full use of your old build: if you don't have a new registration key for the
new build, you can always go back to your old build.
Answer: Port 4950 is officially registered to the
"Sybase Server Monitor" which is the SQL Anywhere Monitor that ships in the box with SQL Anywhere.
If you're not already running the SQL Anywhere Monitor on that port, consider using 4950 for Foxhound.
Alternatively, consider using one of the "Dynamic and/or Private Ports" in the range 49152 through 65535.