users@glassfish.java.net

RE: Re: Interrupted idle thread

From: Martin, Ray <armart3_at_tycho.ncsc.mil>
Date: Tue, 31 Aug 2010 07:34:06 -0400

Mr. Stashok,

 

That was excellent info, thanx.

 

I am trying Mr. Lubke's solution.

 

I am also going to try an asynchronous client.

 

BUT - the biggest part of the problem is after the "interrupting idle
thread.." message - then the SOAP message is repeated. This is really a
bad thing.

 

From: Oleksiy.Stashok_at_Sun.COM [mailto:Oleksiy.Stashok_at_Sun.COM]
Sent: Tuesday, August 31, 2010 5:17 AM
To: users_at_glassfish.dev.java.net
Subject: Re: Interrupted idle thread

 

Hi Martin,

 

I'm sorry this unexpected behavior caused problems to you. We will
improve the message being logged to give GF users more information
what's going on and how this could be changed.

 

Just want to give you more information on the issue.

Glassfish internally uses limited thread pool to process HTTP requests
(by default its size is 5). Considering HTTP request processing takes
longer than 1 minute (as example) - it means 5 HTTP clients can easily
block entire HTTP listener for 1 minute. If user/developer expects this
situation - he can extend the thread pool size or balance the load among
several servers - it's ok.

But from our experience things may easily go out of control, if
user/developer *doesn't* expect this situation. This may easily happen
if we use database in our web app. and DB connection(s) hangs
(unfortunately it happens) and it's not that they may hang for 1 min,
but 30min, hour and so on. In this situation, if we have more clients,
server may hang forever. To avoid this situation we introduced the
property, which will limit the amount of time one single HTTP request
might be processed by the thread, by default it's set to 15 mins.

 

Solution, proposed you by Ryan, should fix the timeout issue you
observe. And as I mentioned we will change the log message to give users
more information.

 

Thanks.

 

WBR,

Alexey.

 

 

On Aug 31, 2010, at 1:21 , Martin, Ray wrote:





When I rebuilt the web service in the EJBModule, I added the new web
service, but I did not remove the original web service - so, the
"interrupting idle thread.." remained.

 

I now removed the original web service and redeployed and ran. The
process in the EJBModule has now run for an hour without error. We will
see how this test runs over nite. Tomorrow, I will test further.

 

It appears that one should not expect web services built on a v2 project
in netbeans to run in a project that has been switched over to v3.

 

 

 

From: Martin, Ray
Sent: Monday, August 30, 2010 6:08 PM
To: users_at_glassfish.dev.java.net
Subject: RE: Interrupted idle thread

 

I rebuilt the web service in the EJBModule.

I rebuilt the web service client.

I cleaned up the database - got most of the errors out.

Reran glassfish v3.

 

Got the stupid "interrupting idle thread.." nonsense. Can't find any
information anywhere about this.

 

Database is totally frits'd - I hate V3!!!!

 

From: Martin, Ray
Sent: Monday, August 30, 2010 3:38 PM
To: users_at_glassfish.dev.java.net
Subject: Interrupted idle thread

 

Using glassfish build 74.2 and jdk1.6.0_20

 

Have one EJBModule using webservice and JPA deployed in a enterprise
app.

Had running very well in v2.

Changed to v3.

Get a "Warning: Interrupting idle Thread: http-threa-pool-8080-(x)"
where x appears to be a one up number.

 

On startup a SOAP message is sent one time to the EJBModule. The
EJBModule performs some processing and sends a response SOAP message.
In v2, the process could run for minutes, hours, or days without
failure.

 

In v3, after the warning message, something ( I am pretty sure that it
is not the web service client - because it is instrumented) causes a
SOAP messages and the processing starts over and corrupts my databases.

 

I don't know what to do.

 

Any help would be appreciated.

 

Thanx.