ATG Interview Question and Answers 2021

Rating: 4
Views: 16099
by Ravindra Savaram
Last modified: January 23rd 2021

If you're looking for ATG Interview Questions for Experienced or Freshers, you are in right place. There are a lot of opportunities from many reputed companies in the world. According to research, ATG has a market share of about 0.1%.

So, You still have the opportunity to move ahead in your career in ATG Analytics. Mindmajix offers Advanced ATG Interview Questions 2021 that helps you in cracking your interview & acquire a dream career as an ATG Analyst.

If you want to enrich your career and become a professional in ATG Certification, then visit Mindmajix - a global online training platform: "Oracle ATG Training" This course will help you to achieve excellence in this domain. 

ATG Interview Questions - Table of Contents

1. What is an ATG Repository?

2. What is an Item Descriptor?

3. What is ATG Dynamo? What is ATG Framework?

4. What is the scope of Dynamo Components?

5. What is the Nucleus?

6. What is Atg Pipeline?

7. What is the ATG tag library?

8. What is ATG DPS? What are its elements?

9. Which class to extend while creating ATG Droplets?

10. What are ATG Form Handlers?

Top ATG Interview Question and Answers

Q1. What is an ATG Repository?

Ans: A repository is a data access layer that defines a generic representation of a data store. It simplifies the storage and retrieval of data. The manipulations of data are done through the Repository API. Application developers access data only using interfaces such as Repository andRepositoryItem.

Developers can create, modify, query, and remove repository items. A repository item is more or less like a Java bean. The ATG platform includes a set of models for repositories.

  • SQL Repository: uses the Generic SQL Adapter(GSA) to perform a mapping between ATG and data stored in a SQL database.
  • Versioned Repository: It is an extension of the SQL repository used in ATG Content Administration. It has versions for every set of data. For example, a price for a product is edited, the new entry will be made with a new version number instead of editing the price.

a) The SQL repository is implemented through the atg.adapter.gsa package. The main ATG component in the SQL repository is an instance of the atg.adapter.gsa.GSARepository class, which implements the interfaces atg.repository.MutableRepository and atg.repository.content.ContentRepository and which extends the class atg.repository.RepositoryImpl.
b) Let's keep aside the hardcore theory for now and move to more practical aspects of repositories.
c) A repository is a collection of repository items. In general, a repository item corresponds to the smallest uniquely identifiable entity in the underlying data store. Each repository item is made of properties and these properties store the data and thus make a repository item. These properties of a repository item are defined inside the repository’s ITEM DESCRIPTORs. Properties of repository items may be single-valued or multi-valued.
d) It's still confusing…??? be patient, towards the end there is something informative that will help you enhance your understanding.

Q2. What is an Item Descriptor?

Ans: Let's keep it simple with the help of an SQL Repository, for example, each database table have its own repository item descriptor. Sometimes a JOIN of multiple tables into a single item descriptor.
Points to Note:
ATG repositories support Java collections and hence we can store a List, Map, or  Arrays.
ATG repositories allow one-one, one – many, and many-many relationships.
Here is what I have promised: how to set up a repository..??
We have a database table (eg:  tb_tango).
Now create a property file that specifies the repository mapping xml file, class file, data Source, etc. Let's name it “sampleFile.properties“. The mapping xml(repositoryMapping.xml) file specifies the repository item descriptors. And the final step is registering the repository with dynamo
“sampleFile.properties”
$class=atg.adapter.gsa.GSARepository
definitionFiles=Folder Structure/repositoryMapping.xml
XMLToolsFactory=/atg/dynamo/service/xml/XMLToolsFactory
transactionManager=/atg/dynamo/transaction/TransactionManager
idGenerator=/atg/dynamo/service/IdGenerator
dataSource=/atg/dynamo/service/jdbc/dataSourceFile
* The “dataSourceFile”  is yet another property file where the JDBC connections and database driver, server name, user, password, etc are specified.
repositoryMapping.xml
“https://www.atg.com/dtds/gsa/gsa_1.0.dtd”>

Q3. 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…).

Q4. 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

Q5. What is the Nucleus?

Ans:

