Hello Raju,
ID generators work by handing out the next number in a globally scoped ID generator nucleus component.
There are ID spaces, to make different numbering possible for different purposes.
The id generator has a batch from which it hands out numbers, increasing the ID by 1 each time one is requested.
When the batch is depleted, it obtains a new batch (which is unique in the cluster) by loading from the DAS_ID_GENERATOR table.
The table is updated, so the next server in the cluster takes the next batch. More can be found in the ATG manuals.
When you see duplicate keys, the most likely cause is the copying of data to another database schema, without adjusting the DAS_ID_GENERATOR table.
When profiles are copied from a different environment (say users 1-10000), the DAS_ID_GENERATOR must contains a 'seed' value that is larger then 10000, to avoid handing out ID's that are already taken by existing profiles.
Usually, we ask a DBA to ensure this when copying data across, but another method that works is to use a prefix or suffix value in the ID definition, so ID ranges of copied profiles and newly generated profiles never overlaps.
Hope this helps