Friday, September 20, 2013

SOA Interview Questions

1)     What is SOA?
Service Oriented Architecture (SOA) is used to develop Enterprise applications by using a collection of services which communicates each other. Service-Oriented Architecture (SOA) is a set of principles and methodologies for designing and developing software in the form of interoperable services.
2)       Principles of SOA?
·          loose coupling
·          Re-usability
·          Interoperability
·          Flexible
3)     What is the difference between 10g and 11g?
SCA architecture was followed in 11g and not in 10g
·         In 11g you can put all your project SOA components in composite.xml file and deploy as a single deployment unit to single server, where in 10g you have to deploy each component        to the respective server (i.e. ESB to ESB server, BPEL to BPEL Server)
·         Basically all the SOA components like BPEL, ESB (Called Mediator in 11g), & OWSM are brought into one place in 11g using SCA composite concept.
·         The major difference between 10g & 11g would be the app server container. 10g by default runs onOC4J while 11g runs on Web logic Server.
·         In 10g every BPEL is a separate project, but in 11g several components can make 1 project as SCA.
·         In 10g consoles are separate for BPEL and ESB, but in 11g Enterprise Manager contains all.
·         In 10g BAM and business rules are outside SOA Suite, but in 11g they are in SOA Suite.
4)     Is Oracle SOA same as Oracle Fusion Middleware?
No because SOA is one of the parts in Fusion middleware and
SOA behaves like user interface where as Fusion is big platform
5)    What is SCA?
Service Component Architecture (SCA) provides a programming model for building applications and systems based on a Service Oriented Architecture. SCA is a model that aims to encompass a wide range of technologies for service components and for the access methods which are used to connect them.
6)     What is the SOA Suite 11g Components?
·         Oracle Adapters
·         Oracle Mediator
·         Business Events and Events Delivery Network
·         Oracle Business Rules
·         Human Workflow
·         Oracle Business Activity Monitoring
·         Oracle Enterprise Manager
7)    What is choreography? How does it differ from orchestration?
In choreography there is no business process to control the integration between the systems; each system will directly integrate with one another in sequence where as in Orchestration there is a business process which controls all the services (source/Target) which is part of the integration.
8)    What are the different design patterns in SOA?
·         Synchronous
·         Asynchronous Fire and Forget
·         Asynchronous Delayed Response.
9)    In how many ways can a process be deployed?
·         Using JDeveloper
·         Through Enterprise Manger Console
·         Through Weblogic Scripts.
10) What are dspMaxThread and a recieverThread properties? Why are they important?
ReceiverThreads property specifies the maximum number of MDBs that process aysc across all domains. Whereas the dspMaxThreads are the maximum number of MDBs that process asy and threads that operate across a domain.
So, we need to ensure that the dspMaxThreads value is  !> ReceiverThreads.
11) How does a async request run in the backend?
The sequence of events involved in the delivery of invoke messages is as follows:
·         The client posts the message to the delivery service.
·         The delivery service saves the invocation message to the invoke_message table.The initial state of  the message is 0 (undelivered).
·         The delivery service schedules a dispatcher message to process the invocation message asynchronously.
·         The dispatcher message is delivered to the dispatcher through the afterCompletion() call. Therefore, the message is not delivered if the JTA transaction fails.
·         The dispatcher sends the JMS message to the queue. Places a very short JMS message in the in-memory queue(jms/collaxa/BPELWorkerQueue) in OC4J JMS. The small JMS message triggers the WorkerBean in the downstream step.
·         This message is then picked up by a WorkerBean MDB, which requests the dispatcher for work to execute. If the number of WorkerBean MDBs currently processing activities for the domain is sufficient, the dispatcher module may decide not to request another MDB.
·         MDB fetches the invocation message from the dispatcher.
·         MDB passes the invocation message to Oracle BPEL Server, which updates the invocation message state to 1 (delivered), creates the instance, and executes the activities in the flow until a breakpoint activity is reached.
12) How to increase the transaction timeouts in SOA?
For the transaction timeout needs to be increased, all the below settings timeout value needs to be changed to the expected Timeout value.
·         JTA
·         Engine Bean
·         Delivery Bean
13) Is it possible to use MS SQL Server as dehydration store with SOA Suite ?if yes how?
Yes it is possible.
To automatically maintain long-running asynchronous processes and their current state information in a database while they wait for asynchronous callbacks, you use a database as a dehydration store.Storing the process in a database preserves the process and prevents any loss of state or reliability if a system shuts down or a network problem occurs. This feature increases both BPEL process reliability and scalability. You can also use it to support clustering and failover.
14)  What is SOA governance? What are its functions?
Service-Oriented Architecture (SOA) governance is a concept used for activities related to exercising control over services in an SOA Some key activities that are often mentioned as being part of SOA governance are:
Managing the portfolio of services: This includes planning development of new services and updating current services.Managing the service lifecycle: This is meant to ensure that updates of services do not disturb current services to the consumers. Using policies to restrict behavior: Consistency of services can be ensured by having the rules applied to all the created services. Monitoring performance of services: The consequences of service downtime or underperformance can be severe because of service composition. Therefore action can be taken instantly when a problem occurs by monitoring service performance and availability.
15) What is end point virtualization?
Generally a service bus is used for endpoint virtualization and in 11g stack; Oracle Service Bus (OSB) is the primary service bus. In exposed proxy's message flow, it can route the request to any of your environment's actual (physical) service on the basis of whatever logic.

