In-flight Transaction Recovery
	
  XCO can recover in-flight (in-progress)
		transactions after a service restart or high-availability failover.
		Overview
			
			In-flight transactions are those that are outstanding in the execution log after a restart or
				a failover. After a service restart or high-availability failover, XCO recovers
				in-flight transactions by rolling them backward or rolling them forward. 
					- When transactions are rolled
						backward, the requested action is incomplete. 
 
					- When transactions are rolled
						forward, the requested action is completed.
 
				
 
			By default, the in-flight transaction recovery feature enables the automatic recovery of Day-1
				through Day-N operations for tenant-related configurations. You can use the 
efa system feature update
					--inflight-transaction-auto-recovery disable command to disable the
				feature. The following table describes the recovery strategy when the feature is
					enabled:
Table 1. Recovery strategy
							
								| Operation type | 
								Commands | 
								Strategy | 
							
						
							
								| Create operations | 
								
									
										- efa
												tenant create
 
										- efa
												tenant epg create
 
										- efa
												tenant po create
 
										- efa
												tenant service bgp peer create
 
										- efa
												tenant service bgp peer-group create
 
										- efa
												tenant vrf create
 
									 
								 | 
								Roll back | 
							
							
								| Delete operations | 
								
									
										- efa
												tenant delete
 
										- efa
												tenant epg delete
 
										- efa
												tenant po delete
 
										- efa
												tenant service bgp peer delete
 
										- efa
												tenant service bgp peer-group delete
 
										- efa
												tenant vrf delete
 
									 
								 | 
								Roll forward | 
							
							
								| Update with add operations, such as port-add, ctag-range-add,
									and vrf-add | 
								
									
										- efa
												tenant update
 
										- efa
												tenant epg update
 
										- efa
												tenant po update
 
										- efa
												tenant service bgp peer update
 
										- efa
												tenant service bgp peer-group update
 
										- efa
												tenant vrf update
 
									 
								 | 
								Roll back | 
							
							
								| Update with delete operations, such as port-delete,
									vrf-delete, and ctag-range-delete | 
								
									
										- efa
												tenant update
 
										- efa
												tenant epg update
 
										- efa
												tenant po update
 
										- efa
												tenant service bgp peer update
 
										- efa
												tenant service bgp peer-group update
 
										- efa
												tenant vrf update
 
									 
								 | 
								Roll forward | 
							
						
 
			Consider the following expected behaviors for in-flight transaction recovery:
					- During operations that take a
						long time, such as drift and reconcile and firmware downloads, tenant
						operations and recovery operations are blocked.
 
					- When multiple transactions
						are pending in the execution log after a restart or a failover, recovery
						occurs in the order in which the operations appear in the execution
						log.
 
					- If a service restart or high
						availability failover occurs during transaction recovery, then the status of
						those recovery operations is changed to a normal state. For example, if a
						restart occurs during the rollback of an endpoint group (EPG), the status
						changes to delete-pending. There is no automatic recovery of interrupted
						recovery transactions. You must manually verify and address the status of
						such operations. 
 
				
 
			
Important   
				Day-0 and administrative operations (those for the Inventory Services and Fabric Services)
					are not recovered automatically. If these operations are interrupted by a
					service restart or a failover, you must manually redo the operations.
			 
		
		Examples
			
			The following example enables automatic in-flight transaction recovery:
			efa system feature update --inflight-transaction-auto-recovery enable
Feature Setting Updated Successful
--- Time Elapsed: 634.557118ms ---
			The following example disables automatic in-flight transaction recovery:
			efa system feature update --inflight-transaction-auto-recovery disable
Feature Setting Updated Successful
--- Time Elapsed: 634.557125ms ---