java.lang.error: Error starting thread- Not enough memory is available to process the command

Today when i was doing security refresh, figured out an interesting error:-

java.lang.error: Error starting thread- Not enough memory is available to process the command

Reason of occourence –  From my point of view i think this error message is due to when the system used too much memory for the heap so there is not


***** For detail post , Please go to *****



Hyperion Web Analysis vs Financial Reports

Financial Report and WebAnalysis were originally built for reporting against Essbase. I think that the features and controls are built to work better with a multidimensional database. Not to say that you couldn’t do some of the same things with Interactive Reporting, but there are features in FR and WA that provide superior support for MDD reporting. I would say the same thing about Production Reporting, too.

Here are the major differnces between the two —

**Hyperion Web Analysis is useful for reports having user drill downs. The end users will have the capability to drill down and select member from different Point of Views.

**Financial Reports can be used for regulatory reporting and reports in standard format.

**We use FR for Good formatted Reports, where as Web Analysis we use for adhoc Reporting Purpose. users can do slicing/dicing, Drill down/up in Web Analysis Reports, where as this feature is not available completely in FR

  Financial Reporting Web Analysis
Essbase Data Source YES YES
Printable, Formatted Reports YES NO
Adhoc Analysis NO YES
Dashboarding NO YES
Charting Yes, but not as good as the others YES

That’s it from my side. Do post if you have some more information.


Dense or Sparse— Confused?? Here is Something good for Beginner ….


Undoubtedly, it’s the world of ASO. But, BSO is not dead. In the initial days of cube designing, one would always say to himself .
“This looks like dense, hmm, may be sparse …I am not sure”

After this topic of my blog, I’ll try to reduce the number of people questioning this one.

I have always been told by many that I explain things from basics. The same goes here too.
First, we’ll spend some time on dimensional model.
No, don’t close the window right now .I mean, only 2 terms of dimensional model.
I shall talk of

Ex: The sales of Honda cars, in Charlotte of North Carolina, in the month of Jan of year 2008 are 5000.

Request all to re look at the above sentence and pull out the dimension names

In the first go, I can make out the following
1. Honda
2. Charlotte
3. Jan

More scrutiny would give more details
4. Sales
5. 2008
6. 5000

Now, what are these numbers or names suggest .Lets try with the names of dimensions

1. Products (from Honda)
2. Place (from charlotte)
3. Time (from Jan)
4. Sales (let it be this way, for some time)
5. Time (from 2008 year)
6. 5000 (this is the number, which is of sales)

Now, let’s refine it further.

Lets assume that –
There might be more products i.e. Honda, GM, merc
Place, In US, North Carolina is a state and charlotte is one of the cities
Time, this one has a year , quarter , month ..Etc

Now, the final outline can be made with the limited knowledge which we had gained from the above

-North carolina
-Sales (Lets keep is the same , for some more time )

This looks near to our outline.

Fact table contents are the ones, which a user/analyst/decision maker is interested to look at, and understand the business of his company.
The fact table content, when seen against other dimensions ( in our case , time , place , product) gives a user more information about his company.

I.e. Sales in a place, in the month of XYZ for a product.

Now, we are clear with FACT and DIMENSION and what fills them in a dimensional model

Coming to the DENSE, SPARSE, this is our focus
Generally, Dense has contents of fact table and sparse has the rest of dimensions.
To elaborate, Sales is the one, which is a measure/ metric which a typical user would be interested to know of his company.

If you had looked at the definition given in the DBAG (our Bhagvathgeetha) , it says that it has the maximum probability of occurance .

Now ,its easy to interpret that , we might ask questions like

Sales of Honda in Jan
Sales of GM in New jersey
Sales of Honda in 2000

We would be posing questions like
Honda in jan in New Jersey…? And what …can’t even make a question from user’s perspective

Thus, ‘sales’ as a dimension member has max probability of occurrence.
Hence, it’s a dense member and other dimensions like Place, Time , Product are sparse .

I shall continue this post with topic

Questions feed back , I invite

I invite blog topics too ,as this topic is also made on demand and need basis.
Hope it helps


Dimension Build Settings…..

Dimension Build Setting Tab:

1. Here you will specify which Essbase dimension or dimensions you are building with this rules file. Yes, you can build two dimensions with one rules file, this is more advanced, so we’ll leave it for another topic.

2. If the member is already existing, do you want to allow moves (new location in heirarchy), allow property changes (change the aggregation from ~ to a +), or allow formula changes. Other options will appear based on given dimensions selected, like UDA changes.

