Thursday, July 14, 2011

50th Oracle book,Packt Enterprise is offering an exclusive discount for Oracle books during July 2011

To celebrate the publication of its 50th Oracle book,Packt Enterprise is offering an exclusive discount for Oracle books during July 2011.
Here is the link : http://www.packtpub.com/article/50th-oracle-book-offer

Tuesday, November 23, 2010

Tips on BAM 11g

In general, before upgrading to latest patchset or applying any BAM adapter patches, always make sure the BAM Adapter staging-mode is set to "nostage". This configuration can be verified by searching "OracleBamAdapter" key word in MiddlewareHome/user_projects/domains//config/config.xml file.

To redeploy bam adapter, you should pick “I will make the deployment accessible from the following location” as the “Source accessibility” option and set the path to point to /Oracle_SOA1/soa/connectors/OracleBamAdapter.rar, otherwise, the staging-mode will be unset.

Tuesday, October 19, 2010

My technical contribution to a BPEL 2.0 book is published now !

The book in which I've technically contributed as a reviewer is released : https://www.packtpub.com/ws-bpel-2-0-for-soa-composite-applications-with-ibm-websphere-7/book?utm_source=packtpub.com&utm_medium=blog&utm_content=blog&utm_campaign=mdb_005119.
Friends, you can see my biodata in the index pages of the book.

Tuesday, September 28, 2010

weblogic.transaction.internal.TimedOutException : Transaction Rolledback

In SOA 11g :
####################

nested exception is: weblogic.transaction.internal.TimedOutException: Transaction timed out after 299 seconds
BEA1-30EEAE1332BCF5602AFB
at weblogic.ejb.container.internal.EJBRuntimeUtils.throwEJBException(EJBRuntimeUtils.java:148)
at weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:567)
at weblogic.ejb.container.internal.BaseLocalObject.__WL_postInvokeTxRetry(BaseLocalObject.java:427)
at com.collaxa.cube.engine.ejb.impl.bpel.BPELDeliveryBean_5k948i_ICubeDeliveryLocalBeanImpl.handleInvoke(BPELDeliveryBean_5k948i_ICubeDeliveryLocalBeanImpl.java:276)
at com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessageHandler.handle(InvokeInstanceMessageHandler.java:35)
at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:141)
at com.collaxa.cube.engine.dispatch.BaseDispatchTask.run(BaseDispatchTask.java:82)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Caused by: weblogic.transaction.internal.TimedOutException: Transaction timed out after 299 seconds
BEA1-30EEAE1332BCF5602AFB
at weblogic.transaction.internal.ServerTransactionImpl.wakeUp(ServerTransactionImpl.java:1733)
at weblogic.transaction.internal.ServerTransactionManagerImpl.processTimedOutTransactions(ServerTransactionManagerImpl.java:1578)
at weblogic.transaction.internal.TransactionManagerImpl.wakeUp(TransactionManagerImpl.java:1900)
at weblogic.transaction.internal.ServerTransactionManagerImpl.wakeUp(ServerTransactionManagerImpl.java:1488)
at weblogic.transaction.internal.WLSTimer.timerExpired(WLSTimer.java:35)
at weblogic.timers.internal.TimerImpl.run(TimerImpl.java:273)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)

]]
[2010-09-14T12:11:59.856+10:00] [soa_server1] [ERROR] [] [oracle.soa.bpel.engine.dispatch] [tid: orabpel.invoke.pool-4.thread-17] [userId: ] [ecid: 0000IgDwXA8DkZt5Gf_Aif1CYSZb000mvK,0:14:100000016] [APP: soa-infra] [dcid: 881a76989790c302:-9fb0eaf:12afa3cb2aa:-7ffd-0000000000001d8a] Failed to handle dispatch message ... exception ORABPEL-05002[[

Message handle error.
error while attempting to process the message "com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessage"; the reported exception is: Transaction Rolledback.: weblogic.transaction.internal.TimedOutException: Transaction timed out after 299 seconds
BEA1-30EEAE1332BCF5602AFB
at weblogic.transaction.internal.ServerTransactionImpl.wakeUp(ServerTransactionImpl.java:1733)
at weblogic.transaction.internal.ServerTransactionManagerImpl.processTimedOutTransactions(ServerTransactionManagerImpl.java:1578)
at weblogic.transaction.internal.TransactionManagerImpl.wakeUp(TransactionManagerImpl.java:1900)
at weblogic.transaction.internal.ServerTransactionManagerImpl.wakeUp(ServerTransactionManagerImpl.java:1488)
at weblogic.transaction.internal.WLSTimer.timerExpired(WLSTimer.java:35)
at weblogic.timers.internal.TimerImpl.run(TimerImpl.java:273)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
; nested exception is: weblogic.transaction.internal.TimedOutException: Transaction timed out after 299 seconds
BEA1-30EEAE1332BCF5602AFB
This error contained an exception thrown by the message handler.
Check the exception trace in the log (with logging level set to debug mode).
ORABPEL-05002

Message handle error.
error while attempting to process the message "com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessage"; the reported exception is: Transaction Rolledback.: weblogic.transaction.internal.TimedOutException: Transaction timed out after 299 seconds
BEA1-30EEAE1332BCF5602AFB
at weblogic.transaction.internal.ServerTransactionImpl.wakeUp(ServerTransactionImpl.java:1733)
at weblogic.transaction.internal.ServerTransactionManagerImpl.processTimedOutTransactions(ServerTransactionManagerImpl.java:1578)
at weblogic.transaction.internal.TransactionManagerImpl.wakeUp(TransactionManagerImpl.java:1900)
at weblogic.transaction.internal.ServerTransactionManagerImpl.wakeUp(ServerTransactionManagerImpl.java:1488)
at weblogic.transaction.internal.WLSTimer.timerExpired(WLSTimer.java:35)
at weblogic.timers.internal.TimerImpl.run(TimerImpl.java:273)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
; nested exception is: weblogic.transaction.internal.TimedOutException: Transaction timed out after 299 seconds
BEA1-30EEAE1332BCF5602AFB
This error contained an exception thrown by the message handler.
Check the exception trace in the log (with logging level set to debug mode).

at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:206)
at com.collaxa.cube.engine.dispatch.BaseDispatchTask.run(BaseDispatchTask.java:82)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)


Solution :
#####################
1) JTA timeout - set to 3600

2) "BPELEngineBean" and "BPELDeliveryBean"timeout - set to 1800

Saturday, September 11, 2010

How to make your File Adapter pick only one file at a time from a location

In SOA 11g, you use File adapter to read files from the given location.
With this read operation it picks all the files at time.

You want to configure File Adapters that it should pick one file at time from the given location with given polling interval.

Solution :

You set the "SingleThreadModel" and "MaxRaiseSize" properties for your file adapter.
Edit the adapter's jca file and add the following properties:

property name="SingleThreadModel" value="true"
property name="MaxRaiseSize" value="1"

You can set these properties also through jdeveloper, by opening composite.xml, selecting the adapter and then changing the properties through the properties panel.

Tuesday, April 27, 2010

ESB Dispatch failed with error Cannot get part 'rootId'

Issue ::
You register an Oracle ESB with some SOAP services and while trying to run the esb, you get the error ::

xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">


xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
xmlns="">env:ESBMessageProcessingFailed
xmlns="">ESB Dispatch failed with error Cannot get part 'rootId'. Part was not found in message; nested exception is: org.collaxa.thirdparty.apache.wsif.WSIFException: Cannot get part 'rootId'. Part was not found in message




Solution:

ESB by default generates ESB WSDL(Java Binding) and SOAP WSDL, By Default ESB WSDL will be invoked for better performance, We have a parameter called "includeESBBinding" to switch Off ESB WSDL, So that we can force to use SOAP based WSDL. So, All you have to do is to force to use SOAP Based WSDL by addding the parameter "includeESBBinding=false" in the Service Definition.

setting includeESBBinding=false on the invoked routing service

Thursday, December 17, 2009

The Oracle BAM Active Data Cache service failed to start - System.DllNotFoundException: Unable to load DLL (OraOps10.dll)

