Author: Chris Breaux
Date: 2025-06-2025
Audience: Everyone
Environmental details: Self-Hosted KOTS
Summary
If projects are configured with several, 'expensive' filter queries, some of the widgets may not display correctly if the application is under-resourced. Here is an example of what you might see in the UI:
If you inspect the network traffic using the developer tools, you may see some timeout errors.
If you inspect the core-0, search-0 and elasticsearch-0 logs, you may see errors similar to these:
2025-04-07 13:56:12,991 ERROR http-nio-8080-exec-8830 jamaconnect [934ded] [com.jamasoftware.contour.search.impl.SearchGateway] - Non-OK search response : A Search Service error occurred, exception class: SearchRuntimeException with message: "30,000 milliseconds timeout on connection http-outgoing-1843 [ACTIVE]". See Search Service logs for more detail. : InboundJaxrsResponse{context=ClientResponse{method=POST, uri=http://search:80/jamaconnect/ContourItem/_search, status=400, reason=Bad Request}} com.jamasoftware.service.search.client.SearchClientException: Non-OK search response : A Search Service error occurred, exception class: SearchRuntimeException with message: "30,000 milliseconds timeout on connection http-outgoing-1843 [ACTIVE]". See Search Service logs for more detail. : InboundJaxrsResponse{context=ClientResponse{method=POST, uri=http://search:80/jamaconnect/ContourItem/_search, status=400, reason=Bad Request}} at com.jamasoftware.service.search.client.RESTSearchClient.getResponse(RESTSearchClient.java:207) at com.jamasoftware.service.search.client.RESTSearchClient.search(RESTSearchClient.java:123) at com.jamasoftware.contour.search.impl.SearchGateway.getSearchResponse(SearchGateway.java:34) at com.jamasoftware.contour.search.impl.RemoteSearcher.searchForItemRef(RemoteSearcher.java:132) at com.jamasoftware.contour.search.service.impl.SmartFilterServiceImpl.searchForItemRef(SmartFilterServiceImpl.java:298) at jdk.internal.reflect.GeneratedMethodAccessor7717.invoke(Unknown Source) ...
21:24:58.936 [jama] WARN i.m.s.r.netty.channel.FluxReceive - [f7f6fc67, L:/***HIDDEN***:60395 - R:localhost/***HIDDEN***:8125] An exception has been observed post termination, use DEBUG level to see the full stack: java.net.PortUnreachableException: recvAddress(..) failed: Connection refused 21:24:58.936 [jama] WARN i.m.s.r.netty.channel.FluxReceive - [f7f6fc67, L:/***HIDDEN***:60395 - R:localhost/***HIDDEN***:8125] An exception has been observed post termination, use DEBUG level to see the full stack: java.net.PortUnreachableException: recvAddress(..) failed: Connection refused 21:25:06.989 [http-nio-7500-exec-4468] [core-0,jamaconnect,8f4c01]->[764501] WARN c.j.s.s.p.ElasticSearchSearcher - Received an exception during attempt to run search against types ContourItem for tenant jamaconnect (enable debug to see full search request). Ex: java.net.SocketTimeoutException: 30,000 milliseconds timeout on connection http-outgoing-3544 [ACTIVE] at org.opensearch.client.RestClient.extractAndWrapCause(RestClient.java:892) at org.opensearch.client.RestClient.performRequest(RestClient.java:301) at org.opensearch.client.RestClient.performRequest(RestClient.java:304) at org.opensearch.client.RestClient.performRequest(RestClient.java:289) ... Suppressed: java.net.SocketTimeoutException: 30,000 milliseconds timeout on connection http-outgoing-3554 [ACTIVE] at org.opensearch.client.RestClient.extractAndWrapCause(RestClient.java:892) at org.opensearch.client.RestClient.performRequest(RestClient.java:301) ... 73 common frames omitted Caused by: java.net.SocketTimeoutException: 30,000 milliseconds timeout on connection http-outgoing-3554 [ACTIVE] ...
Solution
There are a few ways we can address this problem:
(1) Increase the available resources on the application server and allocate them per our recommendations in the user guide.
(2) If you are on a 9.6.x version of Jama Connect, consider upgrading to the latest available version. Improvements have been made to 'embedded queries' (used by certain filters). In earlier versions, these embedded queries would run against all projects. In later versions, the queries can be constrained to use 'current project' which greatly improves query performance.
e.g.
Cause
Some filter queries can be quite 'expensive' and when multiple queries are made as part of a dashboard setup, the available resources on the server may not be sufficient to 'handle' all of the requests.
Prevention
- Use our recommended Enterprise resources allocation (instead of just the 'minimum' specs)
- Where possible, constrain filter query parameters as much as possible. (Some options are only available in versions > 9.17.x)
References
- https://support.jamasoftware.com/hc/en-us/sections/21706609991309-Jama-Connect-Help-Guide-Documentation
- https://support.jamasoftware.com/hc/en-us/articles/31648067820813-Version-9-17-1-Self-hosted
Please feel free to leave feedback in the comments below.
Comments
0 comments
Please sign in to leave a comment.