Mediator can also be used to expose the service and in mediator routing rule, it can be routed to actual service.
16) What are DVM's and how are they helpful in SOA?
DVM-Domain Value Map are static mappings between a source and target system which can be used in transformations. The value can be changed  via  SOA composer.
17) What is the difference between XREF and DVM?
XREF- It is dynamic since the values to the XREF can be populated dynamically and it is stored in XREF_DATA table in SOA Dehydration store.
DVM- Domain Value Map is static mappings between a source and target system which can be used in transformations.
18) What is Dehydration store?
Dehydration store is the database where the instances get stored when it gets dehydrated by the process on the occurrence of non-idempotent activities and also stores the information on the long running processes.
19) What is Decision service?
Oracle SOA Suite provides support for Decision components that support Oracle Business Rules. A Decision component is a mechanism for publishing rules and rulesets as a reusable service that can be invoked from multiple business processes.These rules can be changed without redeploying the code.
20) Why we use BPEL and OSB?
OSB is the light-weight service bus wherever there is not much business logic involves and there is need to just get the message routed between the systems OSB is used where as when there is more business logic involves in the process,then BPEL will be used.
21) What is MDS?
MDS –Metadata Store
Wsdl and Schemas to be used in the process can be published to the MDS and get it used in the code by referring the artifacts from the MDS
Advantages:
  •  JAR (Deployment unit) size will be reduced.
  •  Duplication of the artifacts can be avoided between the services.
22) What is a XA datasource? How it differs from a non-XA datasource?
An XA transaction involves a coordinating transaction manager, with one or more databases (or other resources, like JMS) all involved in a single global transaction. Non-XA transactions have no transaction coordinator, and a single resource is doing all its transaction work itself (this is sometimes called local transactions).
23)  How can we secure our web services using Oracle SOA Suite?
When accessing the services should be restricted to the group,then service should be secured via WSM (Web service Manager).
24) How to deploy an XSL file without deployment of BPEL Process?
We will directly deploy the XSLT, options: -
  •   Using ANT script by file replacement in TMP folder.
  •   By creating a folder in BPEL PM installation folder and specifying its location in our BPEL code with http call and replacing our xslt to that location.
