All application servers will be having a JVM in which they will be executing the processes. When it comes to performance tuning you need to start from the base that is the JVM. For basic JVM tuning, I am listing some important parameters that you need to set which will help your JVM to perform at its best.
Max. heap size: Set to maximum addressable OS memory size
For 32 bit Linux the maximum heap size you can set is 4G and for a 32 bit windows the value is 2G
E.g. –Xmx 2048m
Min. heap size: Set to the same as max heap size
E.g. –Xms 2048m
Eden space: Set to 60% of max heap
Eden space dictates JVM garbage collection behaviors
E.g.: -Xmn1228m
For setting these values open the file opmn.xml. In Developer edition & Mid-tier installation: location of the file is $IAS_HOME/opmn/conf/opmn.xml
Add java arguments in start parameters of the server.
In case of BPEL the domain level settings are located in the Oracle_Home\bpel\domains\domain_name\config\domain.xml file. For configuring the BPEL server few options are only listed in the BPEL Console. There are many other properties also which you can set by editing the domain.xml.Once you editthe domain.xml , the new settings will take effect only after you restart the Oracle BPEL Server .Given below are some of the important domain level settings
optCacheOn - This property sets the in-memory cache for in-flight instances.
instCachePolicy - This property sets the eviction policy to use when removing in-flight instances from the cache.
instCacheHighWatermark - This property sets the maximum number of in-flight instances that can be placed in the cache before pruning occurs
instCacheLowWatermark - This property sets the number of in-flight instances to which the cache is pruned when pruning occurs.
dspMaxThreads- This property sets the maximum number of active dispatcher threads that process messages during peak load times
deliveryPersistPolicy - This property enables and disables database persistence of messages entering Oracle BPEL Server
auditLevel- This property sets the audit trail logging level. This process is applicable to both durable and transient processes.
auditDetailThreshold- This property sets the maximum size (in kilobytes) of an audit trail details string before it is stored separately from the audit trail.
workerQueueConnectionPoolMinSize - This property sets the worker queue connection pool minimum size. This value must match the number of worker threads
invokerQueueConnectionPoolMinSize - This property sets the invoker queue connection pool minimum size. This value must match the number of invoker threads
bpelcClasspath- This property sets the BPEL process compiler classpath.(very useful in WSIF)
For BPEL related errors domain.log @ Oracle_Home\bpel\domains\default\logs will come in handy
In case of ESB the main configuration file is esb_config.ini @ Oracle_Home\integration\esb\config\ esb_config.ini
cluster_name - The default name of cluster for all the processes.
primary_oc4j- In case of cluster configuration this property is commented out .By default value is true
xa_timeout – the default value forJTA timeout
jms_receive_timeout – the timeout configured for JMSreceive timeout (in seconds)
esbSystemForBPEL – the system name for BPEL processes
InboundRetryCount - This property sets the inbound retry count
InboundRetryInterval - This property sets the inbound retry interval
InboundRetryEnabled - This property sets the inbound retry is enabled
OutboundRetryCount - This property sets the outbound retry count
OutboundRetryInterval - This property sets the outbound retry interval
OutboundRetryEnabled - This property sets whether outbound retry is enabled
For ESB related errors log.xml @ Oracle_Home\j2ee\home\log\home_default_group_1\oc4j will come in handy
When I joined Oracle Fusion middleware competency from Java/j2ee background everything looked new to me except for the java invocation part. But after swimming in fusion for some time I would like to share some tasks which I felt challenging in BPEL and I believe everyone who likes to take up fusion middleware should practice.
Invoke BPEL using Web service proxy
Invoke BPEL using RMI
Calling WSIF from BPEL
Calling BPEL using WSIF from java
Calling a OWSM secured webservices from BPEL
Using Java Embedding within BPEL
How to use human workflow
How to Create a custom exception
Use fault management framework provided with BPEL 10.1.3.3
Use Dynamic Partner link
Use Correlation sets
Create a unit TestCase
Create a project with a webservice, bpel and esb process and try to automate the deployment of it using ant scripts
Maybe I liked them because they involved some research from your side instead of blindly following oracle tutorials.