BUG: CmdExec May Cause Exception Violation on Scheduled Tasks

Last reviewed: August 15, 1997
Article ID: Q171323
The information in this article applies to:
  • Microsoft SQL Server, version 6.5
BUG #: 17090

SYMPTOMS

Scheduled tasks of type CmdExec may cause an exception violation. A message similar to the following will appear in the Event Viewer:

   EventID: 212
   Source: SQLExecutive
   User: N/A
   Type: Error
   Category: Task Engine

   Task <task no>, '<task name>' has caused an exception violation in the
   CmdExec subsystem, and has been terminated.

Even if the scheduled task, (that is, SQLMaint), completes successfully, it shows a Last Run Status of "Failed" in the Manage Scheduled Tasks screen within SQL Enterprise Manager. The Task History screen does not display any error message to explain the failure.

CAUSE

This behavior is a result of a problem with the CmdExec utility. While running, Cmdexec.dll creates a temporary file that holds the redirected stdio and stderr output for the task. If the number of bytes within this file happens to be within certain ranges, an exception violation is generated.

WORKAROUND

To work around this problem, adjust the size of the output written to stdio and stderr by the CmdExec task being scheduled. If you are unsure about what output is being generated, try running the task at a command prompt and observing the results written to the screen. Increase or reduce the number of bytes written by at least two bytes to avoid exposure to this problem.

STATUS

Microsoft has confirmed this to be a problem in Microsoft SQL Server version 6.5. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.

MORE INFORMATION

The nature of this problem is such that there is only a small chance that a given CmdExec task will be affected.

An example would be if you scheduled SQLMaint to perform routine database maintenance and noticed that the database maintenance report shows successful completion but the task reports failure in the Task Manager screen in SQL Enterprise Manager.

Because the output produced is saved to the report (.rpt) file, there is no need to run this from the command prompt to view the stdio and stderr listings. An example of a SQLMaint report file is shown below.

By reviewing this output, you can decide on the most appropriate means of causing the byte-count to be increased or reduced by at least two (for example, by changing the dump file name in paragraph 7 or by ensuring that the database is in single user mode so that the WARNING in paragraph 2 is suppressed).

The following is a sample SQLMaint report:

Microsoft (R) SQLMaint Utility, Version 6.50.240 Copyright (C) Microsoft Corporation, 1995 - 1996

Logged on to SQL Server 'MYSERVER' as 'sa' (trusted) Starting maintenance of database 'pubs' on Wed Jul 09 13:28:32 1997

[1] Check Data and Index Linkage...

    ** Execution Time: 0 hrs, 0 mins, 3 secs **

[2] Check Data and Index Allocation...
    WARNING: Database pubs is currently being used by 4 user(s).
             This may cause spurious problems to be reported.

    ** Execution Time: 0 hrs, 0 mins, 2 secs **

[3] Check Text/Image Data Allocation...

    ** Execution Time: 0 hrs, 0 mins, 1 secs **

[4] Check System Data...

    ** Execution Time: 0 hrs, 0 mins, 1 secs **

[5] Update Statistics...

    ** Execution Time: 0 hrs, 0 mins, 27 secs **

[6] Index Rebuild (leaving 10% free space)...

    Rebuilding indexes for table 'authors'
    Rebuilding indexes for table 'discounts'
    Rebuilding indexes for table 'employee'
    Rebuilding indexes for table 'pub_info'
    Rebuilding indexes for table 'publishers'
    Rebuilding indexes for table 'roysched'
    Rebuilding indexes for table 'sales'
    Rebuilding indexes for table 'stores'
    Rebuilding indexes for table 'testing'
    Rebuilding indexes for table 'titleauthor'
    Rebuilding indexes for table 'titles'

    ** Execution Time: 0 hrs, 0 mins, 7 secs **

[7] Database Backup...
    Destination: 'D:\MSSQL\BACKUP\pubs_db_dump.199707091329'

    ** Execution Time: 0 hrs, 0 mins, 4 secs **

[8] Delete Old Backup Files...
    0 file(s) deleted.

End of maintenance for database 'pubs' on Wed Jul 09 13:29:15 1997

SQLMAINT.EXE Process Exit Code: 0 (Success)


Additional query words: error err message access application
Keywords : kbbug6.50 SSrvEntMan SSrvGPF kbusage
Version : 6.5
Platform : WINDOWS
Issue type : kbbug
Solution Type : kbworkaround


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: August 15, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.