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建立出貨或商業發票會因為作業未重試而永久失敗。
要再現的步驟:
- 準備可出貨的多個訂單,以及可開立商業發票的多個訂單。
- 針對這些訂單並行傳送數個
POST /rest/V1/order/<orderId>/ship請求,因為整合可能會負載不足。 - 以相同方式同時傳送數個
POST /rest/V1/order/<orderId>/invoice要求。 - 檢查API回應和
var/log/exception.log。
預期結果:
在死結之後,會重試作業,並建立出貨或商業發票。
實際結果:
部分要求會因下列死結錯誤而失敗。 尚未建立出貨或商業發票,您必須手動建立:
SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction
套用修補程式
若要套用個別修補程式,請根據您的部署方法使用下列連結:
- Adobe Commerce或Magento Open Source內部部署: Quality Patches Tool指南中的Quality Patches Tool >使用狀況
- 雲端基礎結構上的Adobe Commerce:雲端基礎結構上的Commerce指南中的升級和修補程式>套用修補程式
相關閱讀
若要進一步瞭解Quality Patches Tool,請參閱:
recommendation-more-help
commerce-operations-help-tools