delay is caused by your FW settings
set REJECT (instead of DENY) for 1935 and it will speed-up everything

On Tue, Sep 13, 2016 at 11:48 PM, Coscend@OM <om.insig...@coscend.com> wrote:
> Dear Maxim,
>
> Yes, we are using reverse proxy.
> Reverse proxy open:  5080
> OS Firewall open: 1935, 5080.
>
> FIRST time entering room takes 1 MINUTE during handshake.
> Exit room.
> SECOND time entering room takes only 1 SECOND.
>
> Only in 3.1.2.  In 3.0.7, no delay.
>
>
> Could this delay be caused by empty field in config.xml: 
> <rtmphostlocal></rtmphostlocal>?
> Is this value stored somewhere in cache after the first login so that the 
> second time it is faster?  If so, where is it stored?
>
>
> Thank you.
>
> Sincerely,
>
> Hemant K. Sabat
>
> Coscend Communications Solutions
> Web site: www.Coscend.com
> ------------------------------------------------------------------
> CONFIDENTIALITY NOTICE: See 'Confidentiality Notice Regarding E-mail Messages 
> from Coscend Communications Solutions' posted at: 
> http://www.Coscend.com/Terms_and_Conditions.html
>
>
>
> -----Original Message-----
> From: Maxim Solodovnik [mailto:solomax...@gmail.com]
> Sent: Tuesday, September 13, 2016 2:10 AM
> To: Openmeetings user-list <user@openmeetings.apache.org>; 
> om.insig...@coscend.com
> Subject: Re: RTMP Connection Delay
>
> Are you behind the proxy? apache/nginx with port 1935 closed?
>
> On Tue, Sep 13, 2016 at 1:58 PM, Coscend@OM <om.insig...@coscend.com> wrote:
>> Dear OpenMeetings Users,
>>
>>
>>
>> In OM 3.1.2, while logging in the FIRST time as well as while entering
>> a room the FIRST time after login, there is a noticeable delay during
>> handshake (HTTP to RTMP).  This was not observed in OM 3.0.7 in the
>> same environment.  Could you advise us the cause of the delay in 3.1.2?
>>
>> (See ID: 3 in log below)
>>
>>
>>
>> Upon exiting the room and reentering the room, there is no delay at all.
>> (See ID: 4 in log below).
>>
>>
>>
>> Could this be caused by empty field in config.xml:
>> <rtmphostlocal></rtmphostlocal>?  Is this value stored somewhere in
>> cache after the first login so that the second time it is faster?  If
>> so, where is it stored?
>>
>>
>>
>>
>>
>> =============
>>
>> OpenMeetings.log
>>
>> =============
>>
>> ID: 3
>>
>> Response-Code: 200
>>
>> Content-Type: application/json
>>
>> Headers: {Content-Type=[application/json], Date=[Sat, 10 Sep 2016
>> 05:20:43 GMT]}
>>
>> Payload: {"fileExplorerObject":{"userHomeSize":0,"roomHomeSize":0}}
>>
>> --------------------------------------
>>
>> DEBUG 09-10 00:20:43.780 ScopeApplicationAdapter.java 258296 1160
>> org.apache.openmeetings.core.remote.red5.ScopeApplicationAdapter
>> [RTMPConnectionExecutor-2] - -----------  setRoomValues
>>
>> DEBUG 09-10 00:20:43.797 ConferenceLogDao.java 258313 52
>> org.apache.openmeetings.db.dao.log.ConferenceLogDao
>> [RTMPConnectionExecutor-2] - [addConferenceLog]:
>> org.apache.openmeetings.db.entity.log.ConferenceLog@74ca6007
>>
>> …
>>
>> ERROR 09-10 00:21:29.713 WicketEndpoint.java 304229 77
>> org.apache.wicket.protocol.ws.javax.WicketEndpoint
>> [http-nio-[IP]-[port]-exec-6] - An error occurred in web socket
>> connection with id : 1
>>
>> java.io.IOException: Broken pipe
>>
>>        at sun.nio.ch.FileDispatcherImpl.write0(Native Method)
>>
>>        at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47)
>>
>>        at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)
>>
>>        at sun.nio.ch.IOUtil.write(IOUtil.java:65)
>>
>>        at
>> sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:492)
>>
>>        at
>> org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:124)
>>
>>        at
>> org.apache.tomcat.util.net.NioSelectorPool.write(NioSelectorPool.java:
>> 183)
>>
>>        at
>> org.apache.coyote.http11.upgrade.NioServletOutputStream.doWriteInterna
>> l(NioServletOutputStream.java:94)
>>
>>        at
>> org.apache.coyote.http11.upgrade.NioServletOutputStream.doWrite(NioSer
>> vletOutputStream.java:61)
>>
>>        at
>> org.apache.coyote.http11.upgrade.AbstractServletOutputStream.writeInte
>> rnal(AbstractServletOutputStream.java:165)
>>
>>        at
>> org.apache.coyote.http11.upgrade.AbstractServletOutputStream.write(Abs
>> tractServletOutputStream.java:132)
>>
>>        at
>> org.apache.tomcat.websocket.server.WsRemoteEndpointImplServer.onWriteP
>> ossible(WsRemoteEndpointImplServer.java:98)
>>
>>        at
>> org.apache.tomcat.websocket.server.WsRemoteEndpointImplServer.doWrite(
>> WsRemoteEndpointImplServer.java:79)
>>
>>        at
>> org.apache.tomcat.websocket.WsRemoteEndpointImplBase.writeMessagePart(
>> WsRemoteEndpointImplBase.java:453)
>>
>>        at
>> org.apache.tomcat.websocket.WsRemoteEndpointImplBase.startMessage(WsRe
>> moteEndpointImplBase.java:341)
>>
>>        at
>> org.apache.tomcat.websocket.WsRemoteEndpointImplBase.startMessageBlock
>> (WsRemoteEndpointImplBase.java:273)
>>
>>        at
>> org.apache.tomcat.websocket.WsSession.sendCloseMessage(WsSession.java:
>> 588)
>>
>>        at
>> org.apache.tomcat.websocket.WsSession.doClose(WsSession.java:490)
>>
>>        at
>> org.apache.tomcat.websocket.server.WsHttpUpgradeHandler.onError(WsHttp
>> UpgradeHandler.java:149)
>>
>>        at
>> org.apache.tomcat.websocket.server.WsHttpUpgradeHandler.access$300(WsH
>> ttpUpgradeHandler.java:47)
>>
>>        at
>> org.apache.tomcat.websocket.server.WsHttpUpgradeHandler$WsReadListener
>> .onError(WsHttpUpgradeHandler.java:206)
>>
>>        at
>> org.apache.tomcat.websocket.server.WsHttpUpgradeHandler$WsReadListener
>> .onDataAvailable(WsHttpUpgradeHandler.java:189)
>>
>>        at
>> org.apache.coyote.http11.upgrade.AbstractServletInputStream.onDataAvai
>> lable(AbstractServletInputStream.java:198)
>>
>>        at
>> org.apache.coyote.http11.upgrade.AbstractProcessor.upgradeDispatch(Abs
>> tractProcessor.java:96)
>>
>>        at
>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(A
>> bstractProtocol.java:647)
>>
>>        at
>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoi
>> nt.java:1520)
>>
>>        at
>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint
>> .java:1476)
>>
>>        at
>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.j
>> ava:1145)
>>
>>        at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.
>> java:615)
>>
>>        at
>> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThr
>> ead.java:61)
>>
>>        at java.lang.Thread.run(Thread.java:745)
>>
>> DEBUG 09-10 00:21:29.715 MainPage.java 304231 223
>> org.apache.openmeetings.web.pages.MainPage
>> [http-nio-[IP]-[port]-exec-6] - WebSocketBehavior::onClose
>>
>> ERROR 09-10 00:21:29.888 WicketEndpoint.java 304404 77
>> org.apache.wicket.protocol.ws.javax.WicketEndpoint
>> [http-nio-[IP]-[port]-exec-6] - An error occurred in web socket
>> connection with id : 1
>>
>> java.io.IOException: Connection reset by peer
>>
>>        at sun.nio.ch.FileDispatcherImpl.read0(Native Method)
>>
>>        at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)
>>
>>        at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
>>
>>        at sun.nio.ch.IOUtil.read(IOUtil.java:197)
>>
>>        at
>> sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:384)
>>
>>        at
>> org.apache.tomcat.util.net.NioChannel.read(NioChannel.java:137)
>>
>>        at
>> org.apache.coyote.http11.upgrade.NioServletInputStream.fillReadBuffer(
>> NioServletInputStream.java:136)
>>
>>        at
>> org.apache.coyote.http11.upgrade.NioServletInputStream.doRead(NioServl
>> etInputStream.java:80)
>>
>>        at
>> org.apache.coyote.http11.upgrade.AbstractServletInputStream.read(Abstr
>> actServletInputStream.java:124)
>>
>>        at
>> org.apache.tomcat.websocket.server.WsFrameServer.onDataAvailable(WsFra
>> meServer.java:60)
>>
>>        at
>> org.apache.tomcat.websocket.server.WsHttpUpgradeHandler$WsReadListener
>> .onDataAvailable(WsHttpUpgradeHandler.java:185)
>>
>>        at
>> org.apache.coyote.http11.upgrade.AbstractServletInputStream.onDataAvai
>> lable(AbstractServletInputStream.java:198)
>>
>>        at
>> org.apache.coyote.http11.upgrade.AbstractProcessor.upgradeDispatch(Abs
>> tractProcessor.java:96)
>>
>>        at
>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(A
>> bstractProtocol.java:647)
>>
>>        at
>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoi
>> nt.java:1520)
>>
>>        at
>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint
>> .java:1476)
>>
>>        at
>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.j
>> ava:1145)
>>
>>        at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.
>> java:615)
>>
>>        at
>> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThr
>> ead.java:61)
>>
>>        at java.lang.Thread.run(Thread.java:745)
>>
>> DEBUG 09-10 00:21:31.949 SessiondataDao.java 306465 263
>> org.apache.openmeetings.db.dao.server.SessiondataDao
>> [org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-1
>> ] -
>> ****** clearSessionTable:
>>
>> DEBUG 09-10 00:21:31.952 SessiondataDao.java 306468 265
>> org.apache.openmeetings.db.dao.server.SessiondataDao
>> [org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-1
>> ] -
>> clearSessionTable: 0
>>
>> DEBUG 09-10 00:21:31.953 MeetingReminderJob.java 306469 35
>> org.apache.openmeetings.service.quartz.scheduler.MeetingReminderJob
>> [org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-2
>> ] - MeetingReminderJob.execute
>>
>> DEBUG 09-10 00:21:34.554 MeetingReminderJob.java 309070 35
>> org.apache.openmeetings.service.quartz.scheduler.MeetingReminderJob
>> [org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-2
>> ] - MeetingReminderJob.execute
>>
>> DEBUG 09-10 00:21:34.555 SessiondataDao.java 309071 263
>> org.apache.openmeetings.db.dao.server.SessiondataDao
>> [org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-1
>> ] -
>> ****** clearSessionTable:
>>
>> DEBUG 09-10 00:21:34.559 SessiondataDao.java 309075 265
>> org.apache.openmeetings.db.dao.server.SessiondataDao
>> [org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-1
>> ] -
>> clearSessionTable: 0
>>
>> [WARN] [NioProcessor-4] org.apache.mina.core.service.IoProcessor -
>> Create a new selector. Selected is 0, delta = 0
>>
>> [WARN] [RTMPConnectionScheduler-2]
>> org.red5.server.net.rtmp.RTMPConnection - Closing connection -
>> inactivity timeout: session=[V6BEIJ0K2XRTE],
>> lastPongReceived=[60008 ms ago], lastPingSent=[5001 ms ago],
>> lastDataRx=[70009 ms ago]
>>
>> [WARN] [RTMPConnectionScheduler-2]
>> org.red5.server.net.rtmp.RTMPConnection - Client on
>> session=[V6BEIJ0K2XRTE] has not responded to our ping for [60008 ms]
>> and we haven't received data for [70009 ms]
>>
>> java.lang.InterruptedException
>>
>>        at
>> java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireShared
>> Nanos(AbstractQueuedSynchronizer.java:1325)
>>
>>        at
>> java.util.concurrent.Semaphore.tryAcquire(Semaphore.java:414)
>>
>>        at
>> org.red5.server.adapter.ApplicationAdapter.disconnect(ApplicationAdapt
>> er.java:91)
>>
>>        at org.red5.server.scope.Scope.disconnect(Scope.java:352)
>>
>>        at
>> org.red5.server.BaseConnection.close(BaseConnection.java:402)
>>
>>        at
>> org.red5.server.net.rtmp.RTMPConnection.close(RTMPConnection.java:990)
>>
>>        at
>> org.red5.server.net.rtmpt.BaseRTMPTConnection.close(BaseRTMPTConnectio
>> n.java:131)
>>
>>        at
>> org.red5.server.net.rtmpt.RTMPTConnection.close(RTMPTConnection.java:1
>> 28)
>>
>>        at
>> org.red5.server.net.rtmpt.RTMPTConnection.onInactive(RTMPTConnection.j
>> ava:108)
>>
>>        at
>> org.red5.server.net.rtmp.RTMPConnection$KeepAliveTask.run(RTMPConnecti
>> on.java:1897)
>>
>>        at
>> org.springframework.scheduling.support.DelegatingErrorHandlingRunnable
>> .run(DelegatingErrorHandlingRunnable.java:54)
>>
>>        at
>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471
>> )
>>
>>        at
>> java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)
>>
>>        at
>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.a
>> ccess$301(ScheduledThreadPoolExecutor.java:178)
>>
>>        at
>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.r
>> un(ScheduledThreadPoolExecutor.java:293)
>>
>>        at
>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.j
>> ava:1145)
>>
>>        at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.
>> java:615)
>>
>>        at java.lang.Thread.run(Thread.java:745)
>>
>> DEBUG 09-10 00:21:53.516 MultiThreadedApplicationAdapter.java 328032
>> 507 org.apache.openmeetings.core.remote.red5.ScopeApplicationAdapter
>> [RTMPConnectionScheduler-2] - leave: Client: V6BEIJ0K2XRTE << Scope
>> [name=5, path=/default/test.om, type=ROOM, autoStart=true,
>> creationTime=1473484696211, depth=2, enabled=true, running=true]
>>
>> autoStart=true, creationTime=1473484696211, depth=2, enabled=true,
>> running=true]
>>
>> …
>>
>> DEBUG 09-10 00:21:53.557 MultiThreadedApplicationAdapter.java 328073
>> 711 org.apache.openmeetings.core.remote.red5.ScopeApplicationAdapter
>> [RTMPConnectionScheduler-2] - appLeave: Client: V6BEIJ0K2XRTE << Scope
>> [name=test.om, path=/default, type=APPLICATION, autoStart=true,
>> creationTime=1473484588481, depth=1, enabled=true, running=true]
>>
>> [ERROR] [RTMPConnectionExecutor-4]
>> org.red5.server.service.ServiceInvoker - Error executing call:
>> Service: null Method: play Num Params: 2 0: undefined
>> 1: NaN
>>
>> java.lang.IllegalArgumentException: argument type mismatch
>>
>>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>
>>        at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.j
>> ava:57)
>>
>>        at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccess
>> orImpl.java:43)
>>
>>        at java.lang.reflect.Method.invoke(Method.java:606)
>>
>>        at
>> org.red5.server.service.ServiceInvoker.invoke(ServiceInvoker.java:189)
>>
>>        at
>> org.red5.server.net.rtmp.RTMPHandler.invokeCall(RTMPHandler.java:214)
>>
>>        at
>> org.red5.server.net.rtmp.RTMPHandler.onCommand(RTMPHandler.java:276)
>>
>>        at
>> org.red5.server.net.rtmp.BaseRTMPHandler.messageReceived(BaseRTMPHandl
>> er.java:116)
>>
>>        at
>> org.red5.server.net.rtmp.ReceivedMessageTask.call(ReceivedMessageTask.
>> java:72)
>>
>>        at
>> org.red5.server.net.rtmp.ReceivedMessageTask.call(ReceivedMessageTask.
>> java:38)
>>
>>        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
>>
>>        at
>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471
>> )
>>
>>        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
>>
>>        at
>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.j
>> ava:1145)
>>
>>        at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.
>> java:615)
>>
>>        at java.lang.Thread.run(Thread.java:745)
>>
>> [WARN] [RTMPConnectionExecutor-4] org.red5.server.net.rtmp.Channel -
>> Non-existant stream for channel id: 8, session: DUNX6UQ7J3LP6 discarding:
>> Invoke #0: Service: null Method: play Num Params: 2 0: undefined 1:
>> NaN
>>
>>
>>
>>
>>
>> ID: 4
>>
>> Response-Code: 200
>>
>> Content-Type: application/json
>>
>> Headers: {Content-Type=[application/json], Date=[Sat, 10 Sep 2016
>> 05:27:51 GMT]}
>>
>> Payload: {"fileExplorerObject":{"userHomeSize":0,"roomHomeSize":0}}
>>
>> --------------------------------------
>>
>> DEBUG 09-10 00:27:51.330 ScopeApplicationAdapter.java 685846 1160
>> org.apache.openmeetings.core.remote.red5.ScopeApplicationAdapter
>> [RTMPConnectionExecutor-1] - -----------  setRoomValues
>>
>> DEBUG 09-10 00:27:51.351 ConferenceLogDao.java 685867 52
>> org.apache.openmeetings.db.dao.log.ConferenceLogDao
>> [RTMPConnectionExecutor-1] - [addConferenceLog]:
>> org.apache.openmeetings.db.entity.log.ConferenceLog@2b48c62a
>>
>> DEBUG 09-10 00:27:51.417 RecordingService.java 685933 377
>> org.apache.openmeetings.core.remote.RecordingService
>> [RTMPConnectionExecutor-3] - getCurrentRoomClient -2- 1
>>
>>
>>
>>
>>
>>
>>
>> Thank you.
>>
>>
>>
>> Sincerely,
>>
>>
>>
>> Hemant K. Sabat
>>
>>
>>
>> Coscend Communications Solutions
>>
>> Web site: www.Coscend.com
>>
>> ------------------------------------------------------------------
>>
>> CONFIDENTIALITY NOTICE: See 'Confidentiality Notice Regarding E-mail
>> Messages from Coscend Communications Solutions' posted at:
>> http://www.Coscend.com/Terms_and_Conditions.html
>
>



-- 
WBR
Maxim aka solomax

Reply via email to