Partilhar via


IEnlistmentNotification.Prepare(PreparingEnlistment) Método

Definição

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

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 PreparingEnlistment objeto usado para enviar uma resposta ao gerenciador de transações.

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 recuperação, consulte Executar a Recuperação.

O 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 em 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. Dessa forma, você não deve fazer nenhum trabalho após a Prepared chamada (por exemplo, liberando bloqueios) que você esperaria ter concluído antes de receber as notificações da fase 2.

Você também pode chamar o método do preparingEnlistment parâmetro para indicar uma votação para reversão.

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

Aplica-se a