You are on page 1of 11

Explain Architecture of ATG.

What is Nucleus ?
What is Repository in ATG ?
Which Formhandlers you have used in ATG ?
How Droplet Work ?
How will you define one to many relationship in repository.
How you use MAP in one to many relation.
Difference between item-type and component-item-type.
Write a custom Formhandler.
Write a Custom Droplet.
What is open parameter in droplet ?
How to set open parameter ?
What are different Scopes of Component ?
Which is default Scope of a Component ?
Can we make a form handler a Session Scope Component ?
Can a Global Scope Component make a call to Request Scope component ?
Can a Request Scope Component make a call to Global Scope component ?
What is Targeter and Scenario ?
How to Create Repository ?
What are the Properties in Repository Property File.
What is definition file of Repository ?
Difference between item descriptor and repository item ?
Which design pattern does ATG uses ?
How pricing work in ATG ?
What is a Pipeline in ATG?
How to use Caching and different type of Caching in ATG.
Question based on Personilzation.

Category Archives: ATG-Interviews Q and A


ATG Interview Questions and Answers Part4
Posted on December 20, 2011
1. What are the two methods in a component
Ans: getters & setters
2. Have you worked with repositories
Ans: if you answer yes be ready to answer questions on cache, implementing a repository from
scratch, and others. (please see my post on repositories)
3. Name 2 types of tables
Ans: primary and auxillary
4. Have you worked on shopping carts
Ans: CartModifierFormHandler , ShoppingCartFormHandler
5. Name 2 types of checkout
Ans: Express Checkout, Guest Checkout
6. Difference between Express Checkout and Checkout
Ans: Express- Logged in user has information stored
Guest- will enter all information (shipping, billing, review steps) and information is not saved
7. What is BCC
Ans: Business Control Center- UI for Business Users (to upload content to Catalogs, create
promotions etc)
8. What are custom dsp tags
Ans: Custom tags is written by the developer.
Dsp is all ready to use. you can use to render content dynamically by linking Nucleus
components directly to your JSPs. Essentially, the DSP tag libraries let you connect your JSP
content to the Java code at work behind the scenes so you can separate your application logic
from your presentation layer.
ATG 7 provides you with three tag libraries: JSTL, DSP/DSPEL, and Core. You can find these
tag libraries in /DAS/taglib.
9. Difference between droplet, FormHandler and servlet:
Ans: Servlet is a java class. Droplet is from ATG
Droplet is used to render or put data in the db
Servlet is used to submit data, it acts as a controller. It is not used to put data.
Servlet also renders the portion of JSP page.
FormHandlers are used when there are forms. They help to perform validation for the forms.
10. Difference between dsp and dspel tags

Ans: The DSP tag library tags support runtime expressions, such as references to scripting
variables. These tags use a id attribute to name the scripting variables they create.
The DSPEL tag library tags support JSTL Expression Language (EL) elements that are also
evaluated at runtime. These tags often produce a result object named by the var attribute.
For custom tags we need to write the properties file and a class file to define the functions. We
need to include a tag file with extension .tld. (tag library definition) and in the droplet include the
path of the tag uri
For example we can write a custom tag to calculate the shipping rate with promotion and save it
and then extend wherever required.
11. what is Nucleus
Ans: Nucleus is the central registry for the JavaBeans that contain your application-level logic. It
creates and configures Dynamo components and organizes them into a hierarchical namespace
12. difference between dsp: include and jsp:include
Ans: Dsp imports all objects of type class also, where as jsp imports only primitive types.
Jsp includes are dynamic where as dsp include are for data which is smaller than 64 kb.
ATG created the DSP tag library as a mechanism for accessing all data types, including those that
exist in ATGs Nucleus framework. Other functions provided by these tags manage transactions
and determine how data is rendered in a JSP. Its best to use tags from the DSP tag library only
for tasks that involve Dynamo Application Framework (DAF) resources. Dsp tag support for the
passing of object parameters between pages. In particular, use dsp:include rather than
jsp:include, and use dsp:param rather than jsp:param.
13. How to implement shopping cart
Ans: ShoppingCartFormHandler
14. What is the main formhandler you use for Shopping cart
Ans: ShoppingCartFormHandler & CartModifierFormHandler
15. what are the ATG component scopes(global session and request)
Ans: (see post on scopes)
16. what are the Advantages of DAF
Ans: It is used to maintain huge data
It has repositories which help is data anywhere architecture.
Dependency injection
It can write any object of type 1 call in to the db.
Dynamo messaging using patch bay and jms
Inversion of Control design pattern, whereby software components are discrete
entities coupled together by the Nucleus container, rather than through direct
reference.
17. What is a Component
Ans: Is a Java bean
18. What are scenarios
Ans: Scenario anticipates and tracks the actions of the people who visit your Web site and
responds appropriately by, for example, tailoring the content of the site, offering price
promotions, or sending targeted e-mail messages
19. what is a pipeline
Ans: Atg Pipeline is a variant of Servlet Pipeline, In an ATG pipeline the sequence of Programs
are executed in a queue.

20. Is DAS for high volume or low volume traffic


Ans: High volume
21. What are the performance issues with ATG
Ans: Performance problems come in many shapes and sizes, but they all mean that the
processing of some task is not happening at the expected, and previously observed speed.
Performance issues include CPU utilization problems, slow response times, high levels of
database activity, long running SQL queries, slow CA deployments, just to name a few.
22. Why is Eclipse used with ATG
Ans: Eclipse IDE
23. Which is the IBM product used with ATG
Ans: WebSphere Application Server
Eclipse IDE
24. What are derived properties
Ans: Enables one repository item to derive property values from another repository item or from
another property in the same repository item.
25. Difference between Item Cache and Query cache
Ans: For each item descriptor, an SQL repository maintains two caches:
a.ItemCache
b.QueryCache
Item caches hold the values of repository items, indexed by repository IDs. Item caching can be
explicitly enabled for each item descriptor.
Query caches hold the repository IDs of items that match given queries. When a query returns
repository items whose item descriptor enables query caching, the result set is cached as follows:
The query cache stores the

repository IDs.
The item cache stores the corresponding

repository items.
26. What are different modes caching
Caching modes are set at the item descriptor level, through the tags cache-mode attribute. The
default caching mode is simple caching. To set a different caching mode on an item descriptor,
set cache-mode to one of the following values:
simple
locked
distributed (distributed TCP

caching)
distributedJMS (distributed JMS

caching)
distributedHybrid (distributed hybrid

caching)
27. which are the handleX methods in
Ans: HandleX methods contain the actual function to be performed. its a method. Like in
ProfileFormHandler- handleLogin
28. What are priceLists
Ans: Price Lists allow you to target a specific set of prices to a specific group of customers. Price
lists are managed through a single interface in the ACC. For example, price lists can be used to

implement business to business pricing where each customer can have its own unique pricing for
products based on contracts, RFQ and pre-negotiated prices.
Posted in ATG-Interviews Q and A

ATG Interview Questions & Answers part 3


Posted on December 19, 2011
1.What is ATG Dynamo? What is ATG Framework?

Ans. ATG Dynamo or Dynamo Application Server(DAS) is a J2EE application server from Art
Technology Group. Atg framework is a Web Application framework for building web
applications. ATG dynamo implements the ATG framework. The application framework can also
be run on all major J2EE application servers (JBoss, WebLogic, WebSphere etc).
2.What is the scope of Dynamo Components?

Ans. There are three different types of scopes for ATG components namely
1. request
2. session
3. Global
Global is the default scope
3.What is Nucleus?

