Anonymous_User Absent Member.
Absent Member.
584 views

Handling "500 Internal Server Error" in the SOAP driver?

I'm fairly new to the SOAP driver, only have one of them running right
now, supporting a "cloud" hosted application (directory data to the
hosted app via the Subscriber channel). Last night, the service provider
had a (scheduled) service outage. During the outage, events on the
subscriber channel returned:

[11/15/12 23:19:15.242]:HostedAppName ST:HostedAppName: Response code and
message: 500 Internal Server Error
[11/15/12 23:19:15.254]:HostedAppName ST:HostedAppName: The following
bytes (which are base64 encoded) were received
as a response to our request on the subscriber channel. They cannot be
converted to XML:
[11/15/12 23:19:15.255]:HostedAppName ST:HostedAppName:
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTCAyLjAv
L0VOIj4KPEhUTUw+PEhFQUQ
+CjxUSVRMRT41MDAgSW50ZXJuYWwgU2VydmVyIEVycm9yPC9USVRMRT4KPC9IRUFEPjxCT0RZPgo8SDE
+SW50ZX
JuYWwgU2VydmVyIEVycm9yPC9IMT4KVGhlIHNlcnZlciBlbmNvdW50ZXJlZCBhbiBpbnRlcm5hbCBlcnJvciBvcgptaXNjb25maWd1cmF0aW9u
IGFuZCB3YXMgdW5hYmxlIHRvIGNvbXBsZXRlCnlvdXIgcmVxdWVzdC48UD4KUGxlYXNlIGNvbnRhY3QgdGhlIHNlcnZlciBhZG1pbmlzdHJhdG
9yLAogeW91QHlvdXIuYWRkcmVzcyBhbmQgaW5mb3JtIHRoZW0gb2YgdGhlIHRpbWUgdGhlIGVycm9yIG9jY3VycmVkLAphbmQgYW55dGhpbmcg
eW91IG1pZ2h0IGhhdmUgZG9uZSB0aGF0IG1heSBoYXZlCmNhdXNlZCB0aGUgZXJyb3IuPFA
+Ck1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhpcy
BlcnJvciBtYXkgYmUgYXZhaWxhYmxlCmluIHRoZSBzZXJ2ZXIgZXJyb3IgbG9nLjxQPgo8SFI
+CjxBRERSRVNTPk9yYWNsZS1BcHBsaWNhdGlv
bi1TZXJ2ZXItMTBnLzEwLjEuMi4yLjAgT3JhY2xlLUhUVFAtU2VydmVyIFNlcnZlciBhdCB3d3cuZXZlcmJyaWRnZS5uZXQgUG9ydCA0NDM8L0
FERFJFU1M+CjwvQk9EWT48L0hUTUw+Cg==
[11/15/12 23:19:15.259]:HostedAppName ST:SubscriptionShim.execute()
returned:
[11/15/12 23:19:15.259]:HostedAppName ST:
<nds dtdversion="2.0">
<source>
<product build="20090519_235451" instance="HostedAppName"
version="3.5.4">Identity Manager Driver for SOAP</p
roduct>
<contact>Novell, Inc.</contact>
</source>
<output>
<status level="error" type="driver-general">
<description>The response received on the subscriber channel was
not valid XML. Consider writing a ByteA
rrayModifiers Java extension if you need to convert the results to XML.</
description>
</status>
</output>
</nds>

The base64 belch isn't really all that useful, but it translates to:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>500 Internal Server Error</TITLE>
</HEAD><BODY>
<H1>Internal Server Error</H1>
The server encountered an internal error or
misconfiguration and was unable to complete
your request.<P>
Please contact the server administrator,
you@your.address and inform them of the time the error occurred,
and anything you might have done that may have
caused the error.<P>
More information about this error may be available
in the server error log.<P>
<HR>
<ADDRESS>Oracle-Application-Server-10g/10.1.2.2.0 Oracle-HTTP-Server
Server at www.hostedappname.net Port 443</ADDRESS>
</BODY></HTML>


So now I'm trying to decide how best to handle this. I'm thinking I could
replace the "error" status with a "retry", which should cause the engine
to keep trying to send the last event until the outage is resolved. Or, I
could replace the "error" with "fatal", if I recall correctly, which
would cause the driver to shut down, requiring manual intervention before
continuing.

Given this output, is there anything better I could be doing to handle it?


--
--------------------------------------------------------------------------
David Gersic dgersic_@_niu.edu
Knowledge Partner http://forums.netiq.com

Please post questions in the forums. No support provided via email.

Labels (1)
0 Likes
1 Reply
Knowledge Partner
Knowledge Partner

Re: Handling "500 Internal Server Error" in the SOAP driver?