25) What is HA File and FTP Adapters?
In the clustered environment,File and FTP adapters should be used as HA(High-Availability)
Inbound:It  is controlled by Control Files and avoids the race between the manages servers in reading the files where the reference of the files read by the managed servers will be maintained in  the control directory.
Outbound:It is controlled by DB Mutex table exist  in the SOA dehydration store and this avoids duplicated been written to the same file when all the managed servers in the clusters process the same messages.
26) What is singleton Property in SOA?
In the clustered environment when the processing of the message should happen via only one SOA managed server, then the property singleton needs to be defined at the adapter level.
27) What is a pick activity? Can I have a pick activity with no onMessage branch?
Pick activity picks the messages from service (Source) which has multiple operations or the BPEL process needs to receive the messages from multiple source system. Pick activity should have at least on Message branch.
28) What is a flow activity? What is a flowN activity and how does it leverages the flow activity?
Flow activity is used, when parallel execution of the flow is needed and to use this property “non blocking invoke should be set as true “at the partner link level and no. of execution of parallel flow is defined and static. Where as in Flown the no. of execution of parallel flow is not static and it is determined during run time.
29)  What do you mean by non-idempotent activity? Which all activities are non-idempotent by default?
Activities like Pick, Wait, receive, reply and checkpoint() are called non-Idempotent activity and during the execution of the process whenever these activities are encountered then it gets dehydrated to the dehydration store.
30) How can we embed or use a java code in BPEL?
Using JAVA embedding activity in BPEL,Java code can be embedded in BPEL and can be used.
31) How does pick activity differ from a receive activity?
Pick activity can act as a multiple recieve activity in some business scenarios.If we have two inbound operations and both can trigger the bpel process then we will go with pick activity as we can’t have two recieve activity with create Instance box checked.
32)  How can we make a partner link dynamic?
If we have to send the request to different service which has the same wsdl then dynamic partner link will be used and using addressing schema we can set the endpoint dynamic to send the request to the desired service.
33) What is a nonBlockingAll property?
Non- blocking invoke is used when Parallel flow needs to be executed where new thread will be created for each invoke a activity and which will execute simultaneously.
34) What is getPreference property? How do we set it and what advantage it provides?
Hard coding is not a good practice, so to avoid  hard coding preference variable can be used and the value of the preference variable is accessed using getPreference().The preference variable value can be changed without re-deploying the code via em console MBean property.
35) How can we improve the performance of an XSL file?
By avoiding use of various if statements and using choose, and by using for-each group in place of for-each.
36) How do we handle transactions in BPEL?
Property needs to be defined to start the new transaction/to continue with the same transactions
Property Name: Transaction and if this has value as required then the BPEL process will be continued in the same transaction where as if the value is defined as requiresnew then it will start the new transaction.
37) What are transient and durable BPEL processes?
Durable:-It is long running process and initiated through a one-way invocation and do  incur one or more dehydration points in the database during execution Ex: Asynchronous
Transient:-It is short-lived process, request-response style processes and do not incur dehydration during their process execution Ex: Synchronous.
38) When u will go for Sync process?
Whenever the services returns the response in few seconds, it is recommended to go for synchronous BPEL process if not the BPEL process should be Asynchronous the reason is calling application can’t proceed further in case of synchronous process.
39) What is a syncFileRead operation? Is a inbound or a outbound operation? Can my process begin with syncFileRead operation?
When file has to be read in the mid of the BPEL process, then we will use syncFileRead Operation, means some process should initiate the file read process and it is an outbound operation and process can’t begin with Sync File read.
40) Can we use a File Adapter to get a file without reading its content?
Yes, by selecting the Do not read file content check box in the JDeveloper wizard while configuring the "Read operation."
41)  How to increase performance increase in bpel (Db Adapter/file adapter)?
We can increase the performance by writing indexes and sequences.
(Or) Go to application server --- >Configurations ----- > Change Xml file
42) Explain error handling in BPEL and what is a error handling framework? How does a error handling  framework better than simple error handling in BPEL?
EHF –Whenever any error thrown by the BPEL process/Mediator then EHF will check whether exist in  Fault-Bindings.xml files and if  so  then the  action in the Fault-Policy.xml file will be taken and if the action is not found then the fault will the thrown and it will be handled in the catch block.
43) How do we resubmit a faulted process?
Scenario A: The BPEL code uses a fault-policy and a fault is handled using the “ora-human-intervention” activity, then the fault is marked as Recoverable and the instance state is set to “Running”.
Scenario B: The BPEL code uses a fault-policy and a fault is caught and re-thrown using the “ora-rethrow-fault” action, then the fault is marked as Recoverable and the instance state is set to “Faulted”; provided the fault is a recoverable one (like URL was not available).
44) Predefined errors in BPEL?
  •     Custom errors
  •        Timed out errors
  •     BPM errors
  •       Validation Errors
