ACP2E-4913:資料庫死結後,不會重試REST API出貨與發票建立

ACP2E-4913修補程式修正了透過REST API建立出貨或發票時,因作業未重試而發生資料庫死鎖而永久失敗的問題。 安裝Quality Patches Tool (QPT) 1.1.84時,即可使用此修補程式。 修補程式ID為ACP2E-4913。 請注意,此問題已排程在Adobe Commerce 2.4.10中修正。

受影響的產品和版本

已為Adobe Commerce版本建立修補程式:

  • Adobe Commerce (所有部署方法) 2.4.8-p3

與Adobe Commerce版本相容:

  • Adobe Commerce (所有部署方法) 2.4.7 - 2.4.8-p5
NOTE
此修補程式可能適用於發行版本為Quality Patches Tool的其他版本。 若要檢查修補程式是否與您的Adobe Commerce版本相容,請將magento/quality-patches套件更新至最新版本,並在Quality Patches Tool上檢查相容性:搜尋修補程式頁面。 使用修補程式ID作為搜尋關鍵字,以尋找修補程式。

問題

當發生資料庫死結時,透過REST API建立出貨或商業發票會因為作業未重試而永久失敗。

要再現的步驟:

  1. 準備可出貨的多個訂單,以及可開立商業發票的多個訂單。
  2. 針對這些訂單並行傳送數個POST /rest/V1/order/<orderId>/ship請求,因為整合可能會負載不足。
  3. 以相同方式同時傳送數個POST /rest/V1/order/<orderId>/invoice要求。
  4. 檢查API回應和var/log/exception.log。

預期結果:

在死結之後,會重試作業,並建立出貨或商業發票。

實際結果:

部分要求會因下列死結錯誤而失敗。 尚未建立出貨或商業發票,您必須手動建立:

SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction

套用修補程式

若要套用個別修補程式,請根據您的部署方法使用下列連結:

相關閱讀

若要進一步瞭解Quality Patches Tool,請參閱:

recommendation-more-help
commerce-operations-help-tools