O Objeto Probe Fragment

O objeto probe Fragment é uma especificação de uma lógica probe. Ele contém código fonte Java que será executado.

Pelo menos um objeto Fragment é necessário. Ele contém o objeto Code e todos os itens de dados que são referidos pelo código fonte no objeto Code. Uma probe pode conter mais de um objeto Fragment, mas dois objetos Fragment não podem ter o mesmo tipo.

O objeto Fragment inclui a seguinte propriedade:
Propriedade Descrição
type Obrigatório.Para probes de método, ela deve ser entry, exit, catch, staticInitializer ou executableUnit. Para probes callsite, ela deve ser beforeCall ou afterCall. Você não pode misturar fragmentos de método e fragmentos callsite em uma única probe.
A seguinte tabela lista e descreve os tipos de fragmento e indica o tipo de probe em que cada um pode ser utilizado:
Tipo de fragmento Tipo de probe Descrição
entry Método Fragmentos entry são executados no método de entrada. Fragmentos entry não executarão para métodos que foram inseridos na classe pelo Kit Probe.
exit Método Fragmentos exit são executados no método de saída; uma saída normal, quando o método lança uma exceção ou quando uma exceção lançada é propagada para fora do método. Fragmentos exit não serão executados para métodos que foram inseridos na classe pelo Kit Probe.
catch Método Fragmentos catch são executados no início de uma cláusula catch no método ou no início de uma cláusula finally que é executada como resultado de uma exceção.
staticInitializer Método Fragmentos staticInitializer são executados dentro do inicializador de classe de cada classe sondada. Se a classe ainda não tiver um inicializador estático, será criado um. Para obter informações adicionais, consulte Fragmento Probe staticInitializer.
executableUnit Método Fragmentos executableUnit são executados antes de cada unidade de código executável que corresponde à especificação de destino e filtro da probe e para a qual o código fonte está disponível. Se o método não tiver informações sobre a linha de origem, ele parecerá ter uma única unidade executável, numerada com zero. Para obter informações adicionais, consulte Fragmento Probe executableUnit.
beforeCall callsite Fragmentos beforeCall são executados no método de chamada imediatamente antes do método de destino ser chamado. Não válido para probes de método.
afterCall callsite Fragmentos afterCall são executados no método de chamada imediatamente após o método de destino ser gerado; uma saída normal ou quando o método de destino lança uma exceção. Não válido para probes de método.
Notas:
  • Quando as probes são aplicadas em métodos que são declarados sincronizados, o código nos fragmentos entry, exit e executableUnit não têm garantia de estarem protegidos da execução simultânea em vários encadeamentos. Por exemplo, um fragmento entry e os primeiros fragmentos executableUnit poderão ser executados antes da lógica de sincronização do método obter uma trava e um fragmento exit poderá ser executado depois da trava ser liberada.
  • Uma probe pode ter vários fragmentos que se aplicam ao mesmo local em um método; por exemplo, um fragmento entry e o primeiro local executableUnit. Outro exemplo é um fragmento catch e seu local executableUnit associado, porque cláusulas catch de manipulação de exceção sempre representam o início de uma nova unidade executável. Nesses casos, o código do fragmento executableUnit será executado após o código do fragmento entry ou catch. Uma conseqüência é que os fragmentos entry, se presentes, sempre serão executados antes de outros tipos de fragmentos.
Exemplo
<fragment type="entry"> 
   <data . . . />
   <code>
      . . . 
   </code>
</fragment>

Contido por
O Objeto Probe

Tópico-pai: Referência do Kit Probe

Conceitos Relacionados
Probes de Método Versus Probes Callsite

Copyright IBM Corporation e outros 2000, 2004.