Thursday, August 29, 2013

Configuring HA (High Availability) Oracle SOA Suite

Oracle Reference doc on Installation and Configuration Steps:
http://docs.oracle.com/cd/E21764_01/core.1111/e10106/ha_soa.htm#autoId121

http://docs.oracle.com/cd/E21764_01/core.1111/e10106/ha_soa.htm#CHDFDGID

This chart below shows the concepts of the HA for SOA.



Here are the steps from a high level:


.

Wednesday, August 28, 2013

Deinstall SOA Suite (BPEL)





I have recently had to de-install the oracle SOA suite and the deployed BPEL processes, web services, and etc. The above Oracle Reference document gave steps on how it can be done. Below is a more concise summary to guide you through al the steps needed:

Easiest way is to use Enterprise Manager to stop all the soa servers one by one.
Then stop the admin server.
2.1 Start RCU by running rcu.bat. then drop all related schemas.
2.2 Dropping Schemas and Deleting Datafiles (Windows Only)
If your database is running on a Windows operating system, and you are using RCU to drop schemas from that database, some components datafiles are not dropped. These datafiles are located in the oradata directory in the database Oracle home.

3.1.      Removing the SOA Oracle Home
To start the deinstaller, navigate to the SOA_ORACLE_HOME/oui/bin (on UNIX operating systems) or SOA_ORACLE_HOME\oui\bin (on Windows operating systems) directory and start the deinstaller.
On Windows operating systems:
setup.exe -deinstall
3.2.      Removing the Oracle Common Home
To start the deinstaller, navigate to MW_HOME\oracle_common\oui\bin (on Windows operating systems) directory and start the deinstaller.
On Windows operating systems:
setup.exe -deinstall -jreLoc JRE_LOCATION
3.3.      Manually remove files
                  Go to Oracle\Middleware\, delete Oracle_SOA1 and Oracle_Commom

Windows
Choose Start > Programs > Oracle WebLogic > Uninstall Oracle WebLogic.
The Oracle Uninstaller Welcome screen is displayed.

On a Windows operating system, if your Middleware home directory was C:\Oracle\Middleware, use a file manager window and navigate to the C:\Oracle directory, then right-click on the Middleware folder and select Delete.
On Windows systems, you must also manually remove the program groups from the Start Menu\Programs folder. As an example (the folder names and program group names on your system may be different), you might remove the following from C:\Documents and Settings\All Users\Start Menu\Programs:
·        Oracle Fusion Middleware 11.1.1.3.0
·        Oracle SOA Suite 11g - Home1
·        Oracle WebLogic


Friday, August 23, 2013

oracle.portal.page BaseMetaData.parseBlocks Exception

I run into an issue that gives the same exception as described later. I found this document in Oracle's support site. This resolved my problem.












Applies to:

Portal - Version 9.0.4 and later
Information in this document applies to any platform.
Checked for relevance on 10-Jun-2013


Symptoms

Some portlets show the following error sporadically:
<PROVIDER NAME> is not currently available for maintenance reasons

This problem only occurs to Web Providers that use the session, so the Login Frequency is set to Once Per User Session, or Always.
The Portal database is in a RAC.

The Portal's application.log shows the following errors while the problem occurs:

07/08/07 16:56:20 portal: id=144115363668272548,2 Exception in BaseMetaData.parseBlocks
java.lang.ArrayIndexOutOfBoundsException: 402
at oracle.webdb.page.v2.BaseMetaData.parseBlocks(Unknown Source)
at oracle.webdb.page.v2.LoginMetaData.<init>(Unknown Source)
at oracle.webdb.page.v2.DataProcessor903.getLoginMetaData(Unknown Source)
at oracle.webdb.page.v2.DataProcessor903.process(Unknown Source)
at oracle.webdb.page.PageBuilder.process(Unknown Source)
at oracle.webdb.page.Main.doRequest(Unknown Source)
at oracle.webdb.page.ParallelServlet.doGet(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:765)
at
com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:317)
at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:793)
at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:208)
at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:125)
at
com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.jav
a:192)
at java.lang.Thread.run(Thread.java:534)

07/08/07 16:56:20 portal: id=144115363668272548,2 Page '713,1604790' metadata dump:
<FONT CLASS=PortletText1>Error: The listener returned the following Message: 504 Origin
Server Timeout </FONT>
07/08/07 16:56:20 portal: id=144115363668272548,2 Exception processing LMD:
oracle.webdb.page.v2.MetaDataParseException: Error parsing Meta Data: end of input whilst parsing
blocks
typeOffset='0'
typeLength='11'
idOffset='12'
idLength='-1'
mPrevBlockType='null'
mPrevBlockId='null'
c='0'
buffer.length='402'
offset='403' : last valid block was 'null'/'null'
at oracle.webdb.page.v2.BaseMetaData.parseError(Unknown Source)
at oracle.webdb.page.v2.BaseMetaData.parseBlocks(Unknown Source)
at oracle.webdb.page.v2.LoginMetaData.<init>(Unknown Source)
at oracle.webdb.page.v2.DataProcessor903.getLoginMetaData(Unknown Source)
at oracle.webdb.page.v2.DataProcessor903.process(Unknown Source)
at oracle.webdb.page.PageBuilder.process(Unknown Source)
at oracle.webdb.page.Main.doRequest(Unknown Source)
at oracle.webdb.page.ParallelServlet.doGet(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:765)
at
com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:317)
at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:793)
at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:208)
at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:125)
at
com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.jav
a:192)
at java.lang.Thread.run(Thread.java:534)

