Solved

Need to eliminate HTTP Status 500 errors...

Posted on 2009-06-27
5
586 Views
Last Modified: 2013-12-02
I have a web based java application running on multiple application servers.  All experience the same issue(s).  The heart of the problem is that while using the application, at any given time (fairly intermittent, no discernible pattern that we see) trying to get to no particular page, nor execute any specific functionality, we can get greeted with a page indicating:

HTTP Status 500 - Trying to process transaction <whatever we were doing / page we were trying to get to>
type: Status Report
message: Trying to process <fill in the action here>
description: The server encountered an internal error that prevented it from fulfilling this request.

Apache Tomcat 5.0.28  

A few very important points of note (I think if we solve #2- we solve the issue):
       1. Seems to be less frequent, but still happens, when there is less load (fewer users....less network traffic....however you want to view it).
       2. The application has a splash/home page that contains a window/box that is used for putting out announcements to the users.  When using IE as the browser and accessing the server/page using the server name - this box/window within the page displays this same HTTP 500 error ALL THE TIME without fail.   When using IE and accessing the server/page by IP, the announcement page displays correctly in the window ALL THE TIME without fail.   When using Firefox to access the server/page, this announcement window/box ALWAYS works regardless of using server name or IP.  (but, yes, we still do get the intermittent 500's using Firefox).
     3.  The application developers have this deployed at several other locations and indication is that none of them have ever experienced this, mean the 500's in the app or in the announcement box (and I do trust those telling me this).  They have reviewed the application, etc. and they feel it is something in the environment (network, DNS, etc.)
   4. Somewhat contradicting it being load/traffic related is the fact that the application screens are designed to continually refresh themselves (and they do) - meaning, if I were to leave a page up throughout the night it should still be up in the morning - but what we experience is that at some point during the evening (and there is next to no load and no users during the night) the refresh will come back with the 500 error.
  5. When we get the 500- we can usually just refresh the page (re-posting data or resending when need be) and more often than not, everything will be fine and the page will load- although we have had it occur where it happens multiple times in a row (but pretty infrequently).

We've tried all sort of things with DNS, network tweaking, etc. - and I am sure I'm forgetting some points of note above - but nothing we have tried has rid us of the problem.

Any help that can be offered is desperately appreciated...

Thanks so much...

0
Comment
Question by:derdle
  • 4
5 Comments
 
LVL 4

Expert Comment

by:nasserd
ID: 24729951
It sounds like a server memory issue -- add more RAM and make sure the server app recycles its memory usage more frequently.
0
 

Author Comment

by:derdle
ID: 24729993
We have monitored memory and CPU very closely on the servers and see nothing to indicate an issue in these areas.

Also, that certainly would not be related in regards to the announcements box showing the error in IE when using the server name, but not when using the IP, and Firefox not showing the error at all using name or IP - that somewhat speaks against it being memory as well.  Don't you think...

Not to mention that the servers are 64bit and we already have 8GB in them.
0
 

Author Comment

by:derdle
ID: 24730075
OK- here's a better explanation of the Announcements window, and also wanted to provide further information (I said I knew I'd forget some things).

The HTTP 500 error as it appears in the Announcements window is "slightly" different than the one received using the application.  The difference being:

Occurs in the app:

HTTP Status 500 - Trying to process transaction <whatever we were doing / page we were trying to get to>
type: Status Report
message: Trying to process <fill in the action here>
description: The server encountered an internal error that prevented it from fulfilling this request.
Apache Tomcat 5.0.28

As it appears in the Announcements box when using IE and calling the server by name

HTTP Status 500 -
type: Status Report
message:
description: The server encountered an internal error that prevented it from fulfilling this request.
Apache Tomcat 5.0.28  

basically- no description in the header, and no message text in the Announcement frame

better description of the Announcement box -

Its basically an IFRAME within the page. The IFRAME is a way of loading content into a certain area of a page. THE IFRAME calls a process on the webserver to render its output into the frame..

<iframe src="/sourcedir/broadcastmsg"; style="height:71; width:99%" name="I1">
            [Your browser does < em>not</em>
            support <code>iframe</code>,
            or has been configured not to display inline frames.]</iframe>

where src="/sourcedir/broadcastmsg"; is the call to the process (a servlet) to render the output.

Thanks for any continuing thoughts...

 

0
 

Author Comment

by:derdle
ID: 24751461
Another significant detail....  The only difference the devs know between our environment and the other locations where this is deployed (that never have the issue) is the fact that our servers are running 64 bit.

So, the leading question becomes-

Does jdk1.5_17(32 bit JVM) run on Windows 64 bit OS without any known issues? Specifically class loading?  Anything were missing? Unique settings?

We found instances of this buried in the logs...class load failures

>
> java.net.URLClassLoader$1.run(URLClassLoader.java:200)
>
>  >>>>>>>
>
>
> INFO   | jvm 1    | 2009/02/02 10:29:53 | 10:29:53,140 ERROR [Engine]
> StandardContext[/ansHealthConsole]Error loading
> org.jboss.web.tomcat.tc5.WebCtxLoader$ENCLoader@5db132
> console.server.servlets.AnnouncementHandler
> INFO   | jvm 1    | 2009/02/02 10:29:53 |
> java.lang.ClassNotFoundException:
> console.server.servlets.AnnouncementHandler
> INFO   | jvm 1    | 2009/02/02 10:29:53 |     at
>  >>>java.net.URLClassLoader$1.run(URLClassLoader.java:200)
> INFO   | jvm 1    | 2009/02/02 10:29:53 |     at
> java.security.AccessController.doPrivileged(Native Method)
> INFO   | jvm 1    | 2009/02/02 10:29:53 |     at
> java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> INFO   | jvm 1    | 2009/02/02 10:29:53 |     at
> java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> INFO   | jvm 1    | 2009/02/02 10:29:53 |     at
> java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> INFO   | jvm 1    | 2009/02/02 10:29:53 |     at
> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:964)
>
> INFO   | jvm 1    | 2009/02/02 10:29:53 |     at
> org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:862)
> INFO   | jvm 1    | 2009/02/02 10:29:53 |     at
> org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4013)
>
> INFO   | jvm 1    | 2009/02/02 10:29:53 |     at
> org.apache.catalina.core.StandardContext.start(StandardContext.java:4357)

Again, any help if appreciated.   I'll go post this question separately as well....
0
 

Accepted Solution

by:
derdle earned 0 total points
ID: 25001771
No other feedback has been provided...and this is still an open issue, but given the lack of any reponses- please close this item.  Not sure how to do so without accepting a solution....for which one was not provided.
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

Verbose logging is used to diagnose garbage collector problems. By default, -verbose:gc output is written to either native_stderr.log or native_stdout.log.   It is also possible to redirect the logs to a user-specified file. This article will de…
Introduction and Prerequisites This article describes methods for detecting whether a client browser accepts and returns HTTP cookies and whether the client browser runs JavaScript.  Most client browsers will, by default, be configured to use cooki…
Excel styles will make formatting consistent and let you apply and change formatting faster. In this tutorial, you'll learn how to use Excel's built-in styles, how to modify styles, and how to create your own. You'll also learn how to use your custo…
This video shows how to remove a single email address from the Outlook 2010 Auto Suggestion memory. NOTE: For Outlook 2016 and 2013 perform the exact same steps. Open a new email: Click the New email button in Outlook. Start typing the address: …

747 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now