Actually, the important thing to remeber when carrying/using any aerosol/ irritant/ inflammatory agent is timing. If someone is goal oriented (already fighting with you and motivated to hurt you) any spray can be ineffective in completely stopping someone.
This is what I teach as an OC instructor....don't hose someone with spray after the fight is on. It just means you will end up with it on yourself as well. If they can grab you, they can still hold on and find you with punches or weapons.
Nothing is 100% and I have seen my share of brawls where spray had no effect other than making everything messy.
Surprise and timing are the key.