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/conf/httpd.conffile in a text editor. You should probably make a backup copy of the
httpd.conffile 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.conffile for a bunch of lines that start with
LoadModule. 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
Locationdirective at the end of the
httpd.conffile, 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 is
http://localhost:4242/xmla. You can verify this by crosscecking this with the configation in
Jedox Suite\odbo\config.ini: the values for the
MDXPortshould match the server and port in the URLs configured for
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.logfile and see if you can find some information there that can help you troubleshoot your problem.
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.conffile. Look for a line that starts with
Define JDX_PORT_HTTP. The port is specified right after that, enclosed in double quotes.