45) What is a throw activity? What it is ?
Throw activity will explicitly throw the fault and this fault will get caught by the catch block and the corresponding actions will get executed.
46) What is Web service?
Web services are application components, which are self-contained and self-describing and provide services based on the open protocol communication (i.e. SOAP UI, HTTP over the net).
47) Difference between URI and URL?
A URI is an identifier for some resource, but a URL gives you specific information as to obtain that resource. A URI is a URL and as one commenter pointed out, it is now considered incorrect to use URL when describing applications. Generally, if the URL describes both the location and name of a resource, the term to use is URI. Since this is generally the case most of us encounter every day, URI is the correct term.
48) What is Mediator?
The Mediator is in charge of interconnecting, within an SOA composite application, components that expose different interfaces. In addition, the Mediator can perform duties such as filtering and making routing decisions.
The composite editor in JDeveloper gives you the flexibility to define the interface now, to choose an existing interface, or to define the interface later as you wire components to the Mediator.
Transforming data from one representation to another is, along with routing, one of the key functions of the Mediator.
49) Difference between ESB and Mediator?

In 10g for routing, separate router need to keep along with ESB for routing and filter expressions.

Where as in 11g mediator contains routing rules and filter expressions itself.
50) What is the difference between concrete and abstract wsdl?
Concrete: Besides the information about how to communicate to the web service, it the information on where the service exist. It has Bindings (Protocol the message should be sent) and Services(has endpoint for each bindings) .
Abstract: It has information about how to communicate to the web service like types (Schema), Message (input and output messages service accepts) ,Operations (operation that can be performed on this service) and port Type.
51) What is SOAP and what are the binding protocols available?
Simple object access protocol and it is a protocol specification for the communication happens between the web services over the network and binding protocol is HTTP.
52) What is the difference between Async and Sync activity on wsdl level?
  •       Async wsdl-It has only input messages for the operation and it has 2 operations one for sending the request and other for call back.
  •       Sync wsdl-It has 2 messages input and output messages for the wsdl operation.
53) What are the WSDL structure?
Following are the wsdl structure
  •        definitions
  •        Types
  •         Messages
  •         Operation
  •         Port type
  •         Bindings
  •         Services
  •         Ports
54) What is the significance of target Namespace in a wsdl?
It is the one which uniquely identifies the WSDL and when the WSDL is used it should be identified using its Target Namespace.
55) What is structure of SOAP message?
The structure of a SOAP message: A SOAP message is encoded as an XML document, consisting of an element, which contains an optional element, and a mandatory element. The element, contained within the , is used for reporting errors.
The SOAP envelope-The SOAP is the root element in every SOAP message, and contains two child elements, an optional and a mandatory.
The SOAP header-The SOAP is an optional sub-element of the SOAP envelope, and is used to pass application-related information that is to be processed by SOAP nodes along the message path.
The SOAP body-The SOAP is a mandatory sub-element of the SOAP envelope, which contains information intended for the ultimate recipient of the message.
The SOAP fault-The SOAP is a sub-element of the SOAP body, which is used for reporting errors.
56) Why do we need to have messages in WSDL, aren't operations and types enough to describe the parameters for a web service?
Messages consist of one or more logical parts. Each part is associated with a type from some type system using a message-typing attribute. The set of message-typing attributes is extensible.
  •  The element describes the data being exchanged between the Web service providers and consumers.   Each Web Service has two messages: input and output.
  •  The input describes the parameters for the Web Service and the output describes the return data from the Web Service.
  •  Each message contains zero or more parameters, one for each parameter of the Web Service's function.
  •  Each parameter associates with a concrete type defined in the container element. So describing the parameters cannot performed by operations and types this is the main need of Messages.