On 11/16/2012 3:30 PM, David Gersic wrote:
> I'm fairly new to the SOAP driver, only have one of them running right
> now, supporting a "cloud" hosted application (directory data to the
> hosted app via the Subscriber channel). Last night, the service provider
> had a (scheduled) service outage. During the outage, events on the
> subscriber channel returned:
>
> [11/15/12 23:19:15.242]:HostedAppName ST:HostedAppName: Response code and
> message: 500 Internal Server Error
> [11/15/12 23:19:15.254]:HostedAppName ST:HostedAppName: The following
> bytes (which are base64 encoded) were received
> as a response to our request on the subscriber channel. They cannot be
> converted to XML:
> [11/15/12 23:19:15.255]:HostedAppName ST:HostedAppName:
> PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTCAyLjAv
> L0VOIj4KPEhUTUw+PEhFQUQ
> +CjxUSVRMRT41MDAgSW50ZXJuYWwgU2VydmVyIEVycm9yPC9USVRMRT4KPC9IRUFEPjxCT0RZPgo8SDE
> +SW50ZX
> JuYWwgU2VydmVyIEVycm9yPC9IMT4KVGhlIHNlcnZlciBlbmNvdW50ZXJlZCBhbiBpbnRlcm5hbCBlcnJvciBvcgptaXNjb25maWd1cmF0aW9u
> IGFuZCB3YXMgdW5hYmxlIHRvIGNvbXBsZXRlCnlvdXIgcmVxdWVzdC48UD4KUGxlYXNlIGNvbnRhY3QgdGhlIHNlcnZlciBhZG1pbmlzdHJhdG
> 9yLAogeW91QHlvdXIuYWRkcmVzcyBhbmQgaW5mb3JtIHRoZW0gb2YgdGhlIHRpbWUgdGhlIGVycm9yIG9jY3VycmVkLAphbmQgYW55dGhpbmcg
> eW91IG1pZ2h0IGhhdmUgZG9uZSB0aGF0IG1heSBoYXZlCmNhdXNlZCB0aGUgZXJyb3IuPFA
> +Ck1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhpcy
> BlcnJvciBtYXkgYmUgYXZhaWxhYmxlCmluIHRoZSBzZXJ2ZXIgZXJyb3IgbG9nLjxQPgo8SFI
> +CjxBRERSRVNTPk9yYWNsZS1BcHBsaWNhdGlv
> bi1TZXJ2ZXItMTBnLzEwLjEuMi4yLjAgT3JhY2xlLUhUVFAtU2VydmVyIFNlcnZlciBhdCB3d3cuZXZlcmJyaWRnZS5uZXQgUG9ydCA0NDM8L0
> FERFJFU1M+CjwvQk9EWT48L0hUTUw+Cg==
> [11/15/12 23:19:15.259]:HostedAppName ST:SubscriptionShim.execute()
> returned:
> [11/15/12 23:19:15.259]:HostedAppName ST:
> <nds dtdversion="2.0">
> <source>
> <product build="20090519_235451" instance="HostedAppName"
> version="3.5.4">Identity Manager Driver for SOAP</p
> roduct>
> <contact>Novell, Inc.</contact>
> </source>
> <output>
> <status level="error" type="driver-general">
> <description>The response received on the subscriber channel was
> not valid XML. Consider writing a ByteA
> rrayModifiers Java extension if you need to convert the results to XML.</
> description>
> </status>
> </output>
> </nds>
>
> The base64 belch isn't really all that useful, but it translates to:
>
> <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
> <HTML><HEAD>
> <TITLE>500 Internal Server Error</TITLE>
> </HEAD><BODY>
> <H1>Internal Server Error</H1>
> The server encountered an internal error or
> misconfiguration and was unable to complete
> your request.<P>
> Please contact the server administrator,
> you@your.address and inform them of the time the error occurred,
> and anything you might have done that may have
> caused the error.<P>
> More information about this error may be available
> in the server error log.<P>
> <HR>
> <ADDRESS>Oracle-Application-Server-10g/10.1.2.2.0 Oracle-HTTP-Server
> Server at www.hostedappname.net Port 443</ADDRESS>
> </BODY></HTML>
>
>
> So now I'm trying to decide how best to handle this. I'm thinking I could
> replace the "error" status with a "retry", which should cause the engine
> to keep trying to send the last event until the outage is resolved. Or, I
> could replace the "error" with "fatal", if I recall correctly, which
> would cause the driver to shut down, requiring manual intervention before
> continuing.
>
> Given this output, is there anything better I could be doing to handle it?


Retry makes the most sense. You could kill it, and alert first but if
it is a common problem that can recover, might as well leave it trying
to recover.


0 Likes
The opinions expressed above are the personal opinions of the authors, not of Micro Focus. By using this site, you accept the Terms of Use and Rules of Participation. Certain versions of content ("Material") accessible here may contain branding from Hewlett-Packard Company (now HP Inc.) and Hewlett Packard Enterprise Company. As of September 1, 2017, the Material is now offered by Micro Focus, a separately owned and operated company. Any reference to the HP and Hewlett Packard Enterprise/HPE marks is historical in nature, and the HP and Hewlett Packard Enterprise/HPE marks are the property of their respective owners.