| ########### |
| Jack server |
| ########### |
| |
| The Jack server's goal is to handle a pool of Jack compiler instances in order to limit memory usage |
| and benefit from already warm instances. |
| |
| |
| |
| Setup for Mac OS |
| ---------------- |
| |
| Jack server is automatically installed and started by android build but requires initial setup on |
| Mac OS: |
| |
| - Install MacPorts from http://www.macports.org/install.php |
| Make sure that /opt/local/bin appears in your path before /usr/bin. If not, please add the |
| following to your ~/.bash_profile file (If you do not have a .bash_profile file in your home |
| directory, create one): |
| export PATH=/opt/local/bin:$PATH |
| |
| - Get curl package from MacPorts: |
| $ POSIXLY_CORRECT=1 sudo port install curl +ssl |
| |
| |
| |
| Starting the server |
| ------------------- |
| |
| You may need to start the Jack server manually. |
| Use "jack-admin start-server". |
| |
| |
| |
| Client info |
| ----------- |
| |
| The client is a bash script simply named "jack". |
| It can be configured in "$HOME/.jack-settings" |
| |
| |
| |
| ".jack-settings" file |
| --------------------- |
| |
| This file contains script shell variables: |
| "SERVER_HOST": IP address of the server |
| by default: "SERVER_HOST=127.0.0.1". |
| |
| "SERVER_PORT_SERVICE": Server service TCP port number. Needs to match the service port number |
| defined in "$HOME/.jack-server/config.properties" on the server host (See "Server info" below) |
| by default: "SERVER_PORT_SERVICE=8076". |
| |
| "SERVER_PORT_ADMIN": Server admin TCP port number. Needs to match the admin port number defined in |
| "$HOME/.jack-server/config.properties" on the server host (See "Server info" below) |
| by default: "SERVER_PORT_ADMIN=8077". |
| |
| "SETTING_VERSION": Internal, do not modify. |
| |
| |
| |
| Server info |
| ----------- |
| |
| The server is composed of 2 jars named "jack-server.jar" and "jack-launcher.jar". |
| |
| Check "Admin" section to know how to install and administrate the Jack server. |
| |
| The server can also be configured in "$HOME/.jack-server/config.properties". |
| |
| |
| |
| "config.properties" file |
| ------------------------ |
| |
| It contains Jack server configuration properties. |
| Description with default values follows: |
| |
| jack.server.max-service=<number> |
| Maximum number of simultaneous Jack tasks. Default is 4. |
| |
| jack.server.max-jars-size=<size-in-bytes> |
| Maximum size for Jars, in bytes. "-1" means no limit. Default is 100 MiB. |
| |
| jack.server.time-out=<time-in-seconds> |
| Time out delay before Jack gets to sleep. When Jack sleeps, its memory usage is reduced, but it is |
| slower to wake up. "-1" means "do not sleep". Default is 2 weeks. |
| |
| jack.server.service.port=<port-number> |
| Server service TCP port number. Default is 8076. Needs to match the service port defined in |
| "$HOME/.jack-settings" on the client host (See Client section). |
| |
| jack.server.admin.port=<port-number> |
| Server admin TCP port number. Default is 8077. Needs to match the service port defined in |
| "$HOME/.jack-settings" on the client host (See Client section). |
| |
| jack.server.config.version=<version> |
| Internal, do not modify. |
| |
| |
| |
| Server logs |
| ----------- |
| |
| Server logs can be found by running "jack-admin server-log". Default location is |
| "$HOME/.jack-server/logs/". |
| |
| |
| |
| Admin |
| ----- |
| |
| The "jack-admin" bash script allows to install and administrate the Jack server. |
| Here are some commands: |
| |
| $ jack-admin help |
| Print help. |
| |
| $ jack-admin install-server jack-launcher.jar jack-server.jar |
| Install the Jack server. |
| |
| $ jack-admin uninstall-server |
| Uninstall the Jack server and all components. |
| |
| $ jack-admin list jack |
| List installed versions for Jack. |
| |
| $ jack-admin update jack jack.jar |
| Install or update a Jack jar. |
| |
| $ jack-admin start-server |
| Start the server. |
| |
| $ jack-admin stop-server |
| Stop the server after the last compilation is complete. |
| |
| $ jack-admin kill-server |
| Kill the server process immediately, interrupting abruptly ongoing compilations. |
| |
| $ jack-admin list-server |
| List Jack server processes. |
| |
| $ jack-admin server-stat |
| Print various info about the server and the host. |
| |
| $ jack-admin server-log |
| Print log pattern. |
| |
| $ jack-admin dump-report |
| Produce a report file that can be used to file a bug. |
| |
| |
| Troubleshooting |
| --------------- |
| |
| Below you'll find some ways to solve some troubleshooting. If you don't find a solution, file a |
| bug and attach the file produced by "jack-admin dump-report". |
| |
| |
| If compilation fails on "No Jack server running": |
| |
| See "Starting the server" above. |
| |
| |
| If your computer becomes unresponsive during compilation or if you experience Jack compilations |
| failing on "Out of memory error.": |
| |
| You can improve the situation by reducing the number of jack simultaneous compilations by editing |
| your "$HOME/.jack-server/config.properties" and changing jack.server.max-service to a lower value. |
| |
| |
| If you have trouble starting the server: |
| |
| This may mean that TCP ports are already in use on your computer. You can try modifying the ports |
| both in your client and server configurations. See the "Server info" and "Client info" sections. |
| If it doesn't solve the problem, please report and give us additional information by: |
| - Attaching your compilation log. |
| - Attaching the file produced by "jack-admin dump-report" |
| |
| |
| If your commands fails on |
| "Failed to contact Jack server: Problem reading <your home>/.jack-server/client.pem": |
| |
| This may mean that your server never managed to start, see |
| "If you have trouble starting the server" above. |
| |
| |
| If your compilation gets stuck without any progress: |
| |
| Please report and give us additional information by: |
| - Attaching the file produced by "jack-admin dump-report" |
| - Restart the server by issuing commands "jack-admin kill-server; jack-admin start-server" |
| |
| |