Configurando Valores de Tempo Limite de Nova Tentativa de Solicitação

Com mapas confiáveis, é possível fornecer um valor de tempo limite de nova tentativa em milissegundos para o WebSphere eXtreme Scale para solicitações de transação.

Sobre Esta Tarefa

É possível configurar o valor de tempo limite no arquivo de propriedades do cliente ou em uma sessão. O valor de sessão substitui a configuração de propriedades do cliente. Se o valor estiver configurado como maior que zero, a solicitação será tentada até que a condição de tempo limite seja atendida ou até ocorrer uma falha permanente. Uma falha permanente pode ser uma exceção DuplicateKeyException. Um valor de zero indica a configuração do modo fail-fast e o eXtreme Scale não tenta a transação novamente após qualquer tipo de transação.

Durante o tempo de execução, o valor de tempo limite da transação é usado com o valor de tempo limite de nova tentativa, garantindo que o tempo limite de nova tentativa não exceda o tempo limite da transação.

Há dois tipos de transações: Transações de confirmação automática e as transações que usam os métodos begin e commit explícitos. As exceções válidas para nova tentativa diferem entre estes dois tipos de transações:
  • Para transações que são chamadas dentro de uma sessão, as transações são tentadas novamente para as exceçõesSystemException CORBA e TargetNotAvailable do eXtreme Scale.
  • Para transações de confirmação automática, as transações são tentadas novamente para SystemException CORBA e exceções de disponibilidade do eXtreme Scale. Essas exceções incluem as exceções ReplicationVotedToRollbackTransactionException, TargetNotAvailable e AvailabilityException.

As falhas do aplicativo ou outras falhas permanentes são retornadas imediatamente e o cliente não tenta a transação novamente. Essas falhas permanentes incluem as exceções DuplicateKeyException e KeyNotFoundException. Use a configuração fail-fast para retornar todas as exceções sem tentar as transações novamente depois de quaisquer exceções.

As exceções nas quais o cliente tenta a transação novamente são:
  • ReplicationVotedToRollbackTransactionException (somente na auto-consolidação)
  • TargetNotAvailable
  • org.omg.CORBA.SystemException
  • AvailabilityException (somente na auto-consolidação)
  • LockTimeoutException (somente na auto-consolidação)
  • UnavailableServiceException (somente na auto-consolidação)
Exceções permanentes, onde a transação não será tentada novamente:
  • DuplicateKeyException
  • KeyNotFoundException
  • LoaderException
  • TransactionAffinityException
  • LockDeadlockException
  • OptimisticCollisionException

Procedimento