Load Balancing Issues

I have been attempting to setup load balancing for my vod application but thus far have had near nil success.

I am attempting to set things up using a total of 3 dedicated servers.

ServerA = Load Balancer

Server1 = Load Balanced Client 1

Server2 = Load Balanced Client 2

Wowza version: 4.1.2 (all servers)

Load Balancer add-on version: 4.0 Build 14116 (all servers)

ServerA OS: Ubuntu 12.04.5 LTS x86_64

Server1|2 OS: Debian Wheezy x86_64

I have gone through the documentation included in both the README.html and pdf included in the LoadBalancer4.0 zip.

So far, I have been able to accomplish the following:

http://[ServerA-IP-ADDRESS]:1935/loadbalancerInfo -- lists both Clients.

What doesn’t work:

http://[ServerA-IP-ADDRESS]:1935/loadbalancer -- shows "Wowza Streaming Engine 4 Monthly Edition 4.1.2 build13947"
Attempting to play a combination of files (see below for urls I have tried) via different protocols, none of them play.
non working smil url 1: http://[ServerA-IP-ADDRESS]:1935/redirect/vod/_definst_/subfolder/sample.smil/jwplayer.smil?scheme=smil
non working smil url 2: http://[ServerA-IP-ADDRESS]:1935/redirect/vod/_definst_/subfolder/sample.smil/jwplayer.smil?scheme=smil
non working smil url 3: http://[ServerA-IP-ADDRESS]:1935/redirect/vod/subfolder/sample.smil/jwplayer.smil?scheme=smil
non working smil url 3: http://[ServerA-IP-ADDRESS]:1935/redirect/vod/subfolder/smil:sample.smil/jwplayer.smil?scheme=smil
Working direct example url: http://[Server1|2-IP-ADDRESS]:1935/vod/_definst_/subfolder/smil:sample.smil/jwplayer.smil

NOTE: The sample.smil file exists on the server and is not auto generated or anything. We create them during the encoding process. jwplayer.smil does not exist on the server and is generated by wowza.

ServerA error log for smil attempt:

WARN	server	comment	2015-03-30	02:17:19	-	-	-	-	-	82.546	-	-	-	-	-	-	-	_definst_/subfolder/sample.smil	open: java.io.FileNotFoundException: /usr/local/WowzaStreamingEngine/content/_definst_/subfolder/sample.smil (No such file or directory)

There are no log entires on either Server1 or Server2 for this attempt

non working m3u8 url 1: http://[ServerA-IP-ADDRESS]:1935/redirect/vod/_definst_/subfolder/sample.smil?scheme=m3u8
non working m3u8 url 1: http://[ServerA-IP-ADDRESS]:1935/redirect/vod/_definst_/subfolder/smil:sample.smil?scheme=m3u8
non working m3u8 url 1: http://[ServerA-IP-ADDRESS]:1935/redirect/vod/subfolder/sample.smil?scheme=m3u8
non working m3u8 url 1: http://[ServerA-IP-ADDRESS]:1935/redirect/vod/subfolder/smil:sample.smil?scheme=m3u8
working direct example url: http://[Server1|2-IP-ADDRESS]:1935/vod/_definst_/subfolder/smil:sample.smil/playlist.m3u8

ServerA error log for m3u8:

WARN	server	comment	2015-03-30	02:45:28	-	-	-	-	-	62.793	-	-	-	-	-	-	-	-	HTTPStreamerAdapterCupertinoStreamer.onPlaylist: Application context not loaded [redirect/vod/_definst_/subfolder/sample.smil/playlist.m3u8?scheme=m3u8]: redirect/vod
ERROR	server	comment	2015-03-30	02:45:28	-	-	-	-	-	62.795	-	-	-	-	-	-	-	-	HTTPStreamerAdapterCupertinoStreamer.service : java.lang.NullPointerException|at com.wowza.wms.httpstreamer.cupertinostreaming.httpstreamer.HTTPStreamerAdapterCupertinoStreamer.onPlaylist(HTTPStreamerAdapterCupertinoStreamer.java:2189)|at com.wowza.wms.httpstreamer.cupertinostreaming.httpstreamer.HTTPStreamerAdapterCupertinoStreamer.serviceMsg(HTTPStreamerAdapterCupertinoStreamer.java:477)|at com.wowza.wms.httpstreamer.cupertinostreaming.httpstreamer.HTTPStreamerAdapterCupertinoStreamer.service(HTTPStreamerAdapterCupertinoStreamer.java:432)|at com.wowza.wms.server.ServerHandler.a(ServerHandler.java:636)|at com.wowza.wms.server.ServerHandler.a(ServerHandler.java:375)|

Server1 error log for m3u8:

ERROR	server	comment	2015-03-30	02:44:24	-	-	-	-	-	887.322	-	-	-	-	-	-	-	-	LB XMLParser: xmlParse() Error accessing 'http://[ServerA-IP-ADDRESS]:1935/loadbalancerInterface?command=AAAApU3w7E6F1Ggfvg4KNW6ly1MnGeJIvgQNUHVteAOd1Ffvmcyogi7tnZ9vswhYK6j2j5nMqIIu%250A7Z2fh8E7uGdRwq9cBX24PjhzWzjRSa9tUwVPH8vFFJAz%252FEuZXZcCvrmA1ycZ4ki%252BBA1Qaf3pHCy7%250A7Owyf7gp9VWN7PV3nN%252BLJZkQjhsNLYKSnVqnu2YDAxwt4KxEYmDq9iM%252Bf0wEkcwd3SUY3C25Nyjo%250A2A%253D%253D': java.net.ConnectException: Connection refused|at java.net.PlainSocketImpl.socketConnect(Native Method)|at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)|at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)|at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)|at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)|
ERROR	server	comment	2015-03-30	02:44:24	-	-	-	-	-	887.323	-	-	-	-	-	-	-	-	LB XMLParser: xmlParse() Error accessing 'http://[ServerA-IP-ADDRESS]:1935/loadbalancerInterface?command=AAAAok3w7E6F1Ggf3GvlvNz%252BIwfv8hU6u82ZJ5r6gbWjfC6AsY7eh0aafoy%252BMsY78OyWybGO3odG%250Amn6MGh08x8Wv0Vgeu1hblj7kXITDEEbQwfMGLCniE%252F8RHEGrzoweY4W9Scv5Rs8fzhlwts7kqdcT%250A9f%252Bm8YsYV%252BfoFU7vE%252Fu0miQZGD%252Bbv%252FYpnkDruqk%252B%252Bgi0r%252F8c4IJGOZt4UMGawX6US31h0cfOIELa%250Agg%253D%253D': java.net.ConnectException: Connection refused|at java.net.PlainSocketImpl.socketConnect(Native Method)|at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)|at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)|at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)|at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)|

I have also tried to just link to an mp4 file directly to no avail.

As stated previously, I have read both the readme.html and documention pdf from top to bottom, 3 times over, and am still stuck getting this to work properly.

I guess my initial questions are:

Does the actual content I am attempting to stream have to exist on ServerA as well as on Server1 & Server2?

Does the load balancing add-on support smil files?

Does the add-on support using subfolders as shown in my working direct url examples?

Are there other things I need to do that aren’t covered in either form of documentation? This page https://www.wowza.com/docs/how-to-get-dynamic-load-balancing-addon mentions “ServerListenerLoadBalancerServer”, which isn’t located in the docs anywhere.

I’m not sure if posting my configs is necessary or not as they simply contain the default data when wowza is installed as well as the load balancer add-on data as per the documentation. I can post them upon request though.

Ok, to update, I’ve figured most of everything out, but I’m still running into one issue.

Is it possible to use subfolders inside the application content folder when using the load balancer add-on?

Also, is it possible to specify the widths like you would in an smil file so that jwplayer shows “1080p, 720p, 480p and 360p” as opposed to the bitrate numbers? I’ve tried the flag “widths=1920,1280,854,640” but that has no effect.

This works as it should:

http://[load-balancer-ip]:1935/redirect/vod/loadbalancer.smil?assets=sample_480p.mp4,sample_360p.mp4&bitrates=691200,359424

But this does not work:

http://[load-balancer-ip]:1935/redirect/vod/_definst_/subfolder/loadbalancer.smil?assets=sample_480p.mp4,sample_360p.mp4&bitrates=691200,359424

For reference, my content is located in /home/user/content, and with the non working url, it is completely ignoring the “definst/subfolder/” portion and still trying to serve the files from /home/user/content/sample_360p|480p.mp4 instead of /home/user/content/subfolder/sample_480p|360p.mp4

It’s rather necessary for me to sort each “scene” by subfolder because as of right now, we have approximately 1900 “scenes” (and growing) containing 4 bitrate versions, an smil file and vtt file for each (roughly 11,400 total files at the moment), so dumping all of that into a single directory is going to be problematic for us.