07/08/07 16:56:20 portal: id=144115363668272548,2 Invalid status code encountered : status=504
reason=Origin Server Timeout name=content-fetcher1 label=loginMeta
url=http://www.xxx.yy.zz/pls/portal/!PORTAL.wwpro_app_provider.do_object_signon?page_objects=10556:1
055622&prov1055622=1055622 time=41798ms content=<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html> <head>
<title>No Response from Application Web Server</title>
</head>

<body bgcolor="white">
<font color="red">
<h1>No Response from Application Web Server</h1>
</font>

There was no response from the application web server for the page you requested. <br>Please
notify the site's webmaster and try your request again later.
<hr>

</body> </html>

Another symptom may be that URL Portlets show the following error sporadically:
Error:
Unknown exception: (WWV-13056)
The preference path does not exist: ORACLE.WEBVIEW.PARAMETERS.20117871020 (WWC-51000)

Steps To Reproduce:
1. Have a Portal installation where the Portal database is in a mulit-node RAC.
2. Register a Web Provider that uses a session and set the Login Frequency to Once Per User Session.
3. Add some portlets from this provider to a page.
4. Refresh the page multiple times and notice that sometimes the following error is shown in place of some portlets:
<PROVIDER NAME> is not currently available for maintenance reasons

Changes


Cause

One of the RAC node is not able to resolve the hostname in the Portlet requests.

When a provider uses the session, then the Portal database tries to call the initSession call of the provider, while generating the Login Meta Data (LMD).
If the particular Portal database node cannot access the provider with the hostname that appears in the URL in the provider registration, then essentially Portal thinks that the particular provider is down when requesting the page, and hence the error is shown.

Solution

To implement the solution, please execute the following steps::

1.  Modify the hosts file on all RAC nodes of the Portal database so that the hostname of the provider (as shown in the URL of the Provider Registration) can be correctly resolved to the middle tier machine where the provider is running.

Note:
When the provider URL correctly resolves to the middle tier from all RAC nodes of the Portal database then Portal always will be able to ping the provider and the error message will not be shown any more.

Thursday, August 22, 2013

Oracle portal webcache log level

 original post from here:
http://oamidam.wordpress.com/2011/06/13/increase-event_log-verbosity-oracle-webcache/


There are many possible ways to increase event_log verbosity to DEBUG:
First, using Application Server Control Console:
  1. Navigate to Web Cache Home page
  2. Navigate to Administration tab > Properties > Web Cache > Logging.
  3. Change Logging Level to Debug
  4. Un-check Buffer in Memory check box to disable buffering when you need to see the event log results immediately.
  5. Click OK
Second, using OracleAS Web Cache Manager:
  1. In the navigator frame, select Logging and Diagnostics > Event Logs.
  2. From the Cache-Specific Event Log Configuration table, select a cache, and then click Edit Selected.
  3. In the Buffering field, select Disabled to disable buffered logging. Oracle recommends disabling buffering when you need to see the event log results immediately.
  4. from the Verbosity list, select the DEBUG level.
  5. Click Submit.
  6. In the OracleAS Web Cache Manager main window, choose Apply Changes.
Third, by editing webcache.xml file:
  1. Backup the file $ORACLE_HOME/webcache/webcache.xml
  2. Edit the file webcache.xml and change the following lines
<EVENTLOGDIR LOGDIR="ORACLE_HOME/webcache/logs/" BUFFERENABLED="YES" BUFFERSIZE="2048" FLUSHINTERVAL="10" Key="LOGDIR">
<VERBOSITY LEVEL="WARNING"/>
to be:

<EVENTLOGDIR LOGDIR="ORACLE_HOME/webcache/logs/" BUFFERENABLED="NO" BUFFERSIZE="2048" FLUSHINTERVAL="10" Key="LOGDIR">
<VERBOSITY LEVEL="DEBUG"/>

Wednesday, August 14, 2013

[error 13079] [ecid: -] No matching CACHE element found in webcache.xml for current hostname


RunInstaller stuck in screen when I came back:
Configuration assistant "OPMN Configuration Assistant" failed.
Log: $ORACLE_HOME/opmn/logs/WebCache~WebCacheAdmin~1 Go to check log.
tail -10f   WebCache~WebCacheAdmin~1
[error 13079] [ecid: -] No matching CACHE element found in webcache.xml for current hostname (***) and ORACLE_HOME (***)
That "hostaname" is what I get when run command hostname. However, it is not mine ORACLE_HOSTNAME just before installation. Thing is clear,  Webcache picked up my specified hostname but it thinks it doesn’t match output from hostname command. Then I do next is to modify webcache.xml …Oracle approved this guess in metalink ID: 432774.1 .
"Edit the file $OMS_HOME/webcache/webcache.xml, changing the HOSTNAME attribute in the CACHE element
<CACHE NAME ………. HOSTNAME=" proper ipaddress ">
Keep on going.