JRun errors in split environment

Hey guys,

I think I have emailed back and forth with a couple of you on the topic of

the requestContext methods in Jato 1.1 to see whether or not they can be

giving us some of the problems we are having in our testing environment. In

development we are running on local boxes and using JRun 3.0 as a webserver

and the back-end app server. We have had no problems with navigation,

multiple login, or session info, etc..

Now is testing we have Iplanet 4.0 as we webserver (on one machine) and the

JRun services running on another machine. Now I know Todd Fast has

commented on some of the exceptions we were getting in our BofaDirect

application and said they were a JRun configuration issue. But I guess my

suggestion runs a little bit deeper and my question lies in this situation.

We can create an "ArrayIndexOutofBounds" problem sometimes....but we solved

for the time being. The exceptions we get now is seen like this whenever

one is navigating around pages:

And no it does not only happen in one place or another. It has happened in

different projects and at different times in the session. Here is one

example...

An unhandled exception occured - Handler method "handleBtEnterRequest" threw

an\

unknown exception

Exception within exception. Response has already been committed

JRun Session ID from Request Manager = 151014980781102286

Total request time = 528 ms

Now we can make this happen at any point where we navigate quickly from page

to page. There is rarely any CORBA involved in loading these pages and you

can break JRun just by moving around , single login.

So can it be? The com.iplanet.jato.view.RequestHandlingViewBase.java .

Now the only reason as to why I ask this is because if a child is trying to

be instantiated, and the page is trying to load java code from JATO into

JRun to be process in one request ....and the Iplanet server (which is

separate entirely) keeps on queuing requests to the JRun server/JATO. So is

it possible that the webserver is causing the JATO package to overload

children instantiation when a user screams through pages quickly?

Eric Hagopian

Bank of America Direct

<a href="/group/SunONE-JATO/post?protectID=070212020098035125169242065176231253000 098083009039175188023077067046010218229239098201196026">eric.hagopian@b...< ;/a>

312.974.6411

[2591 byte] By [Guest] at [2007-11-25 9:28:28]
# 1

Eric et al.--

> An unhandled exception occured - Handler method "handleBtEnterRequest"

threw

> an\

> unknown exception

> Exception within exception. Response has already been committed

> JRun Session ID from Request Manager = 151014980781102286

> Total request time = 528 ms

The critical information in this message is this:

> Exception within exception. Response has already been committed

This normally happens if someone does two forwards in one request, or tries

to forward late in the rendering of a page (due to a insufficient buffer

size). We've also seen this in some containers under error conditions--the

container is buggy such that if it tries to write an exception message to

the output stream it generates this same error. Therefore, I don't know if

we can take this message as the primary error; it may be a secondary error.

What doesn't make sense at all is that this error only occurs under load.

My only guess is that the log might help clear this up. If that's the same

log you'd sent earlier, then my reading is that it's a JRun-ism (I didn't

mean to sound dismissive in my prior email). Could it perhaps be that JRun

is constantly reloading classes (for some unknown reason) and thus cannot

keep up under the test load? One way to test this would be to put some

System.out messages in the static initializer of your view bean classes and

see if they appear more than once in the log/console. Perhaps you could

also try a test run with a different container like Resin

(<a href="http://www.caucho.com">http://www.caucho.com</a>) and see if you get the same results.

Just for kicks, and to rule it out as a potential problem, you might also

want to set a larger buffer size on the pages that seem to have a problem

(are they large pages?):

<%@ page buffer=60kb %>

Another thing to try would be to surround the code in your

"handleBtEnterRequest" method with a try...catch (Throwable) and log any

exception in detail yourself (make sure to rethrow it). Are all the errors

you receive occurring inside event handler methods? For example, some

containers may have a problem doing something like appending our app message

buffer to the bottom of the outgoing page (which is why it can be

unilaterally turned off).

> Now we can make this happen at any point where we navigate quickly from

page

> to page. There is rarely any CORBA involved in loading these pages and

you

> can break JRun just by moving around , single login.

> So can it be? The com.iplanet.jato.view.RequestHandlingViewBase.java .

> Now the only reason as to why I ask this is because if a child is trying

to

> be instantiated, and the page is trying to load java code from JATO into

> JRun to be process in one request ....and the Iplanet server (which is

> separate entirely) keeps on queuing requests to the JRun server/JATO. So

is

> it possible that the webserver is causing the JATO package to overload

> children instantiation when a user screams through pages quickly?

Under normal circumstances, there shouldn't be any class loading except

during the first-touch request. If something like the scenario you've

indicated is occurring then the container is definitely not operating in a

way we would expect for a deployment configuration.

Also, child instantiation is extremely cheap, so it shouldn't cause any

problems whatsoever; and besides, each request is (should be) isolated in

its own thread, and everythig inside that thread is happening synchronously

without outside influence or interaction. There is no central interaction

for, say, child instantiation. In the end, each request thread has its own

copy of all the objects it needs and there is no way that requests could

"back up" against any JATO object. The only exception might be under the

abnormal class loading situation I mentioned above.

My best recommendation right now would be to either test in a different

container or comb the logs to try to find some other error that could be

causing the message you see as a secondary error.

Todd

--

Todd Fast

Senior Engineer

Sun/Netscape Alliance

<a href="/group/SunONE-JATO/post?protectID=189233080150035131169232031248130090006 048031198039130252055210">todd.fast@e...</a>

Guest at 2007-7-1 16:33:59 > top of Java-index,Development Tools,Java Tools...