dbfixit2 reference manual
DBFIXIT2 REFERENCE MANUAL
© 2007, Pimlico Software, Inc.
Page 1
DbFixIt2
Version 2
A Comprehensive Utility Program for Detecting
and Fixing Errors and removing Duplicate Records
in Palm OS Databases
By C. E. Steuart Dewar, Pimlico Software, Inc.
In association with
Last Revised: 18-November-2010, 19:22
For Version 2.0c
Copyright © 2009, 2010, Pimlico Software, Inc.
All Rights Reserved
DBFIXIT2 REFERENCE MANUAL
© 2006, Pimlico Software, Inc.
Page 2
Table Of Contents
The ONLY essential thing you need to know about DbFixIt2:...................... 3
Why do you need DbFixIt2? ........................................................................ 3
Registering (paying for) your DbFixIt2 program........................................... 4
The Gorilla Haven Connection..................................................................... 4
DbFixIt2 - The Quick Tour ............................................................................ 5
DbFixIt2 - Advanced Operation.................................................................... 6
DbFixIt2 - Menu Options .............................................................................. 6
DbFixIt2 - Trouble-Shooting Problems......................................................... 8
DbFixIt2 - Trouble-Shooting - Continued ..................................................... 9
DbFixIt2 Errors and Actions ....................................................................... 10
Known issues in Third Party Software ....................................................... 14
DateBk5 and DateBk6 ............................................................................... 14
Agendus..................................................................................................... 14
Fatal DbFixIt2 Errors.................................................................................. 15
Palm OS Memory and Data Manager Error Codes ................................... 15
DBFIXIT2 REFERENCE MANUAL
© 2009, Pimlico Software, Inc.
Page 3
The ONLY essential thing you need to know about DbFixIt2:
Just tap the Easy Fix or Easy Check Button - that’s all you really have to know. Unregistered versions of
DbFixIt2 will detect and report errors, but only registered versions have the ability to correct errors and
remove duplicate records.
Why do you need DbFixIt2?
DbFixIt2 can detect errors and then also repair records in the PIM databases often without the loss of any data. For example,
if a ToDo record ended up with an impossible priority value that was crashing the built-in Tasks application, DbFixIt2 will find
the error, change the priority setting to 1 and the record can then be read. Or perhaps it’s a calendar record with an invalid date,
or a memo record that was too long - all these problems are detected and fixed.
DbFixIt2 can also remove duplicate records created by hotsync errors. Removing duplicate records by hand can be tedious and
very time consuming. DbFixIt2 can do that safely and automatically.
DbFixIt2 also detects unusual errors such as duplicate Unique ID’s (which can cause applications to unexpectedly retrieve the
wrong record), or locked records left in a database (which can cause unexpected MemHandle Overlock errors), or even nondeleted records with Nil Chunks (which will crash many applications). And DbFixIt2 can scan all databases on the handheld
and run a set of generic tests on the database for problems that might be causing an application to stumble.
Furthermore, there are two known problems in newer Palm OS devices that affect all users from time to time:
1. The calendar, or other PIM databases fail to sync and it just hangs when it gets to that conduit. This problem appears to
be a bug in the conduit and/or Palm OS related to the presence of deleted records in the database. DbFixIt2 has a quick feature
to remove all deleted records and this almost always corrects the problem. Pimlico’s earlier utility, dbScan, also had the ability
to remove deleted records, but DbFixIt2 has additional, special logic to sidestep issues with the PalmOne DM Patch software
which could then crash underneath dbScan before it could correct the problem.
2. The Contacts database can balloon up to huge sizes, full of junk data. We have seen contacts databases as large as 50Mb
in which over 98% of all that space was wasted by junk that got into the database. DbFixIt2 can surgically remove all the junk
data without affecting your contacts data. That 50Mb database was only 468k after running DbFixIt2! There is no other method
of removing the junk data other than exporting the contacts database in a different format (which usually results in the loss of
information such as photos, anniversary/birthdays etc.), and re-importing it.
And if you never sync your handheld device, DbFixIt2 can remove deleted records so that your databases do not get too large
(deleted records are only removed from a database via a hotsync).
Errors in databases can arise for a large number of reasons - even the built-in applications have some obscure bugs, but if you
frequently use third party software, or test beta software, or occasionally run into hotsync problems, you will find DbFixIt2 to
be indispensable.
Preference and option settings in DbFixIt2
The only option settings for DbFixIt2 are the options to run in silent mode, ignore warnings and to provide alternate Database
types for scanning. These option settings are stored in DbFixIt2’s preference record in the system preference database. If you
delete DbFixIt2, that will also delete the DbFixIt2 preference record.
If you need technical assistance on DbFixIt2
All basic support on DbFixIt2 is provided through this E-mail address: PimlicoSupport@bigfoot.com. Any questions regarding
your electronic order, administrative support, or basic technical support should go to this E-mail address.
If you have a detailed technical question or problem with DbFixIt2, or you get no response from the Bigfoot email address,
send an E-mail to: SWSupport@PimlicoSoftware.com, but any problem reports must be made on a tech support form. There is
a copy of the tech support form in the DbFixIt2 zip archive which you can copy and paste into an E-mail, or you can download
a copy of the form from the DbFixIt2 web page: http://www.PimlicoSoftware.com/DbFixIt2.htm. Priority will always be given
to reports that are submitted properly on that form.
Certain types of corruption in the database may be so severe as to crash the Palm OS before DbFixIt2 can even see the data
and under those circumstances, your only option will be to delete the database and overwrite it from the desktop or a backup
copy.
DBFIXIT2 REFERENCE MANUAL
© 2009, Pimlico Software, Inc.
Page 4
Registering (paying for) your DbFixIt2 program
DbFixIt2 can be downloaded on a trial basis to scan your PIM databases for errors. However, in order to have the full functionality of also fixing these errors, the program does have to be registered.
DbFixIt2 can be registered by going to the ABOUT dialog (Tap on menu Button, and select ABOUT from the OPTIONS
menu). This dialog will tell you the web site to go to register the product and provides brief instructions on how to purchase
the program.
When you purchase DbFixIt2, you will receive an email within 24-48 hours or so containing your permanent registration code
for the program. Obviously, you can use this program and not register it until you actually need it, but do keep in mind that when
that time comes, you may then have to wait as long as 24-48 hours to get your registration code, so if you do intend to use this
utility, purchasing the registration beforehand would clearly make sense.
When you receive your registration code, just select Register DbFixIt2 from the Options menu and enter your registration
code as shown below:
This is your current HotSync–
User name that you will need to
provide when you register.
This is where you enter your
registration code. Tap the OK
button when you have finished
entering it.
When entering your registration code, be careful to distinguish between the digit
0 and the letter ‘o’ (the letter is always in lower case and small), and between the
digit ‘1’ and the letter ‘L’ (the letter is always in upper case to avoid any confusion). The actual characters are not case sensitive.
Check this box to save a copy
of your registration code in the
Memo database. That way if you
ever lose it, DbFixIt2 will automatically retrieve it for you.
If you do not have web access, you can send the registration payment in cash or check in US Dollars (must be drawn on a USA
bank, or have a USA street address on the front) and mail it to:
Pimlico Software, Inc.
2031 Lowery Road
Morganton, GA 30560
Electronic registration is always much faster, efficient and safer than registering by mail and is highly recommended. If you
have not used this method before, you should be aware that these eCommerce sites feature encryption to ensure that no data is
intercepted by any other party.
Language Availability
The initial release of DbFixIt2 is in English. It is likely that versions in the more popular languages may be forthcoming.
The Gorilla Haven Connection
All the profits from the sale of DbFixIt2 and DateBk3/4/5/6 (and this means virtually all the revenue) is
donated to wildlife conservation and in particular, the Dewar Wildlife Trust’s Gorilla Haven project which
supports an AZA certified sanctuary for Western Lowland Gorillas on the Dewar’s 324 acres surrounding
Paris Mountain in the North Georgia Mountains. You can learn more about this ambitious project from
www.gorilla-haven.org.
Gorilla Haven is a member of the Gorilla SSP (Species Survival Plan) and the first gorilla arrived in March
of 2003. It will be one of the largest set of controlled habitats (if not the largest) in the world for gorillas and will provide a
permanent haven for gorillas that do not currently fit into zoo plans (see the Gorilla Haven web site for details).
DBFIXIT2 REFERENCE MANUAL
© 2009, Pimlico Software, Inc.
Page 5
DbFixIt2 - The Quick
Basic Operation. For most users, the operation of DbFixIt2 is very simple: just launch the application and tap the Easy
Fix button at top left. Cautionary Note: It is always highly recommended that you make a backup copy of your desktop
PIM data and/or the PIM data on the handheld before running DbFixIt2. That way, you can always recover any changes
made by DbFixIt2 should the desired results not be obtained.
Unregistered versions of the application will simply display Easy Check, since unregistered versions can only check the database and cannot correct any of the errors that may be found. DbFixIt2 will then scan all the major PIM databases on the device
(either the traditional Palm OS set of Datebook/AddressBook/MemoPad/ToDos, or the newer PalmOne proprietary set of PIM
databases: Calendar/Contacts/Memos/Tasks). If any errors are found, a dialog appears identifying the record and the specific
error condition. Unregistered versions do allow the function of removing deleted records to function. This can be useful for
people who never sync their databases and therefore never end up removing deleted records.
In the example below, an error was found in the Tasks Database. An item was found with an impossible priority value of 28777this should of course always be a number in the range of 1-5 for the priority.
Identifies Database and the specific problem that was found
The record number in the database where the error was found
Description field for the item
(in this case the description field
was blank).
What DbFixIt2 is recommending that you do.
Select Yes to fix the problem
and continue scanning.
Select Yes To All to fix the
problem and continue scanning
but without displaying any more
error messages (all errors will
be corrected).
Select No to leave the
problem uncorrected and
continue scanning.
Select Quit to immediately exit the scan and
return to the main screen.
Some errors may be relatively benign, such as a failure to properly clean up the repeat structure for an appointment, while
others may be very obvious (such as an invalid date). Others may be serious, but so subtle that the only symptom is weird
behavior in an application (such as having duplicate unique ID’s in the database). In general you would always want DbFixIt2
to correct any problem that it finds.
After DbFixIt2 has corrected your database, you should set the conduits for any databases that were corrected so the handheld
overwrites the desktop. Normally this is accomplished in the Palm Desktop application, by clicking on the HotSync–Icon in
the system tray (windows) or desktop(Mac), selecting Custom... then click on the conduit in the left column, tap the Change...
button and select the action Handheld overwrites Desktop. This will then just change the action on the next hotsync which you
should perform right away to update the desktop.
A list of all detected error conditions, a brief description, and what correction DbFixIt2 applies will be found in the section:
DbFixIt2 Errors and Actions.
DBFIXIT2 REFERENCE MANUAL
© 2009, Pimlico Software, Inc.
Page 6
DbFixIt2 - Advanced Operation
DbFixIt2 also has an Advanced Operating mode where you can scan individual databases and also select any database for
checking. If a known PIM database is selected in the list, then the more comprehensive checking is invoked (since the structure
of the database is known). Otherwise, only the standard generic tests for database integrity are performed (duplicate unique
ID’s, NIL chunks, warning for deleted records at end of database, locked records left in database).
Check this box to remove all
deleted records from all four PIM
databases (or the selected Database
in Advanced Use mode). There is
a known bug in Palm’s software
whereby deleted records can, under
some conditions cause the conduits
to hang.
Database Name and current
record are displayed here.
Note that database is scanned
backwards.
Shows total number of records
and deleted records in the currently selected PIM database.
Tap Fix DB to fix errors in
the currently selected database
(registered versions only).
Check this box to avoid displaying warnings (errors will
still display).
Check this box to remove duplicate
records in the database. This can take a
substantial amount of time on larger
databases (5-10mins. or more).
Note: While DbFixIt2 is running its
scan, tap anywhere on the screen to
abort the scan and return to the main
Select either the standard PIM
databases, or all the databases on
the handheld device.
Tap to select a single database
from either the PIM list or the
master list of all databases.
There may be a substantial
delay caused by the Palm Dm
Patch Software if a “mirror”
database is selected.
Tap Check for Errors to just
scan for errors in the currently
selected database, without
fixing any of them.
Tap this checkbox to avoid displaying all error messages. If you had tapped
Fix DB, errors will continue to be corrected. Only the summary report of the
total errors found will be displayed at the conclusion of the scan.
DbFixIt2 - Menu Options
Reset AppInfo Block - Under some conditions, the AppInfo block of a database can become corrupt. This is where things like
the names of the categories, next unique ID, etc. are stored. If the database shows no errors but is still causing problems, or you
get a crash whenever trying to access the category selection dialog, try this option on the selected database. You will need to
re-enter all the category names, starting with the default Unfiled and then your regular category names. In general, it is recommended that you attempt to hotsync the database to the desktop and then sync again with the desktop overwriting the handheld.
This option is not available on unregistered versions of DbFixIt2.
Remove All Calendar Blobs - When Palm introduced their proprietary PIM apps and databases, they added a feature to include
“Blobs” (Binary Large OBjects) at the end of some records to store additional information such as timezone information and
meeting information in the Calendar database. These items may be corrupt due to interaction with other third party software, or
may need to be removed for some reason, such as reinitializing all the timezone information.
Remove Deleted Records - This is similar to the function of just checking the Remove Deleted Rec’s checkbox, but with two
significant differences: (1) it will attempt to make a copy of the selected database (in the Advanced Use section) under a different name and creator ID and apply the changes to that database and then swap the database back. This prevents interference
from the PalmOne DM patch software if it has been enabled. The DM Patch software is rather fragile and can easily crash if
there is the slightest corruption present, and will sometimes crash underneath DbFixIt2 before DbFixIt2 even has a chance to
delete the record. (2) - it removes archived as well as non-archived records that are marked as deleted. Checking the box to
remove deleted records only removes non-archived, deleted records as those are the one’s that usually trip up the DM Patch
software. So try this option if you get a reset on trying to remove Deleted Records in the EasyFix section or if the conduit still
hangs. Also, you may want to use this option if you never hotsync as it then makes no difference if they are archived or not.
DBFIXIT2 REFERENCE MANUAL
© 2009, Pimlico Software, Inc.
Page 7
Remove Range of Records - Under some conditions, an application may crash whenever it attempts to access a certain record
and provide no method of removing the corrupt record. In this case, you can use this menu option to delete a record or a range
of records so the bad record is removed from the database. Records marked in this manner are removed from the database
completely (i.e. not deleted). On the next hotsync, such records would be restored if the conduit is set to synchronize.
The following dialog appears when this option is selected:
Enter the Starting Record
number in this field (or use
the Find Button to set it).
Tap this button to make a
backup copy of the database (same as menu option
in main form).
Tap this button to restore
the currently selected database from a backup made
with DbFixIt2.
Tap this button to remove all
records from the Starting Record
Tap this button to open up a
to the ending record. The ending
dialog to enter a text string to
record is set to the starting record
locate a record with.
whenever the ending record
field is tapped. If the ending
field is blank, just one record
is removed. This option is not
available on unregistered versions of DbFixIt2.
Find normally ignores case.
Check this box to perform a
case-sensitive match.
Name of currently Selected Database.
Tap this button to set the ending
record number to the last record
in the database.
When scanning the database
searching for a matching text
string, this shows the current
record being searched.
Tap this button to return to the
main form.
When a match is
found, you have the
option of using that
record, or telling
DbFixIt2 to continue
the search to find a
later matching record.
Backup Selected Database - This option will make a backup of the currently selected database. The Creator ID is remembered
in DbFixIt2’s preferences and changed to CESJ. The letter ‘J’ is then prefixed to the filename. Only one backup can be saved
at a time by this routine. This is only to be used as a last resort because it will write a blank file header. Some apps (and this
includes the built-in applications) will not handle a blank header and the backed up file will not be readable). So use with
Caution!!
Restore From Backup - This option will take the currently selected database, verify that it has a backup saved by the above
command and then restore the database from the backup. This option can be used before repairing a database or as a method of
trying to find corrupt records by selected deletion of records across a range followed by restoration if the deleted block did not
contain the corrupted record. See also cautionary note above about Backup!!
MultiByte Language - This option allows you to tell DbFixIt2 that characters in the extended character set are in fact valid in
description/note fields (an alert appears which allows you to toggle the status of this preference option). If you are using Japanese, Hebrew, etc. you will want to set this option to avoid having description fields purged of valid characters.
Other Database Types... - This option brings up a dialog where you can specify database types other than ‘DATA’ to be
included in the Other database list. Enter a list of up to ten database types separated by commas into the dialog. This will be
remembered in the preference settings. By default, this dialog will just display ‘DATA’ the first time around since that is the
standard type for databases that just contain data.
Register DbFixIt2 - Use this option to enter your registration code for DbFixIt2.
DBFIXIT2 REFERENCE MANUAL
© 2009, Pimlico Software, Inc.
Page 8
DbFixIt2 - Trouble-Shooting Problems
DbFixIt2 crashes when scanning a database. While it is possible that a severely corrupt database might crash
DbFixiIt, it is far more likely that it is the Palm OS that is crashing underneath DbFixIt2 even before it can access the record.
And the most likely cause if scanning a PIM database is the PalmOne DM patch software which attempts to copy records back
and forth between the PalmOne PIM datbase and the specially created “mirror” database that masquerades as the standard Palm
OS PIM database (for compatibility reasons). Try scanning each database individually in the Advanced Section by selecting it
in the drop-down list. If you find one database is causing a reset or in particular a DmWrite: DmWrite Check Failed error, then
tap the Other button, select that one database in the popup list and then try the Remove Deleted Records menu option . That
often fixes that problem.
If resets are still occurring, the next step is to delete the mirror database using a third party file utility like FileZ (which you can
download from almost any Palm Software archive - there’s also a copy at: http://www.PimlicoSoftware.com/filez.prc):
PalmOne Database Name
CalendarDB-PDat
Mirror Database Name
DatebookDB
ContactsDB-PAdd
MemosDB-PMem
TasksDB-PTod
AddressDB
MemoDB
ToDoDB
It is recommended that you make a copy of your primary database first if at all possible - under some conditions, it has been
reported that deleting the mirror database can result in the deletion of the PalmOne Database by the DM Patch software,
although this is not something that generally happens. After deleting the database, try repeating the scan with DbFixIt2. If it
still fails and you have an external memory card, use FileZ to copy the PIM database to an SD card and either copy it from
there to your desktop and then send the file to Pimlico Software via email (SWSupport@PimlicoSoftware.com), along with a
Fille-out Tech Report form.
Note: Not all databases can be scanned by DbFixIt2 - databases used by memory-resident routines might cause the underlying application to crash (for example, WiFi databases, driver databases, some system databases, etc.).
Conduit still hangs after removing deleted records. While removing deleted records usually fixes the
problem with a conduit that hangs on HotSync, there are other reasons why the conduit software might hang. If you can have
the desktop overwrite the handheld, that will often resolve the issue, but typically in cases like this the desktop is pretty far out
of date, and the user really wants to recover the database on the handheld if at all possible.
The first step is to completely remove the desktop/conduit software, download the very latest release of the conduit from the
company’s website and re-install. Note that it is very important to remove the conduit first as otherwise, the windows registry
is not cleaned up and that can also be where the problem lies.
If it still fails to sync and DbFixIt2 declares there are no errors in the database, then try setting the conduit so the handheld
overwrites the desktop and hotsync. If that still fails and you have a device that supports an external memory card, try backing
up your handheld to the SD card using a backup program like BackupBuddy or BackupMan. Then hard reset the handheld and
just restore the one database that was failing to sync. Set all conduits to Do Nothing except the one for the database you are
trying to recover - set that conduit to have the Handheld overwrite the Desktop. It is most unlikely at this point you will still
find the conduit failing. After this, you can the proceed with a full restore of the handheld and run another sync to be sure that
it is now synching normally.
DBFIXIT2 REFERENCE MANUAL
© 2009, Pimlico Software, Inc.
Page 9
DbFixIt2 - Trouble-Shooting - Continued
Application crashes but DbFixIt2 says the database is clean. Keep in mind that DbFixIt2 cannot fix
internal errors in records from proprietary databases written by other third party applications, whose structure is unknown to
DbFixIt2. It is possible that there is a syntactic error in a record which is tripping up the application. In that case, you can try
using the Remove Range of Records... menu command. This allows you to selectively delete all records in a specified range.
This may allow you to recover at least a portion of the database - especially if you can zero in on the corrupt record that is
crashing the application. A “Binary” search may allow you to zero in fairly quickly - for example, with just ten tests, you can
locate a single corrupt record out of a 1,000 record database. In this case, you would start out by making a copy of the database
by tapping the Make Backup Copy of Database button, and then split the database in half by deleting all records up to the
midpoint. Then test the app to see if it still crashes if it does, the bad record must be in the Last Half of the database, so split the
database in half again. If it does not crash, then the bad record was in the first half, so tap the Restore Database from Backup
button and this time just delete from the first record to a record one quarter the total number or records. Repeat this procedure
until you have narrowed down the offending record. Even with a database of 16,000 records, it only takes 14 iterations to locate
the bad record. If you know any text in the record, you can use the Find button to locate records which contain that matching
text string.
Feature to remove Duplicate Records not removing all duplicates. First of all, records must be 100%
identical for them to be removed by this function. For example, if two records are identical, but in different categories, they are
not considered identical, nor will they if one record is private and the other is not private.
In some cases, due to benign corruption, two records may appear identical in all respects to the user but internally may differ
because the records were not properly compacted by the application (DbFixIt2 checks that the records are of identical length
before comparing them).
DbFixIt2 does not require that the database be sorted in any order. Every record is compared to every other record in the database, so even out of place records that are duplicates will be removed by this routine.
Duplicate records are marked as deleted in the database (not removed), so if you subsequently do a regular sync, those duplicates will be removed from the desktop database as well. However, in most cases, it is usually recommended that after running
a DbFixIt2 scan, you set the designated conduit(s) so the handheld overwrites the desktop.
Scan is very slow when Remove Duplicates option is selected. The scan of the database when the
option to remove Duplicated records will indeed take far longer than normal! It is highly recommended that you make sure
your batteries are not nearly drained down as really large databases could take as long as 5-10mins or possibly more to scan and
while it’s not likely to cause a serious problem, it’s never a good idea to have a device’s battery fail while a program is actively
scanning and possibly attempting to modify a database. As an example, a calendar database of 7,500 records takes about 2m20s
to scan on a Palm Centro. A data of 25,000 records might take as long as 20-30 minutes to scan. As long as the record number
in the top pane is counting down, you can be sure the program is operating normally and not frozen.
What Databases are safe to remove Duplicates From? In general you should only use this option on the
standard PIM databases (Calendar, Contacts, Memos, Tasks) as other databases may have legitimate duplicate records. That’s
why this option is automatically reset if you select a database in the Advanced Pane. You can then manually re-select this option
in which case, DbFixIt2 will then remove duplicate records, but it is advised that you do not use this option unless you either
(a) know that duplicates should not be present in this database, or (b) have backed up the database so it can be easily restored
if a problem surfaces. Removing duplicate records from some system databases could easily cause the Palm OS to crash and
require a hard reset.
Error: Record has non-word aligned handle (removed from Database) appears on every
record!
There is a known bug in the Rom’s of some early Sony Clie and Palm M505/515 models whereby this error appears on large
numbers of records (sometimes all records). In that case, use the menu option Non Word Aligned Handles to toggle this test off
as it is on by default. Non-word aligned handles rarely pose an issue for most applications, but since the Palm OS mandates that
this be the case, it is possible that certain applications would malfunction (however, there is nothing that can be done about this
other than to update the Rom in the device).
DBFIXIT2 REFERENCE MANUAL
© 2009, Pimlico Software, Inc.
Page 10
DbFixIt2 Errors and Actions
This table lists all error messages in DbFixIt2, the type (E=Error, W=Warning, I=Information) and a description of the error
condition and the fix that DbFixIt2 will apply to correct it.
Error
Record has NIL Chunk
Deleted Record not at end of
Database
Record has Invalid Lock Count
of: XXX
This record’s uniqueID is already
in use
Not enough memory to include
checks for Unique ID’s
End Time, but no Start Time
Start Time or End Time has
hours > 23
Start Time or End Time has minutes > 59
Month/Day or Year is bad
Start Time > End Time
Unable to fix bad Time Field,
Removing Record
Type
Description of Error and the Fix that DbFixIt2 will apply
E
Only deleted records are allowed to have no chunk (data) and a non-deleted
record was found. The record will be changed to a deleted record (since there
is no data associated with the record anyway).
W By convention, deleted records are stored at the end of a Palm OS database.
However, not all applications follow this convention so with some applications this may well not be an error condition. If you “fix” this problem, the
deleted record will be moved to the end of the database (it should always be
safe to do this as if the application doesn’t care about the order, then it won’t
mind having all deleted records moved to the end of the database). For some
databases, like the Calendar database, this is a significant error condition that
will result in the apparent loss of data.
W This indicates that a locked record was left in the database. An application
should always unlock all records when it exits. Locked records can cause an
unexpected reset later on when that same record is accessed, especially if by
another application. DbFixIt2 will reset the correct lock count on the record.
E
A duplicate unique ID has been found in the database. This can cause problems such as the wrong record being unexpectedly displayed on a global find ,
or an alarm going off on the wrong record, etc. DbFixIt2 will correct the problem by copying the record to a new record with what should be a unique ID
(unless the AppInfoBlock of that database has been corrupted in some way).
Note: DbFixIt2 can only do this check if there are less than 21,845 records in
the database).
I
This is not an error condition. DbFixIt2 can only perform the duplicate unique
ID check if there are less than 21,845 records in the database. You might want
to run the scan and check the box to remove duplicate records as it is possible
the large size of your database is due to a number of duplicate records.
W In the Datebook or Calendar databases, DbFixIt2 found an item which had a
valid End Time, but no Start Time. Properly written applications should ensure
that both fields are set to a null value if the item is untimed. DbFixIt2 will set
the end time to a null value.
E
The hours field in the time field is invalid as 23 is the maximum number of
hours. DbFixIt2 sets any item with a corrupt date or time field to today’s date
and a time of 9am so it can be easily found and moved to the correct date and
time.
E
The minutes field in the time field is invalid as 59 is the maximum number of
minutes. DbFixIt2 sets any item with a corrupt date or time field to today’s
date and a time of 9am so it can be easily found and moved to the correct date
and time.
E
The date field for this item is invalid (non-existent date). DbFixIt2 sets any
item with a corrupt date or time field to today’s date and a time of 9am so it
can be easily found and moved to the correct date and time.
E
The Start Time was greater than the End time in the traditional Palm OS
Datebook database (this is not an error in the proprietary PalmOne Calendar
database as this is used to mark items that extend past midnight). DbFixIt2 sets
any item with a corrupt date or time field to today’s date and a time of 9am so
it can be easily found and moved to the correct date and time.
E
When applying a correction to the Date/time field, the PalmOS reported a fault
on that record. DbFixIt2 will then remove the corrupt record instead.
DBFIXIT2 REFERENCE MANUAL
Error
Alarm Advance > 99
Alarm Advance Unit > Days
Unable to clear Alarm Field,
Removing Record
Repeat has NNN Exceptions
No Displayable Occurrences of
Repeat Event
Invalid Repeat Type
Repeat End Date < Start Date
Repeat End Date month/day/year
bad
Frequency on Repeat Event is
zero!
Weekly Repeat, no days specified
Repeat On > Last Saturday
Repeat Start of Week > Saturday
Frequency field in some repeat
events was > 99
Repeat On field in some repeat
events not Null
Unable to clear Repeat Field,
Removing Record
Non-Repeat Record found in
Repeat Record Section of Database
© 2009, Pimlico Software, Inc.
Page 11
Type
Description of Error and the Fix that DbFixIt2 will apply
E
The advance field for an alarm has a value greater than 99 which is not
allowed. DbFixIt2 will remove the alarm indicator for this record.
E
The alarm type field can only have a value of 0, 1 or 2 for Minutes, hours or
days. DbFixIt2 will remove the alarm indicator for this record.
E
When attempting to remove the Alarm field, the PalmOS reported a fault on
that record. DbFixIt2 will then remove the corrupt record instead.
W Where NNN is the number of exceptions found for a repeat records. This may
not necessarily be an error condition if you routinely change or mark instances
of a repeat as done. This warning only appears if there are more than 200
exceptions to a single repeat record. If you tell DbFixIt2 to fix this problem,
the repeat indicator on the record will be removed.
W There is a repeat record in the database, but there are no displayable occurrences because the very last displayable occurrence was deleted. Early versions of the built-in calendar application failed to check for this condition and
could end up with these “orphans” in the database. DbFixIt2 will remove this
record.
E
Valid repeat types are Day/week/month/year - in this case the numeric code in
this field does not correspond to any defined repeat type. DbFixIt2 will remove
the repeat indicator on the record.
E
The ending date for the repeat is earlier than the start date of the record.
DbFixIt2 will remove the repeat indicator on the record.
E
The ending date for the repeat has an invalid date format. DbFixIt2 will
remove the repeat indicator on the record.
E
The repeat frequency for a repeat record must have a value of at least 1 to be
valid. DbFixIt2 will remove the repeat indicator on the record.
E
On a weekly repeat, no days of the week were selected for the repeat - this
indicates an invalid repeat specification. DbFixIt2 will remove the repeat indicator on the record.
E
The Repeat On field in the repeat indicator has a value greater than 6 (only
0-6 are valid for the seven days of the week). DbFixIt2 will remove the repeat
indicator on the record.
E
The Repeat Start of Week field in the repeat indicator has a value greater than 6
(only 0-6 are valid for the seven days of the week). DbFixIt2 will remove the
repeat indicator on the record.
W This is either not a fault, or a benign error condition as it does not seem to
affect the built-in calendar or Datebook applications, nor the conduits or
desktops that are generally used. Pimlico’s DateBk application does permit a
value up to 255 in this field in order to allow enhanced functionality. It is only
reported once at the conclusion of the scan. No fix is applied to this issue.
W This is a benign error condition caused by sloppy programming in some conduits (not present in the standard Palm conduits). It is only reported once at the
conclusion of the scan and no fix is applied to this issue.
E
When attempting to remove the Repeat field, the PalmOS reported a fault on
that record. DbFixIt2 will then remove the corrupt record instead.
E
In the Datebook and calendar databases, repeat records must come before all
non-repeat records, and in this case a non-repeat record was found earlier than
a repeat record. DbFixIt2 will re-sort the entire database and start the scan over
again.
DBFIXIT2 REFERENCE MANUAL
© 2009, Pimlico Software, Inc.
Page 12
Error
Type
Description of Error and the Fix that DbFixIt2 will apply
E
An item was found in the Datebook/Calendar database in the wrong position
This Record is in the Wrong Posiby date (all non-repeat items are sorted by date). DbFixIt2 will re-sort the
tion by date
database and start the scan over again at the top.
E
An item was found in the Datebook/Calendar database in the wrong posiThis Record is in the wrong Position by time (all non-repeat items are sorted by date and then by start time).
tion by time
DbFixIt2 will re-sort the database and start the scan over again at the top.
Since Database is not in correct
I
This message appears just to alert you to the fact that DbFixIt2 is going to sort
order, it will now be sorted and
the entire database and then resume the scan again from the top.
scanning resumed back at the
beginning
E
Only repeat records should have an exceptions list. While this is in theory a
Non-repeat record has an Excepbenign fault, it does indicate corruption in the database. DbFixIt2 will remove
tions List?
the exceptions field from the record.
E
When attempting to remove the exceptions field, the PalmOS reported a fault
Unable to clear Exceptions Field
on that record. DbFixIt2 will then remove the corrupt record instead.
E
Description fields in the Datebook/Calendar/ToDo/Tasks databases are limDescription field > 255 chars
ited to 255 characters. DbFixIt2 will truncate the description to the maximum
permitted length.
E
Unable to Truncate Description
When attempting to fix the length of the Description field, the PalmOS reported
Field to maximum permitted size
a fault on that record. DbFixIt2 will then remove the corrupt record instead.
E
Note fields in the Datebook/AddressBook/ToDo/MemoPad databases are
limited to 4095 characters and to 32,767 characters in the Calendar/Contacts/
Note field > NNN chars
memos/Tasks database. DbFixIt2 will truncate the note field to the maximum
permitted length.
E
Unable to Truncate Note Field to
When attempting to fix the length of the Note field, the PalmOS reported a
maximum permitted size
fault on that record. DbFixIt2 will then remove the corrupt record instead.
E
Location fields in the Calendar database are limited to 255 characters. DbFixIt2
Location field > 255 chars
will truncate the location field to the maximum permitted length.
E
Unable to Truncate Location
When attempting to fix the length of the Location field, the PalmOS reported a
Field to maximum permitted size
fault on that record. DbFixIt2 will then remove the corrupt record instead.
E
Both the description field and the note field for an item are blank. The conBoth Description and Note are
vention for the Palm OS PIM databases is to remove all such records, so none
blank - corrupt record
should ever be found by DbFixIt2. DbFixIt2 will remove the blank record.
Unused Bytes at end of record
E
E
This record is SHORT by NNN
Bytes
Due Date month/day/year bad
Unable to fix bad Date Field
Bad Priority Value: NNNN
E
E
E
With a database whose structure is completely known, DbFixIt2 has determined there are unused bytes past the logical end of the record. DbFixIt2 will
resize the record to remove the unused bytes and recover the wasted space.
With a database whose structure is completely known, DbFixIt2 has determined that there are structures whose data lies past the end of the logical
record. This will result in a read from non-memory and definitely indicates
corruption. DbFixIt2 will resize the record to the minimum valid length. Note
that there may then be corrupted data in those structures, so rescanning the
database is recommended if this error is seen.
This error is associated with a Task or ToDo that has a bad due date. DbFixIt2
will change the Due Date to today’s date.
When attempting to fix the Date field, the PalmOS reported a fault on that
record. DbFixIt2 will then remove the corrupt record instead.
A task or Todo has an invalid priority field, NNN is the value of the priority
field. DbFixIt2 will change the priority of the item to ‘1’.
DBFIXIT2 REFERENCE MANUAL
© 2009, Pimlico Software, Inc.
Page 13
Error
Type
Description of Error and the Fix that DbFixIt2 will apply
E
When attempting to fix the Priority field, the PalmOS reported a fault on that
Unable to fix bad Priority Field
record. DbFixIt2 will then remove the corrupt record instead.
W Supposedly unused bits in the ‘record-flags’ field are set. While this is a benign
Tasks Database”, “Warning:
error condition, it does indicate corruption or faulty programming in the appliUndefined bits set in ‘recordcation updating this database, and could potentially result in problems with
Flags’ field
future updates of the application that used those bit fields. DbFixIt2 will set
the unused bits to zero.
E
Unable to clear undefined Record
When attempting to fix the ‘record-flags’ field, the PalmOS reported a fault on
flag bits in header
that record. DbFixIt2 will then remove the corrupt record instead.
W Supposedly unused bits in the ‘data-flags’ field are set. While this is a benign
error condition, it does indicate corruption or faulty programming in the appliWarning: Undefined bits set in
cation updating this database, and could potentially result in problems with
‘dataFlags’ field
future updates of the application that used those bit fields. DbFixIt2 will set
the unused bits to zero.
E
Unable to clear undefined Data
When attempting to fix the ‘data-flags’ field, the PalmOS reported a fault on
flag bits in header
that record. DbFixIt2 will then remove the corrupt record instead.
E
Bad Due Date (Y-M-D): YY-MMThe Due date field of a Task record has an invalid date. DbFixIt2 will reset the
DD
date to today’s date.
E
Not successful in repairing Due
When attempting to fix the Due Date field, the PalmOS reported a fault on that
Date field
record. DbFixIt2 will then remove the corrupt record instead.
E
The Completion date field of a Task record has an invalid date. DbFixIt2 will
Bad Completion Date(Y-M-D):
reset the date to today’s date.
E
Not successful in repairing
When attempting to fix the Completion Date field, the PalmOS reported a fault
Completion Date field
on that record. DbFixIt2 will then remove the corrupt record instead.
E
Bad Alarm(Hrs-Mins-advance):
A bad alarm field was found on a Tasks record, the Hours, minutes and advance
HH-MM-AA
value are displayed. DbFixIt2 will remove the alarm indicator on this task.
E
Not successful in removing alarm
When attempting to remove the alarm field, the PalmOS reported a fault on
field
that record. DbFixIt2 will then remove the corrupt record instead.
E
The record header indicated there was a repeat on the Task, but the pointer to
Tasks Database,
the repeat was NULL - indicating a corrupt record. DbFixIt2 will remove the
‘dataFlags.repeat’ set, but pointer
alarm indicator on this task.
was Null
Not successful in repairing repeat
field
Bad Repeat Start Date(Y-M-D):
YY-MM-DD
Not successful in repairing repeat
field
No Displayable Occurrences of
Repeat Task
E
E
E
W
E
Record Too Long: NNNN
Blob goes beyond end of record
Too many blobs
E
E
When attempting to remove the repeat field, the PalmOS reported a fault on
that record. DbFixIt2 will then remove the corrupt record instead.
The repeat start date was invalid (as indicated), and DbFixIt2 it will remove
the repeat indicator on the record.
When attempting to remove the repeat field, the PalmOS reported a fault on
that record. DbFixIt2 will then remove the corrupt record instead.
There are no displayable occurrences of this repeat task and this record most
likely is not visible in the Tasks database. DbFixIt2 will remove it.
With a database where the maximum record length is known (such as the
Memo or Memos databases), this error indicates that a record was found that
exceeded the maximum length. DbFixIt2 will truncate the record to the maximum permitted length.
A BLOB was found that extended past the physical end of the record - this
always indicates corruption. DbFixIt2 will remove the corrupt Blob
There is a limit of 10 Blobs per record and this limit has been exceeded. All
Blobs beyond the maximum number will be discarded by DbFixIt2.
DBFIXIT2 REFERENCE MANUAL
Error
Blob CreatorID has Invalid
Character(s)
Blob with Invalid Creator ID
Found (non-displayable characters).
Last blob not aligned with end of
record
Blob Header extends past end of
record by: NNN Bytes
Blob size does not agree with
contents
BLOB ID = XXXX
Page 14
Type
Description of Error and the Fix that DbFixIt2 will apply
E
The CreatorID field of a BLOB has invalid characters outside of the normal
Ascii Character set (i.e. a non-displayable character). DbFixIt2 will remove
the corrupt Blob.
E
This error appears an alert. There is also an option to continue testing for corrupt Blobs silently (in case there are a huge number of such errors).
E
E
E
I
Is this a valid BLOB?
(Answer No or No To All if not
sure).
E
Record has non-word aligned
handle (removed from Database)
E
Duplicate Record Found
© 2009, Pimlico Software, Inc.
The last Blob in the record does not align properly with the physical end of the
record. The Blob will be removed by DbFixIt2.
The header of a Blob extends past the end of the record indicating a corrupt/
Blob Fragment. The corrupt Blob is removed by DbFixIt2.
For Blobs where the structure is known, this error indicates that the size of the
Blob itself does not match the stated size of the Blob in the Blob Header. The
corrupt Blob is removed by DbFixIt2.
This message appears if a Blob is found with a creator ID that does not match
any installed application (if there is a match on the creatorID, DbFixIt2
assumes that the Blob is valid and will not complain about it). If you know this
Blob is valid, then allow it and it will be put into a temporary list so no further
complaints will be made about that Blob during the current pass. If you answer
No or No To All then the Blob will be removed by DbFixIt2.
This message appears if a record has a bad pointer into memory. This error will
crash any application that attempts to read the database. DbFixIt2’s only action
is to remove the corrupt record. Some early Sony Clie’s and Palm M505/515’s
had a bug in the Palm OS, whereby this error appeared on every record. Use
the menu option to disable this test if that is the case.
A perfect, duplicate record was found in the database. Note that the records
must be perfect duplicates. Small differences such as the records being in a
different category, or one being private and one being non-private will not be
treated as a perfect match. The record will be marked as deleted and moved to
the end of the database.
Known issues in Third Party Software
DateBk5 and DateBk6
Both DateBk5 and DateBk6 allow a value in the range 100-255 in the Frequency field of a repeat specification. The built-in
Tasks application only allows a value up to 99. Attempting to read a task that has a value > 99 in the frequency field can cause
a reset in the built-in Tasks application, so such values should be avoided if the built-in Tasks or desktop applications are used
on a regular basis. DbFixIt2 will generate a single warning following the completion of the database scan if such values are
present.
Agendus
Agendus also allows a value of 100-255 in the Frequency field of a repeat specification (see note above), but also appears to
put several other values in the repeat specification that are not compatible with the built-in Tasks application. A value of 6 has
been seen in the repeat specification (which is “invalid” and instantly crashes the built-in Tasks application) and on weekly/
monthly interval type repeats, Agendus does not set a default value as the built-in tasks application does. Such conditions also
instantly crash the built-in tasks application and are reported as errors at this time unless Agendus is present in which case they
are reported as warnings. Note that an interval repeat created in the built-in Tasks application always properly initializes the
remaining repeat fields in structure, and there is no reason why Agendus could not also do this which would then avoid crashing
the built-in application. However, Agendus has its own desktop application so these unexpected values would not be an issue
with their desktop application.
DBFIXIT2 REFERENCE MANUAL
© 2009, Pimlico Software, Inc.
Page 15
Fatal DbFixIt2 Errors
All these errors are fatal and will cause DbFixIt2 to abort the scan of the database as there is no point continuing the scan
under these conditions. Your only recourse at this point would likely be to do a hard reset on the handheld and restore the
PIM databases from your last backup.
Error
Type
Description of Error and the Fix that DbFixIt2 will apply
F
DmRemoveRecord Failed
Attempting to remove a record resulted in a fault.
F
MemHandleResize Failed
Attempting to resize a record resulted in a fault.
F
DmResizeRecord Failed with
Attempting to resize a record resulted in a fault and NNN is the error code of
error code: NNN
the specific fault (see table below).
F
Palm OS Cannot lock down
DbFixIt2 tried to lock down a handle, but the Palm OS returned a fault indicathandle
ing the database or Palm OS is likely severely corrupt.
I
Not Enough Room For Packed
An internal error condition which might indicate a Corrupt Palm OS or posRecord? Extra Bytes Needed = nn
sibly an error in the application. Notify Pimlico Software if you see this.
I
Resized Contacts Record is too
An internal error condition which might indicate a Corrupt Palm OS or poslong. Wasted Bytes = nn
sibly an error in the application. Notify Pimlico Software if you see this..
Palm OS Memory and Data Manager Error Codes
257
memErrChunkLocked
258
memErrNotEnoughSpace
259
memErrInvalidParam
260
memErrChunkNotLocked
261
memErrCardNotPresent
262
memErrNoCardHeader
263
memErrInvalidStoreHeader
264
memErrRAMOnlyCard
265
memErrWriteProtect
266
memErrNoRAMOnCard
267
memErrNoStore
268
memErrROMOnlyCard
===============================================================
513
dmErrMemError
514
dmErrIndexOutOfRange
515
dmErrInvalidParam
516
dmErrReadOnly
517
dmErrDatabaseOpen
518
dmErrCantOpen
519
dmErrCantFind
520
dmErrRecordInWrongCard
521
dmErrCorruptDatabase
522
dmErrRecordDeleted
523
dmErrRecordArchived
524
dmErrNotRecordDB
525
dmErrNotResourceDB
526
dmErrROMBased
527
dmErrRecordBusy
528
dmErrResourceNotFound
529
dmErrNoOpenDatabase
530
dmErrInvalidCategory
531
dmErrNotValidRecord
532
dmErrWriteOutOfBounds
533
dmErrSeekFailed
534
dmErrAlreadyOpenForWrites
535
dmErrOpenedByAnotherTask
536
dmErrUniqueIDNotFound
537
dmErrAlreadyExists
538
dmErrInvalidDatabaseName
539
dmErrDatabaseProtected
540
dmErrDatabaseNotProtected
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertising