After you activate the license, start WCS using the command:
service webcallserver start
Stopping the server is done with the command
service webcallserver stop
ATTENTION, server start can take up to 1 minute.
Here are a few ways to make sure the server has started and is ready to work:
Make sure the server process is running.
ps aux | grep WebCallServer
The console should display two processes: WCS Core (20850 on the example below) and WCS Manager (20806 on the example below):
[root@localhost tmp]# ps aux | grep WebCallServer root 20806 0.4 45.1 522148 236512 pts/0 Sl 10:56 0:59 java -Dloader.path=/usr/local/FlashphonerWebCallServer-5.0.2993/lib/tbs-commons.jar,/usr/local/FlashphonerWebCallServer-5.0.2993/lib/wcs_manager-1.0.jar -Dcom.flashphoner.fms.AppHome=/usr/local/FlashphonerWebCallServer -jar /usr/local/FlashphonerWebCallServer-5.0.2993/lib/wcs_manager-1.0.jar -Xmx1200M -Djava.net.preferIPv4Stack=true -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=50999 -XX:ErrorFile=/usr/local/FlashphonerWebCallServer/logs/error%p.log -Dcom.flashphoner.fms.AppHome=/usr/local/FlashphonerWebCallServer -Djava.library.path=/usr/local/FlashphonerWebCallServer/lib/so:/usr/local/FlashphonerWebCallServer/lib -cp /usr/local/FlashphonerWebCallServer/lib/* com.flashphoner.server.Server root 20850 0.0 16.5 1567800 86636 pts/0 Sl 10:57 0:06 java -Xmx1200M -Djava.net.preferIPv4Stack=true -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=50999 -XX:ErrorFile=/usr/local/FlashphonerWebCallServer/logs/error%p.log -Dcom.flashphoner.fms.AppHome=/usr/local/FlashphonerWebCallServer -Djava.library.path=/usr/local/FlashphonerWebCallServer/lib/so:/usr/local/FlashphonerWebCallServer/lib -cp /usr/local/FlashphonerWebCallServer/lib/* com.flashphoner.server.Server root 22053 0.0 0.1 61152 732 pts/0 R+ 14:51 0:00 grep WebCallServer [root@localhost tmp]#
2. Make sure the server process listens the main ports.
netstat -nlp | grep java [root@localhost tmp]# netstat -nlp | grep java tcp 0 0 0.0.0.0:1098 0.0.0.0:* LISTEN 20850/java tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 20850/java tcp 0 0 0.0.0.0:8081 0.0.0.0:* LISTEN 20850/java tcp 0 0 0.0.0.0:50999 0.0.0.0:* LISTEN 20850/java tcp 0 0 0.0.0.0:8443 0.0.0.0:* LISTEN 20850/java tcp 0 0 :::9091 :::* LISTEN 20806/java tcp 0 0 :::1099 :::* LISTEN 20806/java tcp 0 0 :::2000 :::* LISTEN 20806/java udp 0 0 0.0.0.0:1935 0.0.0.0:* 20850/java
If you used a standard number of ports, you should see ports 8080 (Websockets) and 1935 (RTMP) as well as other port you configured for the WCS5 server in the netstat listened ports output.
3. Make sure the WCS5 server writes the main server log of the Core.
tail -f /usr/local/FlashphonerWebCallServer/logs/server_logs/flashphoner.log
The log should display information about settings the server started with.
For example:
15:59:37,378 INFO Config - main LOAD_BALANCING_SERVERS: null 15:59:37,378 INFO Config - main STREAM_MODE_UDP: true 15:59:37,379 INFO Config - main LOAD_TOOL_ENABLED: false 15:59:37,379 INFO Config - main CLI_ENABLED: false 15:59:37,379 INFO Config - main RMI_PORT: 1098 15:59:37,379 INFO Server - main Starting server... 15:59:37,492 INFO KeepAliveManager - KeepAliveManager Start keepAlive thread KeepAliveManager 15:59:37,614 INFO Server - main Listening RTMFP on 1935 port, bufferSize: 64000 15:59:37,750 INFO Server - main Listening WebSocket on 8080 port, bufferSize: 64000 15:59:37,759 INFO Server - main Listening WebSocket Ssl on 8443 port, bufferSize: 64000
Logs should react on connection of web clients. If that does not happen during testing, make sure the server process is running and the web client is configured properly to connect this particular server. See the Troubleshooting section for additional information.
4. Make sure WCS does write the main server log of the Manager module
tail -f /usr/local/FlashphonerWebCallServer/logs/flashphoner_manager.log 15:59:36,277 INFO gerCommandLineRunner - main Starting server node 15:59:36,278 INFO ServerProcess - main Starting server node 15:59:36,293 INFO ServerProcess - main Arg: java 15:59:36,294 INFO ServerProcess - main Arg: -Xmx1200M 15:59:36,294 INFO ServerProcess - main Arg: -Djava.net.preferIPv4Stack=true 15:59:36,294 INFO ServerProcess - main Arg: -Dcom.sun.management.jmxremote.ssl=false 15:59:36,294 INFO ServerProcess - main Arg: -Dcom.sun.management.jmxremote.authenticate=false 15:59:36,294 INFO ServerProcess - main Arg: -Dcom.sun.management.jmxremote.port=50999 15:59:36,294 INFO ServerProcess - main Arg: -XX:ErrorFile=/usr/local/FlashphonerWebCallServer/logs/error%p.log 15:59:36,294 INFO ServerProcess - main Arg: -Dcom.flashphoner.fms.AppHome=/usr/local/FlashphonerWebCallServer 15:59:36,294 INFO ServerProcess - main Arg: -Djava.library.path=/usr/local/FlashphonerWebCallServer/lib/so:/usr/local/FlashphonerWebCallServer/lib 15:59:36,294 INFO ServerProcess - main Arg: -cp 15:59:36,295 INFO ServerProcess - main Arg: /usr/local/FlashphonerWebCallServer/lib/* 15:59:36,295 INFO ServerProcess - main Arg: com.flashphoner.server.Server 15:59:36,313 INFO Manager - main Started Manager in 49.416 seconds (JVM running for 51.706)
If the server process is running and logs have no error, this means the WCS server is ready to work and you can start testing it.
Two ways to start WCS
Starting the server is performed with this command:
service webcallserver start
Besides, you can start the server using:
cd /usr/local/FlashphonerWebCallServer/bin ./webcallserver start
Environment variables and parameters of the start are set in the setenv.sh script. In this script you can se additional parameters for WCS Core and WCS Manager. Also, here you can set the parameter that prevent memory leaks on multi-CPU systems:
MALLOC_ARENA_MAX=4
Technically, starting goes as follows: first, the WCS Manager process starts, then that process launches the child process, WCS Core.
Starting with stdout output
In some cases, for example, if the server won't start and does not produce any errors, you may need to start the server with direct logging to the 'stdout' console. Direct output to stdout cannot be used in production, because the server will be stopped if the console is closed or the SSH connection is lost. That is why we recommend using stdout output only for debug purposes.
To start the server in this mode, use the following command:
cd /usr/local/FlashphonerWebCallServer/bin ./webcallserver start standalone
In this case, logs of the root process, WCS Manager, are printed directly to the console, and the server will be stopped if you press Ctrl+C.
To configure output of logs of the child process, WCS Core, use the node.enable_stdout=true setting.
JVM parameters
Parameters are set in the setenv.sh file.
Here yoiu can add any specific startparameters using the following varaibles:
WCS_JAVA_OPTS - the list of options for WCS Core
WCS_MANAGER_OPTS - the list of options for WCS Manager
Even though, one process is a parent of the other one, these processes are completely independent, and options set for the parent do not influence the child process. For example, if both for the parent and the child processes the -Xmx512M option is set, each of the processes will be executed isolated and have 512 megabytes of heap memory.