Issue :
##############
You start your DB and then try starting the BAM 10.1.3.x Services. Then, your BAM ADC Service fails to start with the following errors in the BAM ADC log::

2009-12-17 14:15:19,937 [2376] ERROR - ActiveDataCache The Oracle BAM Active Data Cache service failed to start. Oracle.BAM.ActiveDataCache.Common.Exceptions.CacheException: ADC Server exception in Startup(). ---> System.DllNotFoundException: Unable to load DLL (OraOps10.dll).
at Oracle.DataAccess.Client.OpsTrace.GetRegTraceInfo(UInt32& TrcLevel, UInt32& StmtCacheSize)
at Oracle.DataAccess.Client.OraTrace.GetRegistryTraceInfo()
at Oracle.DataAccess.Client.OracleConnection..ctor(String connectionString)
at Oracle.DataAccess.Client.OracleConnection..ctor(String connectionString)
at Oracle.BAM.ActiveDataCache.Kernel.StorageEngine.Oracle.OracleDataFactory.GetConnection()
at Oracle.BAM.ActiveDataCache.Kernel.StorageEngine.Oracle.OracleStorageEngine.GetServerVersion()
at Oracle.BAM.ActiveDataCache.Kernel.StorageEngine.Oracle.OracleStorageEngine.Startup(IDictionary oParameters)
at Oracle.BAM.ActiveDataCache.Kernel.Server.DataStoreServer.Startup()
--- End of inner exception stack trace ---
at Oracle.BAM.ActiveDataCache.Kernel.Server.DataStoreServer.Startup()
at Oracle.BAM.ActiveDataCache.Kernel.Server.Server.Startup()
at Oracle.BAM.ActiveDataCache.Service.DataServer.Run()
2009-12-17 14:16:29,843 [2088] INFO - ActiveDataCache The Oracle BAM Active Data Cache service is starting.
2009-12-17 14:16:29,859 [2088] INFO - Common Using an un-secured connection. Set the BAMSecureServerKey configuration setting to secure the connection.
2009-12-17 14:16:29,890 [2088] INFO - ActiveDataCache Starting up performance counters...
2009-12-17 14:16:29,906 [2088] INFO - ActiveDataCache Performance counters started up completely.
2009-12-17 14:16:30,015 [2088] ERROR - ActiveDataCache Unable to load DLL (OraOps10.dll).
2009-12-17 14:16:30,015 [2088] WARN - ActiveDataCache Exception occurred in method Startup

Stack trace:
at Oracle.DataAccess.Client.OpsTrace.GetRegTraceInfo(UInt32& TrcLevel, UInt32& StmtCacheSize)
at Oracle.DataAccess.Client.OraTrace.GetRegistryTraceInfo()
at Oracle.DataAccess.Client.OracleConnection..ctor(String connectionString)
at Oracle.DataAccess.Client.OracleConnection..ctor(String connectionString)
at Oracle.BAM.ActiveDataCache.Kernel.StorageEngine.Oracle.OracleDataFactory.GetConnection()
at Oracle.BAM.ActiveDataCache.Kernel.StorageEngine.Oracle.OracleStorageEngine.GetServerVersion()
at Oracle.BAM.ActiveDataCache.Kernel.StorageEngine.Oracle.OracleStorageEngine.Startup(IDictionary oParameters)
at Oracle.BAM.ActiveDataCache.Kernel.Server.DataStoreServer.Startup()

2009-12-17 14:16:30,015 [2088] ERROR - ActiveDataCache The Oracle BAM Active Data Cache service failed to start. Oracle.BAM.ActiveDataCache.Common.Exceptions.CacheException: ADC Server exception in Startup(). ---> System.DllNotFoundException: Unable to load DLL (OraOps10.dll).
at Oracle.DataAccess.Client.OpsTrace.GetRegTraceInfo(UInt32& TrcLevel, UInt32& StmtCacheSize)
at Oracle.DataAccess.Client.OraTrace.GetRegistryTraceInfo()
at Oracle.DataAccess.Client.OracleConnection..ctor(String connectionString)
at Oracle.DataAccess.Client.OracleConnection..ctor(String connectionString)
at Oracle.BAM.ActiveDataCache.Kernel.StorageEngine.Oracle.OracleDataFactory.GetConnection()
at Oracle.BAM.ActiveDataCache.Kernel.StorageEngine.Oracle.OracleStorageEngine.GetServerVersion()
at Oracle.BAM.ActiveDataCache.Kernel.StorageEngine.Oracle.OracleStorageEngine.Startup(IDictionary oParameters)
at Oracle.BAM.ActiveDataCache.Kernel.Server.DataStoreServer.Startup()
--- End of inner exception stack trace ---
at Oracle.BAM.ActiveDataCache.Kernel.Server.DataStoreServer.Startup()
at Oracle.BAM.ActiveDataCache.Kernel.Server.Server.Startup()
at Oracle.BAM.ActiveDataCache.Service.DataServer.Run()
2009-12-17 14:16:50,687 [4980] INFO - ActiveDataCache The Oracle BAM Active Data Cache service is starting.
2009-12-17 14:16:50,703 [4980] INFO - Common Using an un-secured connection. Set the BAMSecureServerKey configuration setting to secure the connection.
2009-12-17 14:16:50,734 [4980] INFO - ActiveDataCache Starting up performance counters...
2009-12-17 14:16:50,750 [4980] INFO - ActiveDataCache Performance counters started up completely.
2009-12-17 14:16:50,828 [4980] ERROR - ActiveDataCache Unable to load DLL (OraOps10.dll).
2009-12-17 14:16:50,828 [4980] WARN - ActiveDataCache Exception occurred in method Startup







Solution :
####################
Go to your BAM installed home in your local folder. Copy the C:\OracleBAM\ClientForBAM\BIN location and then go to My Computer - > Advanced - Environment Variables - > Path - Edit - > Paste this location C:\OracleBAM\ClientForBAM\BIN as the first entry in the path. Click OK.
Now, try starting your BAM Services. All the services including your BAM ADC Service starts successfully with logs as below ::


