Technote

(troubleshooting)
ProcessBackOrder job stops processing on exception
Problem(Abstract)
Your scheduled ProcessBackOrder job stops processing even when there are still more orders on back order when you customize the payment plug-in to throw an exception, such as the CommunicationException.
Symptom
When a CommunicationException is encountered in one of the back orders and processing stops, a stack trace similar to the following trace is generated:

[2/18/08 11:46:24:982 PST] 00000276 WC_INVENTORY 3 com.ibm.commerce.inventory.scheduled.commands.
ProcessBackordersCmdImpl performExecute Backorders: [58521, 59504, 73017, 73022, 77503, 82501, 82505, 83022, 83030, 83031, 83024, 85001, 85006, 87503, 87509, 89001, 89003, 89003, 89004, 89005, 89005, 87001, 87001, 89510, 91001, 91005, 93505, 93510, 93511, 93513, 93514, 93514]
...
[2/18/08 11:46:24:951 PST] 00000276 CommerceSrvr E DoPaymentActionsPolicyCmdImpl performExecute CWXCP3061E: Failed to execute payment action due to {1} com.ibm.commerce.edp.api.CommunicationException: ERR bal=$ERR bal=$0.00 (with actual balance)
at com.ibm.commerce.payments.plugincontroller.plugin.
PluginAdapter_V1.approve(PluginAdapter_V1.java:728)
at com.ibm.commerce.payments.plugincontroller.PluginController.approve(PluginController.java:410)
at com.ibm.commerce.payments.plugincontroller.beans.
EJSRemoteStatelessPluginController_c947b422.approve
(EJSRemoteStatelessPluginController_c947b422.java:384)
at com.ibm.commerce.payments.plugincontroller.beans.
_PluginController_Stub.approve(_PluginController_Stub.java:2009)
at com.ibm.commerce.payment.actions.commands.
DoPaymentActionsPolicyCmdImpl.approve(DoPaymentActionsPolicyCmdImpl.java:706)
at com.ibm.commerce.payment.actions.commands.
DoPaymentActionsPolicyCmdImpl.approve
(DoPaymentActionsPolicyCmdImpl.java:521)
at com.ibm.commerce.payment.actions.commands.
DoPaymentActionsPolicyCmdImpl.performExecute
(DoPaymentActionsPolicyCmdImpl.java:301)

Cause When an ECSystemException is caught, the ProcessBackOrderCmd stops since the system exception might indicate a serious problem. The scheduler command does not exit and typically rolls back the sub-transaction. In version 6 Payment, the com.ibm.commerce.edp.api.CommunicationException is considered to be a type of ECSystemException. The CommunicationException is generally used to indicate that a problem occurred when communicating with the Payment Service Provider that must be handled promptly. Resolving the problem Instead of using a CommunicationException, throw an InvalidDataException or InvalidRequestException. Each of these exceptions is considered to be an ECApplicationException in WebSphere Commerce. If use a CommunicationException, then customize the ProcessBackOrdersCmd scheduler command to catch the ECSystemException before the command can continue to process the remaining orders.
Cross Reference information
Segment Product Component Platform Version Edition
Commerce WebSphere Commerce - Express General i5/OS, Linux, Windows 6.0
Commerce WebSphere Commerce Professional Edition General AIX, i5/OS, Linux, Solaris, Windows 6.0
   

Document Information

Current web document: http://www.ibm.com/support/docview.wss?uid=swg21298399