Compartilhar via


IEnlistmentNotification.Prepare(PreparingEnlistment) Método

Definição

Notifica um objeto inscrito de que uma transação está sendo preparada para confirmação.

public:
 void Prepare(System::Transactions::PreparingEnlistment ^ preparingEnlistment);
public void Prepare (System.Transactions.PreparingEnlistment preparingEnlistment);
abstract member Prepare : System.Transactions.PreparingEnlistment -> unit
Public Sub Prepare (preparingEnlistment As PreparingEnlistment)

Parâmetros

preparingEnlistment
PreparingEnlistment

Um objeto PreparingEnlistment usado para enviar uma resposta para o gerenciador de transação.

Comentários

O gerenciador de transações chama esse método de um gerenciador de recursos inscrito durante a fase 1 de um compromisso, quando pergunta aos participantes se eles podem confirmar a transação.

Ao implementar um gerenciador de recursos durável, você deve registrar seu registro de preparação durante essa fase. O registro deve conter todas as informações necessárias para executar a recuperação. Isso inclui a RecoveryInformation propriedade , que é passada para o gerenciador de transações no método durante a Reenlist recuperação. Para obter mais informações sobre a recuperação, consulte Executar Recuperação.

Seu gerenciador de recursos deve concluir todo o trabalho que deve ser concluído antes de chamar o Prepared método do preparingEnlistment parâmetro para indicar seu voto de compromisso. Você deve garantir que isso seja feito antes de receber qualquer notificação da fase 2, como confirmação, reversão ou dúvida. Isso ocorre porque as notificações da fase 2 podem ocorrer embutidas no mesmo thread que chamou o Prepared método na fase 1. Assim, você não deve fazer qualquer trabalho após o Prepared chamada (por exemplo, liberar bloqueios) que você esperaria ter concluído antes de receber as notificações de fase 2.

Você também pode chamar o método do preparingEnlistment parâmetro para indicar um voto de reversão.

Se você quiser que o objeto apenas observe e reaja ao progresso da transação, sem participar dele, sua implementação desse método deverá chamar o Done método do preparingEnlistment parâmetro quando ele tiver concluído seu trabalho. Ao fazer isso, o gerenciador de recursos não receberá nenhuma notificação de fase 2.

Aplica-se a