2009-12-17 14:20:24,640 [2432] INFO - ActiveDataCache The Oracle BAM Active Data Cache service is starting.
2009-12-17 14:20:24,656 [2432] INFO - Common Using an un-secured connection. Set the BAMSecureServerKey configuration setting to secure the connection.
2009-12-17 14:20:24,671 [2432] INFO - ActiveDataCache Starting up performance counters...
2009-12-17 14:20:24,687 [2432] INFO - ActiveDataCache Performance counters started up completely.
2009-12-17 14:20:28,859 [2432] DEBUG - ActiveDataCache Data Storage Engine is Oracle
2009-12-17 14:20:32,750 [2432] DEBUG - ActiveDataCache ADC schema version is 1003.0
2009-12-17 14:20:36,296 [2432] INFO - ActiveDataCache Accepting requests on tcp:4033
2009-12-17 14:20:36,296 [2432] INFO - ActiveDataCache The Oracle BAM Active Data Cache service has started.
2009-12-17 14:20:37,453 [5272] DEBUG - ActiveDataCache Exists:SysIterUser
2009-12-17 14:20:37,546 [5272] DEBUG - ActiveDataCache OpenViewset: SysIterUser:7afac3f8-17aa-4e14-89dc-e8e3467b47a5
2009-12-17 14:20:37,562 [5272] DEBUG - ActiveDataCache Insta-Close Viewset: 7afac3f8-17aa-4e14-89dc-e8e3467b47a5
2009-12-17 14:20:37,593 [5272] DEBUG - ActiveDataCache Exists:SysIterUser
2009-12-17 14:20:37,593 [5272] DEBUG - ActiveDataCache OpenViewset: SysIterUser:86d705f0-8d27-4b34-b84a-ae7c0f01cefe
2009-12-17 14:20:37,593 [5272] DEBUG - ActiveDataCache Insta-Close Viewset: 86d705f0-8d27-4b34-b84a-ae7c0f01cefe
2009-12-17 14:20:37,609 [5272] DEBUG - ActiveDataCache Exists:SysIterRolePrivilegeMapping
2009-12-17 14:20:37,703 [5272] DEBUG - ActiveDataCache Exists:SysIterUser
2009-12-17 14:20:37,703 [5272] DEBUG - ActiveDataCache OpenViewset: SysIterUser:839b2c8f-db8a-4c0f-b77d-6b4992f44690
2009-12-17 14:20:37,703 [5272] DEBUG - ActiveDataCache Insta-Close Viewset: 839b2c8f-db8a-4c0f-b77d-6b4992f44690
2009-12-17 14:20:37,703 [5272] DEBUG - ActiveDataCache Exists:SysIterMCProp
2009-12-17 14:20:37,734 [5272] DEBUG - ActiveDataCache OpenViewset: SysIterMCProp:5598ea8e-a7b5-4bbd-a69e-1857309d9339
2009-12-17 14:20:37,734 [5272] DEBUG - ActiveDataCache Insta-Close Viewset: 5598ea8e-a7b5-4bbd-a69e-1857309d9339
2009-12-17 14:20:37,734 [5272] DEBUG - ActiveDataCache Exists:SysIterMCProp
2009-12-17 14:20:37,734 [5272] DEBUG - ActiveDataCache OpenViewset: SysIterMCProp:1fb4f0fd-d9ea-4188-8aa0-9ecd9a3f8f5b
2009-12-17 14:20:37,734 [5272] DEBUG - ActiveDataCache Insta-Close Viewset: 1fb4f0fd-d9ea-4188-8aa0-9ecd9a3f8f5b
2009-12-17 14:20:37,953 [5272] DEBUG - ActiveDataCache Exists:SysIterMCProp
2009-12-17 14:20:37,968 [5272] DEBUG - ActiveDataCache OpenViewset: SysIterMCProp:542b423c-67ca-48c0-961d-02e76c978180
2009-12-17 14:20:37,968 [5272] DEBUG - ActiveDataCache Insta-Close Viewset: 542b423c-67ca-48c0-961d-02e76c978180
2009-12-17 14:20:37,968 [5272] DEBUG - ActiveDataCache Exists:SysIterMCProp
2009-12-17 14:20:37,968 [5272] DEBUG - ActiveDataCache OpenViewset: SysIterMCProp:cb67b151-d9ab-4cbf-a60b-34ae32fb8b3a
2009-12-17 14:20:37,968 [5272] DEBUG - ActiveDataCache Insta-Close Viewset: cb67b151-d9ab-4cbf-a60b-34ae32fb8b3a
2009-12-17 14:20:37,968 [5272] DEBUG - ActiveDataCache Exists:SysIterMCProp
2009-12-17 14:20:37,968 [5272] DEBUG - ActiveDataCache OpenViewset: SysIterMCProp:a0c77d52-c331-4134-8615-28d256b23d8b
2009-12-17 14:20:37,968 [5272] DEBUG - ActiveDataCache Insta-Close Viewset: a0c77d52-c331-4134-8615-28d256b23d8b
2009-12-17 14:20:37,968 [5272] DEBUG - ActiveDataCache Exists:SysIterMCProp
2009-12-17 14:20:37,984 [5272] DEBUG - ActiveDataCache OpenViewset: SysIterMCProp:ef7d8e46-206f-4765-9d25-d36d539c1b0b
2009-12-17 14:20:37,984 [5272] DEBUG - ActiveDataCache Insta-Close Viewset: ef7d8e46-206f-4765-9d25-d36d539c1b0b
2009-12-17 14:20:38,000 [5272] DEBUG - ActiveDataCache Exists:SysIterUser
2009-12-17 14:20:38,015 [5272] DEBUG - ActiveDataCache OpenViewset: SysIterUser:2b68b7b5-00ba-4f7a-bea7-d1d43c8e6510
2009-12-17 14:20:38,015 [5272] DEBUG - ActiveDataCache Insta-Close Viewset: 2b68b7b5-00ba-4f7a-bea7-d1d43c8e6510
2009-12-17 14:20:38,031 [5272] DEBUG - ActiveDataCache Exists:SysIterUser
2009-12-17 14:20:38,031 [5272] DEBUG - ActiveDataCache OpenViewset: SysIterUser:8342b9b0-f4a9-4291-9474-01417e334b40
2009-12-17 14:20:38,031 [5272] DEBUG - ActiveDataCache Insta-Close Viewset: 8342b9b0-f4a9-4291-9474-01417e334b40
2009-12-17 14:20:38,031 [5272] DEBUG - ActiveDataCache Exists:SysIterRule
2009-12-17 14:20:38,046 [5272] DEBUG - ActiveDataCache Exists:SysIterUser
2009-12-17 14:20:38,046 [5272] DEBUG - ActiveDataCache OpenViewset: SysIterUser:c43efc38-6ca7-4ffd-857a-ddd9e1fb22af
2009-12-17 14:20:38,046 [5272] DEBUG - ActiveDataCache Insta-Close Viewset: c43efc38-6ca7-4ffd-857a-ddd9e1fb22af
2009-12-17 14:20:38,046 [5272] DEBUG - ActiveDataCache Exists:SysIterUser
2009-12-17 14:20:38,062 [5272] DEBUG - ActiveDataCache OpenViewset: SysIterUser:ab03cf32-2401-4469-8faf-7ff2f8938fc8
2009-12-17 14:20:38,062 [5272] DEBUG - ActiveDataCache Insta-Close Viewset: ab03cf32-2401-4469-8faf-7ff2f8938fc8
2009-12-17 14:20:38,062 [5272] DEBUG - ActiveDataCache Exists:SysIterEscalation
2009-12-17 14:20:38,078 [5272] DEBUG - ActiveDataCache Exists:SysIterRule
2009-12-17 14:20:38,109 [5272] DEBUG - ActiveDataCache OpenViewset: SysIterRule:de488111-4227-43eb-9e56-7e645c1fbfad
2009-12-17 14:20:38,109 [5272] DEBUG - ActiveDataCache Insta-Close Viewset: de488111-4227-43eb-9e56-7e645c1fbfad
2009-12-17 14:20:38,109 [5272] DEBUG - ActiveDataCache Exists:SysIterUser

Wednesday, September 02, 2009

[Error : Cannot load apachemoduleossl.dll into server] While Applying 10.1.3.5 Patchset On 10.1.3.1.0 SOA Oracle

Symptoms
You have an existing 10.1.3.1.0 SOA Suite Installation, upgraded the orabpel and oraesb schemas with 10.1.3.5 schema upgrade scripts, and then start applying the 10.1.3.5 patchset on it.

While applying the patchset, the OUI Configuration Assistant fails with following errors :

Syntax error on line 278 of d:/soa331/apache/apache/conf/httpd.conf:
Cannot load d:/soa331/apache/apache/modules/apachemoduleossl.dll into server: (127) The specified procedure could not be found:

Cause
This is because the ApacheModuleOSSL.dll is not commented in the SOA_ORACLE_HOME\Apache\Apache\conf\httpd.conf file.
Solution
Replace the 10.1.3.5 SOA_ORACLE_HOME\Apache\Apache\modules\ApacheModuleOSSL.dll with 10.1.3.4 SOA_ORACLE_HOME\Apache\Apache\modules\ApacheModuleOSSL.dll
Open the 10.1.3.5 SOA_ORACLE_HOME\Apache\Apache\conf\httpd.conf file and change the entry below from :

LoadModule ossl_module modules/ApacheModuleOSSL.DLL


TO

#
#LoadModule ossl_module modules/ApacheModuleOSSL.DLL
#



3. Open the 10.1.3.5 SOA_ORACLE_HOME\Apache\Apache\conf\httpd.conf file and change the entry below from :

Include the SSL definitions and Virtual Host container
include "D:\SOA331\Apache\Apache\conf\ssl.conf"
TO


# Include the SSL definitions and Virtual Host container
# include "D:\SOA331\Apache\Apache\conf\ssl.conf"
4. Now, when you click on the 'retry' button on the OUI, it completes and 10.1.3.5 patchset gets applied successfully.

