By default WebLogic kills stuck threads after 15 min (600 s), this is controlled by StuckThreadMaxTime
parameter. However, I cannot find more details on how exactly "stuckness" is defined. Specifically:
wait()
-like method? Something else?My usecase is download of huge files through a permission system. Since a user needs to be authenticated and have permissions to view a file, I cannot (or at least don't know how) leave this to a simple HTTP server, e.g. Apache. And because files can be huge, download could (at least in theory) take more than 15 minutes.
Weblogic does NOT kill stuck threads after the StuckThreadMaxTime
. It cannot do so, the message is only a status info so that you (i.e. admin) is aware that the thread has crossed 10 mins (600 sec = 10 min, not 15)
This is a configurable value.
The timer starts when the thread begins processing the request within the server. The thread will not be killed but will actually go on processing until the operation is over. so in your case, you do not need to worry about the thread getting killed, it has just informed you about the time taken - which you are aware of in this use case.
It applies to all threads AFAIK - any spawned thread will also operate under the same rules.
IMHO, Weblogic (or any app server) is not the place to store and serve large files. This is ideally meant for the Web server tier - we use SunOne on which the file download servlet can be run. In your case, you would need Tomcat along with your Apache for optimizing this.