How to increase query cache size for EWM when using rest API of ALM using python .
3 answers
<oslc_cm:status>500</oslc_cm:status>
<oslc_cm:message>Query _iryl-c7NEe2x1fNfnKYFUQ expired.</oslc_cm:message>
</oslc_cm:error>"
Comments
Did you try increasing the query cache size as per the technote you link to? https://www.ibm.com/support/pages/increase-query-cache-size-prevent-query-expired-issue
I have written up my experience here: https://rsjazz.wordpress.com/2022/03/01/ewm-rest-api-to-access-existing-work-item-queries/
Have you actually read the work item you provide? It is for RTC 2.0. It is from 2009. It is pretty likely that whatever you see is not related to that work item.
I have myself not experienced this behavior.
If you are not using a clustered EWM deployment, then session affinity won't be relevant.
As mentioned above, this is NOT OSLC, just to set the context.
I would suggest to open a case with support so that the data can be collected and looked at.
This is EWM/RTC specific. The server has advanced properties that can be adjusted. E.g. the advanced server properties contains
Comments
If you don't want to use support, I would also suggest to have your admins fillow https://www.ibm.com/support/pages/increase-query-cache-size-prevent-query-expired-issue which is actually the setting I mention above.
Your administrators have to do that. And the application does not care who uses the API with what language/framework.
Comments
I think it is paramount to understand the different concepts and how they relate. Please be aware that
- REST is an architectural style for using HTTP
- OSLC is a standard that defines an API/protocol that is also REST based
- It limits the size of the HTTP response
- It improves the scalability of the solution
Yes , you are right David .
Running the query without pagination is an implementation detail and not a requirement.
Running a query without pagination, is not suggested and can cause the same over-usage of resources that the query cache is supposed to limit. If you have looked at the query specification however, it is up to you how big the pages are.
It is also your responsibility to let your administrators know that you might overuse the system and bring it down and they should monitor while you crank the page size up.
Or you talk to the admins about the query cache size and discuss with them to monitor the systems resource usage and performance while they increase the cache, until all works as desired or it becomes apparent the system resources need to be increased to keep up.
Comments
Ian Barnard
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER Mar 23 '23, 4:57 a.m.The link you give doesn't work.
David Honey
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER Mar 23 '23, 7:25 a.m.I came across a similar issue with a clustered EWM. The issue was because I was not using session affinity. The query initially runs on one node in the cluster. The results are paged, and may be stored in memory on that specific node. If, when you fetch the next page that request goes to a different node, that node does not have ny information about the cached query results because they only apply to a specific node. So in a clustered deployment, you have to remember to use session affinity.
However, as Ian points out, your question is missing some basic information, such as which product, which release and iFix, details of the REST call you are making such as URI, headers, request body, and details of the response including headers and response body. Please read https://jazz.net/forum/questions/203755/how-should-i-ask-a-question-in-the-forum-if-i-want-to-receive-useful-answers.
Ralph Schoon
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER Mar 23 '23, 10:36 a.m.Note also that the server does not care or know if there is some API used. Any changes to server settings would be in the Advanced properties and for the whole server. This would require to be done by your administrators.