Friday, May 08, 2009

[ERROR ORABPEL-10057]: INVALID QUERY IN COPY OPERATION

I created a BPEL project . While trying to assign the values from input
message to output message using assign activity, the namespace prefix is missing for some of the fields in the input message.

Hence am getting the below error
Error(73):
[Error ORABPEL-10057]: invalid query
[Description]: in line 73 of

"C:\jdevstudio10134\jdev\mywork\ManageProductOfferingAvailability\TransformCus
tomerQuoteToServiceOrderAS\bpel\TransformCustomerQuoteToServiceOrderAS.bpel", query

"/client:TransformCustomerQuoteToServiceOrderASProcessRequest/ns1:CustomerQuot
e/CustomerQuoteItem/ns1:id" is invalid, because step 'CustomerQuoteItem' is not valid.. Potential fix]: Check the XML schema and make sure your query string is
valid

Fix : 8500399 & 7174309(workflow)

Tuesday, March 31, 2009

CUSTOM ANT SCRIPTS FOR DEPLOYING ESB PROJECTS

Registration of ESB Projects:

Ant comes up with a specialized task for registering the Oracle ESB projects into the SOA server.


1. Extract ESBMetadataMigration.jar from $SOA_Home\Integration\esb\deployment\documentation.zip

2. Modify the following properties in the ESBMetadataMigrationTaskdefs.xml


project name="ESBMetadataMigrationTaskdefs">
property name="commons.httpclient.home" value="#commons-httpclient jar location"/>
property name="jaxb.v2.0.2.home" value="#jaxb jar location"/>
property name="soa.suite.home" value="#Oracle_SOA_Home"/>
property name="esb.home" value="#ESBMetadataMigration.jar location"/>
!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Custom ant task definitions, to enable import. - This section should be treated as immutable upon installation. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
dirname property="imported.basedir" file="${ant.file.ESBMetadataMigrationTaskdefs}"/>
taskdef resource="oracle/tip/esb/client/anttasks/antlib.xml">
classpath>
pathelement location="${esb.home}/ESBMetadataMigration.jar"/>
pathelement location="${commons.httpclient.home}/commons-httpclient-3.0.1.jar"/>
pathelement location="${soa.suite.home}/lib/xmlparserv2.jar"/>
pathelement location="${soa.suite.home}/integration/esb/lib/commons-logging.jar"/>
pathelement location="${soa.suite.home}/integration/esb/lib/commons-codec-1.3.jar"/>
pathelement location="${soa.suite.home}/integration/esb/lib/oraesb.jar"/>
pathelement location="${jaxb.v2.0.2.home}/lib/activation.jar"/>
pathelement location="${jaxb.v2.0.2.home}/lib/jaxb-api.jar"/>
pathelement location="${jaxb.v2.0.2.home}/lib/jsr173_1.0_api.jar"/>
pathelement location="${jaxb.v2.0.2.home}/lib/jaxb-impl.jar"/>
/classpath>
/taskdef>
/project>

3. Import the following config files in your ant build script

import file="${bpel.home}/utilities/ant-orabpel.xml"/>
import file="${ESBMetaDataLoc}/ESBMetadataMigrationTaskdefs.xml"/>

4. Final step to register the ESB projects;

target name="ESB_1" description="run ESB_1">
echo>Registering ESB_1...
deployESBProjects esbMetadataServerHostname="${http.hostname}"
esbMetadataServerPort="${http.port}"
userName="${admin.user}"
password="${admin.password}">
esbProject directory="${ESB_1.file.path}"/>
/deployESBProjects>
/target>

P.S.: Please note that i have deleted "<" symbol in the beginning of every xml statement, since i was unable to display the xml content as a post. So, add "<" to beginning of each xml line.

Thursday, February 26, 2009

Dehydration Store Tables used in Oracle BPEL PM

cube_instance - stores instance metadata, eg. instance creation date, current
state, title, process identifier

cube_scope - stores the scope data for an instance ... all the variables
declared in the bpel flow are stored here, as well as some internal objects to
help route logic throughout the flow.

work_item - stores activities created by an instance ... all BPEL activities in
a flow will have a work_item created for it. This work item row contains meta
data for the activity ... current state, label, expiration date (used by wait
activities) ... when the engine needs to be restarted and instances recovered,
pending flows are resumed by inspecting their unfinished work items.

document - stores large XML variables. If a variable gets to be larger than a
specific size (configurable via the largeDocumentThreshold property via the
domain configuration page) then the variable is stored in this table to
alleviate loading/saving time from the cube_scope table.


audit_trail - stores the audit trail for instances. The audit trail viewed
from the console is modelled from an XML document. As the instance is worked
on, each activity writes out events to the audit trail as XML which is compress
ed and stored in a raw column. Querying the audit trail via the API/console wil
l join the raw columns together and uncompress the contents into a single XML do
cument.

audit_details - audit details can be logged via the api ... by default
activities such as assign log the variables as audit details (this behavior can
be set via the auditLevel property on the domain configuration page). Details a
re separated from the audit trail because they tend to be very large in size ...
if the user wishes to view a detail they click a link from the audit trail page
and load the detail separately. There is a threshold value for details too ...
if the size of a detail is larger than a specific value (see auditDetailThreshol
d) then it is place in this table, otherwise it is merged into the audit trail r
ow.

dlv_message - callback messages are stored here. All non-invocation messages
are saved here upon receipt. The delivery layer will then attempt to correlate
the message with the receiving instance. This table only stores the metadata
for a message. (eg. current state, process identifier, receive date).

dlv_message_bin - stores the payload of a callback message. The metadata of a
callback message is kept in the dlv_message table, this table only stores the
payload as a blob. This separation allows the metadata to change frequently
without being impacted by the size of the payload (which is stored here and
never modified).

dlv_subscription - stores delivery subscriptions for an instance. Whenever an i
nstance expects a message from a partner (eg. receive, onMessage) a subscription
is written out for that specific receive activity. Once a delivery message is r
eceived the delivery layer attempts to correlate the message with the intended s
ubscription.

invoke_message - stores invocation messages, messages which will result in the
creation of a instance. This table only stores the metadata for an invocation
message (eg. current state, process identifier, receive date).

invoke_message_bin - stores the payload of an invocation message. Serves the
same purpose the dlv_message_bin table does for dlv_message.

task - stores tasks created for an instance. The TaskManager process keeps its
current state in this table. Upon calling invoking the TaskManager process, a
task object is created, with a title, assignee, status, expiration date, etc...
When updates are made to the TaskManager instance via the console the
underlying task object in the db is changed.

schema_md - (just added via patch delivered to Veerle) contains metadata about
columns defined in the orabpel schema. Use case driving this feature was how
to change the size of a custom_key column for a cube_instance row? Changing
the db schema was simple but the engine code assumed a certain length and
truncated values to match that length to avoid a db error being thrown. Now, co
lumn lengths are defined in this table instead of being specified in the code.
To change a column length, change the column definition in the table, then chang
e the value specified in this table, then restart the server.


Column-by-column description:

table ci_id_range

- next_range (integer) - instance ids in the system are allocated on a block
basis ... once all the ids from a block have been allocated, another block is
fetched, next_range specifies the start of the next block.


table cube_instance

