Some application deployed on multiple nodes in the cluster. Before cluster is balancer (httpd mod_wl). At one point on one of the nodes of the application may return http-code 500. Balancer will not consider this a failed node and show stacktrace to client. If the application returns http-code 503, then the balancer considers the failed node and turn to another node. It is a reason of start this topic.
Yes, I understand the issue.
However, error 500 doesn't mean that the server is unavailable. The server could return 500 for different reasons, and the issue could be related to the application behaviour.
I don't know exactly what kind of application you have, but if we think of webservices for example, whenever the app returns a SOAPFault, HTTP 500 is also returned. In some cases, it could be just a payload validation error.
Having said that, if you can identify an error condition when you believe the server is unavailable due to specific exception, you could monitor either Weblogic resources using JMX or the log files, and write scripts to either stop/restart the server.