Saturday, September 10, 2011

Clarifying WebCenter’s Enterprise Deployment Guide



I’ve been on customer site trying to advise about how to properly deploy the WebCenter Suite. A common comment always comes right off the bat: “I’ve seen the WebCenter Enterprise Deployment Guide, but I’m not sure about the VIPs / IPs distribution”.
So, the objective here is only to clarify what the picture below means. As you can see we have a pretty common scenario with a couple of SOA boxes and another set of WebCenter ones. Every single box has its own IP. IP1 for SOAHOST1, IP2 for SOAHOST2, and so on. The IPs position in the picture is a little bit misleading, since in some cases its ellipses touch individual managed servers, making you believe that it should be only associated to that specific managed server. Remember, IPs are for the whole box.
VIPs are commonly used for server migration purposes, and therefore should not be needed for managed servers. If a managed server fails, we should be able to bring another one up. However, there are a couple of exceptions: the AdminServer and SOA.
The SOAHOST1 box mentions 2 VIPs. VIP1 is associated to the AdminServer, which means that if the machine hosting the AdminServer fails, you should be able to bring up the AdminServer on SOAHOST2 with minimum hassle. Maintaining the same address so that the admin address referenced by OHS and by the managed servers does not change.
SOA servers are the other exception. WLS_SOA1 and WLS_SOA2 have independent VIPs. In the case of a SOA server failure, there could be an in-flight transactions that needs recovery. And the cleanest way of accomplishing it is to migrate the Transaction Recovery Service. There are two requirements though:

1. Only the same server can recover its own transactions, therefore VIPs are key here so we need to migrate the service to another machine.
2. And the transaction log records should be on shared file system – another important black spot on the docs - so that the failed-over server can access and recover them.
And finally, since SOA and AdminServer have independent failover requirements, they cannot share the same VIP.
IP and VIP mapping to admin and managed servers
To finalize, I’d like to thank Roy Sandjaja, from Oracle Development, that has helped me understand the whole picture. Cheers, mate!
Hope this helps.

Friday, September 2, 2011

BPM Process Portal Configuration on WebCenter 11g PS4



You might have seen Andrejus’ great blog post series about Configuring BPM Process Portal in PS3, but despite of all his detailed instructions, my environment seemed to have a different “behavior”, and while following his instructions I faced different problems, where one of them was an actual known issue in PS3.
And that’s why I took the initiative of writing my own installation cookbook to make sure I would document all the steps and workarounds that I had to do in order to have the Process Portal properly configured. The environment where I set this up is a WebCenter 11g PS4 domain, extended with ECM and SOA technologies. You don’t need to have it previously setup with SOA, but UCM in this case is a must. Let’s go to the steps.

Configuration Process

WebCenter Components Configuration


