1 Reply Latest reply on May 22, 2018 8:08 AM by Matt Coles

    TABCMD RunSchedule Question

    Jeff Guevin

      We are very new to Tableau server and I'm trying to use tabcmd runschedule to automatically refresh a Tableau extract.  We want to set it up so that when our ETL in SQL Server is done that the extract refreshes with the latest data.   I read somewhere that TABCMD needed to be installed on the SQL Server in order to do this.  So I installed TABCMD on the SQL server VM.  I then try running the following


      cd "C:\Program Files\Tableau\Tableau Server\10.5\extras\Command Line Utility" tabcmd runschedule "HSR Weekly" --server https://servername.mydomain.org --username "xxx.xxxxxxxxxx" --password "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"


      I get back the following message:


      ===== Connecting to the server...

        *** Uncaught exception RuntimeException: java.net.ConnectException: Connection

      timed out: connect

        *** See the logs for the stacktrace.



      It tells me to look at the logs for the stacktrace but I can't find it...again really with new tableau server.  Am I going about this in the right way, or is there another way I should be refreshing an extract?  The use case is to build the data on our ETL server (SQL server) then have the extract refresh automatically when the ETL is complete.  thanks for any advice on this...Jeff

        • 1. Re: TABCMD RunSchedule Question
          Matt Coles

          Try troubleshooting something easier first. Install tabcmd on your local machine, and try doing tabcmd login to make sure that works. Then play (carefully) with some of the other commands like runschedule.


          Tabcmd does not need to be installed on your SQL Server. But since I assume you are triggering the schedule based on events happening in SQL Server, this might be easier to manage if you make the TabCMD call a step in a SQL Agent Job or an SSIS package, or somesuch. For a while we did this, then switched to calling a scheduled task on Tableau Server because we got tired of updating TabCMD on the SQL Server all the time. Then we moved to a model where we "pull" the appropriate times to run the schedules by querying SQL Server from a script on the Tableau Server machine--that way, all those scripts were managed by the Tableau Server team rather than the DBAs, and it removed any dependencies SQL Server ETL had on Tableau Server.