RE: Re: Session problem

2005-12-07 Thread gramani
"James Harig" <[EMAIL PROTECTED]> wrote on 12/07/2005 
12:50:06 PM:

> >> 
> >> To facilitate these items, you will need some method of informing 
> >> your webapplication that the server is going to be shutdown.  One 
> >> way to do this would be to set a flag in the application context; 
> >> another way is to create a lock file; yet another way is to set a 
> >> flag in a database. 
> 
> >Could you not do this via a ServletContextListener..?
> 
> No, I don't believe that would work.  The ServletContextListener.
> contextInitialized(..) method would be invoked as part of the web 
> app context being shut down; but there is no way to stop the 
> shutdown process once it starts.

Anyways here is a nice link about this stuff:
http://www.stardeveloper.com/articles/display.html?article=200901&page=1

Also talks about counting the number of active users. (I haven't looked at 
it myself..;))
Geeta


RE: Re: Session problem

2005-12-07 Thread gramani
"James Harig" <[EMAIL PROTECTED]> wrote on 12/07/2005 
12:50:06 PM:

> >> 
> >> To facilitate these items, you will need some method of informing 
> >> your webapplication that the server is going to be shutdown.  One 
> >> way to do this would be to set a flag in the application context; 
> >> another way is to create a lock file; yet another way is to set a 
> >> flag in a database. 
> 
> >Could you not do this via a ServletContextListener..?
> 
> No, I don't believe that would work.  The ServletContextListener.
> contextInitialized(..) method would be invoked as part of the web 
> app context being shut down; but there is no way to stop the 
> shutdown process once it starts.
> 

The API for contextDestroyed says "Notification that the servlet context 
is about to be shut down. ". Going by the "about to be" I would have 
thought the contextDestroyed method would be executed first?
Geeta


RE: Re: Session problem

2005-12-07 Thread James Harig
>> 
>> To facilitate these items, you will need some method of informing 
>> your webapplication that the server is going to be shutdown.  One 
>> way to do this would be to set a flag in the application context; 
>> another way is to create a lock file; yet another way is to set a 
>> flag in a database. 

>Could you not do this via a ServletContextListener..?

No, I don't believe that would work.  The 
ServletContextListener.contextInitialized(..) method would be invoked as part 
of the web app context being shut down; but there is no way to stop the 
shutdown process once it starts.



-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Sent: Wednesday, December 07, 2005 12:40 PM
To: Struts Users Mailing List
Cc: Struts Users Mailing List
Subject: RE: Re: Session problem


"James Harig" <[EMAIL PROTECTED]> wrote on 12/07/2005 
11:53:15 AM:

> 
> To facilitate these items, you will need some method of informing 
> your webapplication that the server is going to be shutdown.  One 
> way to do this would be to set a flag in the application context; 
> another way is to create a lock file; yet another way is to set a 
> flag in a database. 

Could you not do this via a ServletContextListener..?

> I have thought about this subject on a number of occasions, but have
> never implemented it.  I would be glad to hear of any feedback.
> 
> Thanks,
> 
> James
> 

Regards,
Geeta

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: Re: Session problem

2005-12-07 Thread Frank W. Zammetti
I did a quick walkthrough the Struts code and it *looks* like nothing in
the code should create a session for a simple request.  Manually setting
the locale will do it, as will having beans in session-scope, and probably
a few other places, but a simple request shouldn't.

I would suggest simply grabbing the source for the version your using a
doing a global search for getSession(true) or getSession() and see if any
of those calls will affect you.  Alternatively, hook up a debugger and
walk through it starting from ActionServlet.process() and see what you
see.

However, as another posted pointed out, accessing a JSP will create a
session too, unless you specify that you do not want that.  To do so, add:

<%@ page language="java" session="false" %>

...to the top of the JSPs where you do not want a session created (like
your login page for instance).

See if that does the trick for you.  I agree with others that there is
probably a better way to deal with your core problem, but this might help
you do what your trying to do none the less.

-- 
Frank W. Zammetti
Founder and Chief Software Architect
Omnytex Technologies
http://www.omnytex.com
AIM: fzammetti
Yahoo: fzammetti
MSN: [EMAIL PROTECTED]

