Trigger recursion happens when updating a record in a trigger causes the trigger to fire itself again.
For example, if you had an after trigger on Opportunity, where you update the Opportunities that fired the current execution of the trigger, it will cause a domino effect - i.e. recursion.
To prevent recursion, you set an 'executing' static variable in a class, which is unique across the execution context.
Using the static variable as a 'semaphore' you can skip out of logic when the trigger is invoked for a 2nd time.
Some times the record may cause another trigger to fire, which in turn causes another to fire, and so on.
To stop this we use static boolean.
Refer this
http://www.salesforce.com/docs/developer/cookbook/Content/apex_controlling_recursive_triggers.htm
Trigger recursion happens when updating a record in a trigger causes the trigger to fire itself again.
For example, if you had an after trigger on Opportunity, where you update the Opportunities that fired the current execution of the trigger, it will cause a domino effect - i.e. recursion.
To prevent recursion, you set an 'executing' static variable in a class, which is unique across the execution context.
Using the static variable as a 'semaphore' you can skip out of logic when the trigger is invoked for a 2nd time.