Persistir uma sessão HTTP em todas as chamadas SOAP
Nas circunstâncias em que um cliente SOAP faz muitas chamadas em um curto período de tempo, convém reutilizar uma única sessão HTTP para todas as chamadas SOAP.
Cada chamada SOAP cria uma nova sessão de usuário que persiste até expirar. Para criar uma única sessão de usuário e reutilizá-la para todas as chamadas SOAP de entrada, desenvolva seu cliente SOAP seguindo estas diretrizes:
- Use um módulo como HTTP::Cookies para criar um "jar de cookie".
- Salve os cookies retornados pela ServiceNow após cada solicitação (tratados automaticamente por HTTP::Cookies).
- Reenvie os cookies no jar de cookies a cada solicitação subsequente.
Nota:
Se você tiver habilitado a configuração de alta segurança de rotação de sessão, ela invalidará imediatamente o JSESSIONID retornado do servidor com o primeiro cabeçalho de resposta. A segunda resposta inclui um novo JSESSIONID.
Em perl, você pode salvar e enviar cookies automaticamente com o seguinte código:
use HTTP::Cookies;
#we want to store and re-send cookies
my $cookies = HTTP::Cookies->new(ignore_discard => 1);
my $soap = SOAP::Lite
-> proxy('http://localhost:8080/glide/ecc_queue.do?SOAP');
#Set the cookie jar
$soap->transport->cookie_jar($cookies);