Using Admintool.exe To Prepare An OBIEE RPD for Deployment
I know that for many business intelligence implementation teams the extent of preparing an Oracle Business Intelligence Enterprise Edition (OBIEE) repository for deployment is putting the repository (RPD) out on a network share. This past week I was reminded how important it is to check and prepare your RPD properly for deployment. I’ve seen clients that have failed to check/prepare their RPD for deployment fall victim to issues such as:
- deploying an inconsistent RPD
- running init blocks against the wrong environment and returning wrong data
- inserting usage track and/or writeback records into the wrong database
Many companies manually prepare their RPDs for deployment. That’s better than nothing, but it can be prone to error.
Creating command files and running the updates via the AdminTool.exe is a very good way to mitigate mistakes and ensure that the RPD is prepared for deployment in a consistent fashion.
AdminTool.exe has a /command argument that will allow users to input a command file to execute several actions. In this article we’ll focus mainly on four:
- Connect to an RPD
- Connect to an RPD
- Check and log RPD consistency
- Change variable values
- Change connection pool passwords
Creating a command file
Create a text file that will be your input command file used by the Admintool.exe.
Open an RPD
First you’ll need to open the RPD for editing. This should be the first line in your command text file. NOTE: Opening the RPD for editing infers that the RPD be available for read/write operations. The syntax for the Open command is: OpenOffline <RPD path> <Password>
Example: OpenOffline c:\MyExample\MyRPD.RPD Admin123
I like to check and log the RPD’s consistency. I know that it’s a touchy subject, but anyone that has done a 10g to 11g upgrade has learned that the cleaner the RPD, the easier it is upgrade and maintain.
It is possible that the consistency checker will throw out red herring warnings or errors that are non-issues. However, these are the exception and not the rule. Nearly 90%+ of the time even these errors can be corrected. To check the consistency the syntax is ConsistencyCheck <output file>
Example: ConsistencyCheck c:\MyExample\ConsitencyChecks\ConsistencyCheck1.txt
If this command script is being called via a more complex script it is possible to check the consistency log for errors and take appropriate action as necessary.
Here is an example of what the consistency check file will look like:
Changing Variable Initializers
After the consistency check has been run, change the variables that drive DSN and User name for connections. Keeping your DSN and database user names in variables is generally accepted as a best practice. To change a variable value the syntax is: SetProperty “variable” <variable name> initializer <variable value>
Example: SetProperty “variable” “OLTP_DSN” initializer “’OLTP_QA’”
NOTE: Use the double quote followed by single quote format, otherwise you’ll return an error. Omitting the single quote will require the Admin tool to interpret the value as an expression. This is how you would use an expression as an initializer for a variable value.
Changing Passwords on Connection Pools
To change the password on the connection pools, you’ll need to issue one command to change the connection pool password per connection pool (meaning if you have 12 connection pools that require password changes, you’ll need 12 separate commands to do so). The syntax is: SetProperty “Connection Pool” <connection pool name> “Password” <password>
Example: SetProperty “Connection Pool” “Oracle Data Warehouse” “Password” “MyPassword”
NOTE: if it is necessary to change properties other than the password, they can be set by calling the correct property name.
Save, Close and Exit
Save and close the RPD by using the Save, Close and Exit commands. Failing to issue these commands can result in a locked RPD. There are no arguments for these, simply issue these in the order shown (Save, Close, Exit).
Reviewing the command file
Your command text file should look something like shown in the image below. NOTE: I used the “Hide” command to hide the window from coming up.
Running the Admintool.exe /command
To use the admintool.exe you’ll need to execute the bi_init.bat first to set all the proper variables. Pass in the app name (default of coreapplication). After that is complete, you can run your admintool.exe /command command.
Example: bi_init.bat corapplication
After the bi_init.bat has been run (there is no real indication that it’s been completed), you can run the Admintool.exe. Passing in /command <command file name> as an argument
Obviously for the first few times you’ll need to manually check to ensure that the changes were successful. Check the variable via Manage - Variables
For connection pool settings verify the changes by using the right click – view data to ensure the connection pool works.
Ron Cruz is a Solution Architect and Project Management Professional (PMP) at KPI Partners, specializing in business intelligence tools and applications. Check out Ron's blog at KPIPartners.com.