Explain what is ATG?
ATG is a framework for creating web applications. It is based on J2EE standards.
Mention what is the core of ATG?
The core of the ATG platform is
DAF or Dynamo Application Framework ,which implements a component development model based on JavaServer Pages (JSPs) and JavaBeans.
Why does Oracle ATG Web Commerce only use durable topics? Aren’t some messages sent to only one component that might be listening?
Topics are used because various subsystems might be interested in the message being sent. Examples of this include the
Modify Order Notification message. It can be sent by any of the components in the system. The
Order Ful filler and the
Order Change Handler components both listen for this message but each does something different with it.
Order Ful filler might determine that it now has control of the shipping group whose modifications are included in the
Modify Order Notification message. The
Order Change Handler might choose to send some other message as an event into another subsystem.
Explain what is ATG component scope?
Scope is nothing but a nucleus variable, which tells the nucleus till when a component will exist.
Mention what is the main difference between JSP and DSP tag libraries?
The main difference between JSP and DSP tag libraries are
Dsp is a ATG specific tag libraries that involves in executing only DAF framework resources. Also, Dsp imports all objects of type class.
JSP involves in all the functionalities for web application development. Also, Jsp imports only the primitive data types.
Explain what if the ATG applications are deployed on a cluster of servers?
If the ATG applications are deployed on a cluster of servers then it is better to go for either Distributed caching or Locked caching.
Mention what is the difference between dsp and dspel tags?
DSP tags : DSP tag library tags support runtime expressions. These tags use an id attribute to name the scripting variables they create.
Desired to gain proficiency on Oracle ATG? Explore the blog post on Oracle ATG training to become a pro in Oracle ATG.
Mention what is the standard atg.repository.QueryBuilder interface defines?
The standard atg.repository.QueryBuilder interface defines available query operations that repositories should support.
Mention what is the advantage of Nucleus in ATG?
The advantage of Nucleus in ATG are,
It renders a simple way to write new components
In nucleus, applications don’t need to contain code to create instances of components. It is created and administered through configuration files
By organizing configuration files into layers Nucleus provides a convenient way to modify and extend component properties
Nucleus provides a large number of out-of-the-box generalized service components
Nucleus makes it easy for application developers to set the scope of their components
Explain how can you embed the output of a Java servlet (an ATG servlet bean) in a JSP?
In order to embed the output of a Java servlet (an ATG servlet bean) in a JSP you need to add dsp:droplet tag with a bean attribute.
Mention in order to use custom ATG servlet beans with the ATG Control Center what is required?
In order to use custom ATG servlet beans with the ATG Control Center you need to apply following requirements:
You must make a BeanInfo file that defines the servlet bean’s parameters
The class must extend atg.servlet.DynamoServlet
By using what sign in the configuration files does nucleus properties are processed?
The nucleus properties are processed by using the $ sign in the configuration files.
Explain what is a component in ATG?
In ATG a component is simply is a configuration file (a simple text file with .properties extension), which uses a java class.
Explain what is a Nucleus in ATG?
In ATG, Nucleus is referred to the ATG container for components. It provides an hierarchical name space to component. Each component has a unique full name so that pages and other components can reference it.
Where do we deal with Payment groups? When do we charge?
Order Fulfiller module handles payment groups. The default implementation charges the whole order either at the time of the order’s first shipment or at the time of the order’s last shipment. This is configurable by changing the state of the
Settle On First Shipment property in the
Order Fulfiller to true or false as is needed by the business rules.
Why does Commerce use Java Messaging Service (JMS)?
JMS allows you to build a distributed system that enables disparate subsystems to handle fulfillment for various parts of the fulfillment process. JMS and messaging allows you to abstract out all the connections and gives you the flexibility to adapt your existing systems to the Commerce system. For example, the
Order Fulfiller system might be located on the same set of machines in the site hosting facility. The
Hard good Fulfiller might be based in some other set of headquarters. The actual warehouse that does the shipping might be in another location. If the warehouse receives an e-mail when a shipping group is submitted, then a service can listen on the JMS message indicating that the shipping group is to be shipped. An e-mail can be constructed from the contents of the message.
What are modification objects? What purpose do they serve?
The Modification object is an abstraction that tries to capture the various ways in which changes can occur to the order. There are several types of modifications: add, remove, or update. Modifications can be targeted and therefore can modify shipping groups, payment groups, orders or relationships. Modifications contain a status field indicating whether the modification was successful or a failure.
This abstraction allows the system the flexibility to interface with existing legacy or distributed systems. A disparate system can construct an array of Modifications that will capture the types of changes that it is requesting or the modifications it already performed.
Refer to the sections on Modify Order Class and Modify Order Notification Class for more information.
How do scenarios find out about what is going on in the fulfillment system?
The scenario engine receives messages that are sent during the fulfillment process. Those messages are documented in the Inventory JMS Messages section.
The events contain the profile and the information needed for performing an action on those events. For example, the
ShippingGroupShipped event contains the profile, the order and the shipping group that was shipped. This allows the scenario writer to create an action that sends an e-mail to the user (the profile) with the order information (from the order) and the details of the shipping group that was shipped (the shipping group). For more information, refer to the Order Fulfillment Events section.
How do I change the behavior of
Modify Order messages?
Modification Handler class deals with all the
Modify Order messages. Both the
Order Fulfiller and the
Hard good Fulfiller have their own versions of those handler classes called
Order Fulfiller Modification Handler and the
Hard good Fulfiller Modification Handler. The class contains two methods
handle Modify Order and
handle Modify Order Notification.
To change the behavior of one of those two handling methods, override the method if you extended the existing
Order Fulfiller Modification Handler or
HardgoodFulfillerModificationHandler classes. Otherwise, a new class implementing the
Modification Handler interface should be written and configured for the
Order Fulfiller or
Hard good Fulfiller.
How do I change the behavior of
Modify Order Notification messages?
See the answer for changing the handling of the
ModifyOrder message in the previous question.
How do we deal with the Modification IDs? Who is generating them? How do we guarantee the uniqueness?
Modification IDs are generated using the ID generator. The combination of the message source and message ID need to be unique to allow external systems to track the various messages in the system.
Mention what are the types of Pipeline in ATG?
The types of request handling pipelines used by Dynamo
DAS Servlet pipeline – It is used to handle JHTML request
DAF Servlet Pipeline – It is used to handle the JSP request
Mention what is the default Scope of a Component?
The default scope of a component is Session.
Mention what are the two methods in a component?
The two methods in a component are getters & setters
Mention the Advantages of DAF?
It is used to deal huge data
It can write any object of type 1 call in to the db.
Dynamo messaging using patch bay and jms
Explain what are the performance issues with ATG?
The performance issues with ATG include
High levels of database activity
CPU utilization problems
long running SQL queries
Slow response times
Mention what are the two types of cache that ATG repository maintains?
The two types of cache that ATG repository maintains