Getting httpSend: ResponseCode: 500 Error

I get below error frequently. Any idea what this means?

xbd.pstore.error.information = Sequencer detected error :com.softwareag.xbridge.exceptions.XException: httpSend: ResponseCode: 500

From the error, It looks like you are trying to make a HTTP post from your Sequence but the URL you call returns a HTTP 500 (Internal Server Error).

The 500 code comes from whatever web resource you are trying to call and not from the Sequence processing itself.

Regards,

Hello Mathew,

Thanks for your reply.

Is there any way to find out what web resource was requested? Reason for asking is, from sequences i call many web resources and not sure which one returns 500.

Regards, Sathish Kumar T.K.

There are a number of ways to determine which web resource is causing this.

If you turn your logging level to debug, there should be enough information for you or our support organization to determine where in your sequences the error is occurring.

There is also a property - xbd.message.debug - you can set which will create a message log for each message instance. This has the added advantage that the current message payload is saved at each step in the sequence as well. This can help you determine if your sequence actually has the correct payload at the time the http resource is being called.
Warning: You should never set this property in a production environment. In a system under load, you could easily create numerous Gigabytes of logs in a very short time.

The last and probably best method is to run the sequence in a debugger. If you only get the error intermittently this may not work for you though.

If you like, post the sequence and a log created at debug here. I will take a look and see if I can see where your error is happening.

Regards,

Hello Matthew,

Thanks for the suggestions.

Got to know the actual problem. There are two things to this.

  1. We dont know from where we get the responseCode 500 errors
  2. We dont see the actual error string in mediator logs or in response payload.

To solve the first issue, We have enabled trace in xmlrt and the error seems to be application errors. For example, when we pass in alpha values where a numeric is expected, a NumberFormatException is thrown. We came to know about the nubmerformatexception only after turning on the xmlrt trace. But we cannot enable tracing in production.

Second, When we get a ResponeCode 500 error from either broker or XMLRT servlet, mediator checks for response code 2xx but finds 500. So, it discards the actual soap response (the soap fault with numberformatexception string) and SoapRequest is sent back as SOAPResponse.
We came to this conclusion by running the debugger and with the stack trace in xbd.log. See below.

com.softwareag.xbridge.exceptions.XException: httpSend: ResponseCode: 500
at com.softwareag.xbridge.gateways.HttpGatewayImpl.responseCode2xx(DashOB6501(Compiled Code))
at com.softwareag.xbridge.gateways.HttpGatewayImpl.httpSend(DashOB6501(Compiled Code))
at com.softwareag.xbridge.gateways.HttpGatewayImpl.modify(DashOB6501(Compiled Code))

So, we have planned to use the SOAPGateway (set handlefault as true) instead of HttpGateway.

Hope this helps other viewers too.

Regards,
Sathish Kumar T.K.

Hello Sathish,

Service Orchestrator has a dedicated component for calling EntireX services: the XMLWrapperGateway. This should be your first choice. It calls Broker directly ands thus eliminates the necessity to run the XMLRT servlet in an Appserver Server.