I’ve been using UltraEdit (actually, UltraEdit Studio but this technique works fine with ‘regular’ UltraEdit too) as a text editor / SSH client / FTP browser for a couple of years now, although I’ve barely scratched the surface of its capabilities. In this series of posts, I’m going to show some simple but helpful features that I use when working with UltraEdit and Essbase. First up will be turning UltraEdit into a bare-bones MaxL environment.
A couple of weeks back I was writing some automation scripts on a *nix system (using KornShell, in this case) and needed to do something I haven’t previously tried – grabbing the value of a couple of Essbase substitution variables to use elsewhere in the shell script. I’m sharing a generic version since (as a relatively inexperienced programmer on Unix-like systems) I was pleasantly surprised by how simple the toolset made meeting this requirement, and more generally, the solution I came up with demonstrates several useful techniques from which other *nix neophytes may benefit:
- Command substitution
- Inline redirection
- Filtering multiple lines with grep
- Extracting tokens from a single line with AWK
Constructive criticism and comments are most welcome!
Security filters can be difficult beasts at the best of times, especially when it comes to the interaction of multiple filter rows / multiple filters (I glaze over on reading the DBAG statement that “a filter that defines a more detailed dimension combination list takes precedence over a filter with less detail”). In this post I’m going to discuss a particularly confusing behavior involving the interaction of calculation privileges with filter access. I’m not the first to discover or comment on the following phenomenon, but I don’t think it’s been written up comprehensively. The DBAG entry for filters certainly doesn’t make any mention of it, which seems like an oversight.
A very quick post on a perennial Essbase problem: the application that refuses to be deleted. Generally this happens when an application has been corrupted, due either to a bug, a crash or some clown’s1 too-smart-for-own-good file system monkey business. The application then can’t be started, and deleting an application requires that it be started first. I ran into this today with an application that had somehow been created as BSO before an ASO backup was restored into its folder structure.
EPM Support Documentation
Thanks to Oracle’s well-worth-following Business Analytics – Proactive Support blog, I’ve been introduced to a couple of interesting support policy documents relating to the EPM stack:
- Support Document ID 1617238.1: Oracle Enterprise Performance Management Software Error Correction Policy (I’ll call this ‘ECP’)
- Support Document ID 1590676.1: Oracle Enterprise Performance Management 11g Grace Periods for Error Correction (‘GPEC’)
These documents also reference the more widely applicable Lifetime Support Policy: Oracle Applications (‘LSP’).
With no disrespect intended, I’d guess that many EPM practitioners are unaware of some finer points of support policy. I know that I was! And without understanding the content of these documents, it’s impossible to give comprehensive answers to questions such as ‘For how much longer is Oracle committed to providing fixes for my 11.1.2 system?’ (the answer may be more complicated than you think). However, the documents themselves tend towards legalese, and they don’t always make completely clear what the real-world implications of the policies are. The GPEC document was updated on March 6th to include 126.96.36.199 information, so this is an opportune time for a plain-English review.
Update 9th October, 2015
John has decided to remove the Amazon Image discussed in this post because of Oracle licensing concerns. This post remains for reference and may still be of use with respect to opening an AWS account etc., but without the AMI it is not possible to follow the full process to set up an EPM 188.8.131.52 environment.
I haven’t posted to this blog for six weeks or so, because most of my free time has been taken up with a slightly different Essbase project: I’ve been writing a chapter (and co-writing another) for volume two of ‘Developing Essbase Applications’. It has been a great, if intense, experience and the book is shaping up to be a worthy successor to the first volume with a combination of new and returning authors. The print version will be available later this year. Follow a Twitter search on the hashtag #DevelopingEssbase or check back here for more updates!
184.108.40.206 is Here
Oracle EPM 220.127.116.11 appeared for download on OTN earlier this week. The arrival of a new EPM version is always exciting, with a flurry of social media activity as people install and test it (my initial observations were posted on the Qubix blog). The testing is the fun part, but the prospect of a from-scratch install never fills me with joy. Fortunately for me John A. Booth has already done the hard work, and released a Metavero AMI (Amazon Machine Image – essentially, a virtual machine snapshot from which any number of identical instances can be spun up on Amazon Web Services). Thanks John! In this post I’m going to explain how to make use of the AMI.
Some Old News
One relatively unsung enhancement to Essbase in 18.104.22.168 was a change to CALCTASKDIMS behavior. Before 22.214.171.124, CALCTASKDIMS defaulted to a value of 1. From 126.96.36.199, Essbase selects a value for CALCTASKDIMS automatically unless overridden by the user with either the CALCTASKDIMS .cfg file setting or the SET CALCTASKDIMS calculation command.
So why am I blogging about this years after 188.8.131.52 came out? First, there is a good theoretical reason why the above Essbase ‘enhancement’ might have a seriously negative effect on calculation performance, which can be especially surprising when it occurs following a supposed upgrade. Second, this actually bit a coworker a few days ago, and it’s always satisfying (for me, if not my coworker) when empirical data and theory coincide.
Logging out users prior to performing an administrative task is such a common requirement that I give it barely any thought. This complacency bit me recently, and – since I suspect that I’m not alone – I want to share a simple observation about the MaxL operations involved. Continue reading
If you’re familiar with Dan Pressman’s work on ASO internals, you’ll know that he sometimes talks about the number of “bitmap passes” required to answer a particular MDX query. I don’t want to rehash everything Dan says here, but the following Kscope 2014 presentation (free “associate membership” required) contains a good explanation: How ASO Works and How to Design for Performance. Dan’s chapter in “Developing Essbase Applications” touches on the same concepts.
In brief, what Dan says is that a given MDX query may require Essbase to run one or more “stored queries” under the hood. He makes a pretty convincing case, using the analysis to show why (for example) a stacked hierarchy provides better query performance than pure MDX to calculate YTD. However, I don’t think anyone has pointed out that MaxL exposes a measure that helps prove that this is really what happens: “kernel_queries_tracked”. Continue reading
Essbase is Wrong
Once or twice I’ve got stuck troubleshooting an ASO query or MDX member formula, only to discover – after some head-scratching – that Essbase and I disagree about the appropriate value of a metadata property on an implicitly shared member. Whether the (very strange) behavior described below is by design I don’t know, but since ASO and BSO do not behave the same way and I can’t find any documentation describing a difference in this area, I have to suspect not. Continue reading