IBM Support

Sybase SQL Anywhere Error: "Attempt to close a file marked as dirty"

Troubleshooting


Problem

If Sybase SQL Anywhere server was killed or the machine or server crashed before the database was modified then subsequently checkpointed, the database could be corrupt. Then the database could cause the assertion error - 201117 "Attempt to close a file marked as dirty" when connecting to Rational projects.

Resolving The Problem

You can simply correct this problem by running the Test Datastore repair utility in Dbpopulate mode.

Dbpopulate: repairs the database files by creating new files (in the datastore) and populating them with data from the rtxml files. This repair utility also creates a backup of the existing tds.mdb files in locations specified by the user.

Creating a batch file for DBPopulate:
To create a dbpopulate batch file, open Windows Notepad and save the file with a .bat extension (repair.bat) onto your desktop. Add the following four lines to the bat file:

    cd "C:\Program Files\Rational\Rational Test"
    rtdatastoreutils.exe -dbpopulate "D:\Projects\ProjectA\testdatastore" "D:\Projects\ProjectA\backuptds"
    rtdatastoreutils.exe -dbpopulate "D:\Projects\ProjectA\testusersandgroups" "D:\Projects\ProjectA\backuptuag"
    rtdatastoreutils.exe -dbpopulate "D:\Projects\ProjectA\testdatastore\defaulttestscriptdatastore" "D:\Projects\ProjectA\backupdtsds"
Where c:\program files\rational\rational test\rtdatastoreutils.exe is the path to the verification/repair utility that you copied into your rational test folder (make sure if there are spaces in this path to enclose the entire path in quotes.); -dbpopulate is a switch that tells the utility to use repair mode; d:\datastore project\... is the path to each of the tds.mdb files associated with a particular datastore. (Just the path is needed. You don't need to specify tds.mdb at the end of the path); and d:\datastore project\backuptds, d:\datastore project\backuptuag, and d:\datastore project\backupdtsds are all empty backup folders that were manually created in Windows Explorer.

Save the bat file (choose File->Save)

Running the DBPopulate bat File:
To run the file, open a command prompt, change directory to the desktop and run the bat file.

Remember the \backup... folders must be empty each time the repair utility is run. Also, the repair utility will move (not copy) the tds.mdb files from each of the folders in the testdatastore and store them in the backup folders. It will then create new tds.mdb files in the correct folders within the testdatastore and populate each of the tds.mdb files from data stored in the rtxml files.

When the bat file is run, anomalies and inconsistencies in each tds.mdb file are reported to the console, and are written to a log file. The log file for a particular tds.mdb file is created in the folder where that tds.mdb file is located. The name of the log file is time-stamped so that the utility will always generate uniquely named log files. The file name format is “DatastoreUtils-Repair (month-day-year hour.minute.second). txt

Note: Running the utility in dbpopulate mode can take a long time to run against a Sybase SQL Anywhere datastore. To speed this up, stop the Sybase SQL Anywhere database server and manually move the tds.db and tds.log files in the TestUsersAndGroups, the TestDatastore and the DefaultTestScriptDatastore folders to another location. Then run the utility in dbpopulate mode. After doing that, start the Sybase SQL Anywhere database server again.




[{"Product":{"code":"SSSHVH","label":"Rational TestManager"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"Datastore","Platform":[{"code":"PF033","label":"Windows"}],"Version":"2003.06.00;2003.06.12;2003.06.13","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

More support for:
Rational TestManager

Software version:
2003.06.00, 2003.06.12, 2003.06.13

Operating system(s):
Windows

Document number:
81807

Modified date:
16 June 2018

UID

swg21195272