Step 1. Make sure you have the following components enabled in UCM: DynamicConverter, Folders_g, and WebCenterConfigure. You can enable these components by accessing UCM (http://<ucm_server>:16200/cs) under Administration -> Admin Server -> Component Manager.

image

Step 2. Bounce the UCM_server1.

Step 3. Setup Dynamic Converter. On the main page, under Administration -> Dynamic Converter Admin -> Configuration Settings -> Conversion Formats, select the file formats from the drop down list. Chose all the formats of documents you will want to get HTML renditions of, such as word, excel, powerpoint, pdf.

image

Extending WebCenter Domain with Oracle BPM Spaces template


Step 1. Shutdown AdminServer and managed servers in the WebCenter domain.

Step 2. Extend the WebCenter domain, by invoking $MIDDLEWARE_HOME/Oracle_WC1/common/bin/config.sh.

image

Step 3. Select the your domain.

image

Step 4. Select $MIDDLEWARE_HOME/Oracle_WC1/common/templates/applications/oracle.bpm.spaces_template_11.1.1.jar as the template.

image


Step 5. Click “next” until the process is over.


Step 6. Restart AdminServer and all the other managed servers (UCM_server1, WC_Collaboration, and WC_Spaces).


Running the Process Portal Script


Step 1. Make sure you have Java 6 in your path by running java –version.


Step 2. Start the following managed servers: AdminServer, WC_Collaboration, UCM_server1, and WC_Spaces.


Step 3. Go to the directory $MIDDLEWARE_HOME/Oracle_SOA1/bpm/processportal and configure the portal-process.properties file according to your environment. You can download my reference file from here, and I strongly advise you to do so.
Below you find a table explaining each of the entries on the mentioned file (kudos go to BPM Product Management for documenting it).



Properties Property Description
extendSoa The flag to decide whether to extend the existing BPM domain or create a new one. The value must be true if the Webcenter and SOA are in same domain, else false.
promptForPasswords The flag to decide whether to prompt for passwords or read them from the process-portal-install.properties file while running the installer.
Oracle BPM Schema Details
bpmDBUser User name to connect to the database configured for Oracle BPM
bpmDBPassword Password to connect to the Oracle BPM's database
bpmDBType Database type configured for Oracle BPM
bpmDBDriver Driver used to connect to Oracle BPM's database
bpmDBUrl URL of the Oracle BPM's database, like jdbc:oracle:thin:@adc2170307:1521
Oracle BPM MDS Details
bpmMDSUser User name for the MDS schema used for Oracle BPM
bpmMDSPassword Password for Oracle BPM's MDS schema
Oracle BPM Runtime Details
bpmHost Server on which Oracle BPM is installed
bpmRuntimePort Port on which Oracle BPM is running
bpmAdminUser Name of the user that has Administrator privileges on the SOA server
bpmAdminPassword Password for the Oracle BPM Admin user
WebCenter Spaces Installation Details
wcOracleHome Path to the WebCenter Oracle home directory
wcDomainName Name of the domain where WebCenter is installed. If extendSoa flag is set to true, point to the BPM domain
wcSetDomainRealmPassword Flag to control whether to set domain realm password; set the value to either true or false. 
Note: This property is for setting up Global Trust. It is recommended that you do not enable this property; set Global Trust manually.
wcDomainRealmPassword Password to set up trusted domains. Same password must be set on Oracle BPM domain as well. 
Note: This property is for setting up Global Trust. It is recommended that you set Global Trust manually, and not by using this property.
wc.server.port Port on which WC_Spaces managed server is hosted
WebCenter's WebLogic installation Details
wcHost Host name on which WebCenter's Admin server is running
wcAdminPort Port number on which WebCenter's Admin server is running
wcAdminUser Admin user for WebCenter Admin server
wcAdminPwd Password of the WebCenter Admin server
wcManagedServerName Name of the WC_Spaces managed server
wcConfigServices Flag to configure the Oracle Content Server and Discussions Server to work with Oracle WebCenter. The Content and Discussion Server details listed later in this table must be specified only if wcConfigServices is set to true. 
Note: It is strongly recommended that you manually configure Oracle Content Server and Discussions Server to work with Oracle WebCenter.
Content Server Details Set these properties if wcConfigServices is set to true.
wcContentServerName Name of the Content Server configured for Oracle WebCenter
wcContentServerPort Port on which Content Server is running.
wcContentSpacesRoot Name of the Spaces root folder on Content Server
wcContentAdminUser The name of the Admin user for Content Server
Discussion Server Details Set these properties if wcConfigServices is set to true.
wcDiscussionServerUrl Name of the Discussion Server configured for WebCenter
wcDiscussionAdminUser Name of the Admin user for Discussion Server


Step 4. Run the following script: $MIDDLEWARE_HOME/modules/org.apache.ant_1.7.1/bin/ant –f install.xml.

Step 5. The previous script will shutdown the WC_Spaces managed server. Start it back again. Don’t forget to check if it has crashed any other managed server. If that happened, restart the broken managed server.

Step 6. Open the process-portal.properties file and change the properties extendSoa and wcConfigServices from true to false.

Step 7. Run the previous script by adding a new parameter: $MIDDLEWARE_HOME/modules/org.apache.ant_1.7.1/bin/ant –f install.xml -DpiArgs="-importGSOnly".

Step 8. The former will shutdown AdminServer and WC_Spaces. Restart both servers and don’t forget to check whether the other managed servers are running as well. If you’ve seen any exceptions while running any of scripts mentioned on steps 3 and 6, fix it first before moving forward.

Step 9. Check if some roles were provisioned by the previous scripts. In UCM, under Administration –> Admin Applets –> User Admin you should see the ProcessPortal group and the ProcessPortalUser role as part of the aforementioned group.

image image

In WebLogic Console, you should see a ProcessPortalUser group. I had to create that group manually, since it did not get provisioned “automagically”.

image

Step 10. Check if the forums have been properly provisioned as well. I also had to manually set that up by editing each of the newly create Space (Process Workspace and Modeling Space).
  1. Log in as weblogic.
  2. Click on Administration.
  3. Select either Process Workspace or Modeling Space.
  4. Click on Edit –> Edit Space.
  5. On the Services tab, click on Announcements and then on the magnifying lens. Do the same for Discussions.
image

Step 11. Log in to WebCenter Spaces with an administrator account, such as weblogic, and enable the Process Workspace and Modeling Space spaces to a user that is also a valid BPM user.

Final Step. Login with a valid BPM user, in my case it’s jcooper, and check if Process Workspace and Modeling Space are working properly.

image

image

For more information about what Process Portal is about, please access Oracle’s documentation. And please leave a comment whether you have or have not succeeded on this configuration.

Wednesday, June 1, 2011

Improving WebCenter Performance (IIS Addendum)



If you read my previous post you might be wondering if you can achieve a similar performance with a different Web Server such as Microsoft Information Server. In this article I’ll describe the steps you need to follow to have IIS not only applying content compression, but also rewriting the expiration data in the HTTP header.

STEPS

1. Open the Internet Information Services Manager, right-click on the Default Web Site option and select Properties.

clip_image002

2.
The window below should show up. Check the “Expire after” option and set it to 1,193 Hour(s). It will change the HTTP header Cache-control parameter from Expire to max-age in all local static resources, which solves the Internet Explorer caching issue.

clip_image004

3.
Click on the MIME Types button and add the following ones:

clip_image006

4.
Select the ISAPI Filters tab and check where the WebLogic ISAPI plug-in (wlFilter) is installed. The plug-in allows a smooth integration of WebLogic's HTTP functionality into Microsoft IIS.

clip_image008

Under the iisforward.dll’s directory you should find iisproxy.ini. Open the ini file and add the FileCaching=ON property as shown below. It will add another level of buffer to IIS and force it to add Content-Length property to the HTTP Header.

WebLogicHost=<WebCenter / Load Balancer host> 
WebLogicPort=<WebCenter / Load Balancer port> 
ConnectTimeoutSecs=20 
ConnectRetrySecs=2 
WlForwardPath=/webcenter,/rest 
Debug=OFF 
FileCaching=ON 


5. Make sure content compression is still setup. Right-click on Web Sites and choose properties.

clip_image010

Select the Service tab. The “Compress static files” option must be checked.

clip_image012


Don’t forget to restart IIS after the changes.