Ans.Nucleus is ATG`s open Object Application Framework. ATG 7 is said to be a componentcentric development platform. The ATG 7 Web applications are nothing but individual JavaBean
components assembled together. These JavaBean components are configured and linked together
by .properties files within Nucleus.
In Nucleus, each service is packaged as a JavaBean or set of JavaBeans. These JavaBeans are
configured individually and mounted into a namespace. The beans then interconnect with the
beans representing other services. Nucleus is responsible for interpreting the component
configurations and the management of the component namespace.
Dynamo uses the Nucleus framework to organize components into a hierarchical structure
(similar to a directory structure). Each Nucleus service has a unique Nucleus name. For example,
the default javax.sql.DataSource component is located at
/atg/dynamo/service/jdbc/JTDataSource
Nucleus is the core of the entire ATG system. It creates and configures Nucleus components (also
called beans and JavaBeans) and organizes them into a hierarchical namespace, essentially
giving them a place to live so they can be referenced by other components. By reading the
.properties files associated with each component, Its Nucleus which figures out that which
components are to be used in an application ,initializes them to their default values and how
decides about how they connect to each other. This model makes it easier for the developers to
build ATG applications by configuring and using the pre-built components instead of writing a
lot of Java code from scratch.
4.What is ATG Repository?

Ans.ATG Repository refers to the ATG`s way of accessing the Database through programs. It is
somewhat similar to what Hibernate offers, Seperating the Application Logic from that of
Database. So Atg repository provides a fine grained abstraction between the application logic and
Database. Thus it supports the ATG`s Data Anywhere paradigm, the application logic created by

developers to interact with data need not change for any change in the source of that data. ATG
repository architecture ensures that the source of the data is hidden behind the Dynamo
Repository abstraction. It would be easy to change from a relational data source to another or to
an LDAP directory since none of the application logic would need to change. Once data is
retrieved from a data source it is transformed into an object-oriented representation.
Manipulation of the data can then be done using simple getPropertyValue and setPropertyValue
methods. The Repository API ties in closely with ATGs targeting APIs, so you can retrieve items
from the repository based on a variety of targeting rules, as well as retrieving specific identified
items.
5.What is Atg Pipeline?

Ans Atg Pipeline is a variant of Servlet Pipeline, In an ATG pipeline the sequence of Programs
are executed in a queue.
Below is the ATG servlet pipeline
/atg/dynamo/servlet/pipeline/DynamoHandler
/atg/dynamo/servlet/pipeline/TransactionServlet
/atg/dynamo/servlet/pipeline/PathAuthenticationServlet
/atg/dynamo/servlet/pipeline/URLArgumentServlet
/atg/dynamo/servlet/pipeline/CookieServlet
/atg/dynamo/servlet/pipeline/ContextPathServlet
/atg/dynamo/servlet/pipeline/ServletPathServlet
/atg/dynamo/servlet/pipeline/SessionServlet
/atg/dynamo/servlet/pipeline/DynamoServlet
/atg/dynamo/servlet/pipeline/SessionSaverServlet
/atg/dynamo/servlet/pipeline/FormLoginServlet
/atg/dynamo/servlet/pipeline/WebApplicationDispatcherServlet
/atg/dynamo/servlet/pipeline/CgiServlet
/atg/dynamo/servlet/pipeline/ServletPathDispatcher
/atg/dynamo/servlet/pipeline/FileFinderServlet
/atg/dynamo/servlet/pipeline/MimeTyperServlet
/atg/dynamo/servlet/pipeline/MimeTypeDispatcher
/atg/dynamo/servlet/pipeline/FileServlet
It starts with the DynamoHandler which adds the Dynamo specific request and response objects
to the requests context. Actually the list of servlets you will see depends on which modules you
have running. This is the DAS configuration DPS and other modules can and do add more
servlets to the pipeline.
6.What is ATG tag library?

Ans. Atg tag library is a variant of jsp standard tag library. However atg provides its own set of
tag libraries e.g. dsp,dspel, core
7.What is ATG DPS? What are its elements?

Ans7. ATG DPS refers to the ATG Dynamo personalization system. It is driven by User Profile
Data and business rules designed to deliver the right content to the right user.
There are three key elements of the ATG DPS personalization System.

1. User Profile Management


2. Content Targetting

3. Targeted E-mail

User Profile Management

When a person visits a website driven by ATG Dynamo Personalization Server(ATG


DPS) website for the first time, The person is allowed to create its own User Profile.
Once created, DPS stores that User`s Profile in its database repository. This profile
contains a list of properties that describe the person`s characteristics, such as the name
they entered in a registration form or the date of their last login. ATG DPS uses this
profile information stored in its database repository to provided targeted content to each
other.

Content Targeting

Targeting is the process of displaying

1. Content items
2. To a particular user

3. At a particular time

4. In a particular context and

5. On a particular rule set.

In the DPS rule based system, business managers create rule sets called content
targeters that control how content is displayed on the web site.

Targeting Email
DPS includes a Targeted Email service for composing and
delivering personalized email using the same profile groups and
targeting rules you use to deliver content on your web site. Also if
you have Dynamo Scenario Server installed, you can use scenarios
to deliver targeted email. You can use targeted email to perform
below activities.

1. Send a confirmation message to a new user who registers at your


site.
2. Notify frequent customers of special sales.
3. Notify all users that have not logged into your site in several
months that their accounts will be closed soon.

4. Send out a mass mailing with each message tailored to its


reciepient.

8.Which class to extend while creating ATG Droplets?

Ans8. DynamoServlet.java
9.What are ATG Form Handlers?

Ans9. ATG Formhandler is the intermediate class that comes in between a jsp form value and its
bean class. They are there to evaluate the validity of form data before it is submitted, write data
to and read data from a database or repository, and direct the user to different pages, depending
on the results of the form submission
10.What is Base class for all ATG Formhandlers?

Ans10. GenericFormHandler.java
11.What is class Heirarchy for ATG Formhandlers?How to create a FormHandler?

Ans11. At the top of ATG formhandler class heirarchy there exists the
DropletFormHandlerinterface. Then come, three different classes provided by Dynamo which
extend this interface. They are as below
atg.droplet.EmptyFormHandler
atg.droplet.GenericFormHandler
atg.droplet.TransactionalFormHandler
The EmptyFormHandler is the most simplest to implement. It implements the
DropletFormHandler interface and defines blank body implementations of the methods in this
interface.
GenericFormHandlerextends EmptyFormHandler. It defines the simple implementations of the
DropletFormHandler interfaces methods and the basic error handling logic. If errors occur in
processing a form that uses GenericFormHandler, the errors are saved and exposed as properties
of the form handler component. TransactionalFormHandlerextends GenericFormHandler, It
treats the form processing operation as a transaction. Though the methods invoked by this form
handler are processed discretely, but their results are saved simultaneously. The beforeGet and
afterGet methods do the transaction management. This establishes the transaction before any of
your properties are set or handler methods are called.
Posted in ATG-Interviews Q and A

ATG Basic Interview questions


Posted on December 16, 2011
Q1: Define ATG Dynamo.
A: ATG Dynamo, also known as Dynamo Application Server (DAS) or Dynamo ATG is an app server
based on J2EE that the Art Technology Group created.
Q2: Define ATG framework.
A: The ATG framework is used for building Web applications which can run on JBOSS, WebLogic,
WebSphere and other J2EE application servers.
Q3: How do the terms ATG Dynamo and ATG framework interact?
A: The ATG framework is used by Dynamo ATG.

Q4: Describe the meaning of scope Dynamo ATG components.


A: ATG components have 3 types of scopes including request, session & global.
Q5: Which scope is considered to be the default scope?
A: Global
Q6: What ATG Dynamo base class is extended when creating form handlers?
A: GenericFormHandler.java

Q7: Droplets are created by what Dynamo ATG base class?


A: DynamoServlet.java
Q8: What form handlers are involved with checkout?
A: ShoppingCartFormHandler
Q9: What methods are involved with checkout?
A: Many, including handleMoveToConfirm
Q10: Name 7 common elements a user may see during checkout through ATG Dynamo.
A: Add to shopping cart, Login, Billing address, Payment, eMail confirmation, Confirm button, Shipped
eMail address

Q11: Describe the meaning of ATG Repository?


A: Using ATG Dynamo, this is the process for entering into a Database using programs while keeping the
actual application logic apart from the Database.
Q12: Identify Nucleus in Dynamo ATG.
A: The core of ATG Dynamo is the nucleus which is also known as the Object Application Framework.

Posted in ATG-Interviews Q and A

ATG Important interview questions


Posted on December 16, 2011
1. What is atg Nucleus??
Nucleus is a ATG container for components. It creates and initializes component instances on
request. It manages the components scope. It locates the properties file for the component and
through that it reaches the class file of the component. Nucleus components are Java Objects
each with an associated .properties file which store configuration values.
2 . What is MANIFEST file??

Applications often depend on other modules, these dependencies are declared in this file.The file
name is MANIFEST.MF and resides in the META_INF directory. It specifies ATG-ClassPath,ATG-Required, ATG-Config-Path etc
3.
How
a
component
is
Instantiated
??
One can start or stop components manually using an ACC.We can instruct nucleus to start a
component during server startup, this is done by modifying the Initial.properties file.Add the
component name to the initialServices property inside the Initial.properties file.
4. Differentiate Global,Request & session scopes.
Global: components are accessible from all other components.Not available across ATG servers,
each server has its own copy of global scoped component.
Session: means every user of the application gets a separate copy of the component, and
component exists for duration of the users session.
Request : A component is called in for returning the values of a search, so each time a search is
triggered an object instantiation happens and its gone when the result page is closed.Which
means the scope of the search component is request.Eg:-formhandlers normally have a request
scope.
5.
What
is
a
context
root?
Is a URL mounting point of the web application. It decides what URL site site visitors will enter
to
get
to
the
site.
Eg:
http://www.atg.com/context-root
context-root is specified in the application.xml file in the j2ee-apps folder.
6.Logging
features
of
ATG
Any component whose base class implements ApplicationLogging Interface can use atg
logging infrastructure. Logging can be done per-component, per-module/per-application basis.
Error, Warning,Info & Debug messages are the various logging mechanisms.First three are
logged by default, whereas the Debug messages are just for debugging purpose and should be
removed when the code goes into production.Logging is managed using the
GLOBAL.properties file, which specfies the log levels of various modules.
7.Format
of
a
Properties
file
:
Entries
are
generally
expected
to
be
a
single
line
of
the
form
propertyName=propertyValue
or
propertyName:propertyValue
The property value is generally terminated by the end of the line. White space following the
property value is not ignored, and is treated as part of the property value. White space at the
beginning of the line is ignored.A property value can span several lines if each line is terminated
by
a
backslash
(\)
character.
The backslash character must also be escaped using a double backslash.Eg: C:\\home\\3tt
8.What
is
Config
Layering??
Properties set in later entries in the CONFIGPATH override earlier entries. By adding a entry to
the config path you can customize any components in the system without losing the original
configuration information.You can have a global configuration common to all machines then
have machine specific information in the last layer.
9.How
to
register
a
repository
with
the
dynamo??
Create /config/atg/registry/ContentRepositories.properties file and append our repository file
(XML
)name
to
the
initialRepositories
property
Eg: initialRepositories+= /myModule/mySampleRepository

10.ATG
standard
product
catalog
uses
which
repository??
If we are using the standard product catalog provided by ATG no need to configure anything. We
can straight away use the /atg/commerce/catalog/ProductCatalog repository component

You might also like