Tableau 9’s TabCmd under Linux
In Tableau 9 all jRuby related code were replaced by native java stuff. Even if I still believe that ruby is one of the best programming language (it’s sooooo clean and dry), but, khm, yes, it’s just slow. Like really slow. I guess Tableau Software felt the same and did this huge change. And yes, as tabcmd was ruby as well, the old tricks to make it work on linux are not working anymore. But today Jeff Solomon posted the ultimate solution for Tableau 9 in beta forum. Let me quote it as it is still a closed forum and I think it is useful for all of us:
Running on Linux is actually pretty simple. The hardest part is that you do need to be able to run either the server installer or the tabcmd installer to get the tabcmd jars. But after you do that, here are the instructions:
1) Create a local copy of C:\Program Files\Tableau\Tableau Server\9.0\extras\lib to $HOME/lib.
2) Create a ~/.tabcmd directory. This is used for logs, session storage and file uploads.
3) Create the following bash script:#!/bin/bash java -Xmx64m -Xss2048k -Djsse.enableSNIExtension=false -Dpid=$$ -Dlog.file=$HOME/.tabcmd/tabcmd.log -Dsession.file=$HOME/.tabcmd/tabcmd-session.xml -Din.progress.dir=$HOME/.tabcmd -Dconsole.codepage=$LANG -Dconsole.cols=$COLUMNS -cp "$HOME/lib/*" com.tableausoftware.tabcmd.Tabcmd $*
This assumes that the JRE is correctly installed and available in the path, and that bash is available. This should work with non-ascii UTF-8 characters in the command line arguments assuming that your terminal supports them, but this isn’t well tested (at all really), so please post your experiences.
We will try to package this up so that it’s more turnkey, but we have no idea when that will be released or what it will look like. But this these instructions should do for now.
And it works like a charm.
And it is fast. Okay, as fast a Java program can be, but honestly it feels like speed of light compared to the old one.