gravatar

Enabling sql trace and testing in ADFbc

Follow the information in the following URL to enabling sql trace.

http://radio-weblogs.com/0118231/stories/2005/06/22/verifyingEffectivenessOfViewObjectFetchSizeUsingSqlTrace.html

In order to easily identify the trace file you can set the trace file identifier as follows in ur AM..

getDBTransaction().executeCommand("ALTER SESSION SET tracefile_identifier = mysqltrace");

gravatar

MDS-00035: cannot load the class:xxxxxx

In the cases where you want to use your own Customization Class, make sure that this java class is available to jdeveloper when it restarts. Otherwise , when you use the "Customization Developer" role, you will see that in the Jdeveloper you will see messages like
MDS-00035: cannot load the class:xxxxx

and the customization context will be "none".

To prevent this one way is to create a jar file containing your Customization class and place it in
jdeveloper/jdev/lib/patches.
All the jar files placed in this directory are avaliable in the CLASSPATH when jdev restarts.

gravatar

Zero Swap space installation error (on windows)

While installing soa suite, you might get an error saying that it failed some checks and one of them might be "Zero Swap space while the recommended one is 512MB".

One windows if you get this error then just follow the steps below to set the virtual memory space and restart the machine and try to re install SOA suite.

1) Right click My Compter.
2) Select "Properties" from the context menu.
3) Select Advanced Settings
4) In the dialog that shows up select the "Settings" button in the "Performance" section
5) In the new dialog select "Advanced"
6) In the "Virtual Memory" section click the "Change" button.
7) Now deselect "Automatically manage paging file size for all drivers"
8) Now select "Custom size" and provide "Initial size" of 2 GB and Maximum size of "4 GB".
9) Click "Ok" in all the windows ..

Now restart the machine and try re-installing the soa suite.


gravatar

XA recovery requirements

XA requirements: The database adapter participates in distributed transactions and requires the back-end database setup for XA recovery by Oracle WebLogic Transaction Manager. Ensure that XA pre-requisites are met. For this, log on to SQL*Plus as a system user, for example, enter sqlplus "/ as sysdba" and then grant the following privileges:
Sql>Grant select on sys.dba_pending_transactions to public.
Sql>Grant execute on sys.dbms_xa to public.
Sql>Grant force any transaction to public;

gravatar

Multiple AM's and Multiple Databases and Taskflows

In many cases you might have to pull data from different databases to show appropriate information in the UI. The crudest way is to use JDBC to fetch data from all the different databases.

If you want to ADFbc then you can have multiple AM's pointing to different databases. But if you want to use the datacontrols properly inside a taskflow (actually any page fragment as well), then you definitely have to understand the how ADFc layer creates the AM instances.

The following blog definitely helps you regarding all the information you need regarding taskflows and the how ADFbc goes hand in hand.

http://one-size-doesnt-fit-all.blogspot.com/2011/05/jdev-11g-task-flows-adf-bc-one-root.html

gravatar

LOV and view accessor for shared am

In 11.1.1.2, there seems to be a bug in ADFbc. If you have a LOV based on a view accessor of a shared AM view object and if you apply a view criteria on top of it, initially the view critieria is applied but one you change the value of the LOV no view criteria is applied and you will see all the values from the LOV vo.

The workaround to this problem is to make sure of the following.
  1. In the entity object which has to view accessor, set the "Row Level Bind Values" to false.
  2. Set the "Shared Instance" property of the view accessor in the EO to "true".

To know more about the "SharedInstance" property look at the following.

http://forums.oracle.com/forums/thread.jspa?threadID=2162952

gravatar

Mediator SOAP header filtering

This post is all about how to access the SOAP headers using the mediator component in the oracle soa suite 11g.

Before looking at the steps to be followed to access the SOAP headers, first we need to understand the following things.
  • SOAP Message structure (This is required to understand where actually the SOAP body message and SOAP headers reside in the entire message).
  • Constructing WSDL to specify that SOAP headers will be accessed. (Without this jdeveloper design time cannot help you to build expressions using which you can access SOAP headers at run time).
  • Way to populate the SOAP headers ( We will be using BPEL component to achieve this)
  • Accessing the SOAP header value (We will be suing the Mediator component to achieve this).
 SOAP message structure
A SOAP message is made of an envelope and zero or more attachments..




A SOAP envelope is made of optional header and mandatory body parts..

Headers are always handled (or processed) by the intermediaries...and the
body is always handled (or processed) by the ultimate receiver..

The header is generally used for providing some contextual information, like, providing authentication related information, or providing transaction related information  etc...
 
Headers are used to represent that some special processing is required. Most of the WS-* standards use the header section to represent the special processing required . For example WS-Addresssing using this header section to represent where the ReplyTo message has to be sent.

Constructing WSDL


The following video shows how to construct the WSDL..It uses the jdeveloper tool to create and edit the WSDL file.





Way to populate SOAP headers


The following video shows how to use BPEL component to populate SOAP headers in the SOAP message.




Accessing SOAP header values
The following video shows how to access the SOAP header values in mediator.


gravatar

How to make sure that only needed rows are present in VO Collection after execute query

gravatar

Disabling all oracle DB constraints of all tables

Just run the following plsql block.

BEGIN
  FOR c IN
  (SELECT c.owner, c.table_name, c.constraint_name
   FROM user_constraints c, user_tables t
   WHERE c.table_name = t.table_name
   AND c.status = 'ENABLED'
   ORDER BY c.constraint_type DESC)
  LOOP
    dbms_utility.exec_ddl_statement('alter table ' || c.owner || '.' || c.table_name || ' disable  constraint ' || c.constraint_name|| ' cascade');
  END LOOP;
END;
/

gravatar

Application Module - Fail over feature

What is the fail over feature provided by the Application Module?

The fail over feature decides when and how often passivation happens. When this feature is turned on, the application module state is turned on everytime an application module instance is returned back to the AM pool by the data control.

The advantage of this feature is that the user application state (model state), remains intact.

When should this feature be enabled/used?
This feature should be enabled only in the applications where its absolutely critical not to lose the data entered by the users at any cost.
Mostly it should be enabled, when we are dealing with a clustered environment.

When should we keep away from using this feature?
When this feature is enabled, passivation/activation happens for every request. This brings down the performance of the system . So in applications where its not critical to lose data, do no enable this feature. Especially when we are not dealing with a clustered environment then do not enable this feature.

How to enable/disable it?
This feature can be enabled or disabled by selection appropriate properties in the application module configuration on the Pooling and Scalability tab of the Business Components Configuration dialog.

 What is the default configuration?
This feature is disabled by default.