- cikey (integer) - primary key ... foreign key for other tables
- domain_ref (smallint) - domain identifier is encoded as a integer to save
space, can be resolved by joining with domain.domain_ref.
- process_id (varchar) - process id
- revision_tag (varchar) - revision tag
- creation_date (date)
- creator (varchar) - user who created instance ... currently not used
- modify_date (date) - date instance was last modified
- modifier (varchar) - user who last modified instance ... currently not used
- state (integer) - current state of instance, see com.oracle.bpel.client.
IInstanceConstants for values
- priority (integer) - current instance priority (user specified, has no impact
on engine)
- title (varchar) - current instance title (user specified, no engine impact)
- status (varchar) - current status (user specified)
- stage (varchar) - current stage (user specified)
- conversation_id (varchar) - extra identifier associated with instance, eg. if
passed in via WS-Addressing or user specified custom key.
- root_id (varchar) - the conversation id of the instance at the top of the
invocation tree. Suppose A -> B -> C, root( B ) = A, root( C ) = A, parent( B )
= A, parent( C ) = B. This instance, instance at the top of the tree will not
have this set.
- parent_id (varchar) - the conversation id of the parent instance that created
this instance, instance at the top of the tree will not have this set.
- scope_revision (integer) - internal checksum of scope bytes ... used to keep
caches in sync
- scope_csize (integer) - compressed size of instance scope in bytes
- scope_usize (integer) - uncompressed size of instance scope in bytes
- process_guid (varchar) - unique identifier for the process this instance be
longs to ... if changes need to be made for all instances of a process, this col
umn is used to query (eg. stale process).
- process_type (integer) - internal
- metadata (varchar) - user specified


table cube_scope

- cikey (integer) - foreign key
- domain_ref (integer) - domain identifier
- modify_date (date) - date scope last modified
- scope_bin (blob) - scope bytes


table work_item

- cikey (integer) - foreign key
- node_id (varchar) - part of work item composite key, identifier for bpel
activity that this work item created for
- scope_id (varchar) - part of work item composite key, identifier for internal
scope that this work item created for (note this is not the scope declared in
bpel, the engine has an internal scope tree that it creates for each instance,
bpel scopes will map to an internal scope but there will be other internal
scopes that have no mapping to the bpel definition).
- count_id (integer) - part of work item composite key, used to distinguish
between work items created from same activity in the same scope.
- domain_ref (integer) - domain identifier
- creation_date (date)
- creator (varchar) - user who created work item ... currently not used
- modify_date (date) - date work item was last modified
- modifier (varchar) - user who last modified work item ... currently not used
- state (integer) - current state of work item, see com.oracle.bpel.client.
IActivityConstants for values
- transition (integer) - internal use, used by engine for routing logic
- exception (integer) - no longer used
- exp_date (date) - expiration date for this work item; wait, onAlarm
activities are implemented as expiration timers.
- exp_flag (integer) - set if a work item has been called back by the
expiration agent (ie. expired).
- priority (integer) - priority of work item, user specified, no engine impact
- label (varchar) - current label (user specified, no engine impact)
- custom_id (varchar) - custom identifier (user specified, no engine impact)
- comments (varchar) - comment field (user specified, no engine impact)
- reference_id (varchar) -
- idempotent_flag (integer) - internal use
- process_guid (varchar) - unique identifier for the process this work item
belongs to ... if changes need to be made for all instances of a process, this
column is used to query (eg. stale process).


table document

- dockey (varchar) - primary key for document
- cikey (integer) - foreign key
- domain_ref (integer) - domain identifier
- classname (varchar) - no longer used
- bin_csize (integer) - compressed size of document in bytes
- bin_usize (integer) - uncompressed size of document in bytes
- bin (blob) - document bytes
- modify_date (date) - date document was last modified


table audit_trail

- cikey (integer) - foreign key
- domain_ref - domain identifier
- count_id (integer) - many audit trail entries may be made for each instance,
this column is incremented for each entry per instance.
- block (integer) - when the instance is dehydrated, the batched audit trail
entries up to that point are written out ... this block ties together all rows
written out at one time.
- block_csize (integer) - compressed size of block in bytes
- block_usize (integer) - uncompressed size of block in bytes
- log (raw) - block bytes


table audit_details

- cikey (integer) - foreign key
- domain_ref (integer) - domain identifier
- detail_id (integer) - part of composite key, means of identifying particular
detail from the audit trail
- bin_csize (integer) - compressed size of detail in bytes
- bin_usize (integer) - uncompressed size of detail in bytes
- bin (blob) - detail bytes


table dlv_message

- conv_id (varchar) - conversation id (correlation id) for the message...this
value is used to correlate the message to the subscription.
- conv_type (integer) - internal use
- message_guid (varchar) - unique identifier for the message...each message
received by the engine is tagged with a message guid.
- domain_ref (integer) - domain identifier
- process_id (varchar) - identifier for process to deliver the message to
- revision_tag (varchar) - identifier for process revision
- operation_name (varchar) - operation name for callback port.
- receive_date (date) - date message was received by engine
- state (integer) - current state of message ... see com.oracle.bpel.client.
IDeliveryConstants for values
- res_process_guid (varchar) - after the matching subscription is found, the
process guid for the subscription is written out here. - res_subscriber
(varchar) - identifier for matching subscription once found.


table dlv_message_bin

- message_guid (varchar) - unique identifier for message
- domain_ref (integer) - domain identifier
- bin_csize (integer) - compressed size of delivery message payload in bytes
- bin_usize (integer) - uncompressed size of delivery message payload in bytes
- bin (blob) - delivery message payload


table dlv_subscription

- conv_id (varchar) - conversation id for subscription, used to help correlate
received delivery messages.
- conv_type (integer) - internal use
- cikey (integer) - foreign key
- domain_ref (integer) - domain identifier
- process_id (varchar) - process identifier for instance
- revision_tag (varchar) - revision tag for process
- process_guid (varchar) - guid for process this subscription belongs to
- operation_name (varchar) - operation name for subscription (receive,
onMessage operation name).
- subscriber_id (varchar) - the work item composite key that this subscription
is positioned at (ie. the key for the receive, onMessage work item).
- service_name (varchar) - internal use
- subscription_date (date) - date subscription was created
- state (integer) - current state of subscription ... see com.oracle.bpel.
client.IDeliveryConstants for values
- properties (varchar) - additional property settings for subscription


table invoke_message

- conv_id (varchar) - conversation id for message, passed into system so
callbacks can correlate properly.
- message_guid (varchar) - unique identifier for message, generated when
invocation message is received by engine.
- domain_ref (integer) - domain identifier
- process_id (varchar) - identifier for process to deliver the message to
- revision_tag (varchar) - revision tag for process
- operation_name (varchar) - operation name for receive activity
- receive_date (date) - date invocation message was received by engine
- state - current state of invocation message, see com.oracle.bpel.client.
IDeliveryConstants for values
- priority (integer) - priority for invocation message, this value will be used
by the engine dispatching layer to rank messages according to importance ...
lower values mean higher priority ... messages with higher priority are dispatch
ed to threads faster than messages with lower values.
- properties (varchar) - additional property settings for message


table invoke_message_bin

- message_guid (varchar) - unique identifier for message
- domain_ref (integer) - domain identifier
- bin_csize (integer) - compressed size of invocation message payload in bytes
- bin_usize (integer) - uncompressed size of invocation message payload in bytes
- bin (blob) - invocation message bytes


table task

- domain_ref (integer) - domain identifier
- conversation_id (varchar) - conversation id for task instance ... allows task
instance to callback to client
- title (varchar) - current title for task, user specified
- creation_date (date) - date task was created
- creator (varchar) - user who created task
- modify_date (date) - date task was last modified
- modifier (varchar) - user who last modified task
- assignee (varchar) - current assignee of task, user specified, no engine
impact
- status (varchar) - current status, user specified, no engine impact
- expired (integer) - flag is set if task has expired
- exp_date (date) - expiration date for task, expiration actually takes place
on work item in TaskManaged instance, upon expiration task row is updated
- priority (integer) - current task priority, user specified, no engine impact
- template (varchar) - not used
- custom_key (varchar) - user specified custom key
- conclusion (varchar) - user specified conclusion, no engine impact

Thursday, February 12, 2009

HOW TO USE CUSTOM EXTENSION FUNCTIONS IN ESB VIA JDEVELOPER 10.1.3.4

How to create custom xpath functions in JDeveloper.



ANSWER
=======
My Sample extension function save in D:\myxpath

---------------------------------------
package myxpath.functions;
public class StringTest
{
public StringTest()
{
}
public static String toUpperCase(String s)
{ return s.toUpperCase();
}
}

----------------------------------------------

