Results 1 to 8 of 8

Thread: Edge Servers Error with LB 4

  1. #1
    Join Date
    May 2012
    Posts
    5

    Unhappy Edge Servers Error with LB 4

    Dear All,

    I got error at edge servers with loadbalancing plugin added:

    ERROR server comment 2014-10-29 16:53:25 - - - - - 573.029 - - - - - - - - Encrypter:Decrypt() Error decrypting message: '<html><head><title>Wowza Streaming Engine 4 Developer Edition (Expires: Apr 28, 2015) 4.1.0 build12602</title></head><body>Wowza Streaming Engine 4 Developer Edition (Expires: Apr 28, 2015) 4.1.0 build12602</body></html>, : java.lang.NullPointerException|at com.wowza.wms.plugin.loadbalancer.encoders.Encrypter.decrypt(Encrypter.java:101)|at com.wowza.wms.plugin.loadbalancer.general.XMLParser.xmlParse(XMLParser.java:55)|at com.wowza.wms.plugin.loadbalancer.general.URLHandler.clientConnectionURL(URLHandler.java:75)|at com.wowza.wms.plugin.loadbalancer.monitors.LoadBalanceBandwidthMonitorClient.run(LoadBalanceBandwidt hMonitorClient.java:144)|
    ERROR server comment 2014-10-29 16:53:25 - - - - - 573.032 - - - - - - - - LB XMLParser: xmlParse() Document parse exception: : org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.|at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)|at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)|at com.wowza.wms.plugin.loadbalancer.general.XMLParser.xmlParse(XMLParser.java:74)|at com.wowza.wms.plugin.loadbalancer.general.URLHandler.clientConnectionURL(URLHandler.java:75)|at com.wowza.wms.plugin.loadbalancer.monitors.LoadBalanceBandwidthMonitorClient.run(LoadBalanceBandwidt hMonitorClient.java:144)|
    ERROR server comment 2014-10-29 16:53:25 - - - - - 573.078 - - - - - - - - Encrypter:Decrypt() Error decrypting message: '<html><head><title>Wowza Streaming Engine 4 Developer Edition (Expires: Apr 28, 2015) 4.1.0 build12602</title></head><body>Wowza Streaming Engine 4 Developer Edition (Expires: Apr 28, 2015) 4.1.0 build12602</body></html>, : java.lang.NullPointerException|at com.wowza.wms.plugin.loadbalancer.encoders.Encrypter.decrypt(Encrypter.java:101)|at com.wowza.wms.plugin.loadbalancer.general.XMLParser.xmlParse(XMLParser.java:55)|at com.wowza.wms.plugin.loadbalancer.general.URLHandler.clientBandwidthURL(URLHandler.java:54)|at com.wowza.wms.plugin.loadbalancer.monitors.LoadBalanceBandwidthMonitorClient.run(LoadBalanceBandwidt hMonitorClient.java:168)|
    ERROR server comment 2014-10-29 16:53:25 - - - - - 573.081 - - - - - - - - LB XMLParser: xmlParse() Document parse exception: : org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.|at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)|at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)|at com.wowza.wms.plugin.loadbalancer.general.XMLParser.xmlParse(XMLParser.java:74)|at com.wowza.wms.plugin.loadbalancer.general.URLHandler.clientBandwidthURL(URLHandler.java:54)|at com.wowza.wms.plugin.loadbalancer.monitors.LoadBalanceBandwidthMonitorClient.run(LoadBalanceBandwidt hMonitorClient.java:168)|

    Not sure what cause this problem, anyone could suggest me how to troubleshot? Thank you!
    BR,

    Yung

  2. #2

    Default

    Hello Yung, welcome to the Wowza support forum.

    This looks like you may have a malformed .xml file. Please double check for any typos or misspellings.

    Also you can check against an XML validator:
    XML Validator

    Kind regards,

    Salvadore

  3. #3
    Join Date
    May 2012
    Posts
    5

    Unhappy

    Dear Salvadore,

    Thank you for your suggestion!

    I am facing the problem on redirect client from origin to edges, I followed the manual to add an redirect application from the manager and edit Application.xml file to add Module. But seems it is not working, I have an application "live" and "redirect" in origin server, "edge" in edges server.

    Encoder FMS URL is: rtmp://<Origin IP>/live
    StreamName: teststream

    Flash player is: rtmp://<Origin IP>/redirect/live
    StreamName: teststream

    No problem on pushing streaming from encder to wowza, but flash player cannot play the rtmp I set.

    If:
    Flash player is: rtmp://<Origin IP>/redirect
    StreamName: teststream

    Error from Origin:
    ERROR server comment 2014-10-30 16:25:38 - - - - - 5051.2 - - MediaStream.onUnPublish[redirect/hennessyOrigin/teststream] : java.lang.NullPointerException|at com.wowza.wms.plugin.loadbalancer.redirect.ClientConnections$StreamListener.onUnPublish(ClientConnec tions.java:329)|at com.wowza.wms.stream.MediaStream.notifyActionUnPublish(MediaStream.java:2386)|at com.wowza.wms.client.Client.closeOpenStream(Client.java:1718)|at com.wowza.wms.module.ModuleCore.closeStream(ModuleCore.java:785)|at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)|

    Am I correct on the setting?

    Attached the settings below for reference:

    Server.xml at Origin
    <?xml version="1.0" encoding="UTF-8"?>
    <Root version="2">
    <Server>
    <Name>Wowza Streaming Engine</Name>
    <Description>Wowza Streaming Engine is robust, customizable, and scalable server software that powers reliable streaming of high-quality video and audio to any device, anywhere.</Description>
    <RESTInterface>
    <Enable>true</Enable>
    <IPAddress>*</IPAddress>
    <Port>8087</Port>
    <!-- none, basic, digest-->
    <AuthenticationMethod>digest</AuthenticationMethod>
    <DiagnosticURLEnable>true</DiagnosticURLEnable>
    <SSLConfig>
    <Enable>false</Enable>
    <KeyStorePath></KeyStorePath>
    <KeyStorePassword></KeyStorePassword>
    <KeyStoreType>JKS</KeyStoreType>
    <SSLProtocol>TLS</SSLProtocol>
    <Algorithm>SunX509</Algorithm>
    <CipherSuites></CipherSuites>
    <Protocols></Protocols>
    </SSLConfig>
    <IPWhiteList>127.0.0.1</IPWhiteList>
    <IPBlackList></IPBlackList>
    <EnableXMLFile>false</EnableXMLFile>
    <DocumentationServerEnable>false</DocumentationServerEnable>
    <DocumentationServerPort>8089</DocumentationServerPort>
    <!-- none, basic, digest-->
    <DocumentationServerAuthenticationMethod>digest</DocumentationServerAuthenticationMethod>
    <Properties>
    </Properties>
    </RESTInterface>
    <CommandInterface>
    <HostPort>
    <ProcessorCount>${com.wowza.wms.TuningAuto}</ProcessorCount>
    <IpAddress>*</IpAddress>
    <Port>8083</Port>
    </HostPort>
    </CommandInterface>
    <AdminInterface>
    <!-- Objects exposed through JMX interface: Server, VHost, VHostItem, Application, ApplicationInstance, MediaCaster, Module, Client, MediaStream, SharedObject, Acceptor, IdleWorker -->
    <ObjectList>Server,VHost,VHostItem,Application,ApplicationInstance,MediaCaster,Module,IdleWorker</ObjectList>
    </AdminInterface>
    <Stats>
    <Enable>true</Enable>
    </Stats>
    <!-- JMXUrl: service:jmx:rmi://localhost:8084/jndi/rmi://localhost:8085/jmxrmi -->
    <JMXRemoteConfiguration>
    <Enable>false</Enable>
    <IpAddress>localhost</IpAddress> <!-- set to localhost or internal ip address if behind NAT -->
    <RMIServerHostName>localhost</RMIServerHostName> <!-- set to external ip address or domain name if behind NAT -->
    <RMIConnectionPort>8084</RMIConnectionPort>
    <RMIRegistryPort>8085</RMIRegistryPort>
    <Authenticate>true</Authenticate>
    <PasswordFile>${com.wowza.wms.ConfigHome}/conf/jmxremote.password</PasswordFile>
    <AccessFile>${com.wowza.wms.ConfigHome}/conf/jmxremote.access</AccessFile>
    <SSLSecure>false</SSLSecure>
    </JMXRemoteConfiguration>
    <UserAgents>Shockwave Flash|CFNetwork|MacNetwork/1.0 (Macintosh)</UserAgents>
    <Streams>
    <DefaultStreamPrefix>mp4</DefaultStreamPrefix>
    </Streams>
    <ServerListeners>
    <ServerListener>
    <BaseClass>com.wowza.wms.mediacache.impl.MediaCacheServerListener</BaseClass>
    </ServerListener>
    <ServerListener>
    <BaseClass>com.wowza.wms.plugin.loadbalancer.general.LoadBalancerServer</BaseClass>
    </ServerListener>
    </ServerListeners>
    <VHostListeners>
    <!--
    <VHostListener>
    <BaseClass></BaseClass>
    </VHostListener>
    -->
    </VHostListeners>
    <HandlerThreadPool>
    <PoolSize>${com.wowza.wms.TuningAuto}</PoolSize>
    </HandlerThreadPool>
    <TransportThreadPool>
    <PoolSize>${com.wowza.wms.TuningAuto}</PoolSize>
    </TransportThreadPool>
    <RTP>
    <DatagramStartingPort>6970</DatagramStartingPort>
    <DatagramPortSharing>false</DatagramPortSharing>
    </RTP>

    <Manager>
    <!-- Properties defined are used by the Manager -->
    <Properties>
    </Properties>
    </Manager>

    <!-- Properties defined here will be added to the IServer.getProperties() collection -->
    <Properties>
    <Property>
    <Name>loadbalanceType</Name>
    <Value>Server,Client</Value>
    <Type>String</Type>
    </Property>
    <Property>
    <Name>loadbalanceIgnoreClients</Name>
    <Value>FMLE</Value>
    <Type>String</Type>
    </Property>
    <Property>
    <Name>loadbalanceKey</Name>
    <Value>xxxxxxxx</Value>
    <Type>String</Type>
    </Property>
    <Property>
    <Name>loadbalanceServerIP</Name>
    <Value>xxx.xxx.xxx.xxx</Value>
    <Type>String</Type>
    </Property>
    <Property>
    <Name>loadbalanceServerPort</Name>
    <Value>1935</Value>
    <Type>String</Type>
    </Property>
    <Property>
    <Name>loadbalanceDecisionOrder</Name>
    <Value>Connection</Value>
    <Type>String</Type>
    </Property>
    <Property>
    <Name>loadbalanceDebugServerDecision</Name>
    <Value>On</Value>
    <Type>String</Type>
    </Property>
    </Properties>
    </Server>
    </Root>

    redirect Application.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <Root version="1">
    <Application>
    <Name>redirect</Name>
    <AppType>Live</AppType>
    <Description></Description>
    <!-- Uncomment to set application level timeout values
    <ApplicationTimeout>60000</ApplicationTimeout>
    <PingTimeout>12000</PingTimeout>
    <ValidationFrequency>8000</ValidationFrequency>
    <MaximumPendingWriteBytes>0</MaximumPendingWriteBytes>
    <MaximumSetBufferTime>60000</MaximumSetBufferTime>
    <MaximumStorageDirDepth>25</MaximumStorageDirDepth>
    -->
    <Connections>
    <AutoAccept>true</AutoAccept>
    <AllowDomains></AllowDomains>
    </Connections>
    <!--
    StorageDir path variables

    ${com.wowza.wms.AppHome} - Application home directory
    ${com.wowza.wms.ConfigHome} - Configuration home directory
    ${com.wowza.wms.context.VHost} - Virtual host name
    ${com.wowza.wms.context.VHostConfigHome} - Virtual host home directory
    ${com.wowza.wms.context.Application} - Application name
    ${com.wowza.wms.context.ApplicationInstance} - Application instance name

    -->
    <Streams>
    <StreamType>live</StreamType>
    <StorageDir>${com.wowza.wms.context.VHostConfigHome}/content</StorageDir>
    <KeyDir>${com.wowza.wms.context.VHostConfigHome}/keys</KeyDir>
    <!-- LiveStreamPacketizers (separate with commas): cupertinostreamingpacketizer, smoothstreamingpacketizer, sanjosestreamingpacketizer, mpegdashstreamingpacketizer, cupertinostreamingrepeater, smoothstreamingrepeater, sanjosestreamingrepeater, mpegdashstreamingrepeater, dvrstreamingpacketizer, dvrstreamingrepeater -->
    <LiveStreamPacketizers>cupertinostreamingpacketizer, mpegdashstreamingpacketizer, sanjosestreamingpacketizer, smoothstreamingpacketizer</LiveStreamPacketizers>
    <!-- Properties defined here will override any properties defined in conf/Streams.xml for any streams types loaded by this application -->
    <Properties>
    </Properties>
    </Streams>
    <Transcoder>
    <!-- To turn on transcoder set to: transcoder -->
    <LiveStreamTranscoder></LiveStreamTranscoder>
    <!-- [templatename].xml or ${SourceStreamName}.xml -->
    <Templates>${SourceStreamName}.xml,transrate.xml</Templates>
    <ProfileDir>${com.wowza.wms.context.VHostConfigHome}/transcoder/profiles</ProfileDir>
    <TemplateDir>${com.wowza.wms.context.VHostConfigHome}/transcoder/templates</TemplateDir>
    <Properties>
    </Properties>
    </Transcoder>
    <DVR>
    <!-- As a single server or as an origin, use dvrstreamingpacketizer in LiveStreamPacketizers above -->
    <!-- Or, in an origin-edge configuration, edges use dvrstreamingrepeater in LiveStreamPacketizers above -->
    <!-- As an origin, also add dvrchunkstreaming to HTTPStreamers below -->
    <!-- If this is a dvrstreamingrepeater, define Application/Repeater/OriginURL to point back to the origin -->
    <!-- To turn on DVR recording set Recorders to dvrrecorder. This works with dvrstreamingpacketizer -->
    <Recorders></Recorders>
    <!-- As a single server or as an origin, set the Store to dvrfilestorage-->
    <!-- edges should have this empty -->
    <Store></Store>
    <!-- Window Duration is length of live DVR window in seconds. 0 means the window is never trimmed. -->
    <WindowDuration>0</WindowDuration>
    <!-- Storage Directory is top level location where dvr is stored. e.g. c:/temp/dvr -->
    <StorageDir>${com.wowza.wms.context.VHostConfigHome}/dvr</StorageDir>
    <!-- valid ArchiveStrategy values are append, version, delete -->
    <ArchiveStrategy>append</ArchiveStrategy>
    <!-- Properties for DVR -->
    <Properties>
    </Properties>
    </DVR>
    <TimedText>
    <!-- VOD caption providers (separate with commas): vodcaptionprovidermp4_3gpp, vodcaptionproviderttml, vodcaptionproviderwebvtt, vodcaptionprovidersrt, vodcaptionproviderscc -->
    <VODTimedTextProviders></VODTimedTextProviders>
    <!-- Properties for TimedText -->
    <Properties>
    </Properties>
    </TimedText>
    <!-- HTTPStreamers (separate with commas): cupertinostreaming, smoothstreaming, sanjosestreaming, mpegdashstreaming, dvrchunkstreaming -->
    <HTTPStreamers>cupertinostreaming, smoothstreaming, sanjosestreaming, mpegdashstreaming</HTTPStreamers>
    <MediaCache>
    <MediaCacheSourceList></MediaCacheSourceList>
    </MediaCache>
    <SharedObjects>
    <StorageDir>${com.wowza.wms.context.VHostConfigHome}/applications/${com.wowza.wms.context.Application}/sharedobjects/${com.wowza.wms.context.ApplicationInstance}</StorageDir>
    </SharedObjects>
    <Client>
    <IdleFrequency>-1</IdleFrequency>
    <Access>
    <StreamReadAccess>*</StreamReadAccess>
    <StreamWriteAccess>*</StreamWriteAccess>
    <StreamAudioSampleAccess></StreamAudioSampleAccess>
    <StreamVideoSampleAccess></StreamVideoSampleAccess>
    <SharedObjectReadAccess>*</SharedObjectReadAccess>
    <SharedObjectWriteAccess>*</SharedObjectWriteAccess>
    </Access>
    </Client>
    <RTP>
    <!-- RTP/Authentication/[type]Methods defined in Authentication.xml. Default setup includes; none, basic, digest -->
    <Authentication>
    <PublishMethod>digest</PublishMethod>
    <PlayMethod>none</PlayMethod>
    </Authentication>
    <!-- RTP/AVSyncMethod. Valid values are: senderreport, systemclock, rtptimecode -->
    <AVSyncMethod>senderreport</AVSyncMethod>
    <MaxRTCPWaitTime>12000</MaxRTCPWaitTime>
    <IdleFrequency>75</IdleFrequency>
    <RTSPSessionTimeout>90000</RTSPSessionTimeout>
    <RTSPMaximumPendingWriteBytes>0</RTSPMaximumPendingWriteBytes>
    <RTSPBindIpAddress></RTSPBindIpAddress>
    <RTSPConnectionIpAddress>0.0.0.0</RTSPConnectionIpAddress>
    <RTSPOriginIpAddress>127.0.0.1</RTSPOriginIpAddress>
    <IncomingDatagramPortRanges>*</IncomingDatagramPortRanges>
    <!-- Properties defined here will override any properties defined in conf/RTP.xml for any depacketizers loaded by this application -->
    <Properties>
    </Properties>
    </RTP>
    <MediaCaster>
    <RTP>
    <RTSP>
    <!-- udp, interleave -->
    <RTPTransportMode>interleave</RTPTransportMode>
    </RTSP>
    </RTP>
    <StreamValidator>
    <Enable>true</Enable>
    <ResetNameGroups>true</ResetNameGroups>
    <StreamStartTimeout>20000</StreamStartTimeout>
    <StreamTimeout>12000</StreamTimeout>
    <VideoStartTimeout>0</VideoStartTimeout>
    <VideoTimeout>0</VideoTimeout>
    <AudioStartTimeout>0</AudioStartTimeout>
    <AudioTimeout>0</AudioTimeout>
    <VideoTCToleranceEnable>false</VideoTCToleranceEnable>
    <VideoTCPosTolerance>3000</VideoTCPosTolerance>
    <VideoTCNegTolerance>-500</VideoTCNegTolerance>
    <AudioTCToleranceEnable>false</AudioTCToleranceEnable>
    <AudioTCPosTolerance>3000</AudioTCPosTolerance>
    <AudioTCNegTolerance>-500</AudioTCNegTolerance>
    <DataTCToleranceEnable>false</DataTCToleranceEnable>
    <DataTCPosTolerance>3000</DataTCPosTolerance>
    <DataTCNegTolerance>-500</DataTCNegTolerance>
    <AVSyncToleranceEnable>false</AVSyncToleranceEnable>
    <AVSyncTolerance>1500</AVSyncTolerance>
    <DebugLog>false</DebugLog>
    </StreamValidator>
    <!-- Properties defined here will override any properties defined in conf/MediaCasters.xml for any MediaCasters loaded by this applications -->
    <Properties>
    </Properties>
    </MediaCaster>
    <MediaReader>
    <!-- Properties defined here will override any properties defined in conf/MediaReaders.xml for any MediaReaders loaded by this applications -->
    <Properties>
    </Properties>
    </MediaReader>
    <MediaWriter>
    <!-- Properties defined here will override any properties defined in conf/MediaWriter.xml for any MediaWriter loaded by this applications -->
    <Properties>
    </Properties>
    </MediaWriter>
    <LiveStreamPacketizer>
    <!-- Properties defined here will override any properties defined in conf/LiveStreamPacketizers.xml for any LiveStreamPacketizers loaded by this applications -->
    <Properties>
    </Properties>
    </LiveStreamPacketizer>
    <HTTPStreamer>
    <!-- Properties defined here will override any properties defined in conf/HTTPStreamers.xml for any HTTPStreamer loaded by this applications -->
    <Properties>
    </Properties>
    </HTTPStreamer>
    <Manager>
    <!-- Properties defined are used by the Manager -->
    <Properties>
    </Properties>
    </Manager>
    <Repeater>
    <OriginURL></OriginURL>
    <QueryString><![CDATA[]]></QueryString>
    </Repeater>
    <StreamRecorder>
    <Properties>
    </Properties>
    </StreamRecorder>
    <Modules>
    <Module>
    <Name>base</Name>
    <Description>Base</Description>
    <Class>com.wowza.wms.module.ModuleCore</Class>
    </Module>
    <Module>
    <Name>logging</Name>
    <Description>Client Logging</Description>
    <Class>com.wowza.wms.module.ModuleClientLogging</Class>
    </Module>
    <Module>
    <Name>flvplayback</Name>
    <Description>FLVPlayback</Description>
    <Class>com.wowza.wms.module.ModuleFLVPlayback</Class>
    </Module>
    <Module>
    <Name>ModuleCoreSecurity</Name>
    <Description>Core Security Module for Applications</Description>
    <Class>com.wowza.wms.security.ModuleCoreSecurity</Class>
    </Module>
    <Module>
    <Name>Redirect</Name>
    <Description>Redirect</Description>
    <Class>com.wowza.wms.plugin.loadbalancer.redirect.ClientConnections</Class>
    </Module>
    </Modules>
    <!-- Properties defined here will be added to the IApplication.getProperties() and IApplicationInstance.getProperties() collections -->
    <Properties>
    <Property>
    <Name>securityPublishRequirePassword</Name>
    <Value>true</Value>
    <Type>Boolean</Type>
    </Property>
    </Properties>
    </Application>
    </Root>

    live Application.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <Root version="1">
    <Application>
    <Name>hennessyOrigin</Name>
    <AppType>Live</AppType>
    <Description></Description>
    <!-- Uncomment to set application level timeout values
    <ApplicationTimeout>60000</ApplicationTimeout>
    <PingTimeout>12000</PingTimeout>
    <ValidationFrequency>8000</ValidationFrequency>
    <MaximumPendingWriteBytes>0</MaximumPendingWriteBytes>
    <MaximumSetBufferTime>60000</MaximumSetBufferTime>
    <MaximumStorageDirDepth>25</MaximumStorageDirDepth>
    -->
    <Connections>
    <AutoAccept>true</AutoAccept>
    <AllowDomains></AllowDomains>
    </Connections>
    <!--
    StorageDir path variables

    ${com.wowza.wms.AppHome} - Application home directory
    ${com.wowza.wms.ConfigHome} - Configuration home directory
    ${com.wowza.wms.context.VHost} - Virtual host name
    ${com.wowza.wms.context.VHostConfigHome} - Virtual host home directory
    ${com.wowza.wms.context.Application} - Application name
    ${com.wowza.wms.context.ApplicationInstance} - Application instance name

    -->
    <Streams>
    <StreamType>live</StreamType>
    <StorageDir>${com.wowza.wms.context.VHostConfigHome}/content</StorageDir>
    <KeyDir>${com.wowza.wms.context.VHostConfigHome}/keys</KeyDir>
    <!-- LiveStreamPacketizers (separate with commas): cupertinostreamingpacketizer, smoothstreamingpacketizer, sanjosestreamingpacketizer, mpegdashstreamingpacketizer, cupertinostreamingrepeater, smoothstreamingrepeater, sanjosestreamingrepeater, mpegdashstreamingrepeater, dvrstreamingpacketizer, dvrstreamingrepeater -->
    <LiveStreamPacketizers>cupertinostreamingpacketizer, mpegdashstreamingpacketizer, sanjosestreamingpacketizer, smoothstreamingpacketizer</LiveStreamPacketizers>
    <!-- Properties defined here will override any properties defined in conf/Streams.xml for any streams types loaded by this application -->
    <Properties>
    </Properties>
    </Streams>
    <Transcoder>
    <!-- To turn on transcoder set to: transcoder -->
    <LiveStreamTranscoder></LiveStreamTranscoder>
    <!-- [templatename].xml or ${SourceStreamName}.xml -->
    <Templates>${SourceStreamName}.xml,transrate.xml</Templates>
    <ProfileDir>${com.wowza.wms.context.VHostConfigHome}/transcoder/profiles</ProfileDir>
    <TemplateDir>${com.wowza.wms.context.VHostConfigHome}/transcoder/templates</TemplateDir>
    <Properties>
    </Properties>
    </Transcoder>
    <DVR>
    <!-- As a single server or as an origin, use dvrstreamingpacketizer in LiveStreamPacketizers above -->
    <!-- Or, in an origin-edge configuration, edges use dvrstreamingrepeater in LiveStreamPacketizers above -->
    <!-- As an origin, also add dvrchunkstreaming to HTTPStreamers below -->
    <!-- If this is a dvrstreamingrepeater, define Application/Repeater/OriginURL to point back to the origin -->
    <!-- To turn on DVR recording set Recorders to dvrrecorder. This works with dvrstreamingpacketizer -->
    <Recorders></Recorders>
    <!-- As a single server or as an origin, set the Store to dvrfilestorage-->
    <!-- edges should have this empty -->
    <Store></Store>
    <!-- Window Duration is length of live DVR window in seconds. 0 means the window is never trimmed. -->
    <WindowDuration>0</WindowDuration>
    <!-- Storage Directory is top level location where dvr is stored. e.g. c:/temp/dvr -->
    <StorageDir>${com.wowza.wms.context.VHostConfigHome}/dvr</StorageDir>
    <!-- valid ArchiveStrategy values are append, version, delete -->
    <ArchiveStrategy>append</ArchiveStrategy>
    <!-- Properties for DVR -->
    <Properties>
    </Properties>
    </DVR>
    <TimedText>
    <!-- VOD caption providers (separate with commas): vodcaptionprovidermp4_3gpp, vodcaptionproviderttml, vodcaptionproviderwebvtt, vodcaptionprovidersrt, vodcaptionproviderscc -->
    <VODTimedTextProviders></VODTimedTextProviders>
    <!-- Properties for TimedText -->
    <Properties>
    </Properties>
    </TimedText>
    <!-- HTTPStreamers (separate with commas): cupertinostreaming, smoothstreaming, sanjosestreaming, mpegdashstreaming, dvrchunkstreaming -->
    <HTTPStreamers>cupertinostreaming, smoothstreaming, sanjosestreaming, mpegdashstreaming</HTTPStreamers>
    <MediaCache>
    <MediaCacheSourceList></MediaCacheSourceList>
    </MediaCache>
    <SharedObjects>
    <StorageDir>${com.wowza.wms.context.VHostConfigHome}/applications/${com.wowza.wms.context.Application}/sharedobjects/${com.wowza.wms.context.ApplicationInstance}</StorageDir>
    </SharedObjects>
    <Client>
    <IdleFrequency>-1</IdleFrequency>
    <Access>
    <StreamReadAccess>*</StreamReadAccess>
    <StreamWriteAccess>*</StreamWriteAccess>
    <StreamAudioSampleAccess></StreamAudioSampleAccess>
    <StreamVideoSampleAccess></StreamVideoSampleAccess>
    <SharedObjectReadAccess>*</SharedObjectReadAccess>
    <SharedObjectWriteAccess>*</SharedObjectWriteAccess>
    </Access>
    </Client>
    <RTP>
    <!-- RTP/Authentication/[type]Methods defined in Authentication.xml. Default setup includes; none, basic, digest -->
    <Authentication>
    <PublishMethod>digest</PublishMethod>
    <PlayMethod>none</PlayMethod>
    </Authentication>
    <!-- RTP/AVSyncMethod. Valid values are: senderreport, systemclock, rtptimecode -->
    <AVSyncMethod>senderreport</AVSyncMethod>
    <MaxRTCPWaitTime>12000</MaxRTCPWaitTime>
    <IdleFrequency>75</IdleFrequency>
    <RTSPSessionTimeout>90000</RTSPSessionTimeout>
    <RTSPMaximumPendingWriteBytes>0</RTSPMaximumPendingWriteBytes>
    <RTSPBindIpAddress></RTSPBindIpAddress>
    <RTSPConnectionIpAddress>0.0.0.0</RTSPConnectionIpAddress>
    <RTSPOriginIpAddress>127.0.0.1</RTSPOriginIpAddress>
    <IncomingDatagramPortRanges>*</IncomingDatagramPortRanges>
    <!-- Properties defined here will override any properties defined in conf/RTP.xml for any depacketizers loaded by this application -->
    <Properties>
    </Properties>
    </RTP>
    <MediaCaster>
    <RTP>
    <RTSP>
    <!-- udp, interleave -->
    <RTPTransportMode>interleave</RTPTransportMode>
    </RTSP>
    </RTP>
    <StreamValidator>
    <Enable>true</Enable>
    <ResetNameGroups>true</ResetNameGroups>
    <StreamStartTimeout>20000</StreamStartTimeout>
    <StreamTimeout>12000</StreamTimeout>
    <VideoStartTimeout>0</VideoStartTimeout>
    <VideoTimeout>0</VideoTimeout>
    <AudioStartTimeout>0</AudioStartTimeout>
    <AudioTimeout>0</AudioTimeout>
    <VideoTCToleranceEnable>false</VideoTCToleranceEnable>
    <VideoTCPosTolerance>3000</VideoTCPosTolerance>
    <VideoTCNegTolerance>-500</VideoTCNegTolerance>
    <AudioTCToleranceEnable>false</AudioTCToleranceEnable>
    <AudioTCPosTolerance>3000</AudioTCPosTolerance>
    <AudioTCNegTolerance>-500</AudioTCNegTolerance>
    <DataTCToleranceEnable>false</DataTCToleranceEnable>
    <DataTCPosTolerance>3000</DataTCPosTolerance>
    <DataTCNegTolerance>-500</DataTCNegTolerance>
    <AVSyncToleranceEnable>false</AVSyncToleranceEnable>
    <AVSyncTolerance>1500</AVSyncTolerance>
    <DebugLog>false</DebugLog>
    </StreamValidator>
    <!-- Properties defined here will override any properties defined in conf/MediaCasters.xml for any MediaCasters loaded by this applications -->
    <Properties>
    </Properties>
    </MediaCaster>
    <MediaReader>
    <!-- Properties defined here will override any properties defined in conf/MediaReaders.xml for any MediaReaders loaded by this applications -->
    <Properties>
    </Properties>
    </MediaReader>
    <MediaWriter>
    <!-- Properties defined here will override any properties defined in conf/MediaWriter.xml for any MediaWriter loaded by this applications -->
    <Properties>
    </Properties>
    </MediaWriter>
    <LiveStreamPacketizer>
    <!-- Properties defined here will override any properties defined in conf/LiveStreamPacketizers.xml for any LiveStreamPacketizers loaded by this applications -->
    <Properties>
    </Properties>
    </LiveStreamPacketizer>
    <HTTPStreamer>
    <!-- Properties defined here will override any properties defined in conf/HTTPStreamers.xml for any HTTPStreamer loaded by this applications -->
    <Properties>
    </Properties>
    </HTTPStreamer>
    <Manager>
    <!-- Properties defined are used by the Manager -->
    <Properties>
    </Properties>
    </Manager>
    <Repeater>
    <OriginURL></OriginURL>
    <QueryString><![CDATA[]]></QueryString>
    </Repeater>
    <StreamRecorder>
    <Properties>
    </Properties>
    </StreamRecorder>
    <Modules>
    <Module>
    <Name>base</Name>
    <Description>Base</Description>
    <Class>com.wowza.wms.module.ModuleCore</Class>
    </Module>
    <Module>
    <Name>logging</Name>
    <Description>Client Logging</Description>
    <Class>com.wowza.wms.module.ModuleClientLogging</Class>
    </Module>
    <Module>
    <Name>flvplayback</Name>
    <Description>FLVPlayback</Description>
    <Class>com.wowza.wms.module.ModuleFLVPlayback</Class>
    </Module>
    <Module>
    <Name>ModuleCoreSecurity</Name>
    <Description>Core Security Module for Applications</Description>
    <Class>com.wowza.wms.security.ModuleCoreSecurity</Class>
    </Module>
    </Modules>
    <!-- Properties defined here will be added to the IApplication.getProperties() and IApplicationInstance.getProperties() collections -->
    <Properties>
    <Property>
    <Name>securityPublishRequirePassword</Name>
    <Value>true</Value>
    <Type>Boolean</Type>
    </Property>
    </Properties>
    </Application>
    </Root>

    Edges Server.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <Root version="2">
    <Server>
    <Name>Wowza Streaming Engine</Name>
    <Description>Wowza Streaming Engine is robust, customizable, and scalable server software that powers reliable streaming of high-quality video and audio to any device, anywhere.</Description>
    <RESTInterface>
    <Enable>true</Enable>
    <IPAddress>*</IPAddress>
    <Port>8087</Port>
    <!-- none, basic, digest-->
    <AuthenticationMethod>digest</AuthenticationMethod>
    <DiagnosticURLEnable>true</DiagnosticURLEnable>
    <SSLConfig>
    <Enable>false</Enable>
    <KeyStorePath></KeyStorePath>
    <KeyStorePassword></KeyStorePassword>
    <KeyStoreType>JKS</KeyStoreType>
    <SSLProtocol>TLS</SSLProtocol>
    <Algorithm>SunX509</Algorithm>
    <CipherSuites></CipherSuites>
    <Protocols></Protocols>
    </SSLConfig>
    <IPWhiteList>127.0.0.1</IPWhiteList>
    <IPBlackList></IPBlackList>
    <EnableXMLFile>false</EnableXMLFile>
    <DocumentationServerEnable>false</DocumentationServerEnable>
    <DocumentationServerPort>8089</DocumentationServerPort>
    <!-- none, basic, digest-->
    <DocumentationServerAuthenticationMethod>digest</DocumentationServerAuthenticationMethod>
    <Properties>
    </Properties>
    </RESTInterface>
    <CommandInterface>
    <HostPort>
    <ProcessorCount>${com.wowza.wms.TuningAuto}</ProcessorCount>
    <IpAddress>*</IpAddress>
    <Port>8083</Port>
    </HostPort>
    </CommandInterface>
    <AdminInterface>
    <!-- Objects exposed through JMX interface: Server, VHost, VHostItem, Application, ApplicationInstance, MediaCaster, Module, Client, MediaStream, SharedObject, Acceptor, IdleWorker -->
    <ObjectList>Server,VHost,VHostItem,Application,ApplicationInstance,MediaCaster,Module,IdleWorker</ObjectList>
    </AdminInterface>
    <Stats>
    <Enable>true</Enable>
    </Stats>
    <!-- JMXUrl: service:jmx:rmi://localhost:8084/jndi/rmi://localhost:8085/jmxrmi -->
    <JMXRemoteConfiguration>
    <Enable>false</Enable>
    <IpAddress>203.90.228.163</IpAddress> <!-- set to localhost or internal ip address if behind NAT -->
    <RMIServerHostName>203.90.228.163</RMIServerHostName> <!-- set to external ip address or domain name if behind NAT -->
    <RMIConnectionPort>8084</RMIConnectionPort>
    <RMIRegistryPort>8085</RMIRegistryPort>
    <Authenticate>true</Authenticate>
    <PasswordFile>${com.wowza.wms.ConfigHome}/conf/jmxremote.password</PasswordFile>
    <AccessFile>${com.wowza.wms.ConfigHome}/conf/jmxremote.access</AccessFile>
    <SSLSecure>false</SSLSecure>
    </JMXRemoteConfiguration>
    <UserAgents>Shockwave Flash|CFNetwork|MacNetwork/1.0 (Macintosh)</UserAgents>
    <Streams>
    <DefaultStreamPrefix>mp4</DefaultStreamPrefix>
    </Streams>
    <ServerListeners>
    <ServerListener>
    <BaseClass>com.wowza.wms.plugin.loadbalancer.general.LoadBalancerServer</BaseClass>
    </ServerListener>
    <ServerListener>
    <BaseClass>com.wowza.wms.mediacache.impl.MediaCacheServerListener</BaseClass>
    </ServerListener>
    <!--
    <ServerListener>
    <BaseClass>com.wowza.wms.plugin.loadbalancer.ServerListenerLoadBalancerListener</BaseClass>
    </ServerListener>
    -->
    <!--
    <ServerListener>
    <BaseClass>com.wowza.wms.plugin.loadbalancer.ServerListenerLoadBalancerSender</BaseClass>
    </ServerListener>
    -->
    </ServerListeners>
    <VHostListeners>
    <!--
    <VHostListener>
    <BaseClass></BaseClass>
    </VHostListener>
    -->
    </VHostListeners>
    <HandlerThreadPool>
    <PoolSize>${com.wowza.wms.TuningAuto}</PoolSize>
    </HandlerThreadPool>
    <TransportThreadPool>
    <PoolSize>${com.wowza.wms.TuningAuto}</PoolSize>
    </TransportThreadPool>
    <RTP>
    <DatagramStartingPort>6970</DatagramStartingPort>
    <DatagramPortSharing>false</DatagramPortSharing>
    </RTP>

    <Manager>
    <!-- Properties defined are used by the Manager -->
    <Properties>
    </Properties>
    </Manager>

    <!-- Properties defined here will be added to the IServer.getProperties() collection -->
    <Properties>
    <Property>
    <Name>loadbalanceType</Name>
    <Value>Client</Value>
    <Type>String</Type>
    </Property>
    <Property>
    <Name>loadbalanceBandwidthEnable</Name>
    <Value>On</Value>
    <Type>String</Type>
    </Property>
    <Property>
    <Name>loadbalanceBandwidthLimit</Name>
    <Value>800000</Value>
    <Type>String</Type>
    </Property>
    <Property>
    <Name>loadbalanceConnectionEnable</Name>
    <Value>On</Value>
    <Type>String</Type>
    </Property>
    <Property>
    <Name>loadbalanceConnectionLimit</Name>
    <Value>2</Value>
    <Type>String</Type>
    </Property>
    <Property>
    <Name>loadbalanceKey</Name>
    <Value>xxxxxxxxxx</Value>
    <Type>String</Type>
    </Property>
    <Property>
    <Name>loadbalanceServerIP</Name>
    <Value>xxx.xxx.xxx.xxx</Value>
    <Type>String</Type>
    </Property>
    <Property>
    <Name>loadbalanceDebugEnabled</Name>
    <Value>On</Value>
    <Type>String</Type>
    </Property>
    <Property>
    <Name>loadbalanceServerPort</Name>
    <Value>1935</Value>
    <Type>String</Type>
    </Property>
    <!--
    <Property>
    <Name>loadbalanceClientName</Name>
    <Value>Edge01</Value>
    <Type>String</Type>
    </Property>
    -->
    <Property>
    <Name>loadbalanceDebugServerDecision</Name>
    <Value>On</Value>
    <Type>String</Type>
    </Property>
    </Properties>
    </Server>
    </Root>

    Appreciate your help!

    BR,

    Yung
    Last edited by cheungyung; 10-30-2014 at 01:28 AM.

  4. #4
    Join Date
    Jun 2012
    Posts
    723

    Default

    Hi,

    Just to make sure that your loadbalancing is setup correctly, are you able to play back the following RTSP stream using VLC player?
    rtsp://<Origin IP>:1935/redirect/live/teststream
    What Flash player are you using for playback. Does it support the redirect NetConnection call?

    Zoran

  5. #5
    Join Date
    May 2012
    Posts
    5

    Default

    Dear Zoran,

    I am using rtmp://<Origin IP>:1935/live/teststream and it can play. But not for rtmp://<Origin IP>:1935/redirect/live/teststream

    I am using flowplayer, seems it is not able to redirect. Now I am trying to use RTMP XML, however, I got the smil file but no idea how to work further. Would you please suggest me how can I loadbalance the connection from the smil file? Thank you very much!

    BR,

    Yung

  6. #6
    Join Date
    May 2012
    Posts
    5

    Default

    Dear All,

    Problem has been fixed by using flowplayer and smil to perform the live streaming with loadbalancing. Thx for the effort!

    BR,

    Yung

  7. #7
    Join Date
    Jun 2012
    Posts
    723

    Default

    Great. Thank you for the update.
    Can you also post a description on how yo managed to fix you issue so other forum users could benefit from your experience?

    Zoran

  8. #8
    Join Date
    May 2012
    Posts
    5

    Default

    Dear Zoran,

    Sure!

    Actually, I use rtmp://<Origin IP>/<OriginApplicationName>/<StreamName> in Encoder,
    http://<Origin IP>:1935/redirect/<ApplicationName>/<StreamName> is the SMIL file contains LB server information,
    then use http://flash.flowplayer.org/plugins/streaming/smil.html as the player.

    However, I found the developer key will have problem on getting LB server information as it will show "No Load Balanced servers available" after awhile. Change it to daily keep will able to keep the server connection between origin and edges. Not sure if the problem only happened to me... Anyway, it works fine now.

    BR,

    Yung

Similar Threads

  1. Transcoder question on edge servers
    By jsawyer77 in forum Wowza Transcoder
    Replies: 1
    Last Post: 05-18-2014, 03:53 PM
  2. Random streamTimeout on Edge Servers. Why?
    By HelderConde in forum General Forum
    Replies: 3
    Last Post: 05-07-2014, 03:44 PM
  3. See total Edge Servers?
    By planner in forum AddOn: Other AddOns
    Replies: 2
    Last Post: 05-26-2013, 07:25 AM
  4. Combine v3 origin and v2 edge servers?
    By ckarpovich in forum Wowza Media Server 3 for Amazon EC2 Discussion
    Replies: 1
    Last Post: 01-16-2012, 01:04 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •