In our continuing look at how to work with Essbase cloud, I thought today we’d look at a peculiar problem that arises with the Essbase Command Line Interface (cli). First off, you may want to look at Suresh T’s excellent blog post on streaming data loads using the cli. In the post, Suresh outlines how (and more importantly why) you should use REST-based streaming loads against secured Essbase cloud URLs. However, you may run into issues with this mode of building/loading dimensions/data, as I did. Let me illustrate; here is the version of my current Essbase environment.
CLI works as expected for the most part. I can run calcs with it, upload files, and generally run most of the commands that we need to. Now, I tried to set up a streaming build from an on-premises Oracle database to Essbase. According to the documentation, we do not need to specify drivers if our local database is Oracle:
And it is.
We set up a local connection:
When we run the dimension build, we run into the error below:
Our syntax is correct, so why do we run into this error? It turns out that the culprit is Java. As of Java version 8, update 181, Apache Derby has been removed from Java SDK installs. Derby is used by cli to “connect” to Oracle databases.
So, in order to make streaming work, download the derby jar file from here, and add it to the “/lib” directory for cli.
You also need to update the “esscs.bat” script (or shell, if on *NIX). Ensure that the “EXTERNAL_CLASSPATH” variable is updated with the location of the derby file.
You should now be able to run the build without issue.
This issue should be fixed in upcoming releases of the “cli”, but until then, if you run into this issue, this workaround should be useful. Until next time, ciao.