set PATH=D:\ORACLE\jdevstudio10134\jdk\bin;%PATH%
D:\myxpath>javac StringTest.java -d .

(Note -d and . it creates the class file with directory structure)

Create the XSL Mappers extesnion XML file
D:\myxpath\myxpathExtensionFunctions.xml
==========================================


xmlns:sample="http://www.oracle.com/XSL/Transform/java/myxpath.functions.StringTest">







============================================
For more info Refer:
SOA_Oracle_home\bpel\samples\demos\XSLMapper\ExtensionFunction\README.txt

Create the JDEV Extesnion XML file in
D:\myxpath\meta-inf\extension.xml
============================================

id="myxpath.functions.StringTest"
version="10.1.3"
esdk-version="1.0">
StringTest
Anirudh Pucha

============================================
For more info refer:
/jdev/doc/extension/ide-extension-packaging.html

Create the JAR file
D:\myxpath>jar -cvf myxpath.functions.StringTest.10.1.3.jar
myxpath\functions\StringTest.class
-m meta-inf\extension.xml

Copy this JAR file to \jdev\extensions\
For Eg: D:\ORACLE\jdevstudio10134\jdev\extensions\myxpath.functions.StringTest.10.1.3.jar

Goto Jdev->Tools->Prefereance->XSl Maps->User Defined Extension config file and give
myxpathExtensionFunctions.xml

Restart your JDEV and now you should be able to see the Custom XSL Map function under :
User Defined Function in XSL Mapper design.

Now you can use this custom function like this in design time:


To use this function at runtime for ESB:
Open your j2ee\oc4j_soa\config\server.xml and add a entry below

as follows :

Sunday, January 25, 2009

ESBRuntimeException: Designtime cache has not been initialized

when I click on the Instances icon on the right on the screen I get the
@ following error text box on the screen :
@ 08/07/22 11:57:33 oracle.tip.esb.infra.exception.ESBRuntimeException:
@ Designtime cache has not been initialized
@ Please look in logs for following signs of failure. Fix them and restart. (a)
@ Database access errors (b) ESB Bootstrap errors (c) OC4J class load errors
@ (d) Product installation errors (e) Export ESB params and verify if host and
@ port parameters are correct. Please contact Oracle Support if unable to fix
@ the issue.
@ 08/07/22 11:57:33 at
@ oracle.tip.esb.console.CacheManager.getInitializedInstance(CacheManager.java:3
@ 19)
@ 08/07/22 11:57:33 at
@ oracle.tip.esb.console.XMLConsoleManagerImpl.(XMLConsoleManagerImpl.java
@ :218)
@ 08/07/22 11:57:33 at
@ oracle.tip.esb.console.ConsoleManagerFactory.getConsoleManager(ConsoleManagerF
@ actory.java:57)
@ 08/07/22 11:57:33 at
@ oracle.tip.esb.configuration.servlet.command.ServiceExplorerCommand.execute(Se
@ rviceExplorerCommand.java:45)

Probable Solution :

Note: Assuming here your esb-dt container name is OC4J_ESBDT

Make sure the directory esb-dt exist in $ORACLE_HOME/j2ee/OC4J_ESBDT/application-deployments/

Check the opmn/logs/default*.log and opmn.log (in the same location) files to see if there are any ESB related
exceptions logged.

If there is a timeout issues in
$ORACLE_HOME/j2ee/OC4J_ESBDT/log/OC4J_ESBDT_ESBDT_GROUP_1/oc4j/log.xml
Then

1. Increase the value of the transaction-timeout parameter in
the $ORACLE_HOME/j2ee/OC4J_ESBDT/config/transaction-manager.xml file.
For eg: transaction-timeout="300"

2. Increase the value of the xa_timeout parameter in the
$ORACLE_HOME/integration/esb/esb_config.ini file.

For Eg:
xa_timeout=3600
jms_receive_timeout=300

3. Login into repoistory DB as system user and then issue: ALTER SYSTEM set OPEN_CURSORS=5000 scope=both;

4. Restart the ESB Server ( opmnctl stopall; opmnctl startall).




Make sure you can connect to your repository database with oraesb schema.
If the passowrd is wrong to reset it for oc4jadmin
Check /oracle/SOA/SOA10gR3_HA/j2ee/OC4J_ESBDT/config/system-jazn-data.xml
Refer: Note 470680.1



Check the values for the ESB_PARAMETERS and make sure the 'DT_OC4J_HTTP_PORT' and 'DT_OC4J_HOST' are correct.
This should be your loadbalancer port and host name in HA.
Also make sure other parameters are configured properly according to your type of JMS ( OracleASjms or OracleOJMS)
Refer Note:453355.1
For HA: http://download.oracle.com/docs/cd/E10291_01/core.1013/e10294/webapp.htm#CHDCFDJG


If it is running on HTTPS then refer: Note 461419.1



Make sure the ESB-DT application is running by issuing:
opmnctl status -app
For Eg: If it is running then it wil be listed like this
4513 | esb-dt | started | g_rt_id | internal-ESB | true | default


If it is not running which means the appliction is not installed properly or it is not been started.
Try to start the application:
Opmnctl startproc application=esb-dt
Remember if it is HA dont use restartproc, use startproc or stopproc.


To make it starts automatically everytime we restart the instance check these:

/oracle/SOA/SOA10gR3_HA/j2ee/OC4J_ESBDT/config/default-web-site.xml




/oracle/SOA/SOA10gR3_HA/j2ee/OC4J_ESBDT/config/server.xml


Courtesy : Thanks to Arun who wrote this note in Metalink.


After ESB Console starts and If Instances are not showingup then set TrackingEnabled=true

If you encounter following error:

Encountered following exception in log.xml
java.lang.NoClassDefFoundError: org/apache/log4j/Category))

The workaround is as follows -

Add the following line to the orion-application.xml file for esbdt


Restart the instance

JVM Tuning for SOA Suite Applications

JVM Tuning for SOA Suite Applications :
1. General Considerations

JVM parameters play a major role in the BPEL engine's performance. The major factors that affect
performance relate to the heap size.

JVM Heap Size:
--------------------
The amount of heap required varies based on the application and on the available memory, for most
j2ee server applications containers, if you have sufficient memory, then it would be recommended
to use a heap size of 512 MB or larger.

To maximize performance, set the maximum heap size to accommodate application requirements and
make sure that the total memory consumed by all of the JVMs running on the system does not exceed
the memory capacity of your system.

Maximum heap size:
---------------------------
The maximum heap size controls how much memory the JVM can use. If your BPEL instance runs on a
dedicated machine, set this as high as the maximum addressable memory space of your Operating
System.

Determine the maximum heap size for yourplatform using one of the following methods:

1.On Windows you should set the max heap to 1300m and the min heap to 500m

2.Consult your platform vendor documentation/Web page for information regarding the maximum heap
size for your particular JVM version.

3.Determine the maximum heap using a binary search for your platform/JDK combination by running
Java from the command line and specifying the maximum heap. For example,

java -mx3000m -version

You may see a message similar to the following:

Error occurred during initialization of VM
Could not reserve enough space for object heap

In this case, decrease the maximum heap value until you do not get the error message (and the
version is displayed). You may wish to start by setting the maximum heap to 1000M.

For example:

a) Start at 1000M
b) If that works, set it to 3000M.
c) If 3000M doesn't work, set it to 2000M
d) Continue until you find your platform/JDK maximum heap size.

Once you have determined the maximum heap size, specify it in your Jserv.properties file such that
the Java maximum heap is either the platform maximum or 3GB, whichever is smaller.

For example, your Jserv.properties entry might be:

wrapper.bin.parameters=-Xms500M -Xmx -XX:NewSize=128M -XX:MaxNewSize=128M

In this example, substitute the actual value for .

For example:

wrapper.bin.parameters=-Xms500M -Xmx3000M -XX:NewSize=128M -XX:MaxNewSize=128M

Initial heap size:
--------------------
Sun Micro System recommends setting the initial (minimum) heap size to be equal to the maximum
heap size for optimal performance. The following option starts JVM with an initial heap size of 2GB:
-Xmx2048m -Xms2048m

