cancel
Showing results for 
Search instead for 
Did you mean: 

Data storage on a SAP WEB AS cluster environment

Nora_Popp
Explorer
0 Kudos

Hi,

We are using the SAP WEB AS 7.0 and I'm facing a problem with a single sign on (SSO) in a clustered environment.

The SSO works like this:

1. On an application outside of our WEB AS (Customer Application) a user logs on and an object called Token is send to a servlet on our application on the WEB AS (Internal Application). This Token is saved within the servlet context and contains data of the user.

2. If the user then decides to call our Internal Application, he clicks a link on the Customer Application and a second Token is send to our Internal Application. A new session in our Internal Application will be created and a search in the servlet context for the first Token for this user starts. If the first Token is found, the data from the second token will be matched with the first token.

This works fine in a single node environment. But in a clustered environment the Token objects will be spread among all server nodes because each server node holds its own servlet context. And there is my question: <b>How can I store the first Token object, so that I can reach the data within other session from every other server node?</b>

Sticky sessions are not an option, because this SSO works asynchronous and we have a session for the first Token and another session for the second Token. There are up to 800 concurrent users and the time difference between the first and the second token can be milliseconds. So I’m afraid storage in the database would not work either.

I hope someone can help me with that.

Nora

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Nora,

When you persist the information you need in the database, you don't have a problem with multiple server nodes. Simply create a CMP EJB ("Container Managed Persistence") that holds everything you need for your single sign on. You just have to keep in mind hat you need something that does a cleanup for the data you stored in the database...

As far as I know, there is no way to deal with this issue without using a persistency layer.

Best regards,

Frank

Nora_Popp
Explorer
0 Kudos

Hi Frank,

Thank you very much for your help.

The suggestion with the CMP EJB should work, although I'm afraid, our web application could be a bit less performing then it is now. But it seems to be the only useful way.

Thanks again

Nora

Answers (0)