Processos em Segundo Plano Paralelos

Muitos processos foram criados para execução em paralelo a fim de acelerar a execução. Isso se chama execução do processo com vários “threads”.

O sistema fornece as seguintes estratégias de distribuição dos dados entre os vários threads.

  • Seleção SQL no Nível do Thread (THDS). Algumas vezes, esta estratégia é chamada de estratégia de “iterador de threads”. Nessa estratégia, a tarefa em batch usa a chave primária para determinar como distribuir de maneira uniforme os intervalos de chaves para cada thread. Cada thread é então responsável pela seleção dos registros. Nessa estratégia, os threads também devem selecionar novamente os dados periodicamente para liberar o cursor, o que ajuda no desempenho. Note que essa é a estratégia preferida, mas só pode ser usada sob as seguintes condições:

    • Somente os dados de um objeto de manutenção estão em processamento.
    • A chave primária do objeto de manutenção é uma chave numérica única gerada pelo sistema.
    Observação:
    Os parâmetros podem ser usados para substituir os IDs mínimo e máximo. Para obter mais informações, consulte Parâmetros Fornecidos a Processos em Segundo Plano .
  • Intervalos de Chaves (KEYS). Essa estratégia é semelhante à estratégia Seleção SQL no Nível do Thread e segue as mesmas condições de objeto de manutenção e chave primária, mas usa valores de chave reais para calcular intervalos de threads. Essa estratégia pode ser necessária em situações em que as chaves não se distribuem uniformemente entre os threads, resultando em tempos de conclusão de thread desiguais. Por exemplo, as entidades de conversão no esquema de preparação têm chaves legadas, que geralmente não são atribuídas uniformemente. Isso afeta os processos em batch de Validação de Objeto e resolução XML que são encadeados por chaves legadas.
    Observação:
    Essa estratégia não deve ser amplamente usada e, como tal, só é suportada pelos programas em batch Monitorar e Orientado a Plug-in Ad Hoc.
  • Seleção SQL no Nível da Tarefa (JOBS). Esta estratégia às vezes é chamada de estratégia de “commit padrão”. Nessa estratégia, as chaves dos registros a serem processados pela tarefa em batch são todas selecionadas primeiro e armazenadas em uma tabela temporária. A tarefa em batch então fornece cada thread com um intervalo de chaves que ele deve processar. Essa estratégia é usada se vários objetos de manutenção estão em processamento pela tarefa em batch, caso a chave primária do objeto de manutenção tenha várias partes ou se a chave primária não é numérica.

A lógica de usar vários threads está no fato de as chaves primárias dos dados principais e da transação serem geralmente chaves aleatórias geradas pelo sistema. Além disso, quando os dados estão particionados, espera-se que eles estejam particionados com base na chave primária.

Observação:
A descrição detalhada nos metadados de cada controle de batch fornecido com o sistema deve indicar se ele pode ser executado em paralelo. Note que a estratégia usada geralmente não é indicada na descrição detalhada.
Observação:
Substituindo os intervalos de thread. Sua implementação poderá substituir intervalos de thread se alguns dados do sistema demorarem mais para serem processados. Por exemplo, imagine que você tenha uma única conta no Oracle Utilities Customer Care and Billing que tenha milhares de acordos de serviço (talvez a conta de uma grande empresa ou cidade). Você pode configurar intervalos de thread para incluir essa grande conta no thread e distribuir outras contas a outros threads. Para fazer isso, você deve criar registros de thread de batch posteriormente com um status Thread Pronto ( 50) com os intervalos de chave preenchidos antecipadamente. Observe que o produto base não fornece o recurso de adição de registros de thread de batch on-line. Para obter mais informações sobre essa técnica, entre em contato com o Suporte ao Cliente.