Hello,
I’m trying to get to the bottom of an issue I’m having with PushPublishing to Edgecast. When I start a stream everything works great, with PushPublisher#PingResult.onResult returning true for hours, days and even weeks.
But then sometimes I start to get a few PushPublisher#PingResult.onResult returning false. And then the below is logged and the stream does not play off EC.
2013-04-07 09:33:12 EDT comment server INFO 200 - PushPublisher#PingResult.onResult: false - - - 179123.801 - - - - - - - - - - - - - - - - - - - - - - - - -
2013-04-07 09:33:12 EDT comment server WARN 200 - PushPublisher: ping timeout: reset connection - - - 179123.801 - - - - - - - - - - - - - - - - - - - - - - - - -
2013-04-07 09:33:12 EDT comment server INFO 200 - PushPublisher.resetConnection: com.wowza.wms.plugin.pushpublish.protocol.rtmp.PushPublisherRTMPSession@7f7090 - - - 179123.801 - - - - - - - - - - - - - - - - - - - - - - - - -
2013-04-07 09:33:12 EDT comment server INFO 200 - PushPublisher.sessionClosed - - - 179123.802 - - - - - - - - - - - - - - - - - - - - - - - - -
2013-04-07 09:33:12 EDT comment server INFO 200 - PushPublisher.sessionOpened: - - - 179123.809 - - - - - - - - - - - - - - - - - - - - - - - - -
It appears Wowza is not sending any data to the FMS (Edgecast) when this happens. The tcp connection is there, viewed with netstat. To get it working again I need to push to a different ingest location
What can cause the PushPublisher#PingResult.onResult to return false and then to reset the connection?
Thanks
Austin
Austin,
Ping timeout validates RTMP client connections, and if they do not respond the associated IClient instance is shutdown. The RTMP client in this case is the FMS or Wowza server in the CDN that you are publishing to.
It might help to implement IPushPublisherRTMPNotify. Take a look in javadocs in the package /documentation folder, and there is an example here:
https://www.wowza.com/forums/showthread.php?13935-Injecting-meta-data-into-an-RTMP-stream-that-s-pushed-by-the-pushPublisher-add-on#8
Richard
The pingresult is false because Wowza cannot reach that client. Nothing in Wowza will be able to determine why that is exactly, just that it is gone.
Richard
Austin,
It is probably a network issue, or possibly ports. It won’t help if there is some fundamental network problem, but you can modify the Application.xml /PingTimeout and /ValidationFrequency (how long between checks).
From the configuration reference:
Application/PingTimeout
The time (in milliseconds) that the server will wait for a ping response from the client. The ping mechanism is an RTMP internal ping (not an ICMP ping) that’s used to validate a client connection. If set to 0, the server will wait indefinitely.
Application/ValidationFrequency
The time (in milliseconds) that the server will wait during server-to-client validation. Validation only occurs if the client stops sending data to the server. Validation is done by sending a ping request from the server to the client. If set to 0, the server will stop validating client connections.
Richard
Thanks for the quick response. I must be missing something. Will the IPushPublisherRTMPNotify help of the determine why the PingResult is false? I’m pushing to FMS.
Sorry
Austin
Got it, thanks. I see some pingresult false (no response for the FMS) and the connection is not reset. Does the pingresult need to be false multiple times before the session is reset?
It seems when the session to reset (closed and opened), this is when the stream stops working (cannot be played off Edgecast). I believe the tcp connection it open between the two servers but there isn’t any stream ip traffic being sent from wowza to FMS.
Any thoughts on what could cause this?
Thanks again
Austin