Fix for ISA stall when ODBC data source is unavailable.

One weekend I had an ISA server failure due to the SQL server that
is used for my logs was unavailable. ISA server stalls its services
if the ODBC data source becomes unavailable or when it can’t
authenticate to the SQL server.

This gave me some problems since I couldn’t get in remotely
(ISA wouldn’t let any traffic thru) to change the ISA logging
configuration and restart the services.

I found a way to have ISA reconfigure itself to use text logging
and restart its services by using alerts and events in case ISA
can’t connect or authenticate to its ODBC data source.

1. Reconfigure all three services in the Logs node to log to text
files and save the configuration. Do not restart the services since
this is only a temporary configuration.

2. Start the registry editor (Regedit.exe) and export the following
branch to the root of the c: drive. Name the file txt-logs.reg:

Hkey_Local_Machine\Software\Microsoft\Fpc\Arrays\{GUID}\Logs

Verify that you have a registry file on your c: drive called: txt-logs.reg

3. Configure all three services in the Logs node back to log to
your already defined ODBC data source and save the configuration.
(I assume you were already using an ODBC data source for logging).
Do not restart the services since the reconfiguration in step 1
was never in effect (we didn’t restart the services in that
step).

4. Configure Invalid ODBC log credential alert in the Alerts node.
On the General tab; make sure that alert is enabled. The Events
tab should be left unchanged (let the event fire on the first occurrence).
The Actions tab is where the important configuration is done. Check
the Program switch and enter regedit /s c:\txt-logs.reg in the Run
this program field. This will let regedit merge the registry branch
we saved earlier back into the registry and reconfigure ISA to log
to text logs. The /s switch after regedit will do it in silent mode
(you will not get an annoying dialog on the screen telling you the
branch was imported into the registry). Check the Stop selected
services switch, click on the Select… button and make sure
all three services are selected. Then check the Start selected services
switch, click on the Select… button and make sure all three
services are selected. This will stop and then start all three services
so that the reconfiguration of the logging that was entered into
the registry will take effect.

I tested this setup by all of a sudden just downing my SQL server.
The alert came up which then triggered the event that modified my
registry and restarted the services. It worked beautifully. There
was only a short (seconds) interruption of the services.

Once the database server is again available I can reconfigure the
ISA back to ODBC logging and restart the services manually. Also
the text logs can be imported back into your database server using
Access or Foxpro.

It might be a good idea to also send an e-mail alert in case this
happens, since the re-configuration and starting/stopping of the
services is pretty transparent.

The reconfiguration options based on alerts are endless when you
know where to pull the configuration parameters out of the registry
(and merge them in again).

Hope this is a helpful little trick.

Jens Madsen – [email protected]

Manager Information Systems
(818) 362?0353 x222

Xantech Corporation – www.xantech.com

12950 Bradley Ave., Sylmar CA 91342

About The Author

Leave a Comment

Your email address will not be published. Required fields are marked *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Scroll to Top