Tuesday, 13 November 2012
Oracle SOA: DB Adapter Singleton behaviour in High Availabilit...
Oracle SOA: DB Adapter Singleton behaviour in High Availabilit...: There was a problem which one can face in high availability environment (clustered) . We had one Integration between Oracle Ebiz a...
DB Adapter Singleton behaviour in High Availability Environment
There was a problem which one can face in high availability environment (clustered) .
We had one Integration between Oracle Ebiz and third party system in which we get data from Oracle Ebiz and send them to third party application. This integration was running fine till the time our server environment upgraded for high availability means clustered ones...
We had two clustered which were configured to be synchronous to idealised HA situation. But this causes one design issue in that Integration.
The issue starts coming in our DB Adapter that now the DB Adapter starting polling Staging table(OEBS) in parallel with the initialised interval. Cluster1 and Cluster2 starts initiating DB Adapter instances in parallel and if we increase the clusters form 2 to 3. The same way three instances of pooling components started. Which leads to a situation in which if we increase the clusters in future from 2 to 50 then in parallel 50 instances of pooling component will be created in parallel and will hit the third party application in parallel. This could be a problem for a target system if it doesn't supports parallel processing.
The solution to this problem was that we need a concept of singleton pattern in our pooling component / DB Adapter.
To enable this feature for high availability environment for a given inbound adapter endpoint, one must add the
singleton
JCA service binding property in the composite.xml
within the <binding.jca>
element and set it to a value of true
as shows.
Labels:
DB Adapter,
JCA,
OracleXE,
pooling,
Singleton,
SOA11g,
WebLogic10.0.3
Wednesday, 18 July 2012
AIA Artifacts reference problem in JDeveloper using oramds
After finishing up with AIA 3.0 Installation when I starts building my component in JDeveloper on compilation I got errors which were pointing to my bpelprocess.wsdl and from there I come to know that one import is not proper which is actually pointing to AIA Artifact.
<wsdl:import namespace="http://schemas.oracle.com/bpel/extension"
location="oramds/apps/AIAMetaData/AIAComponents/UtilityArtifacts/RuntimeFault.wsdl"/>
location="oramds/apps/AIAMetaData/AIAComponents/UtilityArtifacts/RuntimeFault.wsdl"/>
Solution
1.Check if the connection to MDS repositery is Created and if not then create a database connection to connect to the repository with either DEV_MDS or equivalent user.
2. Check if you have already created SOA-MDS connection (from resource palette) If not then create a new SOA-MDS connection. Make sure it uses the DB connection in step1 and also the partition is soa_infra. as by default its not soa_infra.
3. Now check for successful connection and installation of AIA Components by browsing AIAComponent files from MDS. These will be shown under /Apps/MetaData.
4. The last and very important step is to update adf-config.xml file in application home of your Jdeveloper(directory where .jws file exists). This will be used at design time to access files from MDS using oramds protocol. This is located in directory named %APPLICATION_HOME%/.adf/META-INF.
Add following line in adf-config.xml
<metadata-namespaces>
<namespace metadata-store-usage="mstore-usage_3" path="/apps" />
</metadata-namespaces>
<metadata-store-usage id="mstore-usage_3">
<property value="DEV_MDS" name="jdbc-userid" />
<property value="welcome1" name="jdbc-password" />
<property value="jdbc:oracle:thin:@hostname:port:sid" name="jdbc-url" />
<property value="soa-infra" name="partition-name" />
</metadata-store>
</metadata-store-usage>
After updating file now you can recompile and this time you will surely end up with no errors.
You can now start accessing the artifacts like WSDLs, XSDs etc
using oramds.
eg:oramds/apps/AIAMetaData/AIAComponents/UtilityArtifacts/RuntimeFault.wsdl
Friday, 8 June 2012
Error Starting Weblogic Admin Server: Could not reserve enough spacefor object heap
Error
"Error occurred during initialization of VMCould not reserve enough space for object heap
Could not create the Java virtual machine. "
Reason for this error is when we make changes memory variable and assign more memory and we don't have enough memory available... server startup is failed with this error.
Solution
You can remove this error while decreasing heap size in setSOADomainEnvt.cmd
%ORACLE_HOME%\user_projects\domains\DOMAIN\BIN\setSOADomainEnvt.cmd
set DEFAULT_MEM_ARGS=-Xms512m -Xmx1024m
set PORT_MEM_ARGS=-Xms768m -Xmx1536m
set PORT_MEM_ARGS=-Xms768m -Xmx1536m
set DEFAULT_MEM_ARGS=%DEFAULT_MEM_ARGS% -XX:PermSize=128m -XX:MaxPermSize=512m
set PORT_MEM_ARGS=%PORT_MEM_ARGS% -XX:PermSize=256m -XX:MaxPermSize=512m
set PORT_MEM_ARGS=%PORT_MEM_ARGS% -XX:PermSize=256m -XX:MaxPermSize=512m
Tuesday, 29 May 2012
Step by Step Installation Guide for SOA 11g
Download all the software to get started.
This is the first step towards Installation of SOA Suite.
For this you need to have anyone of following versions but I will be using Oracle XE Universal database version 10.2.0.1 as it is already installed on my machine i. Oracle XE Universal database version 10.2.0.1
ii. Oracle 10g database version 10.2.0.4+
iii. Oracle 11g database version 11.1.0.7+
Note: You can not use any other database version in 11gR1 (certification of additional database is on the road map). Specifically, you cannot use XE Standard, It must be Universal.
Note: When you are using XE, you will see a warning when you install the database schema that this database version is too old. You can safely Ignore this warning as it applies only to production environments.
Once you are done with Installation of Oracle XE, you must update database parameters.
- Oracle Database OracleXEUniv.exe
- WebLogic Server wls1035_oepe111172_win32.exe
- Repository Creation Utility ofm_rcu_win_11.1.1.5.0_disk1_1of1.zip
- SOA Suite ofm_soa_generic_11.1.1.5.0_disk1_1of2.zip, ofm_soa_generic_11.1.1.5.0_disk1_2of2.zip
- OSB ofm_osb_generic_11.1.1.5.0_disk1_1of1.zip
Oracle Database Setup
This is the first step towards Installation of SOA Suite.
For this you need to have anyone of following versions but I will be using Oracle XE Universal database version 10.2.0.1 as it is already installed on my machine i. Oracle XE Universal database version 10.2.0.1
ii. Oracle 10g database version 10.2.0.4+
iii. Oracle 11g database version 11.1.0.7+
Note: You can not use any other database version in 11gR1 (certification of additional database is on the road map). Specifically, you cannot use XE Standard, It must be Universal.
Note: When you are using XE, you will see a warning when you install the database schema that this database version is too old. You can safely Ignore this warning as it applies only to production environments.
Once you are done with Installation of Oracle XE, you must update database parameters.
Set the
processes parameter to >=500 using the following instructions.
Login to sqlplus
with sysdba and run following commands
sqlplus connect
sys as sysdba
SQL> show parameter session
SQL> show parameter processes
SQL> alter system reset sessions scope=spfile sid='*';
SQL> alter system set processes=500 scope=spfile;
SQL> shutdown immediate
SQL> startup
SQL> show parameter session
SQL> show parameter processes
SQL> alter system reset sessions scope=spfile sid='*';
SQL> alter system set processes=500 scope=spfile;
SQL> shutdown immediate
SQL> startup
SQL> show parameter session
SQL> show parameter processes
Schema Configuration
Note: If you want to use Oracle XE as your database, you need to set the RCU_JDBC_TRIM_BLOCKS environment variable to TRUE *prior* to running RCU
1. To create the new schema, unzip ofm_rcu_win_11.1.1.5.0_disk1_1of1.zip navigate to rcuHome\bin and open a command window and run rcu.bat
2. The bat command returns to the prompt immediately and, after a few seconds, the Repository Creation Utility opens (if you just ran the utility to drop the schema, it opens the second time much more quickly).
3. On the Welcome screen, click on Next..
4. Select Create and click on Next.
3. On the Welcome screen, click on Next..
4. Select Create and click on Next.
7. If you are using XE, you will see a warning at this point that this version is too old. You can safely ignore this warning as it applies only to production environments.
Labels:
AIA,
OSB,
SOA 11g Installation,
WebLogic10.0.3
Location:
Lahore, Pakistan
Monday, 14 May 2012
Root cause of ServletException java.lang.AssertionError: CurrencyKey not preserved
After finishing up with the installation of AIA on SOA 11g when I access AIA home I was disappointed to see empty tabs of AIA including Project Life Cycle, CAVA, ect. When I check server log file I found following big error log.. which says....
Referer: http://localhost:7001/AIA/faces/oracle/apps/aia/home/ui/page/Home.jspx?_afrWindowMode=0&_afrLoop=8046694499161&_adf.ctrl-state=1b2migk5rh_9
Cookie: JSESSIONID=82k3PwvbRfLGCv3hGL5rK2sHQPJlzsWyBSmylvLLRptRhcmjS1T2!273321565; ADMINCONSOLESESSION=LMKjPwnCf10njbLYhNKwbPFGHX7cW2L94zgT7TC1jyYhJrJpyMyM!273321565
Content-Type: application/x-www-form-urlencoded
Content-Length: 263
]] Root cause of ServletException.
java.lang.AssertionError: CurrencyKey not preserved
at org.apache.myfaces.trinidad.component.UIXCollection.encodeEnd(UIXCollection.java:540)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:399)
at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2633)
at oracle.adfinternal.view.faces.renderkit.rich.PanelStretchLayoutRenderer.encodeCenterFacet(PanelStretchLayoutRenderer.java:769)
at oracle.adfinternal.view.faces.renderkit.rich.PanelStretchLayoutRenderer._encodeCenterPane(PanelStretchLayoutRenderer.java:1140)
at oracle.adfinternal.view.faces.renderkit.rich.PanelStretchLayoutRenderer._encodeMiddlePanes(PanelStretchLayoutRenderer.java:348)
at oracle.adfinternal.view.faces.renderkit.rich.PanelStretchLayoutRenderer.encodeAll(PanelStretchLayoutRenderer.java:313)
at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1396)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:335)
at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:767)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:399)
at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2633)
at oracle.adfinternal.view.faces.renderkit.rich.PanelStretchLayoutRenderer.encodeTopFacet(PanelStretchLayoutRenderer.java:781)
Solution
For this we need to update your Environment file which is available at following location
<MiddlwareHome>/user_projects/domains/<Domainname>/bin/setSOADomainEnv.cmd
OR
<MiddlwareHome>/user_projects/domains/<Domainname>/bin/setSOADomainEnv.sh
set EXTRA_JAVA_PROPERTIES=%EXTRA_JAVA_PROPERTIES% -da:org.apache.myfaces.trinidad.component.UIXCollection
and restart the server...
Now tabs will be successfully visible with no error
Sunday, 13 May 2012
Node Manager not reachable for machine "Local Machine", please ensure node manager service is running and port 5556
While running Installer for Oracle AIA on local machine I faced following error
"Node Manager not reachable for machine
"Local Machine", please ensure node manager service is running and port
5556". Because I forget to start Node manager ....Solution
To start the nodemanager, you need to browse to MiddlewareHOME\wlserver_10.3\server\bin and execute "startNodeManager.cmd"."nodemanager.properties" will get created under "MiddlewareHOME\wlserver_10.3\common\nodemanager\" once you start the nodemanager as shown in following GUI dump
You can also check the status of nodemanager from weblogic console.
- Login to weblogic console.
- Browse to Environment -> Machines in the Domain Structure panel (located left side)
- Click on "LocalMachine".
- Click on "Monitoring" tab to know the status of nodemanager.
Wednesday, 9 May 2012
MDS-01330: unable to load MDS configuration document
After successful installation of SOA(11g) 11.1.1.5 on Oracle XE when I started the managed server I faced following exception which makes me worried.... and kept on thinking for few minutes ....do I need to reinstall everything but thanks God I got a solution.
I hope this helps to all who faced such an issue.
Exception
oracle.mds.lcm.exception.MDSLCMException: MDS-01330: unable to load MDS configuration document
MDS-01329: unable to load element "persistence-config"
MDS-01370: MetadataStore configuration for metadata-store-usage "soa-infra-store" is invalid.
ORA-04063: package body "DEV_MDS.MDS_INTERNAL_SHREDDED" has errors
ORA-06508: PL/SQL: could not find program unit being called: "DEV_MDS.MDS_INTERNAL_SHREDDED"
ORA-06512: at line 1.....
Solution
- First of all drop SOA Suite schemas and associated tablespaces using RUC.
- Then go to command line (cmd) and set environment variable RCU_JDBC_TRIM_BLOCKS=TRUE
- Run RCU again to re-create the SOA Suite schemas and tablespace
Now restart server and this time there will be no error associated with "MDS-01330: unable to load MDS configuration document"
Labels:
MDS,
OracleXE,
SOA 11g Installation,
WebLogic10.0.3
Location:
Lahore, Pakistan
Subscribe to:
Posts (Atom)