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…