public final void chainStartFailed(int attemptsMade, int attemptsLeft) {
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
            Tr.entry(this, tc, "chainStartFailed, chain: " + this.name);
        }
        // Clone the list in case one of the event listeners modifies
        // the chain during this iteration.
        for (ChainEventListener listener : chainEventListeners) {
            if (listener instanceof RetryableChainEventListener) {
                if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                    Tr.debug(tc, "Calling chain retryable chain event listener");
                }
                ((RetryableChainEventListener) listener).chainStartFailed(this, attemptsMade, attemptsLeft);
            }
        }
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
            Tr.exit(this, tc, "chainStartFailed");
        }
    }
public final void chainStartFailed ( int attemptsMade , int attemptsLeft ) { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) { Tr . entry ( this , tc , "chainStartFailed, chain: " + this . name ) ; } for ( ChainEventListener listener : chainEventListeners ) { if ( listener instanceof RetryableChainEventListener ) { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) { Tr . debug ( tc , "Calling chain retryable chain event listener" ) ; } ( ( RetryableChainEventListener ) listener ) . chainStartFailed ( this , attemptsMade , attemptsLeft ) ; } } if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) { Tr . exit ( this , tc , "chainStartFailed" ) ; } }
This method is called when the chain start fails. It informs
each of the chain event listeners.

@param attemptsMade
@param attemptsLeft