segunda-feira, 8 de maio de 2017

Trabalhando com Timeouts - Oracle SOA/BPM Suite

Trabalhando com Timeouts

No BPM/SOA suite temos 6 tipos importantes de timeout para serem tratados, sendo:

Timeout chamada serviço (Referência);
Timeout SyncMaxWait, timeout de execução global(EM);
Timeouts de controle da Engine BPEL;
Timeout de transação JTA;
Timeout de transação distribuída XA;
Timeout de Query;

Timeout chamada serviço 
Extipula o tempo limite que vamos aguardar quando chamamos um serviço de forma síncrona para realizar o ajuste vá no seu composite e adicione as seguinte propriedades na reference:



 
 
    httpConnTimeout" type="xs:integer"
              many="false" override="may">30000
    httpReadTimeout" type="xs:integer"
              many="false" override="may">30000
   
              many="false">WSDLDriven
 


O httpConnTimeout é o tempo máximo para estabelecer uma conexão com o serviço provedor e httpReadTimeout o tempo máximo para a requisição ser processada.



Timeout SyncMaxWait, timeout de execução global(EM);
Esse timeout representa o tempo limite de ponta a ponta para o fluxo BPEL ser executado para ajustar vá até o Enterprise Manager clique com o botão direito sobre o SOA Infrastructure e depois vá em SOA Administration, clique na opçõe BPEL Properties, clique em Mor BPEL Configuration Properties. 

Clique em  “Application Defined MBeans: BPELConfig:bpel”, agora edite o valor de SyncMaxWaitTime.


Timeouts de controle da Engine BPEL
Para configurar os timeouts da engine vá até o console do weblogic, clique em Deployments e procure a aplicação soa-infra, clique para expandir e depois clique em EJBs,  edite na aba configuration o valor Transaction Timeout para cada um dos EBJs abaixo:

BPELEngineBean
BPELDeliveryBean
BPELActivityManagerBean
BPELServerManagerBean
BPELProcessManagerBean
BPELInstanceManagerBean
BPELFinderBean

Timeout de transação JTA
O timeout de transação JTA por default é preenchido com 30 segundos no weblogic, para ajustar esse vá até o console clique no menu Services/JTA e edita a propriedade Timeout Seconds.

Timeout de transação distribuída XA
Esse timeout representa o tempo limite para uma transação distribuída, para alterar essa configuração vá no seu data source SOADataSource e clique na aba Configuration, depois Habilite a Enable setting XA Datasource Interface, depois configurare algum valor para Set XA Transaction Timeout.

Timeout de Query
Representa o tempo limite para uma query executar, esse timeout se encontra na configuração Timeout Query no adaptador que seu fluxo está utilizando para acessa a base de dados.

Só isso!! 
Grande Abraço!!

Um comentário:

Anônimo disse...

Eu consigo exibir no log ou em um assign o quanto tempo levou para realizar uma operação em WS externo ou BD? Obrigado.