57) What is a inline schema?
Schemas can be included inside of XML file is called Inline Schemas.
58) What is the difference between xsd:import and xsd:include?
The fundamental difference between include and import is that you must use import to refer to declarations or definitions that are in a different target namespace and you must use include to refer to declarations or definitions that are (or will be) in the same target namespace.
59) What is BAM?
Business Activity Monitoring is a tool that is useful in monitoring business services and processes. It actively collects data, applies rules and reports information to users. When something goes wrong in business processes, BAM can be configured to take corrective measures such as emailing administrators/support team.
60) How to send the data to BAM from SOA?
The Oracle BAM Adapter is a Java Connector Architecture (JCA)-compliant adapter which can be used from a Java EE client to send data and events to the Oracle BAM Server. Oracle BAM Adapter is configured in Oracle Weblogic Server Administration Console to provide any of these connection pools. Oracle BAM Adapter provides three mechanisms by which you can send data to Oracle BAM Active Data Cache from an SOA composite application.
61) What are the ways to publish the data to BAM?
There are two ways to publish the data to BAM
  •    BAM Adapter.
  •    BAM Sensor activity level.
62) What are the roles in BAM?
  •    Architect
  •    Administrator
  •    Active Viewer
  •    Active Studio
63) What is forward delay in JMS Queue?
In the clustered environment where JMS queues are used, when for the queues in any one of the Managed server doesn’t have the consumer, once messages reaches  the forward delay time it gets moved  to the other managed server where consumer is present.
64) What is redelivery limit in JMS Queue?
When the message gets failed to get processed ,then it will be re-tried will the redelivery limit exhausts and once after the redelivery limit the message can b e either moved to the error Queue are it can be discarded.
65) What is timetodeliver in JMS Queue?
When Messages enqueued to the JMS queue, it will be immediately consumed by the JMS Subscribers, if any delay needs to be induced for the message consuming by the Subscribers then timetodelivery needs to set. The JMS message will not be subscribed until timetodelivery exhausts.
66) Difference between JMS Queues and Topics?
Queue-Message will be subscribed by one subscriber.
Topic-Message will be subscribed by more than one subscriber.

SOA JMS Adapter Vs AQ Adapter

All of them are based on Asynchronous Messaging. All of them uses Queues and Topic to consume..But the datasource from which they consume or produce differs..

1.MQ consumes the topic and queues frm the IBM MQ Server
2.AQ uses an Oracle Database
3.While a JMS Adapter uses File,Memoery and also the DB persistence as AQ.

AQ is a Oracle implementation of their Queue messaging; Advanced Queueing. The same has IBM with their MQ and like others. These implemenations are specific of the Vendors.

JMS is an implemenation of a messaging system based on Open Industy Stanards. The messages send via JMS are based on a persistence storage, the message must be stored/retrieved from a persistence layer. This can be the file-system or based on Oracle AQ, IBM MQ or others.

The SOA Suite supports messaging based on JMS (JMS over MQ or JMS over AQ) or use the messaging directory out/in of AQ or MQ.

Scenarios:
Go for AQ when using Oracle Advanced Queueing (the database stuff).
Use JMS when using JMS (in memory of file queues)


Oracle Advanced Queuing (AQ): (Database stuff)
Oracle Advanced Queuing (AQ) provides database-integrated message queuing functionality. It is built on top of Oracle Streams and optimizes the functions of Oracle Database so that messages can be stored persistently, propagated between queues on different computers and databases, and transmitted using Oracle Net Services, HTTP, and HTTPS. Because Oracle AQ is implemented in database tables, all operational benefits of high availability, scalability, and reliability are also applicable to queue data.

SOA: Steps to create JMS Queue

SOA Best practices

Friday, September 13, 2013

ADF Interview Questions-1

Q: What are the ADF templates, jspx pages, jsff page & declarative components?
A: ADF Faces provides the following types of reusable building blocks
Page fragments(.jsff): Page fragments allow you to create parts of a page. A JSF page can be made up of one or more page fragments. For example, a large JSF page can be broken up into several smaller page fragments for easier maintenance.
We can create an page fragments template & use to create page fragments.