On Wed, December 7, 2005 12:25 pm, James Harig said:
> Hi Russ,
>
>>No, sorry if I was being vague.
>
> No problem.
>
>>I don't want Struts to create a session simply by accessing an action; I
>> want to control
>> the number of sessions being handed out.
>
> I don't believe that this is possible.  The session creation happens at
> the servlet container level(in your case Weblogic); and sessions(if they
> dont exist), implicitly for each request.
>
>>A session is created by virtue of them just getting to the login page.
>
> Yes, this is true.
>
>>Weblogic is telling me that there are active sessions, even though I
>>have invalidated the session once the user logs out. So I don't know if
>>a person is still logged in, or if it is those extra sessions that are
>>being handed out by Struts.
>
> It sounds like you need to implement the concept of "LoginSession", to
> count the number of users that are logged in.
>
>
>
>
> -Original Message-
> From: Baker, Russ A [mailto:[EMAIL PROTECTED]
> Sent: Wednesday, December 07, 2005 12:10 PM
> To: Struts Users Mailing List
> Subject: RE: Re: Session problem
>
>
> No, sorry if I was being vague. I don't want Struts to create a session
> simply by accessing an action; I want to control the number of sessions
> being handed out. All of my pages are using Tiles, so to call for
> instance the login page, which doesn't create a session; I have to call
> an action so that the page is rendered using the Tiles framework.
>
> A session is created by virtue of them just getting to the login page.
> If the user logs in successfully to the system they now have 2 sessions
> instead the desired result having only one that is assigned to them when
> they successful login. That is a waste of memory!
>
> So what I was getting at with the "I don't want to piss off the users by
> shutting down the system while they are still on it..." was that
> Weblogic is telling me that there are active sessions, even though I
> have invalidated the session once the user logs out. So I don't know if
> a person is still logged in, or if it is those extra sessions that are
> being handed out by Struts.
>
> Capiche?
>
> -Original Message-
> From: James Harig [mailto:[EMAIL PROTECTED]
> Sent: Wednesday, December 07, 2005 9:53 AM
> To: Struts Users Mailing List
> Subject: RE: Re: Session problem
>
> Hi,
>
> Here's my take on the subject
>
> The key here is that you want the users to finish what they are doing
> before you let the server shut down.  This means a few things:
>
> 1. If the webapp uses the concept of logging in, new "login sessions"
> shouldn't be allowed.  Attempts to login should be responded to with
> some sort of error: "The server is being shutdown..."
>
> 2. Existing sessions should be invalidated as soon as their next request
> has been submitted, and the response should be redirected to an error
> message "The server is being shutdown".  For example, the when user
> clicks: "check mail", a request is generated to the server(which calls a
> Struts action); respond to this request by invalidating the session, and
> redirecting to an error page.
>
> 2.a. There is an exception to this case:  What if the user is in the
> middle of a multi-step process.  For example step 2 of the shopping cart
> checkout process.  In this case, you would want to postpone calling
> session.in

RE: Re: Session problem

2005-12-07 Thread gramani
"James Harig" <[EMAIL PROTECTED]> wrote on 12/07/2005 
11:53:15 AM:

> 
> To facilitate these items, you will need some method of informing 
> your webapplication that the server is going to be shutdown.  One 
> way to do this would be to set a flag in the application context; 
> another way is to create a lock file; yet another way is to set a 
> flag in a database. 

Could you not do this via a ServletContextListener..?

> I have thought about this subject on a number of occasions, but have
> never implemented it.  I would be glad to hear of any feedback.
> 
> Thanks,
> 
> James
> 

Regards,
Geeta


RE: Re: Session problem

2005-12-07 Thread James Harig
Hi Russ,

>No, sorry if I was being vague.

No problem.

>I don't want Struts to create a session simply by accessing an action; I want 
>to control
> the number of sessions being handed out.

I don't believe that this is possible.  The session creation happens at the 
servlet container level(in your case Weblogic); and sessions(if they dont 
exist), implicitly for each request.

>A session is created by virtue of them just getting to the login page.

Yes, this is true.

>Weblogic is telling me that there are active sessions, even though I
>have invalidated the session once the user logs out. So I don't know if
>a person is still logged in, or if it is those extra sessions that are
>being handed out by Struts. 

It sounds like you need to implement the concept of "LoginSession", to count 
the number of users that are logged in.




-Original Message-
From: Baker, Russ A [mailto:[EMAIL PROTECTED]
Sent: Wednesday, December 07, 2005 12:10 PM
To: Struts Users Mailing List
Subject: RE: Re: Session problem


No, sorry if I was being vague. I don't want Struts to create a session
simply by accessing an action; I want to control the number of sessions
being handed out. All of my pages are using Tiles, so to call for
instance the login page, which doesn't create a session; I have to call
an action so that the page is rendered using the Tiles framework.

A session is created by virtue of them just getting to the login page.
If the user logs in successfully to the system they now have 2 sessions
instead the desired result having only one that is assigned to them when
they successful login. That is a waste of memory!

So what I was getting at with the "I don't want to piss off the users by
shutting down the system while they are still on it..." was that
Weblogic is telling me that there are active sessions, even though I
have invalidated the session once the user logs out. So I don't know if
a person is still logged in, or if it is those extra sessions that are
being handed out by Struts. 

Capiche? 

-Original Message-
From: James Harig [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, December 07, 2005 9:53 AM
To: Struts Users Mailing List
Subject: RE: Re: Session problem

Hi,

Here's my take on the subject

The key here is that you want the users to finish what they are doing
before you let the server shut down.  This means a few things:

1. If the webapp uses the concept of logging in, new "login sessions"
shouldn't be allowed.  Attempts to login should be responded to with
some sort of error: "The server is being shutdown..."

2. Existing sessions should be invalidated as soon as their next request
has been submitted, and the response should be redirected to an error
message "The server is being shutdown".  For example, the when user
clicks: "check mail", a request is generated to the server(which calls a
Struts action); respond to this request by invalidating the session, and
redirecting to an error page.

2.a. There is an exception to this case:  What if the user is in the
middle of a multi-step process.  For example step 2 of the shopping cart
checkout process.  In this case, you would want to postpone calling
session.invalidate() until after the checkout transaction is complete.
We will call these "multi-step transactions".

To facilitate these items, you will need some method of informing your
webapplication that the server is going to be shutdown.  One way to do
this would be to set a flag in the application context; another way is
to create a lock file; yet another way is to set a flag in a database.  

Once the webapp has been informed that the server is going to be
shutdown, wait until all the user sessions have been invalidated, and
shut it down.


I have thought about this subject on a number of occasions, but have
never implemented it.  I would be glad to hear of any feedback.

Thanks,

James


-Original Message-
From: Ed Griebel [mailto:[EMAIL PROTECTED]
Sent: Wednesday, December 07, 2005 10:09 AM
To: Struts Users Mailing List
Subject: Re: Re: Session problem


The key is to not put anything in your session. Actions are the
obvious place to look for things being stuffed into the session (via
request.getSession().get/setAttribute()), but you might have a filter
that creates a session as part of what it does, or an action that has
a session-scoped form in struts-config.xml.

If you want to only test for the existance of a session in your
action, don't forget to call request.getSession(false) and then check
the return for null. See the javadoc:

http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/http/HttpSer
vletRequest.html#getSession(boolean)

Also, if you have other webapps on the web server, they might be using
sessions in their webapps, so anything you do in yours will be for
naught.

-ed

On 12/6/05, Baker, Russ A <

RE: Re: Session problem

2005-12-07 Thread Baker, Russ A
No, sorry if I was being vague. I don't want Struts to create a session
simply by accessing an action; I want to control the number of sessions
being handed out. All of my pages are using Tiles, so to call for
instance the login page, which doesn't create a session; I have to call
an action so that the page is rendered using the Tiles framework.

A session is created by virtue of them just getting to the login page.
If the user logs in successfully to the system they now have 2 sessions
instead the desired result having only one that is assigned to them when
they successful login. That is a waste of memory!

So what I was getting at with the "I don't want to piss off the users by
shutting down the system while they are still on it..." was that
Weblogic is telling me that there are active sessions, even though I
have invalidated the session once the user logs out. So I don't know if
a person is still logged in, or if it is those extra sessions that are
being handed out by Struts. 

Capiche? 

-Original Message-
From: James Harig [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, December 07, 2005 9:53 AM
To: Struts Users Mailing List
Subject: RE: Re: Session problem

Hi,

Here's my take on the subject

The key here is that you want the users to finish what they are doing
before you let the server shut down.  This means a few things:

1. If the webapp uses the concept of logging in, new "login sessions"
shouldn't be allowed.  Attempts to login should be responded to with
some sort of error: "The server is being shutdown..."

2. Existing sessions should be invalidated as soon as their next request
has been submitted, and the response should be redirected to an error
message "The server is being shutdown".  For example, the when user
clicks: "check mail", a request is generated to the server(which calls a
Struts action); respond to this request by invalidating the session, and
redirecting to an error page.

2.a. There is an exception to this case:  What if the user is in the
middle of a multi-step process.  For example step 2 of the shopping cart
checkout process.  In this case, you would want to postpone calling
session.invalidate() until after the checkout transaction is complete.
We will call these "multi-step transactions".

To facilitate these items, you will need some method of informing your
webapplication that the server is going to be shutdown.  One way to do
this would be to set a flag in the application context; another way is
to create a lock file; yet another way is to set a flag in a database.  

Once the webapp has been informed that the server is going to be
shutdown, wait until all the user sessions have been invalidated, and
shut it down.


I have thought about this subject on a number of occasions, but have
never implemented it.  I would be glad to hear of any feedback.

Thanks,

James


-Original Message-
From: Ed Griebel [mailto:[EMAIL PROTECTED]
Sent: Wednesday, December 07, 2005 10:09 AM
To: Struts Users Mailing List
Subject: Re: Re: Session problem


The key is to not put anything in your session. Actions are the
obvious place to look for things being stuffed into the session (via
request.getSession().get/setAttribute()), but you might have a filter
that creates a session as part of what it does, or an action that has
a session-scoped form in struts-config.xml.

If you want to only test for the existance of a session in your
action, don't forget to call request.getSession(false) and then check
the return for null. See the javadoc:

http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/http/HttpSer
vletRequest.html#getSession(boolean)

Also, if you have other webapps on the web server, they might be using
sessions in their webapps, so anything you do in yours will be for
naught.

-ed

On 12/6/05, Baker, Russ A <[EMAIL PROTECTED]> wrote:
> It is Weblogic. I am using a "graceful" shutdown so that if people
still
> have open sessions, they can complete what they are doing. The other
> alternative is to force shutdown, but I am afraid I will make enemies
if
> I do that...
>
> -Original Message-
> From: news [mailto:[EMAIL PROTECTED] On Behalf Of Laurie Harper
> Sent: Tuesday, December 06, 2005 3:53 PM
> To: user@struts.apache.org
> Subject: Re: Session problem
>
> Baker, Russ A wrote:
> > Hello,
> >
> > I am trying to figure out how to stop Struts from creating a
session.
> > What seems to happen is that once I call an action, a session is
> > created. This is a problem because when I want to gracefully shut
down
> > my server, it complains that I still have an active session. Is
there
> a
> > way to configure Struts so that it does not create a session when an
> > action is called?
>
> A session is created the first time something accesses it. Since
Struts
&

RE: Re: Session problem

2005-12-07 Thread James Harig
Hi,

Here's my take on the subject

The key here is that you want the users to finish what they are doing before 
you let the server shut down.  This means a few things:

1. If the webapp uses the concept of logging in, new "login sessions" shouldn't 
be allowed.  Attempts to login should be responded to with some sort of error: 
"The server is being shutdown..."

2. Existing sessions should be invalidated as soon as their next request has 
been submitted, and the response should be redirected to an error message "The 
server is being shutdown".  For example, the when user clicks: "check mail", a 
request is generated to the server(which calls a Struts action); respond to 
this request by invalidating the session, and redirecting to an error page.

2.a. There is an exception to this case:  What if the user is in the middle of 
a multi-step process.  For example step 2 of the shopping cart checkout 
process.  In this case, you would want to postpone calling session.invalidate() 
until after the checkout transaction is complete.  We will call these 
"multi-step transactions".

To facilitate these items, you will need some method of informing your 
webapplication that the server is going to be shutdown.  One way to do this 
would be to set a flag in the application context; another way is to create a 
lock file; yet another way is to set a flag in a database.  

Once the webapp has been informed that the server is going to be shutdown, wait 
until all the user sessions have been invalidated, and shut it down.


I have thought about this subject on a number of occasions, but have never 
implemented it.  I would be glad to hear of any feedback.

Thanks,

James


-Original Message-
From: Ed Griebel [mailto:[EMAIL PROTECTED]
Sent: Wednesday, December 07, 2005 10:09 AM
To: Struts Users Mailing List
Subject: Re: Re: Session problem


The key is to not put anything in your session. Actions are the
obvious place to look for things being stuffed into the session (via
request.getSession().get/setAttribute()), but you might have a filter
that creates a session as part of what it does, or an action that has
a session-scoped form in struts-config.xml.

If you want to only test for the existance of a session in your
action, don't forget to call request.getSession(false) and then check
the return for null. See the javadoc:

http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/http/HttpServletRequest.html#getSession(boolean)

Also, if you have other webapps on the web server, they might be using
sessions in their webapps, so anything you do in yours will be for
naught.

-ed

On 12/6/05, Baker, Russ A <[EMAIL PROTECTED]> wrote:
> It is Weblogic. I am using a "graceful" shutdown so that if people still
> have open sessions, they can complete what they are doing. The other
> alternative is to force shutdown, but I am afraid I will make enemies if
> I do that...
>
> -Original Message-
> From: news [mailto:[EMAIL PROTECTED] On Behalf Of Laurie Harper
> Sent: Tuesday, December 06, 2005 3:53 PM
> To: user@struts.apache.org
> Subject: Re: Session problem
>
> Baker, Russ A wrote:
> > Hello,
> >
> > I am trying to figure out how to stop Struts from creating a session.
> > What seems to happen is that once I call an action, a session is
> > created. This is a problem because when I want to gracefully shut down
> > my server, it complains that I still have an active session. Is there
> a
> > way to configure Struts so that it does not create a session when an
> > action is called?
>
> A session is created the first time something accesses it. Since Struts
> stores various things in session scope, I don't think you can avoid
> having one created.
>
> What container are you using? It seems like an odd behaviour to refuse
> to shut down if there are any active sessions... Are you sure it's
> referring to an HTTP session (as opposed, for example, to a Hibernate
> session or something)?
>
> L.
>
>
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Re: Session problem

2005-12-07 Thread Ed Griebel
The key is to not put anything in your session. Actions are the
obvious place to look for things being stuffed into the session (via
request.getSession().get/setAttribute()), but you might have a filter
that creates a session as part of what it does, or an action that has
a session-scoped form in struts-config.xml.

If you want to only test for the existance of a session in your
action, don't forget to call request.getSession(false) and then check
the return for null. See the javadoc:

http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/http/HttpServletRequest.html#getSession(boolean)

Also, if you have other webapps on the web server, they might be using
sessions in their webapps, so anything you do in yours will be for
naught.

-ed

On 12/6/05, Baker, Russ A <[EMAIL PROTECTED]> wrote:
> It is Weblogic. I am using a "graceful" shutdown so that if people still
> have open sessions, they can complete what they are doing. The other
> alternative is to force shutdown, but I am afraid I will make enemies if
> I do that...
>
> -Original Message-
> From: news [mailto:[EMAIL PROTECTED] On Behalf Of Laurie Harper
> Sent: Tuesday, December 06, 2005 3:53 PM
> To: user@struts.apache.org
> Subject: Re: Session problem
>
> Baker, Russ A wrote:
> > Hello,
> >
> > I am trying to figure out how to stop Struts from creating a session.
> > What seems to happen is that once I call an action, a session is
> > created. This is a problem because when I want to gracefully shut down
> > my server, it complains that I still have an active session. Is there
> a
> > way to configure Struts so that it does not create a session when an
> > action is called?
>
> A session is created the first time something accesses it. Since Struts
> stores various things in session scope, I don't think you can avoid
> having one created.
>
> What container are you using? It seems like an odd behaviour to refuse
> to shut down if there are any active sessions... Are you sure it's
> referring to an HTTP session (as opposed, for example, to a Hibernate
> session or something)?
>
> L.
>
>
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: Re: Session problem

2005-12-06 Thread Baker, Russ A
It is Weblogic. I am using a "graceful" shutdown so that if people still
have open sessions, they can complete what they are doing. The other
alternative is to force shutdown, but I am afraid I will make enemies if
I do that...

-Original Message-
From: news [mailto:[EMAIL PROTECTED] On Behalf Of Laurie Harper
Sent: Tuesday, December 06, 2005 3:53 PM
To: user@struts.apache.org
Subject: Re: Session problem

Baker, Russ A wrote:
> Hello,
> 
> I am trying to figure out how to stop Struts from creating a session.
> What seems to happen is that once I call an action, a session is
> created. This is a problem because when I want to gracefully shut down
> my server, it complains that I still have an active session. Is there
a
> way to configure Struts so that it does not create a session when an
> action is called?

A session is created the first time something accesses it. Since Struts 
stores various things in session scope, I don't think you can avoid 
having one created.

What container are you using? It seems like an odd behaviour to refuse 
to shut down if there are any active sessions... Are you sure it's 
referring to an HTTP session (as opposed, for example, to a Hibernate 
session or something)?

L.


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]