Jazz Register Log in
Jazz Forum Welcome to the Jazz Community Forum

Welcome to the Jazz Community Forum

Connect and collaborate with IBM Engineering experts and users

Deferred Operation Failed with Multi-Threaded Client Application

Context:  I'm developing an app that creates test cases using the REST API. It POSTs the test cases using the REST client that is part of the RQM Copy Utility. It is also multi-threaded -- there's a separate thread for each test case that is created.  Each thread has its own instance of the REST client.  The app creates and runs 10 threads at a time.

The Symptom: What I'm seeing is that, consistently, the QM server returns an http code of 412, an exception is thrown by the REST client (the exception message is State identifier null is stale) and in the QM server log I see a "deferred operation failed" message.  With a set of 160 test cases, around 3 threads run into this.  I've worked around the symptom by POSTing with retries.  This has so far worked.  I've haven't yet even seen any thread need to retry more than 1 once.


The question:  What does/could "deferred operation failed" mean in this context?  Is there a server setting I should be looking at?

0 votes



One answer

Permanent link
A 412 reponse is often use to indicate that a pre-condition fails. For example, when updating a resource, a client might:
  1. Perform a GET to fetch the RDF contents.
  2. Modify the RDF.
  3. Perform a PUT with If-match=etagFromTheGet with modified contents.
If some other thread modifies the same resource between steps 1 and 3, the etag will no longer match, and the response would be 412. With many Jazz applications, the etag is represented by a repository item state id. The message "State identifier null is stale" suggests the issue is that the state id of the content doesn't match the current state id.

However, in your usage, you're not doing that directly - you're using the RQM Copy Utility. I don't know that utility. Perhaps someone else on this forum can advise. Perhaps you can enable HTTP wire logging to see the exact HTTP requests and responses.

0 votes

Comments
Thanks for the response.  I updated my description to include the exception message:  State identifier null is stale.

In my case, nothing is being updated.  It's just creation, so .... there is no risk of some artifact being out of sync with the server.  The exception message, though, is a bit... well...not clear ;) [thus the post to the forum]

Your answer

Register or log in to post your answer.

Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.

Search context
Follow this question

By Email: 

Once you sign in you will be able to subscribe for any updates here.

By RSS:

Answers
Answers and Comments
Question details
× 10,968

Question asked: Mar 21 '22, 12:39 p.m.

Question was seen: 1,236 times

Last updated: Mar 21 '22, 1:02 p.m.

Confirmation Cancel Confirm