More and more GIS Administrators seem to be using non-ESRI applications to access web services via ArcSDE. In order to use non-ESRI apps a full database compression to state_ID=0 must occur. At version 10 and 10.1, in order to get a full compress, it is sometimes necessary to synchronize changes not only from child two-way to parent, but also from parent (SDE.DEFAULT) to child two-way. This step is necessary to clean up the SDE.VERSIONS table which allows for a full compress to state_ID=0.
I spent weeks on this problem, in addition to ESRI Technical Support. THe documentation for this step is only referenced in the ESRI white paper on compression, and only as a special side-note in that documentation. It seems that everywhere else I searched, in addition to the forums, the widely accepted and documented steps to achieve full compress was to
1.) reconcile/post
2.) delete versions
3.) synchronize changes for all replicas from child to parent
4.) compress database, check state_ID.
However, at version 10 and 10.1 the steps are actually:
1.) reconcile/post
2.) delete versions
3.) synchronize changes for all replicas from child to parent
4.) synchronize changes from parent back to each child two-way replica (even if there are no changes)
5.) compress database, check state_ID.