Undertow WildFly Subsystem Concepts: Difference between revisions
Jump to navigation
Jump to search
(→Fiter) |
|||
(4 intermediate revisions by the same user not shown) | |||
Line 10: | Line 10: | ||
<blockquote style="background-color: #f9f9f9; border: solid thin lightgrey;"> | <blockquote style="background-color: #f9f9f9; border: solid thin lightgrey;"> | ||
:[[Undertow Concepts#Threading_Model|Undertow Threading Model]] | :[[Undertow Concepts#Threading_Model|Undertow Threading Model]] | ||
:[[WildFly Threads Subsystem Concepts#How_Does_it_Relate_to_Undertow.3F|WildFly Threads Subsystem Concepts]] | |||
</blockquote> | </blockquote> | ||
Line 15: | Line 16: | ||
A filter is functionally equivalent to a global valve used in previous versions of JBoss (JBoss Web). It enables some aspect of a request to be modified and can use predicates to control when a filter executes. | A filter is functionally equivalent to a global valve used in previous versions of JBoss (JBoss Web). It enables some aspect of a request to be modified and can use predicates to control when a filter executes. | ||
=Valve= | |||
{{External|https://access.redhat.com/solutions/2423411}} | |||
=Threads= | |||
The threads are named according to the following pattern: "RequestHandler (2208728)", and a typical stack trace that involves database access: | |||
<pre> | |||
"RequestHandler (2208728)" #184 prio=5 os_prio=0 tid=0x0000000069a7e800 nid=0x1588 runnable [0x000000007b03d000] | |||
java.lang.Thread.State: RUNNABLE | |||
at java.net.SocketInputStream.socketRead0(Native Method) | |||
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) | |||
at java.net.SocketInputStream.read(SocketInputStream.java:170) | |||
at java.net.SocketInputStream.read(SocketInputStream.java:141) | |||
at com.microsoft.sqlserver.jdbc.TDSChannel.read(IOBuffer.java:1782) | |||
at com.microsoft.sqlserver.jdbc.TDSReader.readPacket(IOBuffer.java:4838) | |||
- locked <0x00000004805d6a38> (a com.microsoft.sqlserver.jdbc.TDSReader) | |||
at com.microsoft.sqlserver.jdbc.TDSCommand.startResponse(IOBuffer.java:6150) | |||
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:402) | |||
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:350) | |||
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696) | |||
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715) | |||
- locked <0x00000000c017af68> (a java.lang.Object) | |||
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:180) | |||
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:155) | |||
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.execute(SQLServerPreparedStatement.java:332) | |||
at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.execute(WrappedPreparedStatement.java:404) | |||
at io.novaordis.microservice.util.db.jdbc.DBPreparedStatement.execute(DBPreparedStatement.java:71) | |||
at io.novaordis.microservice.util.db.sql.Procedure$Prepared.execute(Procedure.java:37) | |||
at io.novaordis.microservice.util.db.sql.Procedure$PreparedWithResult.executeQuery(Procedure.java:105) | |||
at io.novaordis.microservice.core.storage.db.DBQuery.db_query_aroundBody10(DBQuery.java:228) | |||
at io.novaordis.microservice.core.storage.db.DBQuery.db_query_aroundBody11$advice(DBQuery.java:32) | |||
at io.novaordis.microservice.core.storage.db.DBQuery.db_query(DBQuery.java:1) | |||
at io.novaordis.microservice.core.storage.db.NodeStorage.executeForCNLs(NodeStorage.java:277) | |||
at io.novaordis.microservice.core.storage.db.NodeStorage.executeForCNLs(NodeStorage.java:272) | |||
at io.novaordis.microservice.core.storage.AbstractNodeStorage.executeForCNLs(AbstractNodeStorage.java:260) | |||
at io.novaordis.microservice.core.storage.AbstractNodeStorage.executeForCNLs(AbstractNodeStorage.java:260) | |||
at io.novaordis.microservice.core.storage.AbstractNodeStorage.executeForCNLs(AbstractNodeStorage.java:260) | |||
at io.novaordis.microservice.core.storage.AbstractNodeStorage.executeForCNLs(AbstractNodeStorage.java:260) | |||
at io.novaordis.microservice.model.user.xc.UserProvider.getUserByIdentity(UserProvider.java:724) | |||
at io.novaordis.microservice.core.session2.impl.SessionManager.buildClientSession(SessionManager.java:208) | |||
at io.novaordis.microservice.core.session2.impl.SessionManager.authenticate(SessionManager.java:162) | |||
at io.novaordis.microservice.core.session2.impl.SessionManager.authenticate(SessionManager.java:73) | |||
at io.novaordis.microservice.core.session2.Session.authenticate(Session.java:282) | |||
at sun.reflect.GeneratedMethodAccessor20.invoke(Unknown Source) | |||
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) | |||
at java.lang.reflect.Method.invoke(Method.java:497) | |||
at io.novaordis.microservice.util.servlet.HOperation$Info.process(HOperation.java:106) | |||
at io.novaordis.microservice.util.servlet.HModule$Info.process(HModule.java:54) | |||
at io.novaordis.microservice.util.servlet.ServletRegister.process(ServletRegister.java:103) | |||
at io.novaordis.microservice.service.handler.RequestHandler.doPost(RequestHandler.java:251) | |||
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) | |||
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) | |||
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85) | |||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:130) | |||
at io.undertow.websockets.jsr.JsrWebSocketFilter.doFilter(JsrWebSocketFilter.java:123) | |||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60) | |||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132) | |||
at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:85) | |||
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:61) | |||
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) | |||
at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78) | |||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) | |||
at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:113) | |||
at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:56) | |||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) | |||
at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:45) | |||
at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:61) | |||
at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58) | |||
at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70) | |||
at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76) | |||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) | |||
at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61) | |||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) | |||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) | |||
at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:240) | |||
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:227) | |||
at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:73) | |||
at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:146) | |||
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:177) | |||
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:727) | |||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) | |||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) | |||
at java.lang.Thread.run(Thread.java:745) | |||
Locked ownable synchronizers: | |||
- <0x00000000c03b4628> (a java.util.concurrent.locks.ReentrantLock$FairSync) | |||
- <0x0000000107a6d390> (a java.util.concurrent.ThreadPoolExecutor$Worker) | |||
</pre> |
Latest revision as of 23:49, 21 February 2018
Internal
Threading Model
Also see:
Fiter
A filter is functionally equivalent to a global valve used in previous versions of JBoss (JBoss Web). It enables some aspect of a request to be modified and can use predicates to control when a filter executes.
Valve
Threads
The threads are named according to the following pattern: "RequestHandler (2208728)", and a typical stack trace that involves database access:
"RequestHandler (2208728)" #184 prio=5 os_prio=0 tid=0x0000000069a7e800 nid=0x1588 runnable [0x000000007b03d000] java.lang.Thread.State: RUNNABLE at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) at java.net.SocketInputStream.read(SocketInputStream.java:170) at java.net.SocketInputStream.read(SocketInputStream.java:141) at com.microsoft.sqlserver.jdbc.TDSChannel.read(IOBuffer.java:1782) at com.microsoft.sqlserver.jdbc.TDSReader.readPacket(IOBuffer.java:4838) - locked <0x00000004805d6a38> (a com.microsoft.sqlserver.jdbc.TDSReader) at com.microsoft.sqlserver.jdbc.TDSCommand.startResponse(IOBuffer.java:6150) at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:402) at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:350) at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696) at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715) - locked <0x00000000c017af68> (a java.lang.Object) at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:180) at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:155) at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.execute(SQLServerPreparedStatement.java:332) at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.execute(WrappedPreparedStatement.java:404) at io.novaordis.microservice.util.db.jdbc.DBPreparedStatement.execute(DBPreparedStatement.java:71) at io.novaordis.microservice.util.db.sql.Procedure$Prepared.execute(Procedure.java:37) at io.novaordis.microservice.util.db.sql.Procedure$PreparedWithResult.executeQuery(Procedure.java:105) at io.novaordis.microservice.core.storage.db.DBQuery.db_query_aroundBody10(DBQuery.java:228) at io.novaordis.microservice.core.storage.db.DBQuery.db_query_aroundBody11$advice(DBQuery.java:32) at io.novaordis.microservice.core.storage.db.DBQuery.db_query(DBQuery.java:1) at io.novaordis.microservice.core.storage.db.NodeStorage.executeForCNLs(NodeStorage.java:277) at io.novaordis.microservice.core.storage.db.NodeStorage.executeForCNLs(NodeStorage.java:272) at io.novaordis.microservice.core.storage.AbstractNodeStorage.executeForCNLs(AbstractNodeStorage.java:260) at io.novaordis.microservice.core.storage.AbstractNodeStorage.executeForCNLs(AbstractNodeStorage.java:260) at io.novaordis.microservice.core.storage.AbstractNodeStorage.executeForCNLs(AbstractNodeStorage.java:260) at io.novaordis.microservice.core.storage.AbstractNodeStorage.executeForCNLs(AbstractNodeStorage.java:260) at io.novaordis.microservice.model.user.xc.UserProvider.getUserByIdentity(UserProvider.java:724) at io.novaordis.microservice.core.session2.impl.SessionManager.buildClientSession(SessionManager.java:208) at io.novaordis.microservice.core.session2.impl.SessionManager.authenticate(SessionManager.java:162) at io.novaordis.microservice.core.session2.impl.SessionManager.authenticate(SessionManager.java:73) at io.novaordis.microservice.core.session2.Session.authenticate(Session.java:282) at sun.reflect.GeneratedMethodAccessor20.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at io.novaordis.microservice.util.servlet.HOperation$Info.process(HOperation.java:106) at io.novaordis.microservice.util.servlet.HModule$Info.process(HModule.java:54) at io.novaordis.microservice.util.servlet.ServletRegister.process(ServletRegister.java:103) at io.novaordis.microservice.service.handler.RequestHandler.doPost(RequestHandler.java:251) at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85) at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:130) at io.undertow.websockets.jsr.JsrWebSocketFilter.doFilter(JsrWebSocketFilter.java:123) at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60) at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132) at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:85) at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:61) at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:113) at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:56) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:45) at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:61) at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58) at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70) at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:240) at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:227) at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:73) at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:146) at io.undertow.server.Connectors.executeRootHandler(Connectors.java:177) at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:727) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Locked ownable synchronizers: - <0x00000000c03b4628> (a java.util.concurrent.locks.ReentrantLock$FairSync) - <0x0000000107a6d390> (a java.util.concurrent.ThreadPoolExecutor$Worker)