best way to increase performance | Community
Skip to main content
harsha__
Level 2
Jun 12, 2017 5:50 PM UTC
Solved

best way to increase performance

What is the best Way to increase performance in AEM?

I need to call restful services from AEM frequently. I am planning to save the frequently getting response in javax.servlet.http.HttpSession(from request) or Cookie. But confused of which aproach to follow. Need some assistance from who have implemented either in their production systems.

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Feike_Visser1
Feike_Visser1Accepted solution
Employee
Jun 12, 2017 6:25 PM UTC

Also remember AEM is stateless, so there is no session-failover.

15 replies

harsha__
harsha__Author
Level 2
Jun 18, 2017 6:00 PM UTC

Thanks rodolfoe61952519 for your suggestion. it seems like a best choice

Translate
harsha__
harsha__Author
Level 2
Jun 18, 2017 5:58 PM UTC

As per our client he wants all the data to be stored used Restful service and not in Jcr.. but for temporary use I am using cookies to store data. I see cookies and Guava Cache has advantages over javax.servlet.http.HttpSession(from request) storage. So will be implementing them. smacdonald2008​ Thank you

Translate
smacdonald2008
Level 10
Jun 13, 2017 5:49 PM UTC

AEM sessions are not like J2EE sessions. There are Sessions to the JCR. I would not try to store data there.

In AEM - why use Cookies? If you want to store data from a Restful service - i recommend storing the data in the JCR.

Translate
rodolfoe6195251
Level 2
Jun 13, 2017 5:34 PM UTC

If needed you can also cache the response from the rest calls on the backend for example using Guava Cache

Translate
harsha__
harsha__Author
Level 2
Jun 13, 2017 5:30 PM UTC

smacdonald2008 Thanks for your answer. But I am ok with Restful calling and getting the response code part.

I am looking to save the response in Session or Cookie to avoid hitting the restfull service frequently. but confused about which one to prefer for storing Response, such as should I use Session setattribute to save the respoIse or should i use cookies in browsers to save the response?

Translate
smacdonald2008
Level 10
Jun 13, 2017 2:04 PM UTC

"restful services from AEM frequently"

Use Java code like:

DefaultHttpClient httpClient = new DefaultHttpClient();

            

  HttpGet getRequest = new HttpGet("http://maps.googleapis.com/maps/api/distancematrix/json?origins=Vancouver%20BC&destinations=San%20Francisco&sensor=false");

  getRequest.addHeader("accept", "application/json");

  HttpResponse response = httpClient.execute(getRequest);

Translate
harsha__
harsha__Author
Level 2
Jun 13, 2017 1:51 PM UTC

smacdonald2008 feike_visser Can you help me with my last query?

Translate
harsha__
harsha__Author
Level 2
Jun 12, 2017 8:00 PM UTC

feike_visser no Session-failover in AEM means, AEM user session will be lost if any publish server in the publish network is lost? if this is the case with AEM then storing response in session is not a good idea right? please help me make a better choice between cookie or javax.servlet.http.HttpSession(from request as attribute) for my application.

Translate
harsha__
harsha__Author
Level 2
Jun 12, 2017 6:59 PM UTC

Thanks Mac. you are very helpful

Translate
Feike_Visser1
Feike_Visser1Accepted solution
Employee
Jun 12, 2017 6:25 PM UTC

Also remember AEM is stateless, so there is no session-failover.

Translate