Performance Issues Prevent Jama from Loading Projects

Benjamin Lutz
Benjamin Lutz
  • Updated
Audience: Everyone

Products and Versions Covered: 

  • Jama Connect® version(s): 9.32.x
    • Cloud/CVC

IMPORTANT: Access to the REST API is limited to users with a Named Creator Jama Connect license, including access to v1, labs, and SCIM endpoints. Users without a Named Creator Jama Connect license, including those with a Creator Float License, do not have access.

Summary

Rapid item deletions through the Jama Connect® REST API (especially when deleting many items under the same parent, or deleting parent and child items close together) can cause database lock contention and deadlocks. This can lead to severe performance degradation (requests taking minutes), HTTP 500 errors, and periods where the application becomes unresponsive.

Symptoms

  • Jama Connect® becomes extremely slow or unresponsive during periods of heavy REST API delete activity.
  • REST API DELETE /rest/v1/items/{id} requests take an unusually long time to complete (seconds to minutes).
  • Users may see HTTP 500 errors during the event.
  • Logs/monitoring show database deadlocks correlated with item deletion activity.

Cause

High-frequency DELETE /rest/v1/items/{id} calls can repeatedly update the same hierarchy records (for example, multiple children under the same parent node). When deletes are executed too quickly – particularly when parent and child deletes overlap or occur in close succession – database transactions can acquire locks in conflicting orders, resulting in deadlocks and cascading lock waits that impact overall application responsiveness.

Resolution

Diagnose the Issue

  1. Confirm timing and scope

    • Identify the time window when users experienced slowness/unresponsiveness.
    • Identify whether an integration/script was performing item deletions during that window.
  2. Check for parent/child deletion patterns

    1. Determine whether the integration/script is:
      1. Deleting many items that share the same parent, rapidly.
      2. Deleting a parent and its children in parallel.

Prevention

  1. Avoid parallel deletes of related items

    1. Do not delete a parent item and its children at the same time (or in overlapping execution).
    2. If you must delete a parent item, there is no need to delete the children as well.
  2. Reduce delete volume by deleting the parent when appropriate

    1. If the goal is to remove an entire hierarchy (for example, a folder/suite and everything under it), update the integration logic to delete the parent item directly when possible, instead of deleting every child item one-by-one first.
    2. This reduces the number of DELETE /items/{id} calls and reduces repeated hierarchy updates.
  3. Throttle deletion rate

    1. Break large delete operations into smaller batches (for example, 10–20 items at a time).
    2. Pause a few seconds between batches to allow database locks to clear.
  4. Implement safe retry behavior

    1. If the integration encounters transient failures (including deadlocks), implement retry logic with increasing delays (exponential backoff) to avoid compounding load during contention windows.

Additional Resources

Feedback:
We welcome your input! Please sign in to leave any comments, suggestions, or improvement ideas below.

Was this article helpful?

0 out of 0 found this helpful

Have more questions? Submit a request

Comments

0 comments

Please sign in to leave a comment.