Thursday, December 8, 2011

PosixSocketMuxer

<Error> <WebLogicServer> <BEA-000337> <[STUCK] ExecuteThread: '71' for queue: 'weblogic.kernel.Default (self-tuning)' has been busy for "633" seconds working on the request "weblogic.servlet.internal.ServletRequestImpl@158051e[null null null]",
which is more than the configured time (StuckThreadMaxTime) of "600" seconds
. Stack trace:
weblogic.socket.DevPollSocketMuxer.read(DevPollSocketMuxer.java:77)
weblogic.servlet.internal.MuxableSocketHTTP.requeue(MuxableSocketHTTP.java:236)
weblogic.servlet.internal.VirtualConnection.requeue(VirtualConnection.java:333)
weblogic.servlet.internal.ServletResponseImpl.send(ServletResponseImpl.java:1544)
weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1462)
weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
weblogic.work.ExecuteThread.run(ExecuteThread.java:176)

we can see in the thread dump, all the muxer threads are stuck waiting for the lock so none of those thread can poll.

Switching to weblogic.socket.PosixSocketMuxer from the weblogic.socket.DevPollSocketMuxer solved this issue.

To enable PosixSocketMuxer via WLST:
edit()
cd ('Servers/'MyServerName')
startEdit()
set('MuxerClass','weblogic.socket.PosixSocketMuxer')
activate()

No comments: