Saturday, January 5, 2013

Installing BI Publisher (10G) Into Weblogic



The install covers 3 different sections – Installing the BI Publisher itself, installing the BI Office plugin and also setting up the Publisher Scheduler.
Note the WebLogic install that this was completed on was installed in development mode. If you are working on a production install you will need to lock and edit the confguration and release where necessary.

1 BI Publisher Install

Download the standalone version of BI Publisher from e-delivery for your platform (V16389-01.zip).
On the application server create a directory for the install
$pwd

$/u01/app/oracle/product

$mkdir xmlpserver
Copy the zipped software into a temporary directory and unzip:
$cp V16389-01.zip /tmp

$unzip V16389-01.zip
This results in a tar file. Untar this file:
$tar –xvf bipublisher_aix_101341_1of1.tar
Find the latest BI Publisher patch from My Oracle Support – note 797057.1 is a good reference for this. At the time of install the latest was 10623023.
Download the patch and unzip it. This contains a new version of the application which is required.
Copy the non-oc4j deployment war file supplied in the patch to the newly created directory:
$cp /tmp/10623023/non-oc4j/xmlpserver.war /u01/app/oracle/product/xmlpserver/
Unzip the war file:
$cd /u01/app/oracle/product/xmlpserver/
$unzip xmlpserver.war
Back up the existing Bi Publisher repository:
$cd /u01/app/oracle/product/OracleBI/xmlp/
$mv XMLP XMLP_bck
Copy the standalone XMLP repository from the standalone software to main install area:
$cd /tmp/<your platform>/Oracle_Business_Intelligence_Publisher_Standalone/manual
$cp –R XMLP /u01/app/oracle/product/OracleBI/xmlp/
Update the xmlpserver configuration file to point to the new XMLP repository just created:
$cd /u01/app/oracle/product/xmlpserver/WEB-INF
$vi xmlp-server-config.xml
Edit so that the file path points to the new BI Publisher repository:
<?xml version="1.0" encoding="UTF-8"?>
<xmlpConfig xmlns="http://xmlns.oracle.com/oxp/xmlp">
<resource>
<file path="/u01/app/oracle/product/OracleBI/xmlp/XMLP"/>
</resource>
</xmlpConfig>

Deploy BI Publisher in WebLogic

Log into the WebLogic administration console:
(Assuming your Weblogic server is on port 7001)
Click on the Deployments link and select the xmlpserver which was previously deployed, click on the delete button:
WebLogic Deployment Page
Click on deployments again and the xmlpserver application should have been removed.
Weblogic caches the deployment details so this needs to be removed before redeploying if the delete didn’t remove it. If this in not done WebLogic is likely to error when trying to redploy the application.
Rename or remove the cache directory /u01/app/oracle/product/bea/user_projects/domains/<your domain>/servers/<WLS server name>/tmp/_WL_user/xmlpserver
Back in WebLogic adminconsole, click on install to install the new application and select the xmlpserver directory containing the application, then click next:
Install the Application
Select to install it as an application:
On the next screen check the button to make the deployment available from the directory:
Deploy from the directory
Then click Finish on the next screen to get to the settings page. Check these and press save:
Deployment Settings
Click back on the deployments page and check the deployment succeeded:
Check Deployment
Test a login:
Username/password Administrator/Administrator
This should bring up a browser which looks similar to below:
BI Publisher first screen after login

2 Deploy BI Office application

The next step is to deploy the bioffice application that desktop plugin’s will use:
Make a directory to place the application in:
$cd /u01/app/oracle/product
$mkdir bioffice
Copy the web application (bioffice.war) from /u01/app/oracle/product/OracleBI/office/server to the new directory and unzip.
$cp bioffice.war /u01/app/oracle/product/bioffice
$cd /u01/app/oracle/product/bioffice
$ls
bioffice.war*
$unzip bioffice.war
Update the configuration file to point to the Analytics URL:
$cd /u01/app/oracle/product/bioffice/WEB-INF/
$vi bioffice.xml
Change <property>http://localhost/analytics/saw.dll</property>
To
<property>http://<your server>:7001/analytics/saw.dll</property>
Deploy the app in Weblogic
Undeploy existing application by deleting once selected (if it exists):
Delete BI Office deployment
Remove the cache of the deployment by renaming or removing the directory /u01/app/oracle/product/bea/user_projects/domains/<your domain>/servers/<your server>/tmp/_WL_user/bioffice
To install the new version click Install on the deployments page:
Deploy BI Office Application
Select the bioffice directory and click next:
Select BI Office directory
Install as an application, click next:
Install as an application
Make it accessible from the directory and click finish:
Deploy BI Office from the directory
Make sure application is active in the deployments page:
Check BI Office is active

3 Setup BI Publisher Scheduler

Configure WebLogic to use TopLink libraries:
$cd /u01/app/oracle/product/bea/user_projects/domains//bin
$cp startWebLogic.sh startWebLogic.sh.bak
$vi startWebLogic.sh
Change the section which starts weblogic to (added sections in bold):
echo "starting weblogic with Java version:"

${JAVA_HOME}/bin/java ${JAVA_VM} -version

if [ "${WLS_REDIRECT_LOG}" = "" ] ; then

echo "Starting WLS with line:"

echo "${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} ${JAVA_OPTIONS} –Dweb logic.Name=${SERVER_NAME} -Djava.security.policy=${WL_HOME}/server/lib/weblogic.policy -Dtoplink.xml.platform=oracle.toplink.platform.xml.jaxp.JAXPPlatform ${PROXY_SETTINGS} ${SERVER_CLASS}"

${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} ${JAVA_OPTIONS} -Dweblogic.Name=${SERVER_NAME} -Djava.secur ity.policy=${WL_HOME}/server/lib/weblogic.policy
-Dtoplink.xml.platform=oracle.toplink.platform.xml.jaxp.JAXPPlatform ${PROXY_SETTINGS} ${SERVER_CLASS}

else

echo "Redirecting output from WLS window to ${WLS_REDIRECT_LOG}"

${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} ${JAVA_OPTIONS} -Dweblogic.Name=${SERVER_NAME} -Djava.security.policy=${WL_HOME}/server/lib/weblogic.policy
-Dtoplink.xml.platform=oracle.toplink.platform.xml.jaxp.JAXPPlatform ${PROXY_SETTINGS} ${SERVER_CLASS} >"${WLS_REDIRECT_LOG}" 2>&1

Fi
Create a tablespace to hold the scheduler tables, in SQLPLUS:
create tablespace BIPUBSCHED
datafile '/u02/oradata/devobi01/BIPUBSCHED01.dbf' size 10G
extent management local autoallocate;
Create a user in the datawarehouse to hold the scheduler tables and grant necessary privileges, again in SQLPLUS:
Create user bipubsched identified by xxxxxx
Default tablespace BIPUBSCHED
Temporary tablespace temp
Quota unlimited on BIPUBSCHED;
Grant connect, create table to bipubsched;
Create scheduler tables
Log into BI Publisher as Administrator (password Administrator)
In the Admin tab select System Maintenance -> Scheduler Configuration
Enter the relevant infomartion and test the connection:
Supply BI Publisher scheduler connection details
Now install the schema by clicking the ‘Install Schema’ button – when finished a confirmation message is displayed just under the tabs:
Install Scheduler schema
This completes the install of BI Publisher. There are further steps to define your data connections and other steps dependant on your implementation.
The application can be access at htpp://<server>:<port>/xmlpserver

Errors hit

One of the main errors that was encountered was the following Java stack when trying to run the scheduler. The solution was to apply the latest BI Publisher patch as described in the steps above.
oracle.apps.xdo.servlet.scheduler.ProcessingException: Error occurred while scheduling the job.
at oracle.apps.xdo.servlet.ui.scheduler.SchedulerServlet.scheduleJob(SchedulerServlet.java:1927)
at oracle.apps.xdo.servlet.ui.scheduler.SchedulerServlet.doPost(SchedulerServlet.java:293)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at oracle.apps.xdo.servlet.security.SecurityFilter.doFilter(SecurityFilter.java:94)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(Unknown Source)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
Originally I hit problems when trying to redeploy the application. This came due to the cache not being removed when the old deployment was deleted. The way around this was to delete the cache directory for the app (as described above).
While trying to use the plugin’s for Excel on a desktop there was an issue with the locale. The workaround to this was to copy C:Program FilesOracleBI PublisherAnalyzer for Excelconfigen-US.xlf and rename it as en-GB.xlf.