Inventory request processing

Overview

The NFM-P processes find requests synchronously. A findToFile request runs synchronously by default, but you can use the <synchronous> Boolean element to specify whether a findToFile request runs synchronously or asynchronously.

Synchronous requests

When the NFM-P receives multiple synchronous find or findToFile requests, up to five are processed concurrently. Subsequent synchronous requests are rejected with the following exception, which is sent in the HTTP response:

javax.xml.stream.XMLStreamException: The Inventory connections reached its maximum please retry later
Asynchronous findToFile requests

When the NFM-P receives multiple asynchronous findToFile requests, up to five are processed concurrently, and up to an additional ten requests are queued to be processed. If the NFM-P is currently servicing 15 asynchronous requests, further incoming requests are immediately rejected with the following exception:

Figure 13-8: Too many requests exception
<findToFileException xmlns="xmlapi_1.0">
   <description>Cannot perform findToFile command, too many queued requests</description>
</findToFileException>

You can configure a timeout value for the OSS requests associated with an NFM-P user or user group. When a request times out, the NFM-P sends an exception in a fileAvailableEvent JMS notification. The notification includes a status element that contains FAILURE, as shown in the following figure:

Figure 13-9: OSS request timeout notification
 <SOAP:Body>
   <jms xmlns="xmlapi_1.0">
      <fileAvailableEvent>
         <requestID>XML_API_client@n</requestID>
         <fileName>asynchronous_request.xml</fileName>
         <status>FAILURE</status>
         <errorMessage>javax.xml.stream.XMLStreamException: The request timed out for waiting for a worker. XML API request id [:0:1] User Name [ossuser_10] File Name [asynchronous_request.xml]. Please retry later.</errorMessage>
      </fileAvailableEvent>
   </jms>
</SOAP:Body>
Mix of find and findToFile requests

When the NFM-P receives a combination of synchronous find, and synchronous or asynchronous findToFile requests, up to five requests are processed concurrently; subsequent synchronous or asynchronous requests are rejected with the following exception, which is sent in the HTTP response:

javax.xml.stream.XMLStreamException: The Inventory connections reached its maximum please retry later