IBM Support

HTTP 503 Error -The server is currently unavailable

Technical Blog Post


Abstract

HTTP 503 Error -The server is currently unavailable

Body

Perhaps your AS2 transactions and/or HTTP Server adapter has been performing fine for years when suddenly you receive calls from trading partners who are unable to send you data. Your trading partners report HTTP 503 errors and you scan your http.log file and discover the following error messages:

[2015-06-03 03:40:05.783] ERROR The servlet returned Unavailable due to the bp queue depth threshold being exceeded
[2015-06-03 03:40:12.289] ERROR The servlet returned Unavailable due to the bp queue depth threshold being exceeded
[2015-06-03 03:42:10.583] ERROR The servlet returned Unavailable due to the bp queue depth threshold being exceeded
[2015-06-03 03:45:40.559] ERROR PSHttpServlet.init() - Initialization has been called before, cannot create twice in single servlet context!
[2015-06-03 03:47:07.061] ERROR PSHttpServlet.init() - Initialization has been called before, cannot create twice in single servlet context!
[2015-06-03 03:50:21.063] ERROR PSHttpServlet.init() - Initialization has been called before, cannot create twice in single servlet context!
[2015-06-03 03:50:21.313] ERROR PSHttpServlet.init() - Initialization has been called before, cannot create twice in single servlet context!

Where do you begin to remediate this? Since this is a production environment any changes you make should be temporary and monitored closely until the storm passes. To alleviate the immediate issue, from the Administration Menu, go to Deployment > Services > Configuration and use "by service type" to locate your HTTP Server Adapters.

image

Select the HTTP Server Adapter that is experiencing the queue depth issue (and in a clustered environment, be sure to select the correct node) then edit it.

image

Advance to the page two where the "HTTP Connection Properties" are controlled. If the adapter in question is running on a remote perimeter server, select the appropriate perimeter server.

image

Then modify the value for the "Total Business Process queue depth threshold: " and increase it to a higher value. Then click "Save".

image

You can keep increasing the queue depth in small increments until your trading partners are able to successfully transmit data again. Once the dust has settled, you should re-exam your settings all together and simulate the demand in a test environment. The following four resources collectively provide a great starting point for tuning your specific environment.



Here is the general performance checklist: http://www-01.ibm.com/support/knowledgecenter/SS3JSW_5.2.0/com.ibm.help.performance_mgmt.doc/SIPM_SI_GenRecomCklist.html

This is the link to tuning queues: http://www-01.ibm.com/support/knowledgecenter/SS3JSW_5.2.0/com.ibm.help.performance_mgmt.doc/SIPM_TuningQueuesASI.html?lang=en



Here's a Developerworks article on Optimization: https://www.ibm.com/developerworks/community/files/basic/anonymous/api/library/05c221b4-72c5-4cdb-962d-6f36b98753b8/document/fe0a1bcd-472c-47b8-9cb6-ddd8f2dff52d/media/Optimization%20and%20tuning%20concepts%20on%20SI.pdf.pdf



Here's the Performance guide: ftp://ftp.software.ibm.com/software/commerce/doc/sb2bi/v5r2/SI52_Perf_Mgmt_Book.pdf

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SS3JSW","label":"IBM Sterling B2B Integrator"},"Component":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"","Edition":"","Line of Business":{"code":"LOB59","label":"Sustainability Software"}}]

UID

ibm11121757