Eden Space:
--------------------
Another important heap configuration are the garbage collector's generational settings. The
garbage collector optimizes collection by classifying objects by how long they live. Most of the
BPEL engine's objects are short lived, thus they live in the eden space. We recommend sizing the
eden space to be 60-70% of the total maximum heap size. The following command line starts Java
with a eden sizing that is 60% of the maximum heap size:
-Xmx2048m -Xms2048m –Xmn1228m

Survivor Ratio
------------------
The young generation consists of eden plus two equally sized survivor spaces. Objects are
initially allocated in eden. One survivor space is empty at any time, and serves as a destination
of the next, copying collection of any live objects in eden and the other survivor space. Objects
are copied between survivor spaces in this way until they are old enough to be tenured, or copied
to the tenured generation.

To size the survivors and eden generation the following options can be used:

allocate 6/8 to eden space and 1/8 to each survivor space

(allocated from -XX:NewSize=1228m -XX:MaxNewSize=1228m -XX:SurvivorRatio=6

Eden : 6/8 * 1228 = 921

Survivors : 1/8 * 1228 = 153 ( survivor 1 and 2 are of equal size )

Tenure : total heap - new size = 2048 - 1228 = 820

-Xmx2048m -Xms2048m –Xmn1228m -XX:NewSize=1228 -XX:MaxNewSize=1228m

-XX:SurvivorRatio=6

Permgen
--------------
The permanent generation holds data needed by JVM to describe objects that do not have an
equivalence at the Java language level. Eg: objects describing classes and methods.

The Permanent Generation is allocated outside of the heap.
- The defaults are typically too small for J2EE Applications.
- Also note, using certain java.lang.reflect can generate temporary class definitions that can
easily impact the permanent generation
- Consider setting –XX:MaxPermSize equal to –XX:PermSize to minimize major collections
-XX:MaxPermSize=128m –XX:PermSize=128m

Aggressive heap setting
---------------------------------
If your machine has multiple CPUs, it is recommended to use -XX:+AggressiveHeap JVM flag. The
-XX:+AggressiveHeap option inspects the machine resources (size of memory and number of
processors) and attempts to set various parameters to be optimal for long-running, memory
allocation-intensive jobs. The following option starts JVM with aggressive heap settings:
-Xmx2048m -Xms2048m –Xmn1228m –XX:+AggressiveHeap

GC Parameters to Help Tuning with Sun JVMs
---------------------------------------------------------------
-verbose:gc
-XX:+PrintGCDetails
-XX:+PrintHeapAtGC
-XX:+PrintTenuringDistribution

These will give the details for the tenuring distribution so you can see if you allocations are
working the way you expect.

Note : There are many factors which influence the JVM settings, not only the size of the RAM, but
also the other applications running on the same machine etc. Because all the memory and other
resources on a machine is not available to container running the SOA Suite. The Operating System
also needs some resources plus other servers and applications.Also within the single server there
are multiple JVM running. Depending on the type of install, in case of advanced installation a
minimum of two instances will be running - home, oc4j_soa. Even if you have ample of resources
still having a very large heap for the container to work with is counter productive because of
java Garbage collection. The larger the heap the more time it takes to do GC hence the impact on
performance.

For example, for a machine with 4GB there is not much space anyway, you can simply use one OC4J
instance with one JVM per component.

What you should consider is not exceeding -Xmx1024m per JVM running OC4J, but rather consider
scaling out to multiple JVMs.

Tuesday, December 30, 2008

ESB : oracle.tip.esb.console.exception.SchemaValidationException

You deploy an esb project and try to view it via console, and get the following error :


oracle.tip.esb.console.exception.SchemaValidationException: The metadata XML that was processed does not comply with the ESB Metadata XML Schema. Cause: Invalid value '' for attribute: 'executionType'.
If you are manually editing the Import Files, ensure that the metadata is valid and well formed. Otherwise, this is an Internal Error.

Solution :
Add an attribute (executionType="Immediate") to the ESB routing service.

Thursday, December 18, 2008

Exception on JaxRpc invoke: HTTP Transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException

A Process (without any human task) is initiated and invoke a sync web service call. The system
returns the following error:
Exception on JaxRpc invoke: HTTP Transport error: javax.xml.soap.SOAPException:
java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message Send failed:
Connection reset

After receiving this message, one minute later, another new process is initiated, and no error
returned.

Solution :

Fixed in Bug : 7445876

ORABPEL-09715 ERROR: exception symbol "09715" not found in resource file.

You get the errors below when attempting to invoke a jsp using predicate worklist API :

08/10/20 18:59:49 ERROR: exception symbol "09715" not found in resource file.
08/10/20 18:59:49 ORABPEL-09715

08/10/20 18:59:49 at oracle.bpel.services.workflow.repos.Predicate.appendPredicateList(Predicate.java:808)
08/10/20 18:59:49 at oracle.bpel.services.workflow.repos.Predicate.appendPredicateList(Predicate.java:763)
08/10/20 18:59:49 at oracle.bpel.services.workflow.repos.Predicate.(Predicate.java:488)
08/10/20 18:59:49 at _testPredicate._jspService(_testPredicate.java:53)
08/10/20 18:59:49 at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:59)
08/10/20 18:59:49 at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:462)
08/10/20 18:59:49 at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:594)
08/10/20 18:59:49 at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:518)
08/10/20 18:59:49 at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
08/10/20 18:59:49 at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:713)
08/10/20 18:59:49 at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370)
08/10/20 18:59:49 at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:871)
08/10/20 18:59:49 at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:453)
08/10/20 18:59:49 at com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:221)
08/10/20 18:59:49 at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:122)
08/10/20 18:59:49 at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:111)
08/10/20 18:59:49 at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
08/10/20 18:59:49 at oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(ServerSocketAcceptHandler.java:239)
08/10/20 18:59:49 at oracle.oc4j.network.ServerSocketAcceptHandler.access$700(ServerSocketAcceptHandler.java:34)
08/10/20 18:59:49 at oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(ServerSocketAcceptHandler.java:880)
08/10/20 18:59:49 at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
08/10/20 18:59:49 at java.lang.Thread.run(Thread.java:595)

Solution :

Apply 10.1.3.4 MLR # 3 : Patch 7586063

FTP Command: RETR, reply: 550 RETR Error

You get the following error while reading pdf file from the FTP folder through FTP adapter in the bpel process:

FTP Command: RETR, reply:
550 RETR Error: IFS-32615: "/MySharedFolders/abc/AAAA_TR_Ba?ak Hyytt
gogorta A.?._555555.pdf": Path is invalid.

Unable to get Binary file '/MySharedFolders/abc/AAAA_TR_Ba?ak Hyytt
gogorta A.?._555555.pdf'; FTP command RETR returned une
xpected reply code : 550


Solution :

Configure serverEncoding as UTF-8 in oc4j-ra.xml.

Monday, December 15, 2008

Tuning JCA Connection Cache in BPEL PM & ESB

Tuning JCA Connection Cache :

The JCA WSIF Provider supports a JCA Connection Cache, which resides in the JCA WSIFPort implementation class.

Normally the JCA Connection Cache (Pool) is boundless, but it can be capped (through a partnerlink property). If for example the max size is 10, and 15 concurrent threads are trying to invoke the same endpoint, 5 of them will throw a (retryable) remote fault. This Connection pool ensures single threading through JCA LocalTransactions.

For BPEL these properties are configured in bpel.xml. For ESB, they are configured in the .esbsvc file as Endpoint Properties, normally set via the ESB Console.

true

Normally this property is derived from the declared transactional support of the adapter (e.g. the File adapter does not this connection pool since it is multi thread safe),
but that can be overridden thru this property.

500

If this is not specified, is assumed. Applies on a per WSIFPort (partnerlink) basis.

50000

Maximum age of idle connections in the pool - important since some type of connections hold on to expensive external resources (e.g. DB shadow processes). Measured in ms.

10000

