MaximMonin
Member
Hi,
I have a question about adminstartion pair WSA + appserver for web based application.
I looked into WSA.log and noticed many errors, that looks like:
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- READPACKET IOException : java.io.EOFException (null)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- java.io.EOFException
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at com.progress.ubroker.client.TcpClientMsgInputStream.readstream(TcpClientMsgInputStream.java:502)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at com.progress.ubroker.client.TcpClientMsgInputStream.readubhdr(TcpClientMsgInputStream.java:291)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at com.progress.ubroker.client.TcpClientMsgInputStream.readMsg(TcpClientMsgInputStream.java:191)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at com.progress.ubroker.client.BrokerSystem.readMsg(BrokerSystem.java:2684)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at com.progress.ubroker.client.BrokerSystem.readPacket(BrokerSystem.java:2492)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at com.progress.ubroker.client.BrokerSystem.read(BrokerSystem.java:1177)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at com.progress.ubroker.client.BrokerSystem.read(BrokerSystem.java:1120)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at com.progress.open4gl.dynamicapi.SinkInputStream.read(SinkInputStream.java:53)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at com.progress.open4gl.dynamicapi.OutputParamReader.<init>(OutputParamReader.java:36)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at com.progress.open4gl.dynamicapi.Session.runProcedure0(Session.java:1045)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at com.progress.open4gl.dynamicapi.Session.runProcedure(Session.java:737)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at com.progress.open4gl.dynamicapi.Session.runProcedure(Session.java:589)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at com.progress.wsa.open4gl.proxy.WSAProxyObject.runProcedure(WSAProxyObject.java:347)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at java.lang.reflect.Method.invoke(Unknown Source)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at com.progress.wsa.open4gl.Rpc4glProvider.invokeJavaMethod(Rpc4glProvider.java:1831)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at com.progress.wsa.open4gl.Rpc4glProvider.invokeSOAPMethod(Rpc4glProvider.java:852)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at com.progress.wsa.open4gl.Rpc4glProvider.invoke(Rpc4glProvider.java:577)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at com.progress.wsa.ApacheSOAPEngine$ApacheSOAPRequest.execute(ApacheSOAPEngine.java:2772)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at com.progress.wsa.WsaServlet.doPost(WsaServlet.java:604)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at java.lang.Thread.run(Unknown Source)
[10/07/24@16:21:04.364+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- DISCONNECT IOException: java.net.SocketException: Broken pipe
After analizing a problem I noticed the following : the problem is no threads available at Appserver at the moment web service call occurs.
For user it looks like this: User clicked some button, web interface returns "WSA Error", User repeats this action in 5 seconds and everything seems ok already. As I understand, It takes about 2-3 seconds for Appserver to create new instance of thread at Appserver level.
I noticed that WSA returns ERROR immediatly. It doesnt wait for appserver starting new thread. Is there any way to fix it?
If I dont set minSrvrInstance parameter at appserver level and there is no activity, number of theards downs to 1. Web client is making async requests can use up to 3-5 threads in parallel.
Any advice?
I have a question about adminstartion pair WSA + appserver for web based application.
I looked into WSA.log and noticed many errors, that looks like:
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- READPACKET IOException : java.io.EOFException (null)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- java.io.EOFException
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at com.progress.ubroker.client.TcpClientMsgInputStream.readstream(TcpClientMsgInputStream.java:502)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at com.progress.ubroker.client.TcpClientMsgInputStream.readubhdr(TcpClientMsgInputStream.java:291)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at com.progress.ubroker.client.TcpClientMsgInputStream.readMsg(TcpClientMsgInputStream.java:191)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at com.progress.ubroker.client.BrokerSystem.readMsg(BrokerSystem.java:2684)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at com.progress.ubroker.client.BrokerSystem.readPacket(BrokerSystem.java:2492)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at com.progress.ubroker.client.BrokerSystem.read(BrokerSystem.java:1177)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at com.progress.ubroker.client.BrokerSystem.read(BrokerSystem.java:1120)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at com.progress.open4gl.dynamicapi.SinkInputStream.read(SinkInputStream.java:53)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at com.progress.open4gl.dynamicapi.OutputParamReader.<init>(OutputParamReader.java:36)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at com.progress.open4gl.dynamicapi.Session.runProcedure0(Session.java:1045)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at com.progress.open4gl.dynamicapi.Session.runProcedure(Session.java:737)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at com.progress.open4gl.dynamicapi.Session.runProcedure(Session.java:589)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at com.progress.wsa.open4gl.proxy.WSAProxyObject.runProcedure(WSAProxyObject.java:347)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at java.lang.reflect.Method.invoke(Unknown Source)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at com.progress.wsa.open4gl.Rpc4glProvider.invokeJavaMethod(Rpc4glProvider.java:1831)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at com.progress.wsa.open4gl.Rpc4glProvider.invokeSOAPMethod(Rpc4glProvider.java:852)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at com.progress.wsa.open4gl.Rpc4glProvider.invoke(Rpc4glProvider.java:577)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at com.progress.wsa.ApacheSOAPEngine$ApacheSOAPRequest.execute(ApacheSOAPEngine.java:2772)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at com.progress.wsa.WsaServlet.doPost(WsaServlet.java:604)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
[10/07/24@16:21:04.362+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- at java.lang.Thread.run(Unknown Source)
[10/07/24@16:21:04.364+0300] P-000000 T-http-8443-5 1 Oblik_Main ---------------- DISCONNECT IOException: java.net.SocketException: Broken pipe
After analizing a problem I noticed the following : the problem is no threads available at Appserver at the moment web service call occurs.
For user it looks like this: User clicked some button, web interface returns "WSA Error", User repeats this action in 5 seconds and everything seems ok already. As I understand, It takes about 2-3 seconds for Appserver to create new instance of thread at Appserver level.
I noticed that WSA returns ERROR immediatly. It doesnt wait for appserver starting new thread. Is there any way to fix it?
If I dont set minSrvrInstance parameter at appserver level and there is no activity, number of theards downs to 1. Web client is making async requests can use up to 3-5 threads in parallel.
Any advice?