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 <[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] --------------------------------------------------------------------- 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]