Hello! I have trouble executing concurrent reques...
# general
d
Hello! I have trouble executing concurrent requests against a standalone WireMock instance serving a scenario with 56 states. I am not sure how WireMock handles state transitions when requests arrive in parallel, however, that is not very important as long as responses arrive. Currently, when I send 10 concurrent requests I usually get 6-9 responses, while the others fail with a 404 Not found. On the other hand, the sequential execution of the requests works as expected. Scenario: Mappings: A scenario with 56 states all matching the same criteria Concurrent requests: 10 Command line starting the WireMock server:
java -Xms4g -Xmx8g -jar .\wiremock-standalone-3.5.2.jar --port 9911
Note: I also experimented with adjusting
--container-threads
,
--jetty-acceptor-threads
,
--async-response-enabled true
, etc. but without success. I assume that I am making a mistake with the WireMock server setup, but I am not sure where. If the setup seems reasonable, please let me know and I can provide additional information. Logs when a response results in a 404, even though the mapping exists:
Copy code
024-04-09 11:43:16.940 Request received:
127.0.0.1 - POST /api

Connection: [Upgrade, HTTP2-Settings]
Content-Length: [312]
Host: [localhost:9911]
HTTP2-Settings: [AAEAAEAAAAIAAAABAAMAAABkAAQBAAAAAAUAAEAA]
Upgrade: [h2c]
Accept: [*/*]
Content-Type: [application/soap+xml; charset=UTF-8]
User-Agent: [Apache-CXF/4.0.3]
<soap:Envelope xmlns:soap="<http://www.w3.org/2003/05/soap-envelope>"><soap:Body><ns2:getDocumentSearchResults xmlns:ns2="<http://ws.soap.transfer.services.sedna.ser.com/>"><sessionUUID>{{randomValue type='UUID'}}</sessionUUID><start>71</start><end>80</end></ns2:getDocumentSearchResults></soap:Body></soap:Envelope>


Matched response definition:
(no response definition configured)

Response:
HTTP/1.1 404
(no headers)

2024-04-09 11:43:17.001 
                                               Request was not matched
                                               =======================

-----------------------------------------------------------------------------------------------------------------------
| Closest stub                                             | Request                                                  |
-----------------------------------------------------------------------------------------------------------------------
                                                           |
POST                                                       | POST
/api                                                       | /api
                                                           |
[Scenario 'Get documents result' state:                    | [Scenario 'Get documents result' state:             <<<<< Scenario does not match
getDocumentSearchResults-55]                               | getDocumentSearchResults-5]
                                                           |
-----------------------------------------------------------------------------------------------------------------------
Sample mapping. The remaining states match this pattern:
Copy code
{
  "scenarioName": "Get documents result",
  "requiredScenarioState": "getDocumentSearchResults-5",
  "newScenarioState": "getDocumentSearchResults-6",
  "request": {
    "method": "POST",
    "url": "/api",
    "bodyPatterns": [
      {
        "matchesXPath": "/soap:Envelope/soap:Body/ws:getDocumentSearchResults",
        "xPathNamespaces": {
          "soap": "<http://www.w3.org/2003/05/soap-envelope>",
          "ws": "<http://ws.soap.transfer.services.sedna.ser.com/>"
        }
      }
    ]
  },
  "response": {
    "status": 200,
    "headers": {
      "Content-Type": "text/xml",
      "Cache-Control": "no-cache"
    },
    "bodyFileName": "paged_search/get-document-search-results-51-60.xml",
    "fixedDelayMilliseconds": 300
  }
}
Any insight would be beneficial. Thank you!