Hello. Are you getting messages that the lock is still held when a requestor tries to open the item or are you just concerned that your database is cluttered? I know that the way we do locking was changed, under the covers, in some fairly significant ways in 6.3, so it's possible they changed when the entry was removed from the database. After a quick search, I wasn't able to find other customers reporting issues being caused by locks not getting removed from the database, so it doesn't look like this is an outstanding problem.
Unfortunately, I don't have much more insight beyond what I already said. Historically the lock info was kept in the table pr_sys_locks. As of PRPC 6.3sp1, some of that was moved to memory. I believe the table is still used so that all the nodes in a multi-node environment are aware of what is locked. I'm pretty sure the system cleaner agent (Defined in Pega-RULES) is supposed to clean these up if it is running, so I'd start by looking at that. If that agent is down, you probably have a lot of other things piling up. You may want to delay and trace it to try and understand why it isn't choosing the remove the locks from the DB. What is the timestamp for the cleanup? I suppose it's possible that you're running into an issue where that stamp is out of sync and they are getting "correctly" cleaned up, but at the time on the stamp and not when you expect.