Monitoring and dumping SQL Server transaction logs

Every site should have a job that monitors and automatically dumps transaction logs for each database before log is filled up.
The following Microsoft Knowelege Base document lists some reasons why the transaction log fills up and never gets truncated, even though the "trunc. log on chkpnt" option is set to true and regular checkpoints are done during processing.

DOCUMENT :Q62866 14-FEB-2000 [sqlserver]
TITLE :Reasons Why SQL Transaction Log Is Not Being Truncated
PRODUCT :Microsoft SQL server

To avoid "Log Full" problems use the following SQL script that you can schedule to run every 30 minutes as a "Database Type" job having "All Day" schedule. Setup such job for every server that you want to monitor and automatically dump transaction log for each database before logs are filled up.

CREATE TABLE #log_stat (
    dbname char(30),
    logsize float,
    logspaceused float,
    status tinyint )

INSERT INTO #log_stat EXEC ('DBCC sqlperf(logspace)')

DECLARE @db_name char(30)

SELECT @db_name = min(dbname)
FROM #log_stat
WHERE logspaceused > 70

WHILE @db_name is not NULL
    /* Log is over 70 percent full. Dumping the log */
    EXEC ('DUMP TRAN ' + @db_name + ' with truncate_only')
    SELECT @db_name = min(dbname)
    FROM #log_stat
    WHERE logspaceused > 70
        and dbname > @db_name

DROP TABLE #log_stat