anchor.diff:  
   terminate(_Reason, State) ->
       Adapter = State#state.adapter,
  +    case State#state.connection_retry_timer of
  +	undefined ->
  +	    noop;
  +	Timer ->
  +	    timer:cancel(Timer)
  +    end,
       terminate_connections(Adapter, State#state.read_connection, State#state.write_connection),
       lists:map(fun({A, RC, WC}) -> terminate_connections(A, RC, WC) end, State#state.shards).
   
  
positive.code: -record(state, {
  	  connection_state,
  	  connection_delay,
  	  options,
          adapter, 
          read_connection, 
  
negative.code: 			     cache_enable = CacheEnable, cache_ttl = CacheTTL, cache_prefix = db }};
  	Failure ->
  	    error_logger:info_msg("Database connection failure ~p", [Failure]),
  	    {ok, Tref} = setup_reconnect(State),
  	    {noreply, #state{connection_state = disconnected, connection_delay = State#state.connection_delay * 2,
  			     connection_retry_timer = Tref,
  			     adapter = Adapter, read_connection = undefined, write_connection = undefined,
  			     options = Options, cache_enable = CacheEnable, cache_ttl = CacheTTL, cache_prefix = db }}
      catch
  	Error ->
  	    error_logger:info_msg("Database connection exception ~p", [Error]),
  	    {ok, Tref} = setup_reconnect(State),
  	    {noreply, #state{connection_state = disconnected, connection_delay = State#state.connection_delay * 2,
  			     connection_retry_timer = Tref,
  			     adapter = Adapter, read_connection = undefined, write_connection = undefined,
  			     options = Options, cache_enable = CacheEnable, cache_ttl = CacheTTL, cache_prefix = db }}
      end;
  