Tips to handle bad vehicle servicing,misplaced or destroyed parts

Dont agree anything verbally,like that they will replace this next
day or so.if you are casual they will not turn up.

Make it written and signed by the executive atleast 
in the job card.

Dont take the old/damaged parts ...leave it in the service center itself if possible.

Finally dont sign any papers given by them post servicing,
also dont pay the bill till it got repaired/replaced.

Give appropriate feedback based on your experience post servicing.

For complaints

There will be a GM associated with every dealers,
give a written complaint,and lastly write to the company stating the issue.

outofMemory error while opening ATG AdminUI or Component Browser

Some times during development we used to get out of memory error if we try to view/modify the Dynamo AdminUI/Component Browser(through http://host:port/dyn/admin),this happens eventhough we had
made the necessary settings for JVM parameters (MEM_ARGS and MaxPermSize)

A work around for this issue is to just type the absoulute path
of the component in the address bar

For eg: if  you need to view/modify  the component, DeploymentServer through the component browser,go to the Dynamo AdminUI/Component Browser,Browse to the path,


You can view/modify the component now!!!

Initiate the gas transfer formalities in the new location/branch

Initiate the transfer formalities in the new location/branch
Go to the gas agency,with the below mentioned documents
  1. New Transfer Voucher also called subscription Voucher
  2. Regulator
  3. Book
  4. ID proof
  5. Address Proof
  6. Electricity bill
Within 2 minutes the authorities can initiate the gas connection to your new location.

Additionally you need to provide your date of birth and
mobile numbers  to update in their system,mobile number is
very important, Booking can be done through this only,
also  in some agency  you have to send sms through the registered
mobile numbers for booking.


You have the luxury to give an alternate number which would be
useful in certain circumstances,the authorities generally are
ignorant and will not tell anything about this,but  this can be
helpful in future.

See how can we initiate Transfer Formalities in Old Branch

gas transfer formalities in the old/current location/branch

Initiate the transfer formalities in the old/current location/branch
 Go to the gas agency,with the below mentioned documents
  1. Transfer Voucher also called subscription Voucher
  2. Regulator
  3. Book
  4. ID proof
You have to enquire well before the location and agency to which you need to initaiate the transfer Within 2 minutes the authorities can initiate the transfer to your preferred location.
You have to do a signature in the new Transfer Voucher/Subscription Voucher.That’s all you have to do !!!
You don’t have to surrender any cylinder,regulator or any things that you are currently using.
See how to Initiate the Transfer Formalities in New Branch

java.lang.RuntimePermission modifyThread

I encountered this issue while trying to run an ear module 
from our application,the console logs are given below

After researching a while,it seems that we need to add a
specific permission,'modifyThread' in the java policy file
if its not there.

I had tweaked the java.policy file(location - jdk_xxx->jre->lib->security->java.policy)and added the below entry

runtime permission modify thread
Be sure to take a back up of your policy file before doing 
such changes,as there are chances your original file may
get corrupt if something goes wrong.

Now restart your Server and load your application,
This solved the issue !!!

if anybody has other thoughts,please share it here.

Next tip during weblogic shutdown

Console Log:

In Weblogic Server Console logs we are getting the
exception which says access is denied with
the AccessControlException.

This exception occurs when both the weblogic server
and ACC is running  and we try to shutdown the weblogic
server via shutdown scripts .The reason being the
ATG control center is  running in some ther ports being
initiated by the weblogic thread.

To resolve the issue you have to tweak the weblogic policy file

bea/wlserver_XX/server/lib/weblogic.policy file

Add the below entry

grant {
permission "*", "*";

Now restart your Server and ACC to verify.Ideally this will resolve the issue !!!

Next tip

XAConnection Exception in ATG Weblogic

XAConnection java.sql.SQLException


/atg/dynamo/messaging/SqlJmsProvider    ---     java.sql.SQLException: Unexpected exception while enlisting XAConnection java.sql.SQLException: XA error: XAResource.XAER_NOTA start() failed on resource 'XXX_DS': XAER_NOTA : The XID is not valid.


Tweak the configuration file of weblogic server
and add an entry after the datasource params.


Make sure you are taking backup of the original configuration file,chances are there while doing modification you may
accidently corrupt the orignial file.After doing the
necesary changes bounce the Server once,to verify the issue.

Still if you are encountering the issue you have to increase the jta values.refer the section to do so

java.lang.OutOfMemoryError: PermGen space in Weblogic startup

PermGen or Permanent Generation space is a part of Heap where it stores the Class definitions.By default JVM will take the value as 32m,if we have not set this explicitly,so this is comparitively very less.the issue stated here points that there is no enough Perm Gen space avaialable as per your current JVM settings,so increase it to avoid this issue.Again you need to select appropriate values based on your  development environment,how much hardware support etc.

You need to modify this in any webLogic startup Script,i had modified this in setDomain.env file.

Increase the heap size to

MEM_ARGS=-Xms_ _ _m -Xmx_ _ _ _ , here i have given values as 512 and 1024 respectievly.

Set the Perm size

MaxPermSize=_ _ _m,the value given here is 512.

Ideally the Max PermGen value allocated to JVM will be 50% of the Max Heap Size(Xmx).

Also typically in a development environment ,if you are using one Admin Server to manage multiple Managed Servers and all your applications are deployed in Managed Servers,then JVM of your Admin Server require less Heap and PermGen space to load only the Out Of The Box Classes,In this case its ideal to decrease the value of Heap and PermGen for the Admin Server JVM from their original default values.I have tried -XX:PermSize=48m  -XX:MaxPermSize=96m,for a 32 bit JVM, which is working fine.

Make sure to take a backup of the original file,
restart the server,ideally this error will disappear.

Next tip

Java TransactionTimeout issues while working with Weblogic Server

Java Transaction Timeout Issues

We need to basically moidfy the transaction timeout parameter
which by default is set as 30seconds by weblogic,
many requests might  get timedout  between
this very short period,so depends upon your requirement
choose the best value that works for your development
environment.I had modified it to 600.

Two way you can achive this. one is again tweaking the configuratin file and another way to modify it through the admin console.

Increase the transaction timeout seconds through
console( Services->JTA),or modify in config.xml.

If you are modifying the configuration file make sure to take 
a backup copy,restart the server,ideally you may not further
experience this issue.
Next tip

ATG Best Practices while working with Weblogic Server

Avoid NullPointer Exception due to ATG caching of request attributes

If you are following best practices while developing ATG applications,you have to be careful enough to avoid any nullpointer exception which crops up during ATG caching of request attributes.

The solution  is pretty straight forward,you have to tweak your
weblogic configuraion file a bit to add the entry like below.

Set  the keep-alive-enabled property to false, in your config.xml.

Make sure to take a backup of your original config.xml and restart the server to reflect these modifications.


ACC authorisation issues with Weblogic

For Running ACC in seperate VM ,you will experience some issues related to  authorisation,users with DAS are not impacted by this.
So if you are using weblogic server there is an easy fix for this,you have to tweak your configuration file and add an entry to resolve this issue,

below is the modification you have to do in your config.xml file.

Take a backup copy of your original configuration file,this will save you once the original file is corrupted.restart the server,start your ACC in seperate VM from the component browser/adminUI,ideally you may not experience this issue further.

Ant 'NoClassDefFoundError’ and using fork option

I encountered a strange issue while trying to execute build tasks through Ant tool,this is related to the java target.
i got an exception 'NoClassDefFoundError’,it seems to an error in one of the classes in sun.reflect package,i have no clue on how to fix this error,but after doing some research ,i came to know that its always the best practice to run the Java code in a seperate JVM,To achieve this Ant tool has provided you a parameter named 'fork',which upon setting as 'true' has solved the issue !!!
 <java classname="xxxxx" fork="true">

Basically this will use a new JVM to run the code,thereby reducing the chances of running out of memory  issues too.
you can verify how to  Suppress warnings in Ant

Weblogic ssues accessing web application running in remote machine

I have experienced an issue,while trying to access the application running in  a remote machine, i was getting a 'connection refused'
message,and not able to load the application pages further.


ATG 9.1 Weblogic10.0.

I faced this issue while accessing the web application remotely on
another machine through http protocol

Upon further analysis,found the root cause,and that was due to an
entry in the config.xml file which is none other than the listen address property  which is added as  'localhost' by default by the weblogic configuration.

I deleted this entry and its working fine now !!!


Next tip

Ant Tool/Ant Best Practices

Suppressing Ant Warnings

After Switching to  Jdk1.5 ,end up in seeing lot of ant warnings,some of the warnings  are too generic,like the one listed below.

"warning: non-varargs call of varargs method with inexact argument type for last parameter; [javac] cast to java.lang.Object for a varargs call".For me a bunch of warning like this makes no sense other than eating my entire console.So i decided to suppress these warnings.If you also want to get rid of these warnings,
Add the attribute nowarn="on" to the  javac task in our build files.

<javac fork="yes" destdir="${}" debug="true"
deprecation="false" optimize="off" nowarn="on">

You will not be seeing the warning  next time !!!
NoClassDefFoundError  while using Ant.

Next tip

ATG issues while working with Weblogic cannot understand protocol


Add protocol.jar to the Classpath,you can add an entry
inside the Weblogic Startup Script(c:\bea\user_projects\domains\your_domain\bin\startWebLogic.cmd).

set CLASSPATH=%SAVE_CLASSPATH%;c:\bea\user_projects\domains\your_domain\protocol.jar.

then copy the protocol.jar file from C:\ATG\ATG9.1\DAS\lib\protocol.jar to lib directory of your weblogic domain folder.Basically this jar file should be in the classpath of your application server.

One occurrance of this issue is due to the creation of weblogic domain after ATG Installation,because generally during the
Installation  ATG installer will take care of all the above in that case you can ignore this.

Finally Restart your Server.Ideally this will solve 
the issue.Good Luck. 

Next tip

ATG Customizing Log Formats

Since you know all component in ATG defaultly send their log events to a single logQueue component,we might need to customize log formats which best suits for our own components.

For formatting log messages for your own components,there were two OOTB classes provided by ATG
atg.service.datacollection.FormattingFileLogger  and atg.service.datacollection.FormattingConsoleLogger

you can create your own logger components  
by creating the component(properties) for the class FormattingFileLogger/FormattingConsoleLogger.

# directory and file name
formatFields= '<',dateTimeStamp:d/MMM/yyyy:H:mm:ss,'>',' [',sessionID,'] ',browserID,'"',comma,'IP="',ipAddress,'"'

similar way you can create the Console Logger by removing the properties logFileDir,logFileName etc, as this is logged to the i am not providing any example.

To Format  your own component ,specify these two components in the logListeners property.

# /xxx/xxx/xxx/postLogin
# rotate file every day at 12:00AM
schedule= * * . * 0 0

You are done !!!,now use the log statement inside your class,For Eg: logDebug(),you will see the logs generated in the format you wish or mentioned as per the formatFields property.

See also Logging Tips

Receipt of ITR - V,Income tax File Returns/Efiling Acknowledgement

Once the ITR-V Form has been sent to the income tax department.

Within a week you will get the acknowledgement from the mail id (with subject line Income Tax Return for PAN AAKxxxxx0J A.Y. 2011-12- Receipt of ITRV at CPC)to your  email id which you  mentioned while filling up the 2011_ITR1_rX.xls.This can be also seen below in the ITR -V Form (see the email id in the last line,last word)

Given below the sample ITR-V Form and Acknowledgement /Receipt   received.

For getting Refund through Efiling

I have not provided enough supporting at the time of filing income tax returns,due to that my 80C Section was showing only Rs 76903 where actually i have supporting to show till Rs 1 lakh,so the tax was calculated based on the Supportings and Rs 32503  was deducted from my salary,The details is updated in the Form 16 document.Now i have to get back the returns since i have the proofs with me.

So during filing IT Returns i have mentioned the entire one lakh rupees in Section 80 C based on that Rs 23097 more is deducted from my total taxable income and  my total tax
has come down to 29323 Rs Including Educational Cess.

For claiming this in the ITR1 Form you have a tab 'TDS',In that there is an option to specify the total tax deducted where you can mention the amount deducted which is Rs 32503 and earlier based on your inputs on the first tab 'Income Details' your total tax calculated is Rs 29,323.There is another tab 'Taxes paid and Verification' which will calculate the refund amount,in this case it automatically calculated to RS 3180.Now Specify the Bank details in the same page like Account Number,IFSC,Type of Account,You will get the refund amount atleast before the next cycle of income tax filing starts.I got it in November month(2013). 

See also 

Gas Transfer Formalities
Aadhar UID Enrollment 
Rent Receipt Format

ITR V Form with Email id shown below

Efiling Acknowledgement document

BCC snap shot mismatch while deploying the Assets

If you are facing any issue with the snap shot mismatch  while deploying the Assets to Staging,Production,run the below query in the CA

querty to find latest snapshot id

      You will  get the latest snap shot ID for Staging and Production.
In CA Server,Go to the Component Browser,Browse to the path


Enter the snapshot id in the property Force snapshot ID click “init” button.Do the same for the Staging and Production environment.This will resolve the issue.

See also Tweaking for Manage Snapshot Functionality
See also BCC target site inaccessible 

ATG Implicit Modules

Following are the implicit modules inside ATG EAR.

atg_bootstrap.war: Nucleus is started by the module this also runs the servlet pipeline for DAF and DAS(for JHTML) modules .

DAF servlet pipeline will be used for serving JSP Pages and
J2EE Servlets.

DAS Pipeline will be used for serving JHTML pages and Dynamo

atg_bootstrap_ejb.jar: You know how the ATG classes are loaded by the application which you can see inside the atglib folder generally, There will be a EJB with a single session inside this module.The class loader of this session EJB will take care of  loading the classes for ATG application.

atg_admin.war: ATG Component Browser or Dynamo Administration UI  will be started using this module

ATG EAR Creation

Basically two modes for EAR Creation, Development Mode and Standalone Mode,Main difference between these two is how the application access the Nucleus configuration information.For Development mode,the configuration information is accessed through the ATG installation and for other it takes from the EAR file.

Ant File

Application generally uses their own Ant build files to generate/create ATG EAR,it use  CreateUnpackedEarTask which uses clasees present inside assembler.jar.we can also use the runAssembler command directly.

runAssembler for development mode

runAssembler XXX.ear -m Modules.This will create the ear in the
exploded form which is generally used in our day to day development environment

runAssembler for standalone mode

runAssembler [-standalone] XXX.ear -m Modules.
This will create the ear in the  standalone form,which is used in production enviornment where you may not need an ATG installed platform to run the application.

Apart from the Modules specified explicitly through  the runAssembler or the Ant build files there are some other implicit modules which were created at the time of EAR generation -> ATG Implicit modules

ATG FAQ/ATG Interview Questions(set1)

1.   Which droplet displays the contents of the slot?
a. slot value
b. possible value
c. targeting for each
d. item lookup droplet
Answer: C
   2. To make use of the targeting features of the acc a content
     repository must----
a. be structured with content folder items and content items
b. contain the metadata and the content itself in the same data source
c. be built without using repository item inheritanc and can
   only have non  multivalued properties
d. be listed in the initial repositories property of the content repositories  component 
   Answer: D
3. Characteristic of a transient repository item property?
a. It holds repository meta-data
b. It is not stored in the database
c. It is not cleared in the repository
d. It is not stored in auxiliary database table 
   Answer: B
4. An application modules required classes is specified in ---     file.
a. The META.INF file
b.The modules jar file
c.The application.xml
d.The MANIFEST.MF file
e.The file
  Answer: D

5. An online application requires the value of a user’s security privilege be inherited from the privilege of its parent organization unless a value is specified on a per-user basis. Which repository provides the quickest and easiest implementation.
a.RQL filter
b.Derived property
c.Custom property
d.Item-desriptor inheritance 
  Answer: B
Few other general questions

1. What are the different conditions where anonymous
   profile be persisted ?
2. Which is the  ATG out of the box component you need to
change when you want to customize Shipping Group
or Payment Group? 
3. What are all the different states of Order you can find in the
   Shopping Cart?
4. What is the property which allows you to switch b/t different
   order states ?

Questions(set 2)
Certification Question

Related Posts Plugin for WordPress, Blogger...