Posts

Showing posts with the label ATG Tips

ATG Customize and Enhance your CRS Module easily

Firstly we need to create a folder and give the name of your choice,For example i have given Wirelessstore, inside that folder you create a META-INF folder,and create a MANIFEST.MF file,once this is done then modify the Manifest file property to ATG-Install-Unit:MyWirelessStore(MyWirelessStore is the name i have given instead of the name Store in CRS module) and create a folder with the same name MyWirelessStore under Wirelessstore,after this copy all  CRS-Store folders under this folder. You can Refer the CommerceReferenceStore Manifest file for this. Now configure your eclipse and import the necessary folders to your workspace.Resolve the classpath by importing required Jars and Classes to your Buildpath and do a clean build of your Project. Now create a runAssembler command so that it will pick modules from your newly created folder structure. runAssembler -m ATGProduction.ear -m DafEar.Admin DPS DSS  DSS DCS.PublishingAgent MyWirelessStore.EStore MyWirelessStore.Rec...

ATG dos and donts with Weblogic

1. Use single and Double quotes alternatively .             <dsp:param name='<%="abc"%>' value = "12" /> - Correct     <dsp:param name="<%="abc"%>" value = "12" /> - Wrong 2. Proper String Concatenation     <dsp:param name='"xxx" + <%="abc"%>' value = "12" /> -       Correct     <dsp:param name="xxx"<%="abc"%> value = "12" /> - Wrong 3. Use DynamoHttpServletRequest instead of HttpServletRequest    DynamoHttpServletRequest drequest =     ServletUtil.getDynamoRequest(request);  4. Always Specify encoding type in JSP Pages    <%@ page contentType  = "text/html" %>    Below are few best practices for developers 1. Always use Generics. 2. Use String Builder instead of String Buffer in logging . 3. Always use Enhanced For Loop. 4. Use annotations(@over...

Customize to start Nucleus manually inside your java class

There is  a  simple approach to Initiate nucleus manually.Knowing this may help to customize Nucleus,like Override the default behavior, writing a custom junit test for testing profiles,repositories, etc. ATG has tools which Initiate N ucleus as a standalone to perform  some of their tasks.You might have used StartSqlRepository,the StartSqlRepositoy Initiate the nucleus as standalone.You need to take care of mapping the Repositories to appropriate Datasources.This is generally achieved through FakeXAComponents.All this are already available OOTB,but you can also start Nucleus manually doing some simple customization. Below are the customizations you need to do to start Nucleus manually,the modules given here are OOTB,additionally you need to include your respective modules and custom modules to resolve the necessary components. Define a component mynucleus and configure it in your build path . atg.dynamo.home=C:\\ATG\\ATG10.2\\home atg.dynamo.root=...

ATG-Class-Path Usage and Duplicate Class Files in JARS

I came across a situation in which i have two Class Files of the same name in different JARs but with some methods similar and other methods entirely different , these two JARS are required for the same Project with different Modules and i want to access the one which is compatible with my Code and Module,The other Module obviously dont want this Class file but requires other Classes,now the issue is you  have both the jars in CLASSPATH.How will you make sure you are pointing to the correct Class files in this situation, you need the Class Files from one JAR which has your updated method for a new functionality, You may experience the same issue while organizing imports or resolving a Java component. Here you need to do two things,first one is to resolve the component at Compile time in Eclipse or other IDEs,the second part is to resolve the runtime conflicts in the Application Server So for Compile time,Assume if you are using Eclipse and you have both  JAR added ...

ATG Implementation Developer Essential Certifications Reference

I have taken the Certification and cleared it ,Following are the few questions and answers i can recollect.Hope this would help you to prepare for the Certifications to some Extend.All the best for the Certifications. Which two ASE tasks can be performed by ACC but not BCC Ans : Scenarios,Slots,Workflow Role of allocateItemRelQuantitychain Ans : To purchase item from Preorder Backorder and the Avaialble Stock Ininvetory   How many current and saved orders does ATG allows fora User Profile Ans : One current Order and Collection of Saved Orders What is a Reanimated Order Ans : Previously Abandoned Order in which user has added items or modified the item quantities What are the properties we need to add in the Versioned schema for Primary tables and Auxiliary tables Ans : asset_version in both Primary and Auxiliary tables,other 7 columns in Primary tables What component should a shareable component register with Ans : sitegroup If you want to update the Computed Catal...

/atg/epub/DeploymentServer error encountered reading in persisted status java.io.EOFException

 Mon Jul 08 22:07:25 IST 2013    1373301445080   /atg/epub/DeploymentServer      error encountered reading in persisted status   java.io.EOFException  Mon Jul 08 22:07:25 IST 2013    1373301445080   /atg/epub/DeploymentServer              at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2553)  Mon Jul 08 22:07:25 IST 2013    1373301445080   /atg/epub/DeploymentServer              at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1296)  Mon Jul 08 22:07:25 IST 2013    1373301445080   /atg/epub/DeploymentServer              at java.io.ObjectInputStream.readObject(ObjectInputStream.java:...

practice set of questions and answers to test your knowledge

Application has three different email handlers:one for the testing ,one for the internal mail and one for the external.Content Administration  uses the internal mail handler to send the asset update notification to the managers,which of the following directories would be the best place to configure SMTPEmail.emailHandlerHostName? a: atgdir/home/localconfig b: atdir/home/server/yourserver/localconfig c: atdir/yourapp/config d: atdir/yourapp/liveconfig e: atdir/yourapp.versioned/config f: atgdir/yourapp.versioned/live config Answer : b e and f Use the -Standalone option when assembling your ATG application to allow you to : a: Run the application without using a separate application server such as Weblogic or JBoss b: Run a server type with only single instance such as the CA server. c: Deploy EJBs and Web Applications into seperate EARs d: Run the application on a host on which ATG is  not installed Answer : d There should be a no...

setting nohup in linux for logging and start admin console without startup script

Generally the Application Server Startup logs which has the information of ATG Modules,ATG Classpath,ATG Version etc running under Managed Weblogic Server will not be logged to the logs folder under the ATG Application Server log path (ATG_HOME/server/ATGProduction/logs).Ideally the Application Server would be logging this to the console which includes the output from the stdout and stderr,but as a best practice you may need to manually capture these console logs to some file,otherwise it might loose once the console buffer is filled,its also very difficult to read and thereby troubleshoot an issue. Also in Unix if you run a startup script of an Application Server, The same Server will shutdown if you accidentaly  close the window or somehow the connection is lost to that session. So inorder to address the above issues you can try the below steps I have taken a typical example of Weblogic Application Server.You may change the based on your Application Server startup s...

ATG Questions and Answers for ATG Commerce Implementation Certification

1. The design of the OrderFullfiller and the HardgoodFullfiller used the       ClientLockManager to ------------- A. Prevent one component from processing messages for two different orders      at  same time B. Send messages to all the components that the order is being      modified.Components  C. Helping in caching the order for better performance D. Lock the order so client cannot modify his order after it is submitted E.  Their Item Descriptors has cache mode property set to locked Answer: A Explanation: The design of the OrderFullfiller and the HardgoodFullfiller uses the ClientLockManager to prevent one component from processing messages for two different orders at the same time. 2. Inorder to ensure versioning integrity,a deploying project obtains exclusive       locks on its assets when deployment starts.what is the effect of these locks? A. Until a p...

Oracle Recommended Approach for ATG10.1.2 Siebel 8.1.1.10 Integration

Oracle has provided the code base for atg siebel integration, this code base is an enhanced version of the current CRS implementation we have for user registration,order capture and product configurator. Configuration Steps Extract the given integration code to your atg folder (eg:C:\ATG\ATG10.1.2) Set up the project in your eclipse,you can setup this as  an existing ATG Project Once you Run the siebelBuild.xml with the ant task "all-with-ws" a new Folder Siebel will be created in your atg root path (eg:C:\ATG\ATG10.1.2) There will also a SiebelWS folder created with a SiebelWS.ear file inside your newly created Siebel folder. Create an ear using runAssembler for the Siebel web application by specifying either the module -m Siebel.PublishingAgent or Siebel.Versioned based on whether running application in Production or Publishing Run the necessary scripts in production publishing and switching schemas. Define the Webservice endpoints. Run the Application !! See h...

atg locked caching - how locked caching works with atg repositories

Suggested use : when data changed frequently. Disadvantage  : can lead to deadlocks. <item-descriptor name="..." cache-mode="locked"> Locked caching is based on write locks and read locks.If no servers have a write lock for an item,any number of servers may have a read lock on that item.When a server requests a write lock,all other servers are instructed to release their read locks.Once an item is write locked,no other servers may get a read lock or write lock until the first server releases its write lock.In other words,once a server has a write lock on an item,all access to that item is blocked until the write is completed. A server requests a read lock the first time it tries to access an item.Once the server has a read lock on the item,it holds that read lock until the lock manager notifies the server to release its read lock.At that time ,it drops the item from its cache. A write lock is requested whenever a server calls getItemForUpdate...

hitRatio missRatio and usedratio in repository caching

The missRatio indicates that the items in cache are not used or missed. That is your queries are returning totally different rows of data everytime and hence having a chance for them is useless. Look for a high missRatio and disable cache for these items. Same way if the missRatio is too low or the hitRatio is too high something like 90-95%, that means that we have almost all the data in the cache itself. This indicates that either our cache size is too big or the data in the table is not in large numbers. The usedRatio indicates the percent of the maximum cache size now in use. If this is too high, that means that most items in the cache are being used now. So we can increase the cache size. The usedRatio is the percent of  entryCount/cache size.  gives the number of entries currently in the cache. If this is same as your cache size consider increasing the cache size.