Configuring Highly Available BI Publisher in EM

Those of you that have been around Enterprise Manager 12c for some time will recall the joy (for want of a better word!) we used to have configuring BI Publisher to work with Enterprise Manager. For those of you that haven’t looked at it yet, BI Publisher is the replacement for the now deprecated Information Publisher (IP) reporting capability that previous releases of EM used. IP still works in EM12c, but is no longer being enhanced and will at some stage disappear off the face of the earth.

So why would you want to use BI Publisher anyway? Well, it has a LOT of advantages over the old IP tool. You get:

  • Highly formatted, professional quality, reports, with pagination and headers/footers.
  • PDF, Excel, PowerPoint, Word, and HTML report formats.
  • The capability to develop your own custom reports against the Enterprise Manager repository (read-only repository access).
  • Integration with Enterprise Manager Security.
  • The ability to grant varying levels of BI Publisher functionality to different Enterprise Manager administrators.
  • BI Publisher’s scheduling capabilities and delivery mechanisms such as e-mail and FTP.

BI Publisher, from an EM perspective, was introduced in EM, but installing and configuring it was (to be frank) painful. You needed to download and install the entire BI Publisher product, and this could add an extra 10Gb of storage at the file system level. Thankfully, EM changes all of that. This release comes with BI Publisher already packaged as a much smaller (couple of hundred megabytes) portion of the EM install, and all you need to do is configure it. That’s what I’m going to walk you through in this blog post.

If you’re wondering how to tell whether BI Publisher is configured or not, it’s pretty easy to find out. From the GUI perspective, you simply need to follow the path Enterprise, Reports, BI Publisher Enterprise Reports. If it’s not configured, you’ll see the following message:


You can also check from the command line on the OMS, by setting your OMS environment to point to the correct ORACLE_HOME and issuing an emctl command:


So now we know BI Publisher is not configured in this environment. Before we configure it, however, it’s important to understand the architecture of the environment I’m building this in.


This is a relatively simple site, where I have installed on one machine, using a DB environment on a second machine for the repository database (note this is a non CDB environment as installing the repository in a CDB is not supported). I have already added a second OMS on another machine, using the Add Oracle Management Service deployment procedure. To configure BI Publisher in a 2 OMS environment requires some shared storage, so I’ve added an NFS mount point from one OMS to the other (I’ll walk you through that below). Diagrammatically, that means the architecture looks like this:


This environment was built as a clean installation, rather than upgrading an existing environment, so the configuration I’m going to be walking through is a fresh installation. Upgrading an existing installation is covered in the documentation here.

Configuration on the First OMS

Configuring BI Publisher is done via the configureBIP script, located under the OMS_HOME/bin directory. In simple terms, it does three things:

  1. Prompts for credentials for a database user with SYSDBA privilege (defaults to SYS), the password for this account, and the WebLogic Admin Server password.
  2. Executes the Repository Creation Utility (RCU) to create the BI Publisher database schema, SYSMAN_BIPLATFORM.
  3. Extends the WebLogic domain that contains Enterprise Manager to include BI Publisher, and configures BI Publisher.

Let’s walk through each step with output to show you what happens. Make sure you are logged in as the owner of the OMS at the operating system level before you start.

Invoking configureBIP and Gathering Credentials

Make sure you have set your ORACLE_HOME to point to the OMS instance’s ORACLE_HOME/oms/bin directory for the release, and execute the configureBIP script:


The script prompts you to run a backup of Enterprise Manager using the emctl exportconfig oms command, which prompts for the SYSMAN password:


When the backup completes you should see a message that exportconfig completely successfully:


Now you can run the configureBIP command again, but this time say yes to having made a valid backup:


Again, you will be prompted for the username of a repository database user that has the SYSDBA privilege (defaults to SYS), the password for that user (no default, obviously), and the password for the WebLogic administration server user (i.e. the weblogic user):


Executing the Repository Creation Utility

Once you have provided these credentials, the script executes the Repository Creation Utility (RCU) to create the BI Publisher database schema. You will see progress for this step, but it only takes a minute or two anyway. You will then be prompted for two inputs for the port(s) to use for the BI Publisher Managed Server: one port for non-SSL and the other for SSL. In my configuration, the default ports were free so I simply accepted the defaults:


Extending the WebLogic Domain

The next step the script performs is to extend the domain with BI Publisher:


Enterprise Manager, including BI Publisher, is then set to the same “lock” mode as it was prior to running the configureBIP script, via the emctl secure {lock | unlock} command:


Finally, another backup is taken using the emctl exportconfig oms command. This backup is stored in the instance home directory, under the em/sysman/backup sub-directory. The backup created during the configureBIP script will be the newest file in this directory, after configureBIP is run:


To verify the configuration of BI Publisher has worked, go back to the GUI, and again follow the path Enterprise, Reports, BI Publisher Enterprise Reports and you should now see a list of BI Reports:


Choose one of the reports to run – I normally use Targets of Specified Type under EM Sample Reports:


Don’t be surprised if you get asked to login to Enterprise Manager again at this stage. Remember part of configuring BI Publisher stops and restarts the OMS. That completes the configuration of BI Publisher for a single OMS. Let’s move on and see how we complete a highly available installation in a multi-node OMS environment.

Configuration on the Second OMS

So now you think you should have BI Publisher configured on the first OMS (remember this is a 2 OMS environment I’m building here), so you should expect, once you log back in to EM12c, that you can run reports. Well, yes – AND NO! Go back to the list of BI reports (Enterprise, Reports, BI Publisher Enterprise Reports again) and hover over the name of one of the reports. If the load balancer you have in front of the two OMS’s has logged you onto the first OMS, then yes, you can run reports. But when you hover over a report name, on the bottom left of your screen it should show you the URL that you will go to when you click the report name. If that URL includes the name of the SECOND OMS, then all you’re going to get when you click the report name is this, because you haven’t configured BI Publisher on the second OMS yet:


What all of this is telling me, of course, is I’ve only configured BI Publisher on one of my two OMS’s. Now, if I’d have had some common sense (we’ll have no rude remarks here, thank you!), I would have configured BI Publisher on the first OMS BEFORE I added the second OMS. However, I didn’t have that common sense so now I need to configure BI Publisher on the second OMS.

The first thing to be aware of is using BI Publisher in a multi-server configuration is new in EM, and unfortunately is not supported on Windows platforms. For me, I’m running this on Linux x86-64, so that’s not a problem. The next thing to be aware of is that BI Publisher stores all configuration data and report definitions in a file system-based repository at the OS level, so to support multiple BI Publisher servers, read/write permissions must be available to this file system from all the OMS’s. For my environment, I’m going to do this using bog standard NFS, so let’s start by configuring that.

Configuring the NFS Shares

Let me preface this entire section with a disclaimer. I do not claim to be an NFS expert, in any way shape or form. In fact, I had to steal some information off my good friend Tim Hall’s website to get NFS configured. So if you know how to configure NFS, you can either skip to the next section or continue reading for a good laugh at me. 🙂

Configuring BI Publisher on a second node first requires some work on the first OMS, so let’s do the setup there. Note some of this work is being done as root.

BI Publisher configuration needs two inputs for the shared storage – config_volume and cluster_volume. In the documentation, it shows these as two separate volumes but I created just one (mainly due to sheer laziness!) The first step is to check your system is configured for NFS. I know mine is because I have other NFS shares, but if you’re unsure you can use the following command:


That’s cat /proc/filesystems | grep nfs if you can’t read past the cursor I forgot to move before taking the screenshot. Next I need to add the new directories to /etc/exports:


The important part here, of course, is *(rw) to make sure the share is not read-only, as I need to write to it from both nodes. Now I create the directories and make sure that the OMS owner (in my case, the user oracle) owns the environment:


Notice the touch command – that’s just to create an empty file to see if I can see that from the second OMS later. Now I export the file systems to check everything is working OK from the first OMS:


You might think that is enough – well, no I left out something. Let’s try mounting that mount point from the second OMS and see what happens:


Hmm, beginner mistake #42. Let’s set the protections correctly and try again:


