I describe how I use Vertex Arrays and glDrawElements(). I don’t use glLock() and glUnlock() and it works fine. Can you combine any of the Index’s? The less of them you use the better.
You use glLock and glUnlock for compiled vertex arrays. And those are only beneficial when you want to draw the same exact vertex array multiple times, e.g. multipass rendering.