Monday, October 24, 2011

What's Cool, What's New in Foxhound 1.2

Foxhound is a browser-based health, availability and performance monitor for SQL Anywhere that displays everything you need to know at a glance.

Foxhound 1.2 is the next version, and a "Release Candidate" build is now available... this is just like a "Beta" except there's no "beta testing expiry date".

To request a copy, send me an email at

What's Cool (in Foxhound 1.1)
What's New (in Foxhound 1.2)

Foxhound Alerts tell you if something bad is happening:
  • can't connect,
  • slow response,
  • blocked connections,
  • high CPU,
  • I/O bottleneck,
  • and 24 other symptoms.
Now you can use Gmail to send the Alerts as well as receive them: via SSL and port 587.

Foxhound can monitor up to 100 databases.
Now it's easier to manage large numbers of Monitor sessions:
  • The hard-to-find "Alerts Criteria" page has been redesigned and elevated as the "Monitor Options" page.

  • The Default Settings can be directly edited on the Monitor Options page, separate from the options for any particular target database.

  • The Force Default Settings On All Targets button on the Monitor Options page lets you publish new settings to all the targets.

  • The Manage Multiple Monitor Sessions feature lets you specify batches of target databases, and the Start and Stop All Sessions buttons let you turn sampling on and off for each batch.

The Monitor tab on the Foxhound Menu page shows all the target databases at a glance.
The Monitor tab is now easier to use, and more informative:
  • The Disable Refresh and Enable Refresh buttons make it easier to scroll down to look at something.

  • The lists of targets and outstanding Alerts have been vertically squished so you don't have to scroll down so far when you've got lot of targets.

  • More "at a glance" columns have been added:
    • Active Alerts count, with a link down into the Alerts list
    • Conns
    • Waiting Req
    • Locks Held, Blocked Conns
    • CPU Time
    • Temp Space
    • Disk Reads, Writes

  • The Start All Sampling and Stop All Sampling buttons let you turn sampling on and off for all the targets.

The History page shows all the details for an individual database at a glance.
  • You can see what happened overnight, yesterday, as far back as you want,
  • even the connections,
  • and the connections can be sorted on any of the columns, like "CPU Time" and "Locks Held".
You can also see all the blocked connections:
  • Who's blocked?
  • What are they waiting for?
  • How long have they been waiting?
  • Who's holding the locks?
  • What kind of locks are they?
  • What tables?
  • What rows?
  • How long has it been since they last did a commit?
Scrolling through gigabytes of data used to be slowwwww, like continental drift, now it's faster.

New scroll amounts have been added (500 samples and 3 hours):
« Newest « 500 « 100 « 20 « 1 sample         1 sample » 20 » 100 » 500 » Oldest » 
« Month « Week « Day « 3 Hours « 1 Hour   1 Hour » 3 Hours » Day » Week » Month »

The "Freeze Frame Heights" button lets you resize and freeze the History page frames so they don't reset ("Grrr!") every time you scroll.

It's your data: Foxhound lets you run adhoc queries.
New views have been added for adhoc reporting.

A separate read-only "Adhoc Schema" database lets you see what the views and underlying tables look like.

New connection-level columns have been added to make queries easier to write:
LockRowID                         BIGINT NULL
blocked_connection_count          BIGINT NOT NULL DEFAULT 0
current_req_status                VARCHAR ( 100 ) NOT NULL DEFAULT ''             
cache_satisfaction                DECIMAL ( 30, 0 ) NOT NULL DEFAULT 0.0 
time_connected                    BIGINT NOT NULL DEFAULT 0
total_waits                       BIGINT NOT NULL DEFAULT 0 
waiting_time                      DECIMAL ( 30, 6 ) NOT NULL DEFAULT 0.0
transaction_running_time          BIGINT NOT NULL DEFAULT 0
time_since_last_request           BIGINT NOT NULL DEFAULT 0
index_satisfaction                DECIMAL ( 30, 0 ) NOT NULL DEFAULT 0.0
Except for LockRowID, all the new columns contain values that Foxhound used to calculate only when the data was displayed on the Monitor and History pages; now these values are calculated once and stored permanently.

Foxhound automatically copies and upgrades all of your data when you install a new version.

The upgrade process handles all the schema differences between the old and new versions of the Foxhound database, no matter what the old and new versions are (well, as long as the new version isn't older than the old version :).
The data upgrade process now runs faster, even though it has to work harder in version 1.2 to add all those new columns.

You also have control over how much data to upgrade:
  • The default is FOXHOUND1UPGRADE = ALL to copy all the data from your old Foxhound database to the new one.
  • If you choose FOXHOUND1UPGRADE = OPTIONS during the installation process, Foxhound will copy everything except the Monitor samples. When you start Foxhound again, all the old sample data will be gone but sampling will start again right away (assuming it was running before you installed the new version).
  • If you want to save the Monitor samples recorded since a particular date, specify FOXHOUND1UPGRADE = yyyymmmdd.
  • To save the samples recorded during the past n days, use FOXHOUND1UPGRADE = n.
What's really cool about the new upgrade process is you can use it to purge, shrink and reorganize the Foxhound database: just reinstall the same version of Foxhound with FOXHOUND1UPGRADE = yyyymmmdd or FOXHOUND1UPGRADE = n.

Foxhound supports target databases running all versions of SQL Anywhere from 5.5 through 12.0.1.
Good news, bad news:
  • Foxhound still supports all those old target databases, back to
  • Foxhound itself now runs on SQL Anywhere Version 12.0.1.
  • Foxhound will use the 64-bit version of SQL Anywhere 12.0.1 if it is installed. Previously, Foxhound ran only on the 32-bit version of SQL Anywhere 11.0.1.
  • You can force Foxhound to use the 32-bit version of SQL Anywhere by setting the FOXHOUND1BIN environment variable to Bin32... sometimes, it's just easier to do that than to try to figure out what's going wrong with ODBC and a legacy target database.
  • Bad news: Foxhound requires SQL Anywhere or later to run. And it still only runs on Windows. But none of that affects your target database: as long as Foxhound can establish an ODBC connection to your database, it can monitor the performance and display the schema.
More "What's New"...
  • The look-and-feel of the Foxhound Options page has changed to match the new improved Monitor Options window.

  • A single global "Enable Emails" setting has been added to the Foxhound Options page in case you want to turn off an accidental "alert storm".

  • New shortcuts have been added:
    start - All Programs 
          Start Foxhound via Chrome
             Backup Foxhound Transaction Log
             Start Foxhound via Chrome - debug

  • Exception handling has been improved to allow Foxhound to continue operating after receiving bad data from a target database.

  • The thirty-day Evaluation period can now be extended: just get a Evaluation Renewal key from

No comments: