Os algoritmos de resultados são um recurso opcional do modelo de programação de batch.
Um algoritmo de resultados permite que dois tipos de ações ocorram ao final de uma etapa de batch:
Os algoritmos de resultados são aplicados a uma tarefa em lote por meio do xJCL (XML Job Control Language). Eles são declarados no xJCL e, em seguida, aplicados às etapas em lote.
No final de uma etapa em lote, os terminais de Compute Grid verificam a xJCL da tarefa em lote para determinar qual algoritmo de resultados invocar. Para cada algoritmo de resultados especificado, os terminais de Compute Grid transmitem para o algoritmo o código de retorno da etapa em lote, que é o número inteiro retornado pelo método destroyJobStep da etapa e o código de retorno atual da tarefa em lote no banco de dados terminais de Compute Grid. O algoritmo de resultados pode então executar qualquer ação com base nos códigos de retorno transmitidos. Em seguida, o algoritmo retransmite um código de retorno da tarefa em lote para os terminais de Compute Grid, que são mantidos no banco de dados dos terminais de Compute Grid como o código de retorno atual da tarefa em lote. Esse código de retorno pode ser o mesmo daquele transmitido pelos terminais de Compute Grid ao algoritmo de resultados inicialmente, ou pode ser diferente, dependendo da lógica codificada no algoritmo de resultados. Se um algoritmo de resultados não estiver especificado em uma etapa em lote, o código de retorno da tarefa será aquele do algoritmo de resultados da etapa anterior. Se nenhum algoritmo de resultados estiver especificado, o código de retorno da tarefa será zero (0).
Uma System Programming Interface (SPI) do algoritmo de resultados, que você pode usar para gravar seus próprios algoritmos e aplicá-los às tarefas em lote, também pode ser fornecida.
Exemplo de como aplicar um jobsum e um algoritmo de resultados customizados às etapas
<job name="PostingSampleEar"> <results-algorithms> <results-algorithm name="jobsum"> <classname>com.ibm.wsspi.resultsalgorithms.jobsum</classname> </results-algorithm> <results-algorithm name="custom_algorithm"> <classname>my_custom_algorithm</classname> </results-algorithm> </results-algorithms> <job-step name="Step1"> <results-ref name="jobsum"> </job-step> <job-step name="Step2"> <results-ref name="custom_algorithm"> </job-step> </job>