Jedox' flagship product, Jedox Premium comprises the Palo MOLAP engine, API's, a REST server, and ETL server, and client tools. It also comes with a MDX interpreter and a XML for Analysis server. An interesting tidbit is that the MDX layer is not considered native, and Jedox' own clients use a lower level API, or address it via the REST service.
In this blog post I will explain how to install and configure the Open Source browser-based ad-hoc query and analysis tool Xavier to use it with Jedox. A video of the process is embedded below:
Here's a written list of instructions to get up and running with Xavier and Jedox:
-
Download Jedox Premium.
Run the downloaded installer to actually install the product.
By default, it will be installed in
C:\Program Files (x86)\Jedox\Jedox Suite
. In the remainder of this post, I will refer to this directory as "the Jedox Suite directory". - Download xavier.zip. Unpack the zip. A xavier directory will be extracted.
- Stop the JedoxSuiteHttpdService. If you don't know about windows services, then look here.
-
Copy the xavier directory that you extracted from xavier.zip into the
Jedox Suite\httpd\app\docroot
directory. -
Open the
Jedox Suite/httpd/conf/httpd.conf
file in a text editor. You should probably make a backup copy of thehttpd.conf
file before editing it so you can always revert your changes. -
Add a line to load the HTTP proxy module.
To do that, search the
httpd.conf
file for a bunch of lines that start withLoadModule
. Look for a line that reads:
LoadModule proxy_http_module modules/mod_proxy_http.so
In my installation, the line is already present, like this:<IfDefine JDX_DEV> LoadModule log_config_module modules/mod_log_config.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule setenvif_module modules/mod_setenvif.so </IfDefine>
Now, what you'll want to do is to cut this line out of the<IfDefine JDX_DEV>
block, and put it outside that block, for example, right before it, like this:LoadModule proxy_http_module modules/mod_proxy_http.so <IfDefine JDX_DEV> LoadModule log_config_module modules/mod_log_config.so LoadModule setenvif_module modules/mod_setenvif.so </IfDefine>
-
Add a proxy configuration so that web applications deployed on the Apache HTTP server can access the Jedox XML/A service as if it lives in the same domain as the web application.
To do that, add a
Location
directive at the end of thehttpd.conf
file, like this:<Location /xavier/Xmla> ProxyPass http://localhost:4242/xmla/ ProxyPassReverse http://localhost:4242/xmla/ SetEnv proxy-chain-auth </Location>
This allows a web application on the Apache HTTP server to access the XML/A service via the URL/xavier/Xmla
. By default, the place where the Jedox XML/A service lives ishttp://localhost:4242/xmla
. You can verify this by crosscecking this with the configation inJedox Suite\odbo\config.ini
: the values for theMDXAddress
andMDXPort
should match the server and port in the URLs configured forProxyPass
andProxyPassReverse
-
Save the changes to your httpd.conf file, and start the JedoxSuiteHttpdService.
If the service starts, you should be good to go.
If it doesn't, check the
Jedox Suite/log/apache_error.log
file and see if you can find some information there that can help you troubleshoot your problem.
http://localhost/xavier/resources/html/index.html
instead.
If you're in doubt what port you chose for your Jedox HTTP server, you can look it up in the
Jedox Suite/httpd/conf/httpd.conf
file. Look for a line that starts with Define JDX_PORT_HTTP
. The port is specified right after that, enclosed in double quotes.