Page templates (.jspx): By creating page templates, you can create entire page layouts using individual components and page fragments. For example, if you are repeatedly laying out some components in a specific way in multiple JSF pages, consider creating a page template for those pages. When you use the page template to build your pages, you can be sure that the pages are always consistent in structure and layout across the application.
Using default layouts or creating new we can create page templates.
Ex. Using we can create page templates with header, footer, top, left & right regions etc. 

Declarative components: The declarative components feature allows you to assemble existing, individual UI components into one composite, reusable component, which you then declaratively use in one or more pages.
For example, if you are always inserting a group of components in multiple places, consider creating a composite declarative component that comprises the individual components, and then reusing that declarative component in multiple places throughout the application.
Declarative components can also be used in page templates.
Declarative components can also be used in other applications, its possible after creating JAR file of that component.

Q: What is region in Oracle ADF?
A: Tag name : af:region
The region tag allows dynamic content to be included in a master page. This tag is bound to a RegionModel. The model decides which viewId is to be included. The model has methods that allow pre and post processing of an include. See the javadoc for oracle.adf.view.rich.model.RegionModel.

This component does not support any facets.
Regions support nesting (one af:region component can contain another af:region component).
Regions are not allowed to be placed inside of af:forEach, c:forEach, or other forEach-like tags because of limitations in how JSF handles component IDs and component state which would manifest in your application in obscure manners such as loss of component state.
Regions are also not allowed to be placed inside of af:iterator because the region requires bindings to be established at the tag execution phase in order to perform its JSP include operations and the variables for iterators are not established until later in the life-cycle.

Regions in release 11g are reusable page flows. They have their own navigation rules, managed beans and ADFm page definitions. Each page within the region is a page fragment (jsff). Do not confuse the 11g af:region component with the 10.1.3 or Trinidad region. The 10.1.3 and Trinidad region components are single page fragments that do not have multiple pages, navigation rules nor managed beans. The 10.1.3 region is similar to the 11g page templates and declarative components.

The will not stretch all included children, but it will stretch an included child if all of the following are true:
The region itself does not have a header
The region itself is being stretched
There is only a single included child
The child must be capable of being stretched
Example:

Q: What is f:facet name = "" ?
A: This tag is used to add a facet to the component means this tag is used to add its child as a facet of the closest parent component.
With the help of this tag we can add header and footer facet to the container component like panelGroup.

This tag contains one attribute :
name : This is the required attribute and is used to set the name of the facet. "header" and "footer" values can be used for this attribute.

Q : How to skip validation in ADF?
A : Add immediate="true" to the button. This way all input fields which don't have immediate="true"will be skipped in processing.
This method mainly used for view layer validation skip.

Q : How to make any field mandatory?
A : Add attribute required="true" to that specific field.

Q: What is setActionListener?
Ans:While af:setActionListener is fully supported, the best practice is to use af:setPropertyListener type="action".
SetActionListener – The setActionListener tag is a declarative way to allow an action source ( , , etc.) to set a value before navigation. It is perhaps most useful in conjunction with the “processScope” EL scope provided by ADF Faces, as it makes possible to pass details from one page to another without writing any Java code. This tag can be used both with ADF Faces commands and JSF standard tags.
Exmaple of this can be as follows. Suppose we have a table “employee”.We want to fetch the salary of an employee of some particular row and want to send this salary in Next page in process scope or request scope etc.So using this we can do this.

It have two attributes :

From – the source of the value; can be an EL expression or a constant value

To – the target for the value; must be an EL expression
1 2 to="#{processScope.salary1}"/>

This setActionListener will pick value of salary of that row and store this value into salary1 variable.So anyone can use this salary as processScope.salary1.
It is very simple to use and very useful.