3. Build Method – this is where you specifiy whether or not a given dimension is to use Generation References, Level References or Parent/Child references. As I mention in the Field Properties section, using Parent/Child references when available is the recommended approach. You can also check the box to process null values (this is really applicable when building your dimension using Generation references)

4. Upon building the dimension, you can sort the members Ascending, Descending or no sort at all. Be careful of this option. If you accidentally clicked on a dimension name, say “Scenario”, but you were not building the Scenario dimension with this rules. Then if you checked the Sort Ascending button, it WILL sort your Scenario dimension even though you did not intend to.

5. This will “Merge” any existing members, plus the new ones coming in or “Remove unspecified” will delete any member that’s not included in the data source being loaded.

Dimension Definition Tab:

The key feature here is that you have the ability change a Hyperion Essbase Block Storage database’s dimension settings, but the one I’ve used the most in practice is changing the Dense/Sparse settings via a load rule.

– Right click on any dimension name (select “Edit Properties”)

– If you dimension is currently Dense, but you want it to be Sparse (say for calculation performance), then you change the “Configuration” setting to “Sparse”. 

– Note: You can add implement this feature on a existing load rule (even if that load rule is building a different dimension) or create a seperate one,  but your data source must contain some sort of data as it can not be blank.

Dataload Settings …..

Tabs for Data Load

1. When performing an Essbase Data Load, you have three data loading (mathematical) operations. For sake of an example, a specified intersection of data equals $10 and your new data is $3. You can “Overwrite existing values” which will turn $10 into $3, you can “Add to existing values” which will turn $10 into $13 and you can “Subtract from existing values” which will turn $10 into $7. Depending on your environment, each one of those can be utilized for different purposes.

2. This section can be tricky. An example i like to use is from an application i built a couple years ago, we have an revenue account coming in from the source with a “-“. Its just the way the source worked, so I flagged all revenue accounts with a UDA of “RevFlip”. By doing this, any dollars that came in for any of these accounts, any negative dollars were flipped to positive and vise versa. So to make it work, you would specify the UDA and the dimension it is associated with.

Tab for Header Definition

3. As I mentioned in the Field Properties section, if a data feed does not have a specific dimension represented, a user could a new column with a given text string (“Misc”). This option will work for you, but it is not clean, instead, use the Header Definition identified here. Simply, add the default member name to the Name box at the top, or you can navigate to it in the and double click on it. When you have more than a couple dimensions not represented from the data source, this is a one stop shop for you to apply all your defaults.


Field Properties

For the Field Properties portion of an Essbase Load Rule, there are three tabs (Global Properties, Data Load Properties, and Dimension Build Properties). Global Properties affect both Data Load and Dimension Build rules, where as Data Load Properties and Dimension Build Properties are specific for each. Get used to this menu option, you will use it quite often.

Global Properties

1. This section deals with whether the data is to be applied in its Original Case, Lowercase or Uppercase. Original is the default. You can add a Prefix (leading text) or a Suffix (ending text). You can Drop lead/trailing spaces. Keep in mind, adding a prefix/suffix with impact all members in a given dimension, not just one specific member. That’s where #2 comes into play.

 2. Instead of changing all members within a given dimension with a prefix/suffix, you can specify one member to be modified with the ‘Replace/With’ section. Be careful with this, if some members names are partial to other member names (East is a part of Northeast), so you don’t want to change all East to “(E) East” because it will turn Northeast into “North(E) East”, which is obviously what you don’t want. Therefore, make sure you check the Match Whole Word option.

 Data Load properties:

3. For your data load rules, you will use this section to specify a columns association to a dimension, you can manually enter the dimension name or, the easier way, double click the dimension name and it will populate the Field Name box. Keep in mind, any dimension that contains a space, quotes will be applied to the dimension name in the Field Name box (this is normal). Also, it is not always mandatory to use the dimension name, you may have 12 data columns which you would specify as “Jan”, “Feb”, “Mar”, “Apr”, etc instead of putting in “Year”.

4. You can specify if a column is a data field or if you would like to ignore this column. You would want to ignore a column when your data is coming in with excess columns that is not necessary for this load rule. The scale option allows you take a number, say 1,000,000 and put a scale of 0.001. This will automatically change you data from 1,000,000 to 1,000. This comes in hand when you have an Millions/Thousands/Dollars member names…simply perform this pseudo calculation on the way in as opposed to changing it in you data source.

