Confront him why he doesn't want to commit. If he can't explain why clearly to you you may consider either staying and accept that you won't get married or leave him for someone else. There isn't much choice really. Especially after such a long time (3 years) you would expect someone to make up his mind.
You can help the HubPages community highlight top quality content by ranking this answer up or down.