My little boy was 3 1/2 before he was really ready. We tried a few times before that but had to give up. Even at 3 1/2 we had about 10 very bleak days (the staff at Petit Bateau may never forget one particular incident!) but he clearly was getting it and there was improvement every day. Once we'd committed this time we stuck with it. "Big Boy Pants" were an important symbol for the whole process for him too.
Over a year later he's only just able to realise he wants a wee or a poo 100% of the time and not have to sprint to the loo urgently. But he was dry through the night from 3 1/2, which surprised us, and has only ever wet the bed if he's ill. In the early days we would get him up for a wee before we went to bed, which must've helped. He's such a deep sleeper that this didn't really fully wake him.
Good luck!