How often to perform the idle connection scan (measured in ms).

To entirely disable the JCA Connection Cache/Pool, you can configure the following Endpoint Property:

false

This will make the Adapter Framework acquire and release CCI connections for each adapter Interaction (invocation)

Thursday, December 11, 2008

AIP-11052 constraint violation:SYS_C0011059 Error Importing the export.xml file in B2B Console

You take a export of the any B2B testcase repository. When you try to import this export.xml in B2B Console, you might encounter this error on the console itself :

AIP-11052: Writing following objects: Endpoint failed due to following
constraint violation: SYS_C0011059

Solution:
Download and Apply the Patch 7457066, which is 10.1.2.3 MLR # 5 for B2B.

AIP-16001 When Validating the Trading Partner Agreement on B2B Console

You try to validate the imported xml file using the “Validate” Button present at the top right part of the B2B Console and encounter the following errors :

An error occurred during validation.

1. Error -: AIP-16001: The model validation engine failed due to an internal system error.
2. Error -: AIP-11016: SQL error


Solution :
Apply Patch 6488268
When you validate it for the first time, you might get the same error. Then validate it for multiple times by refreshing the B2B Console
Now, you will see that the error disappears and validates the Trading Partner Agreement successfully.

Sunday, October 19, 2008

Yet another Contribution of my GURU to the SOA Community

I am so excited to quote this :)

http://www.soapatterns.com/ - My guru - Clemens Utschig is one of the main authors..

Hurray!!!!!! Looking forward to read it once published.

Friday, August 29, 2008

Error: ORABPEL-11947 - Enqueue Failed, SQL Wrapper Has Been Closed Using AQ Adapter

While doing the stress test you get following error:

http://schemas.oracle.com/bpel/extension}remoteFault" has been thrown. -
- 0
-
Enqueue failed; nested exception is: ORABPEL-11947 Please examine the log file to determine the problem.

SQL wrapper has been closed!


Domain log shows following error


java.sql.SQLException: SQL wrapper has been closed!
at oracle.oc4j.sql.proxy.SQLBCELProxy.oc4j_intercept(SQLBCELProxy.java:296)
at oracle_jdbc_driver_T4CPreparedStatement_Proxy.executeQuery()
at oracle.tip.adapter.aq.database.Queue.getEmptyCLOB(Queue.java:152)
at oracle.tip.adapter.aq.database.EnqueueObject.setCLOBElement(EnqueueObject.java:156)
at
oracle.tip.adapter.aq.database.MessageWriter.buildEnqueueObject(MessageWriter.java:1070)

On debugging using any of the data-source, transaction or jdbc debug options as below
-Ddatasource.verbose=true
-DDataSourceConnection.debug=true
-Djdbc.connection.debug=true
-Djdbc.debug=true
-Dtransaction.debug=true

You would see the following error as well
oracle.AQ.AQException: JMS-184: Queue object is invalid
at oracle.AQ.AQUtil.throwAQEx(AQUtil.java:167)
at oracle.AQ.AQOracleQueue.enqueue(AQOracleQueue.java:1028)
at oracle.tip.adapter.aq.database.MessageWriter.doEnqueue(MessageWriter.java:640)
at oracle.tip.adapter.aq.database.MessageWriter.enqueue(MessageWriter.java:381)
at oracle.tip.adapter.aq.database.MessageWriter.writeMessage(MessageWriter.java:343)
at oracle.tip.adapter.aq.outbound.AQEnqueuer.execute(AQEnqueuer.java:111

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

1. Add the cache properties in bpel.xml under the partner link tag
eg:
partnerLinkBinding ....
....
property name="retryInterval">120 property name="cacheWSIFOperation">true property name="retryMaxCount">10 property name="cacheConnections">false/partnerLinkBinding

2. Define a JCA connection pool in oc4j-ra.xml for the JNDI name which is being used by the
outbound AQ partnerlink.
eg:
connector-factory location="eis/AQ/aqSample" connector-name="AQ Adapter"
....
connection-pooling use="private"
property name="waitTimeout" value="300" /
property name="scheme" value="fixed_wait" /
property name="maxConnections" value="100" /
property name="minConnections" value="0" /

3. Use seperate datasource for reading or writing the queue.

Friday, August 08, 2008

ORABPEL-11430: ERROR IN LISTING FILES IN THE REMOTE DIRECTORY

Issue :
bug 7234557 - ORABPEL-11430: ERROR IN LISTING FILES IN THE REMOTE DIRECTORY
where it states that "FTP Adapter does not supported nested folders" .
How to workaround the issue (except using a Outgoing Folder with no subfolders, as the cst has not control over the FTP server that he is using) ?

Fix:
Fixed in SOA Suite 11g

ESBRuntimeException: Designtime cache has not been initialized

Issue :
Here is the Error Trace:

08/08/06 11:13:31 oracle.tip.esb.infra.exception.ESBRuntimeException: Designtime cache has not been initialized
Please look in logs for following signs of failure. Fix them and restart. (a) Database access errors (b) ESB Bootstrap errors (c) OC4J class load errors (d) Product installation errors (e) Export ESB params and verify if host and port parameters are correct. Please contact Oracle Support if unable to fix the issue.
08/08/06 11:13:31 at oracle.tip.esb.console.CacheManager.getInitializedInstance(CacheManager.java:319)
08/08/06 11:13:31 at oracle.tip.esb.console.XMLConsoleManagerImpl.(XMLConsoleManagerImpl.java:218)
08/08/06 11:13:31 at oracle.tip.esb.console.ConsoleManagerFactory.getConsoleManager(ConsoleManagerFactory.java:57)
08/08/06 11:13:31 at oracle.tip.esb.configuration.servlet.command.ServiceExplorerCommand.execute(ServiceExplorerCommand.java:45)
08/08/06 11:13:31 at oracle.tip.esb.configuration.servlet.CommandServlet.doJob(CommandServlet.java:109)
08/08/06 11:13:31 at oracle.tip.esb.configuration.servlet.CommandServlet.doPost(CommandServlet.java:76)
08/08/06 11:13:31 at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
08/08/06 11:13:31 at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
08/08/06 11:13:31 at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
08/08/06 11:13:31 at oracle.security.jazn.oc4j.JAZNFilter$1.run(JAZNFilter.java:396)
08/08/06 11:13:31 at java.security.AccessController.doPrivileged(Native Method)
08/08/06 11:13:31 at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
08/08/06 11:13:31 at oracle.security.jazn.oc4j.JAZNFilter.doFilter(JAZNFilter.java:410)
08/08/06 11:13:31 at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:623)
08/08/06 11:13:31 at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370)
08/08/06 11:13:31 at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:871)
08/08/06 11:13:31 at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:453)
08/08/06 11:13:31 at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:302)
08/08/06 11:13:31 at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:190)
08/08/06 11:13:31 at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
08/08/06 11:13:31 at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
08/08/06 11:13:31 at java.lang.Thread.run(Thread.java:595)

Solution :
It might be a server network issue.
However, I have logged a bug for it : 7273700 - which has the solution.

B2B Outbound Error -AIP-50014: General Error

You have configured AS2 with signing and encryption. The inbound and synchronous MDN are working fine. However the outbound transactions fail with :

2008.08.07 at 19:03:31:401: Thread-10: B2B - (ERROR) java.lang.NullPointerException
at oracle.tip.adapter.b2b.packaging.mime.MimePackaging.pack(MimePackaging.java:101)
at oracle.tip.adapter.b2b.msgproc.Request.outgoingRequestPostColab(Request.java:1628)
at oracle.tip.adapter.b2b.msgproc.Request.outgoingRequest(Request.java:931)
at oracle.tip.adapter.b2b.engine.Engine.processOutgoingMessage(Engine.java:1092)
at oracle.tip.adapter.b2b.data.MsgListener.onMessage(MsgListener.java:698)
at oracle.tip.adapter.b2b.data.MsgListener.run(MsgListener.java:375)
at java.lang.Thread.run(Thread.java:534)

Solution :
You might have mistyped additional space in the from party .