Q: SetPropertyListener vs. SetActionListener
A: The af:setPropertyListener and af:SetActionListener components are located under the Operations section of the ADF Faces components panel in the Oracle JDeveloper Component Palette. They are used to write objects into memory or a managed bean property. While both listeners appear to have identical functionality, they are actually different. The af:SetActionListener responds to action events only, such as a button or link mouse click. In contrast, the af:setPropertyListener responds to events such as calendar, value change, disclosure, focus, launch, poll, range change, return, row disclosure, dialog, launch popup, popup fetch, query, query operation, region navigation, and return popup. The SetPropertyListener is new in Oracle JDeveloper 11g and should be used instead of the SetActionListener, which is included in Oracle
JDeveloper 11g for backward compatibility.

Q: How to pass Values Between Pages?
A: The ADF Faces pageFlowScope scope makes it easier to pass values from one page to another, thus enabling you to develop master-detail pages more easily. Values added to thepageFlowScope scope automatically continue to be available as the user navigates from one page to another, even if you use a redirect directive. But unlike session scope, these values are visible only in the current page flow or process. If the user opens a new window and starts navigating, that series of windows will have its own process. Values stored in each window remain independent.
Like objects stored in any standard JSF scope, objects stored in the pageFlow scope can be accessed through EL expressions. The only difference with the pageFlow scope is that the object names must use the pageFlowScope prefix. For example, to have a button's label provided by a managed bean stored in the pageFlow scope, and to have a method on the bean called when the button is selected, you might use the following code on your page:
                  action="#{pageFlowScope.buttonBean.action}"/>
The pageFlowScope is a java.util.Map object that may be accessed from Java code. The setPropertyListener tag allows you to set property values onto a scope, and also allows you to define the event the tag should listen for. For example, when you use the setPropertyListener tag with the type attribute set to action, it provides a declarative way to cause an action source (for example, commandButton) to set a value before navigation. You can use the pageFlowScope scope with the setPropertyListener tag to pass values from one page to another, without writing any Java code in a backing bean. For example, you might have one page that uses the setPropertyListener tag and a command component to set a value in the pageFlowScope scope, and another page whose text components use the pageFlowScope scope to retrieve their values.
You can also use the pageFlowScope scope to set values between secondary windows such as dialogs. When you launch secondary windows from, for example, a commandButtoncomponent, you can use a launchEvent event and the pageFlowScope scope to pass values into and out of the secondary windows without overriding values in the parent process.

Tip: Instead of using the setActionListener tag (which may have been used in previous versions of ADF Faces), use the setPropertyListener tag and set the event type to action.

Q: How to Use the pageFlowScope Scope Within Java Code

A: You can access pageFlow scope from within any Java code in your application. Remember to clear the scope once you are finished.


Note: If your application uses ADF Controller, then you do not have to manually clear the scope.

To use pageFlowScope in Java code:
To get a reference to the pageFlowScope scope, use the org.apache.myfaces.trinidad.context.RequestContext. getPageFlowScope() method.
For example, to retrieve an object from the pageFlowScope scope, you might use the following Java code:
import java.util.Map;
import org.apache.myfaces.trinidad.context.RequestContext;
. . .
Map pageFlowScope = RequestContext.getCurrentInstance().getPageFlowScope();
Object myObject = pageFlowScope.get("myObjectName");
To clear the pageFlowScope scope, access it and then manually clear it.
For example, you might use the following Java code to clear the scope:
RequestContext afContext = RequestContext.getCurrentInstance();
afContext.getPageFlowScope().clear();

Q. How to pass ''af:selectOneChoice'' value to other page?
A: Add valuePassThru="true" attribute to select list.

Q. What are types of ADF Faces components?
A: ADF Faces components:
Data components
Input components
Layout components
Navigational components
Output components

Q. Why 'timeZone' attribute is required when A: When EX.
                                            label="#{messageBean['SS_DATE_OF_BIRTH']}"
                                            disabled="true" maximumLength="50"
                                            value="#{bindings.DateofBirth.inputValue}"
                                            inlineStyle="font-size:smaller; font-weight:normal; font-  
                                            family:Arial;color:rgb(69,69,69);">
   