The first command ensures that all new files created in the directory have their group set to the directory’s group, the second changes the permissions to be open. OK, now let’s try mounting it again on the second OMS:


Double check that we can write to the mount point on the second OMS as oracle:


OK, I can see the directories and I can create files as the oracle user from both OMS’s. Of course, there is one more thing to do on the second OMS. I want to make sure that mount point comes up after reboot, so as root I need to add the following entry to /etc/fstab:


That’s the NFS configuration done!

Configuring BI Publisher on the Second OMS

OK, now we’ve managed to get the NFS stuff working, we can get on to configuring BI Publisher on the second OMS. The first step for that is to configure the OMS so it knows where the shared storage is, which is done on the first OMS. To do that, we set our environment to the OMS home and use the emctl command as shown here:


Notice we’re passing two directories into the command – one for the config volume and one for the cluster volume. You will then be asked for the WebLogic administration server user (weblogic) password, and the SYSMAN password:


Unfortunately, then I got an error:


Rats, the directories are supposed to be empty. That’s not mentioned in the documentation, but in any case the only files there are test and test2, so I can just delete those and rerun the command:


This time after entering the credentials, it continues. It stops the BI Publisher Server, copies the repository from its previous non-shared location to the shared directory, and reconfigures the BI Publisher server BIP for use in the new environment. Once that is done, the BI Publisher Server is started again and you should see a message Overall result of operations: SUCCESS:


Now you can see additional information has been stored at the OS level:


The next step is to add the second BI Publisher server on the second OMS. To do that you again use the configureBIP script, but this time use the -addBIP parameter. Notice this is done on the second OMS:


Once you enter Y to add the server, you are again prompted for a user name with SYSDBA privilege (defaults to SYS), the password for that user, and the password for the WebLogic Administration Server user, weblogic. After these credentials are entered, you will be asked to enter two port numbers (one for the HTTP server port and the other for the HTTP/S server port for BI Publisher – again, I’m just using the defaults), then the script will configure BI Publisher on the second OMS:


The script then locks EM and restarts the OMS. Once the OMS restarts, you should see a message that you have successfully configured BI Publisher on the second OMS:


You can validate that with the new emctl status oms -bip_only command:


Now swap back to the first OMS and double check things are still running OK over there:


Finally, go back to the console and make sure things are OK there – select Enterprise, Reports, BI Publisher Enterprise Reports again:


Choose the Targets of Specified Type report again (notice what the URL is down the bottom left – is it pointing to the second OMS?):


Next you should be prompted for your username and password. Once you enter that you should see a report that has the following header:


Lo and behold, we are done. 🙂

Actually, there is one more thing to do. The security model for BI Publisher in EM has changed slightly from previous releases. Only super-administrators have access to the reports by default. That means you need to grant access to BI Publisher to any administrators (as opposed to super-administrators) that need access.

But I’ll cover that in a separate blog. This one is already WAY too long! 🙂 The main reason it’s so long, though, is I’ve tried to give you every step along the way. It really doesn’t take very long at all to perform the actual configuration. Hope this helps you work through the process!


After 22 years of working at Oracle in just about every role except Marketing and Support, in December 2016 I moved to a new role with a small company called archTIS, based out of Barton in the ACT, Australia. My new role is the technical architect for the company and I own the product technical solutions for the products produced by archTIS. archTIS has developed strategic architecture and solution services to enable the rapid implementation and accreditation of secure information management and sharing capabilities for both the enterprise and the smaller communities of interest. You can find out more about the company at our web site, I am also a member of the OakTable Network, and have presented at RMOUG Training Days, Hotsos Symposia, Oracle OpenWorld conferences, and other user group events. I have co-authored the Expert Oracle Enterprise Manager 12c and Practical Oracle Database Appliance books published by Apress, and am one of the authors of the Building Database Clouds in Oracle Database 12c book published by Addison Wesley.

One Comment:

  1. Let me just make one change to this post. As has been correctly pointed out to me, this post is REALLY about running multiple BI Publisher Servers, NOT supporting BIP HA. Note the caveats at the start of chapter 20 of the Advanced Installation and Configuration Guide for more details.

Leave a Reply

Your email address will not be published. Required fields are marked *