Aumentar o Timeout de consultas a Dataset via WSEXECBO

Boa Tarde,

No meu ambiente eu tenho alguns Datasets para consulta de dados no Progress, para isso eu utilizo WSEXECBO, tudo funciona perfeito, exceto quando tento fazer uma consulta aonde o retorno é muito grande, aonde ocorre um erro de timeout.

Gostaria de saber se tem alguma configuração para aumentar o timeout, via consulta utilizando o WSEXECBO.

Desde já agradeço.

@Allan, dá uma olhada nessa documentação, tem o parâmetro receive.timeout.

Eu cheguei a olhar essa documentação, mas não consegui aplicar ela no meu execbo:

O meu cabeçalho do DS:
var serviceProvider = ServiceManager.getService(‘WSEXECBO8380’);
var serviceLocator = serviceProvider.instantiate(‘com.totvs.framework.ws.execbo.service.WebServiceExecBO’);
var service = serviceLocator.getWebServiceExecBOPort();

Nesse caso está funcionado certo, porém se a consulta for muito grande, dá o erro de timeout, e o pior é que o exemplo da documentação é totalmente diferente de um EXECBO comum.

Tenta assim, é para dar certo:


var properties = {};
properties["receive.timeout"] = "60000"; // milissegundos

var serviceProvider = ServiceManager.getServiceInstance('WSEXECBO8380');
var serviceLocator = serviceProvider.instantiate('com.totvs.framework.ws.execbo.service.WebServiceExecBO');
var service = serviceLocator.getWebServiceExecBOPort();
var customClient = serviceProvider.getCustomClient(service, "com.totvs.framework.ws.execbo.service.WebServiceExecBOPort", properties);

customClient.algumMetodo();

Ainda não deu certo.

Tentei oque você passou e aonde no meu código era:

var resp = service.callProcedureWithToken.callProcedureWithToken(token, “Consultas.r”, “getTableItem”, jsonParams);

eu mudei para:

var resp = customClient.callProcedureWithToken(token, “Consultas.r”, “getTableItem”, jsonParams);

Porém apresentou erro na hora de visualizar o DS:

Erro ao recuperar dados do dataset: Client received SOAP Fault from server: Retorno do dataset inválido.

Uma correção na resposta do Rodolfo.

var properties = {}; properties["receive.timeout"] = "60000"; // milissegundos

var serviceProvider = ServiceManager.getServiceInstance('WSEXECBO8380');

var serviceLocator = serviceProvider.instantiate('com.totvs.framework.ws.execbo.service.WebServiceExecBO');

var service = serviceLocator.getWebServiceExecBOPort();

var customClient = serviceProvider.getCustomClient(service, "com.totvs.framework.ws.execbo.service.ExecBOServiceEndpoint", properties);

customClient.algumMetodo();

Verdade!! A class tava errada mesmo, rs…