Q: What is the difference between trinidad.config and trinidad.skins?A: trinidad.config file is ceated when you create a webcenter portal application. This is used to register the skin-family you are going to use for your entire application. Trinidad.skins is used when we use skin as a Jar file. This file provides a mapping between the Skin Id and the actual path where the skin exists.

Q: What is the difference between an action and an action listener?
A: Actions are designed for business logic and participate in navigation handling, whereas action listeners typically perform user interface logic and do not participate in navigation handling.
Action listener is a class that wants to be notified when a command component fires an action event.
Action returns String ActionListner returns void.
Action used for page navigation with faces-config.xml or adf-config.xml, ActionListner is used for event handling, to retrieve data & other operations, its used with backing beans or bindings.
Action use - for page navigation, ActionListner use - check box, drop down box.
Q: What is a view scope?
A: view-state allocates a new viewScope when it enters. This scope may be referenced within the view-state to assign variables that should live for the duration of the state. This scope is useful for manipulating objects over a series of requests from the same view.

Q: What is the difference between visible property and render property
A: The visible property is set to true/false based on the requirement whether we want to see the field on the page or not at run time. The field or component still exists on the page, though hidden. The render property is used to conditionally load the component based on a criteria.

Q: How do you define pagination in adf?
A: It was not possible to do pagination on af:table component before R1 release 11.1.1.7, although this feature was exist in 10g but not available in previous 11g series. (Ref blog - Click here..)

In 11g series there were some customization approach for pagination:
1. We define custom pagination in ADF by creating a custom table as a taskflow using the af:iterator tag. This renders the collection of data just as a table renders it. Now we bind the value property of iterator to collection model from ADF bindings declaration and set the number of visible row to, say 15.
2. Using JavaScript
3. Customizing VO java code,

Q: What are validators and converters?
A: Validators and Convertors are used to provide conversion and validation capabilities to the ADF input components respectively. Converters convert the valurs on ADF forms to the type in which the application accepts them after the values are edited on the form and submitted. Validators re used to impose validations on the inpiut components.

Q: What is the difference between setting an immediate=true on a button and immediate=true on a text field?A:  When immediate is true on a button, the command’s action and ActionListeners, including the default ActionListener provided by the JavaServer Faces implementation, will be executed during Apply Request Values phase of the request processing lifecycle, rather than waiting until the Invoke Application phase.

In case of a text field, by default, values are converted and validated together in the Process Validators phase. However, if you need access to the value of a component during Apply Request Values – for example, if you need to get the value from an actionListener on an immediate commandButton – then setting this to “immediate” makes that possible.

Q: What is inter-portlet communication?
A: Inter-portlet communication is achieved when an action in one portlet triggers a response in the second portlet. Its a communication bridge between two portlets. For eg, one portlet contains a checkbox containing list of products. When i choose a product from the list and click on submit, the other portlet displays the details of the respective product.

Q. How to do table pagination in Oracle ADF?
A: This feature has brought back from 10g to new R1 release 11g-PS6 (10.1.1.7.0)
Go through blog: Click here..

Q: How To Control ADF Table Pagination on Runtime and Do Case Insensitive Search?
A: Go through blog: Click Here..

Q : What is PPR and how do you enable Partial Page Rendering(PPR)?
A : PPR is a feature supported by ADF Faces, using which we can render a small portion of a HTML Page, without refreshing the complete page.
It is enabled by.- Setting AutoSubmit property to true on the triggering element.
- Setting the PartialTriggers property of target component to refer to component id of the triggering element.

Q : Explain Iterator RangeSize Attribute
A : Iterator bindings have a rangeSize attribute that the binding uses to determine the number of data objects to make available for the page for each iteration. This attribute helps in situations when the number of objects in the data source is quite large. Instead of returning all objects, the iterator binding returns only a set number, which then become accessible to the other bindings. Once the iterator reaches the end of the range, it accesses the next set.
Example shows the default range size for the CustomerInfoVO iterator.
Example RangeSize Attribute for an Iterator
ChangeEventPolicy="ppr"/>

By default, the rangeSize attribute is set to 25.
You can set it to -1 to have the full record set returned.
Related Posts Plugin for WordPress, Blogger...