How to build the open source Jedox Palo Olap server

This post describes how to build the 64bit version of the Jedox Palo Olap server with Visual Studio 2017. If you don’t want to do all the steps below and just use the server you can download the final build from here.

A. Preparation

You need:

  • Visual Studio 2017
  • CMake, in my case I am using CMake 3.8.0

Create the following directory structure:

To build the Jedox Palo Olap server you need the following open source libraries:

  • Boost
  • ICU
  • OpenSSL
  • ZLib

You both need the source and the binary files. You can download the source files and build it yourself or you can use precompiled packages available on the net. If you are not familiar how to build the Iibraries I recommend to use the precompiled versions.

1. Download Palo source from http://sourceforge.net/p/palo/code/HEAD/tree/

  • Extract the zip-file to a temp directory and copy folder palo-code-550\molap\Server\5.1 to the Server directory
  • Folder structure for the Jedox Palo Olap Server:

2. Download Boost from http://sourceforge.net/projects/boost/files/boost-binaries

  • Download boost_1_64_0-msvc-14.1-64.exe
  • Extract the file into the Boost folder
  • Create a new folder called stage in your boost root-folder
  • Copy folder lib64-msvc-14.1 to stage folder and rename it to lib. This is necessary for CMake to find the library files out of the box so you do not have to modify path variables.
  • Folder structure for Boost:

3. Download ICU from http://site.icu-project.org/download

  • Download icu4c-54_1-Win64-msvc10.zip
  • Extract the file into the Icu folder
  • Folder structure for ICU:

4. Download OpenSLL from http://www.npcglib.org/~stathis/blog/precompiled-openssl/

  • Download openssl-1.1.0e-vs2017.7z
  • Extract the file into the OpenSSL folder
  • Folder structure for OpenSSL:

5. Download ZLib from http://www.winimage.com/zLibDll/index.html

  • Download zlib1211.zip and zlib1211dll.zip
  • Extract the files into the ZLib folder
  • Folder structure for ZLib:

B. Create Visual Studio projects with CMake

1. Move to the folder JedoxPaloOlapServer\Server and create a folder called Build_5.1:

2. Open a command prompt and change to the Build_5.1 folder

3. Run CMake to create the Visual Studio projects:

cmake ..\5.1 -G “Visual Studio 15 2017 Win64” -DLIB_BOOST_ROOT_DIR=C:/JedoxPaloOlapServer/Boost/boost_1_64_0 -DLIB_OPENSSL_ROOT_DIR=C:/JedoxPaloOlapServer/OpenSSL/openssl-1.1.0e-vs2017 -DLIB_ICU_ROOT_DIR=C:/JedoxPaloOlapServer/Icu/icu_64 -DLIB_ZLIB_ROOT_DIR=C:/JedoxPaloOlapServer/ZLib/zlib-1.2.11

The Build_5.1 folder should now contain the Visual Studio projects that you need to build the Jedox Palo Olap server.

C. Build Visual Studio Projects

1. Open palo.sln

2. Open the properties of the palo project

  • Select Release configuration
  • Go to Configuration Properties, C/C++, General, Additional Include Directories
  • Add the missing include path for ZLib. For some reason I have not figured out so far this include path is not set and you have to do this manually.
  • The configuration should look like this:

  • Next go to Linker, General, Additional Library Directories
  • Delete all the existing entries and add the correct path values for the library folders
  • The configuration should look like this:

  • Next go to Linker, Input, Additional Dependencies
  • Add the zlibwapi.lib file to the file list
  • The configuration should look like this:

3. Repeat the steps for the palohttps and paloserver project

  • Additionally preplace libeay32.lib and ssleay32.lib with libcryptoMD.lib and libsslMD.lib (libsslMD.lib not available in paloserver)

4. Select Release configuration, right click the palo project and build

D. Post Build Tasks

  1. Copy the following files to the build directory:
    • zlibwapi.dll
    • libcryptoMD.lib
    • libsslMD.lib
    • icudt54.dll
    • icuin54.dll
    • icuuc54.dll
  2. Create a folder called Data inside the build Directory
  3. Inside the Data folder create a file called palo.ini and set the content of the file to the following:

4. Folder structure for the final Palo build:

5. Required Windows DLLs

You may need to add the following DLLs to the build folder if Palo doesn’t start properly

  • msvcp100.dll
  • msvcp140.dll
  • msvcr100.dll
  • vcruntime140.dll

E. Install and run Palo

1. Open a command prompt as an administrator and change to the build directory

2. Run the following command to install palo as a service

  • Palo.exe install_srv Data

Verify that the service has been created and start your server up. You are done!

F. Problems that I was faced with
I think the trickiest part of the build process is to set all the required file references correctly. You have to make sure that CMake and the Visual Studio compiler and linker find what they need for building. If you have a concrete folder structure in place, you know where to put the files and where to set dependencies the process works quite smooth.

You may have issues if you use the pre-built versions of the required libraries. In my case, I had problems with the pre-built 32bit version of the ZLib library but it worked fine with a self-built one.

1 thought on “How to build the open source Jedox Palo Olap server”

  1. Hello, I have questions when I am trying to start palo service.

    2. Run the following command to install palo as a service

    Palo.exe install_srv Data
    Verify that the service has been created and start your server up. You are done!

    My service has been created but I can’t start it.
    C:\JedoxPaloOlapServer\Server\Build_5.1\build>palo.exe
    2018-11-15 11:13:43 ERROR: numeric conversion failed, ‘1000’ is not a number

    C:\JedoxPaloOlapServer\Server\Build_5.1\build>palo.exe -n -h localhost 7777
    2018-11-15 11:14:03 ERROR: cannot load System database file
    2018-11-15 11:14:03 ERROR: exception ‘Initialization of ICU failed with error: U_ILLEGAL_ARGUMENT_ERROR’ ()

    Could you please show me the right code or show me how to do?

Leave a Reply

Your email address will not be published. Required fields are marked *