5. You will cycle through each column (usually starting from left to right) specifying the dimension it is associated with or whether to “Ignore field during dimension build” (#7). Simply double click the dimension name to apply it to the Dimension field at the top.

 6. For the given column that you are in, you will first select a dimension (see Note 5), then you will select its association to the outline. For instance, you can build your dimension via Generation References, Level References or Parent-Child references. Generations are a top-down approach, where you database name is Generation 0, the dimension names are Generation 1 and so on. Level References are just the opposite, starting from the leaf level (or lowest possible level) and working up from 0 to the database name. Each has its pros and cons based on your data because you may not always have the same amount of generations or levels, so it might be tricky to build your rules file. The recommended approach would be to utilize the Parent-child reference, because no matter how many generations or levels you have, you will always have a Parent-Child relationship. No matter which method you choose, you need to associate a number to it, I’ve already discussed the generation and level numbers you would use, so for parent-child references, please use 0. Keep in mind, in this section you have the ability to not only assigned a member name, but its Alias (description), UDA (user defined attribute – which can be used in security filters and partitions), and its Property (i.e., + for aggregation, ~ to ignore or – for subtraction).

 7. This option simply ignores the column during the dimension build

Step by step guide to create Rule file in Essbase …..

To create an Essbase Rules Files, you have the following options 
– Expand the Application >> Expand the Database >> Right Click on ‘Rules Files’ >> Select ‘Create Rules Files’ (Recommended Approach) 
– Using your toolbar, you can select: File >> New >> Scripts >> Rules Files >> OK (Not Recommended Approach, see note 14 – Validate)

Once the rules file is open, you’re toolbar will appears as below:

1. New/Open/Save/Print/Send Email – Pretty generic here, but if you need help, let me know.

 2. Move Field – Moves any column to a new column (kind of like re-ordering your columns). This option is useful when creating rules that require you to sort columns in order to make for the rule file to load successful. For example, you are creating a dimension build rules file using parent-child references. Say you have 3 columns of data coming in from your source, column 1 = child, column 2 = parent and column 3 = alias. You have two options here, reorder your columns from the source (recommended option, but not always possible) or you can use this option to reorder you columns to Parent, Child, Alias.

3. Split Field – Like most of the titles for these buttons, they do what their titles says. This one will split a given field into two fields. It does NOT split the field based on a delimiter like “|” but rather after so many characters. So if you always want to split the field based on the 3rd character, for instance, then this is your tool, but if you want to split the field based on a “|” then you will need to modify your source data. Keep in mind, you do have the ability to split a data feed by a normal delimiter, but they will be for all columns. See note 11 for more details on adding a delimiter to your data source.

4. Join Field – Joins 2 or more fields into one field (Add more fields by using the holding down the Ctrl key). Please note, when using this option, if you join two fields, they will become 1 field. The original independent columns will no longer exist. If you would to have the independent fields remain intact after the join, see note 5 for “Create a Field Using Join”

 5. Create a Field Using Join – Creates a new field when using a join. Same idea as #4, but when you create a new field using 2 columns, the 2 columns remain intact after the field is created. Both 4 and 5 have their advantages, it just depends on your data and what you are trying to accomplish. If you need the original fields in addition to the new one, use option 5 (Create a Field Using Join), but if you do not need the original fields after the join, use option 4 (Join Field).

 6. Create a Field Using Text – Adds a new column of whatever text you input. I’ve seen beginners use this option add a text field during a data load where a given dimension was missing from the data source. For instance, in the Essbase Sample.Basic database, you perform a data load but you do not have a column for Measures (highly unlikely, but this is just an example). So you can add a columns and add the text “Misc” to load to the Misc member name. The advance way to do this is detailed in Note 12 (Data Load Settings).

7. Field Properties – Please click here  to see a detailed description of the Field Properties option.

 8. Select Record / Reject Records – Within a given column, this will give you the option select or reject certain records. I am not a big fan of these options as it is always better to have the appropriate data coming from the source.

 9. Data Load Fields / Dimension Build Fields – These two options will toggle the view of your load rule (between the Data Load view and Dimension Build View). I recommend when building a data load rule or a dimension build, make sure the right button is toggled appropriately. I’ve see beginners struggle with dimension builds since they were unaware of this option.

 10. Associate Outline – When build a rules file, it is extremely helpful to associate the outline in which you are building a rules file for. This is not necessary, but you will be unable to validate your rules file without performing this operation (see note 14 – Validate, for more details)

 11. Data Source Properties – The Data Source has four tabs:
– Delimiter – As mentioned in Note 3 (Split Field), this works like any other delimiter that splits a file or data source by a specified delimiter
– Field Edits – Lists all edits that have been made to this load rule (held in order of creation). For example, if you have 5 field edits, you can not delete #3 without deleting #’s 4 and 5 (since #’s 4 or 5 might be dependant on #3)
– Header – You can use this option to skip the first line of a data source (usually the header record) or if you data source is set up properly, you can use it as the data load field names or dimension build field name.
– Ignore Tokens – Here you can set up certain tokens to be ignored.

 12. Data Load Settings – Please click here to see a detailed description of the Data Load Settings option.

 13. Dimension Build Settings – Please click here to see a detailed description of the Dimension Build Settings option.

 14. Validate – As mentioned in note 10 (Associate Outline), in order to properly validate a rules file, an outline needs to be associated with the rules file. If you created your rules from the File menu, then Associating an outline is necessary, however, if you navigated Application >> Database >> Rules Files >> Create Rule File, then the outline is already associated.

Maxl- Basics Commands to alter Essbase—-

Here are some examples of Essbase Maxl Scripts. They were based off of the Sample.Basic and ASOsamp.Sample databases.
Load Data into the ASOsamp.Sample database. Those items in bold should be utilized in all maxl scripts.
To Login into Database
spool on to LoadData.Log;

login admin password on localhost;

set timestamp on;

***** For detail post , Please visit ******

Basics for creating an application in Hyperion Planning

You will find many documentation regarding this, but to make life simple for the person who are new to Hyperion Planning here are some of the Important pointss.

Required Dimensions*

  • Period
  • Year
  • Scenario
  • Version
  • Entity
  • Account

Other Dimensions

  • Alias
  • Smart Lists

*multicurrency applications require two additional dimensions

  • Currency
  • HSP_Rates

 Steps to add Dimensions
-> Click on Administration 
-> Click on Dimensions
-> Click on Add Dimensions
->Provide the dimension name and enable the Check box for appropriate plan type.
Enable the Check box for apply security you want to make this dimension as a secured dimension so that you can control the dimension access to the different users.

-> Select appropriate data storage and
-> Click on Save
-> Click on OK

Period and Year

You specify a time period and year for each value. Base time periods, such as months, are automatically rolled up to summary time periods, such as quarters and total year. As administrators, you specify base time periods and distribution of weeks in the Period dimension when you create application views. You use the year dimension to add years to the calendar.

Scenario and Version

The Scenario and Version dimensions represent the broadest categories of data in your application. Scenario describes the type of data that a plan includes, such as budget, actual, or forecast, as well as the time span that the plan covers.

Version allows for flexibility and iterative planning cycles. For example, your application could have two versions, Working and Final, for each scenario. You can also use versions to model possible outcomes based on different assumptions about interest rates, growth rates, and so on. For example, your application an have a Best Case and Worst Case version for each scenario.


The Entity dimension represents the flow of Planning information through your organization. You can establish an entity for each group or responsibility center that submits a budget plan. These units could be geographic regions, departments, or divisions, depending on your requirements.


The Account dimension specifies the data to be collected from budget planners. You can establish accounts for all budgeted items to the necessary level of detail. Examples of accounts are Rent Expense and Cash on Hand.


You can plan in one or more currencies. The Currency dimension identifies the currency in which values are displayed. In the Currency dimension, you set up the following categories:

  • Which currencies are used by applications and reporting
  • How currencies are displayed in reports and data forms
  • How currencies are translated into other currencies
  • When currency conversion occurs


This dimension contains a member to store exchange rate values for each currency. It also contains a member for input values and currency overrides.


You can assign alternate names, or aliases, to Planning Account, Currency, Entity, Scenario, Period, Version, Year, and user-defined dimension members. Planning allows up to 10 aliases per dimension member, including the default alias.

You can set alias tables to display members in applications. Planners can set alias tables in preferences.


Smart Lists are used to create custom drop-down lists that users access from data form cells. When a cell is clicked (whose members are associated with a Smart List – this is set as a member property), users can select items from the drop-down lists instead of entering data. Users may not type in cells that contain Smart Lists.


Security file got corrupted, what to do….

After I figured out the issue with OpenLDAP, I recently saw a similar problem with my Essbase service. However many times I tried to start it, it would just shutdown immediately. This could have been a result of the improper shutdown I mentioned as a reason for the OpenLDAP database to get corrupted.

Fixing essbase is not without losses. I discovered that the security file had been corrupted and hence essbase shutdown soon after I started it.

I went to my application backup folder and copy the backup file essbase.bak to the security file essbase.sec file back to the current deployment. The essbase.sec needs to be replaced with a working version. When I started the service again, it was back up and running.

Please note that if you don’t have a current backup, then a lot of the security information that has changed since you’re last backup will need to be done again. I had a very recent backup so I was saved from this hassle.