The nucleus is ATG`s open Object Application Framework. ATG 7 is said to be a component-centric development platform. The ATG 7 Web applications are nothing but individual JavaBean components assembled. These JavaBean components are configured and linked together by properties files within the Nucleus.

In the 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. The 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

The 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 figures out which components are to be used in an application initialize them to their default values, and how decides about how they connect. 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.

Q6. What is the Atg Pipeline?

Ans: Atg Pipeline is a variant of Servlet Pipeline, In an ATG pipeline the sequence of Programs is 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 request’s 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.

Q7. What is the 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

Q8. What is ATG DPS? What are its elements?

Ans: 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.

  • User Profile Management
  • Content Targetting
  • 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 

  • Content items
  • To a particular user
  • At a particular time
  • In a particular context and
  • On a particular ruleset.

Check Out Oracle ATG Tutorials

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 the below activities.

  • Send a confirmation message to a new user who registers at your site.
  • Notify frequent customers of special sales.
  • Notify all users that have not logged into your site in several months that their accounts will be closed soon.
  • Send out a mass mailing with each message tailored to its recipient.

Q9. Which class to extend while creating ATG droplets?

Ans: DynamoServlet.java

Q10. What are ATG Form Handlers?

Ans: 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

Q11) What is Base class for all ATG Formhandlers?

Ans: GenericFormHandler.java

Q12) What is class Hierarchy for ATG Formhandlers?How to create a FormHandler?

Ans: At the top of the ATG form handler class hierarchy 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

EmptyFormHandler is the simplest to implement. It implements the DropletFormHandler interface and defines blank body implementations of the methods in this interface. 
GenericFormHandler extends EmptyFormHandler. It defines the simple implementations of the DropletFormHandler interface’s 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.

TransactionalFormHandler extends 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 transaction management. This establishes the transaction before any of your properties are set or handler methods are called. 

Q13) Name the two methods that can be used in a component?

Ans: Getters & Setters

Q14) Name 2 types of tables?

Ans: primary and auxiliary

Q15) Have you worked on shopping carts?

Ans: CartModifierFormHandler , ShoppingCartFormHandler

Q16) Name 2 types of checkout?

Ans: Express Checkout, Guest Checkout

Q17) 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

Q18) What is BCC?

Ans: Business Control Center- UI for Business Users (to upload content to Catalogs, create promotions, etc)

Q19) What are custom dsp tags?

Ans: I general, the Custom tags will be written by the developer.
Dsp is all ready to use. you can use it to render content dynamically by linking Nucleus components directly to your JSPs. Especially, the (dsp) tag library, allows you to 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.

Q20) Difference between dsp: include and jsp: include?

Ans: Dsp imports all objects of type class also, whereas jsp imports only primitive types.
JSP includes are dynamic whereas 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 ATG’s Nucleus framework. Other functions provided by these tags manage transactions and determine how data can be rendered within a JSP.

It’s best to use tags from the DSP tag library only for tasks that involve the 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.

Q21) How to implement a shopping cart?

Ans: ShoppingCartFormHandler

Q22) What is the main form handler you use for the Shopping cart?

Ans: ShoppingCartFormHandler & CartModifierFormHandler

Q23) What is a Component?

Ans: Is a Java bean

Q24) 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

Q25) Is DAS for high volume or low volume traffic?

Ans: High volume

Q26) Explain the ATG performance issues?

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 db activities, SQL queries that run long time, Slow CA deployments, just to name a few.

Q27) Why is Eclipse used with ATG?

Ans: Eclipse IDE

Q28) Which is the IBM product used with ATG?

Ans: WebSphere Application Server
Eclipse IDE

Q29) What are derived properties?

Ans: Enables one repository item to derive property values from another repository item or another property in the same repository item.

Q30) 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.

Q31) What are the different modes of caching?

Ans: Caching modes are set at the item descriptor level, through the tag’s 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)
  • Distributed JMS (distributed JMS caching)
  • DistributeHybrid (distributed hybrid caching)

Q32) Which are the handleX methods in?

Ans: HandleX methods contain the actual function to be performed. It's a method. Like in ProfileFormHandler- handleLogin

Q33) 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 their own unique pricing for products based on contracts, RFQ, and pre-negotiated prices.