---
sourceDocument: Yokohama API Reference
sourceDocumentLink: https://www.servicenow.com/docs/r/yokohama/api-reference

 Release :

    - yokohama

ft:locale :

    - en-US

ft:publication_title :

    - Yokohama API Reference

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# Persist an HTTP session across all SOAP calls

# Persist an HTTP session across all SOAP calls {#ariaid-title1}

* Release version: Yokohama
* 
* Updated January 30, 2025
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 1 minute to read

In circumstances when a SOAP client makes many calls in a short amount of time, you may
want to re-use a single HTTP session for all SOAP calls.  
Each SOAP call creates a new user session that persists until it expires. To create a single user session and re-use it for all inbound SOAP calls, develop your SOAP client following these guidelines:

* Use a module like HTTP::Cookies to create a "cookie jar."
* Save the cookies returned by ServiceNow after each request (handled automatically by HTTP::Cookies).
* Re-send the cookies in the cookie jar with each subsequent request.

{#persist-session-all-soap-calls__ul_xt2_khy_5w}  
Note:  
If you have enabled the session rotation high security setting, it will immediately invalidate the JSESSIONID returned from the server with the first response header. The second response includes a new JSESSIONID.  
In perl, you can automatically save and send cookies with the following code:

    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);

**Related concepts**   

* [Use forms to limit or extend the query response](https://www.servicenow.com/docs/mEjcu3ttq8b8dEIHv_3GZg "On occasion, there is a need to limit the number of field values that a SOAP query returns.")
* [Return the display value for reference variables](https://www.servicenow.com/docs/Q4oorUfcspaG5qKp1QMNXg "When you query a record using a get or getRecords function, the instance returns all fields associated with that record. The fields are often reference fields that contain a sys_id for a record on another table.")
* [Clear values from a target instance](https://www.servicenow.com/docs/YXJ8Eg5KFoE~zjxWo1f3Fg "You can pass an empty value through a SOAP parameter to clear the respective value in the target instance.")
* [Retrieve journal entries using direct web services](https://www.servicenow.com/docs/t0wHqZm7rW9MoSCMkR44Ew "To get the contents of a journal field, make a second soap request against the sys_journal_field table to pull the appropriate journal records back for the record in question.")
* [Retrieve choice fields using direct web services](https://www.servicenow.com/docs/uGazlJUjcetOoqWG89t3Iw "To retrieve or set choice fields, use the choice Value, not the Label.")  
**Related reference**   

* [SOAP direct web service API functions](https://www.servicenow.com/docs/Q7YANGU~of75f3qHvFes6Q "The standard SOAP API is a set of small, globally defined functions that can be performed on a targeted resource.")

