HttpSessionTimeOut

Hi,
Does the HttpSession time out work in JDeveloper?
I ran a JSP application locally in JDeveloper 3.2.3 and set the session.MaxInactiveInterval(20). But in my JSP page session information never expired no matter how long the application idled.
I just want to test and see if the session variables of one session will expire after max inactive time. Does the session time out of server embedded in JDeveloper work? Or how can I set the environment right to make it work?
Thank you for your assistant.

REPOST
I moved now to JDev 3.2.3.
In bc4j.xcfg file the property RELEASE_MODE is Reserved. Are there any property which substitutes the old "HttpSessionTimeOut" setting used with JDev 3.1?
I also tried to edit the new "webabb_package_packagemodule.properties" file, writing "HttpSessionTimeOut=60", but session is still alive after 60 seconds. I didn't monitored yet, but it seems the default timeout is 30 minutes.
Where is the setting for session timeout?
Thank you.

Similar Messages

  • User timeout sap me 5.2

    Hello.
    I have a tiny issue, but it is not a problem. When I logon to a site and stay idle for sometime and i try to open resources or admin pods or any of the links in sap me, it wont work. As it turns out after some time of idling I'm being logged out of the site and need to re-log to continue working. Where can I change the timeout settings for user authentication?
    regards,
    Tarvi
    Edited by: Tarvi Tihhanov on Jul 28, 2011 12:58 PM

    Hello Tarvi,
    Please check this link: http://wiki.sdn.sap.com/wiki/display/ME/HTTPSessionTimeout
    Regards,
    Alex.

  • URGENT  timout problems with bc4j

    Hello Jdev Team,
    We have a serious problem with the BC4J. The situation is as
    follows:
    We use BC4J with jsp pages an run the whole thing on a j2ee
    Container.
    We have written our own ApplicationPool class and
    ApplicationModule datatag because the users have to login
    using different credentials. The login users are db-users. The
    application release mode is reserved.
    The application crashes frequently. 2 errors occur.
    First of all we get an JBO-30003: "The application pool, {AM
    Name}, failed to checkout an application module instance."
    after the BC4J Container timeout --> messages ("BC4J HTTP
    Container was timed out" and "The binding listener for { AM
    name} was timed out")
    We haven't found a way to alter the BC4J container timeout.
    Where do we customize the timeout?
    We have tried to use the HttpSessionTimeOut variable but it
    seems to have no effect.
    I hope you can help us with this one.
    Second problem is that the J2EE Container stops functioning
    after a couple of requests.
    Even if an other browser is started (on the same or different
    machine) the Container does not respond to any request.
    We have found a Thread on technet handling this kind of problem
    but the solution doesn't work in our case.
    (the solution on technet was to put synchronized(session) around
    each JSP page)
    Now we run the application under Apache/Jserv and with the same
    Runtime packages as used in the Container and the problem
    seems to have disappeared.
    Here follows the code of the ApplicationPool class:
    The class is based on an example posted on technet
    * @author Juan Oropeza
    package be.cronos.dbwise.jbo;
    import oracle.jbo.common.ampool.ApplicationPoolImpl;
    import oracle.jbo.ApplicationModule;
    import java.util.Properties;
    public class SeperateLoginApplicationPool extends
    ApplicationPoolImpl
    private String vConnectURL;
    private String vUsername;
    private String vPassword;
    public SeperateLoginApplicationPool()
    public void setConnectInfo(String pUsername, String pPassword,
    String pConnectURL)
    this.vUsername = pUsername;
    this.vPassword = pPassword;
    this.vConnectURL = pConnectURL;
    protected void connect(ApplicationModule appModule)
    if (!appModule.getTransaction().isConnected())
    appModule.getTransaction().connect(vConnectURL ,
    vUsername, vPassword);
    //use Optimistic locking as default for all transactions
    appModule.getTransaction().setLockingMode
    (oracle.jbo.Transaction.LOCK_OPTIMISTIC);
    * checkin
    * @param appModule
    public synchronized void checkin(ApplicationModule appModule)
    // release the instance regardless of the release mode
    // this is necessary since we need a fresh instance each
    time.
    this.releaseInstance(appModule);
    this.releaseInstances();
    public void disconnect(ApplicationModule pAppModule, boolean
    pRetainState)
    super.disconnect(pAppModule, pRetainState);
    Here is the code of the applicationPool datatag:
         * @author Juan Oropeza
    * @author Ief Cuynen
    * @version 1.1
    /* Modification history
    package be.cronos.dbwise.datatags;
    import be.cronos.dbwise.jbo.SeperateLoginApplicationPool;
    import javax.servlet.jsp.tagext.TagSupport;
    import javax.servlet.jsp.JspException;
    import java.io.StringWriter;
    import java.io.PrintWriter;
    import oracle.jbo.html.jsp.ConnectionInfo;
    import oracle.jbo.common.ampool.PoolMgr;
    import oracle.jbo.common.ampool.ApplicationPool;
    import oracle.jbo.ApplicationModule;
    import oracle.jbo.html.jsp.JSPApplicationRegistry;
    import java.util.Properties;
    import java.util.Hashtable;
    import java.util.Enumeration;
    public class ApplicationModuleTag extends TagSupport
    String fApplicationName;
    String fConfigName;
    String fUsername;
    String fPassword;
    String fConnectionURL;
    String fIiopUserName;
    String fIiopPassword;
    JSPApplicationRegistry fAppRegistry;
    public ApplicationModuleTag()
    public void setId(String pAppName)
    { this.fApplicationName = pAppName; }
    public void setConfigname(String pValue)
    { this.fConfigName = pValue; }
    * doEndTag
    * @return int
    * @exception javax.servlet.jsp.JspException
    public int doEndTag() throws JspException
    try
    SeperateLoginApplicationPool pool = null;
    init();
    // Get an application module resource.
    fAppRegistry = JSPApplicationRegistry.getInstance();
    // this step will access the custom pool from the property
    file
    appRegistry.registerApplicationFromPropertyFile
    (fApplicationName);
                   // Since we don't want to use a
    PropertyFile per AM, we have written are own
    registerApplicationModule method
    this.registerApplicationModule();
    // get an instance of the pool, which is already existing
                   pool = (SeperateLoginApplicationPool)
    PoolMgr.getInstance().getPool(fApplicationName);
    // get an instance of the application module
    synchronized(pool)
    // Setup the connection information
    pool.setConnectInfo(fUsername, fPassword,
    fConnectionURL);
    // This instance will be used by the rest of the
    DataWebBeans since it’s part of the context.
                        try
                             //After the BC4J
    container timeout, this method will raise an exception
         ApplicationModule am =
    fAppRegistry.getAppModuleInstance(fApplicationName, pageContext);
                        catch(Exception e)
                             System.out.println
    ("JspRegistry has failed to get application module instance");
    setPageContextValues();
    catch(Exception ex)
    StringWriter writer = new StringWriter();
    PrintWriter prn = new PrintWriter(writer);
    ex.printStackTrace(prn);
    prn.flush();
    throw new JspException(writer.toString());
    return SKIP_BODY;
    * for internal use only
    private void init()
    fUsername = (String)pageContext.getSession().getValue
    ("username");
    fPassword = (String)pageContext.getSession().getValue
    ("password");
    fConnectionURL = (String)pageContext.getSession().getValue
    ("connectionURL");
    private void setPageContextValues()
    // place default renderers into session, these will not be
    exposed via config file
    pageContext.getSession().putValue
    ("oracle_ord_im_OrdImageDomain_Renderer", "oracle.ord.html.OrdBui
    ldURL");
    pageContext.getSession().putValue
    ("oracle_ord_im_OrdAudioDomain_Renderer","oracle.ord.html.OrdBuil
    dURL");
    pageContext.getSession().putValue
    ("oracle_ord_im_OrdVideoDomain_Renderer","oracle.ord.html.OrdBuil
    dURL");
    pageContext.getSession().putValue
    ("oracle_ord_im_OrdVirDomain_Renderer", "oracle.ord.html.OrdBuild
    URL");
    pageContext.getSession().putValue
    ("oracle_ord_im_OrdImageDomain_EditRenderer", "oracle.ord.html.Fi
    leUploadField");
    pageContext.getSession().putValue
    ("oracle_ord_im_OrdAudioDomain_EditRenderer", "oracle.ord.html.Fi
    leUploadField");
    pageContext.getSession().putValue
    ("oracle_ord_im_OrdVideoDomain_EditRenderer", "oracle.ord.html.Fi
    leUploadField");
    pageContext.getSession().putValue
    ("oracle_ord_im_OrdVirDomain_EditRenderer", "oracle.ord.html.File
    UploadField");
    protected synchronized void registerApplicationModule()
    PoolMgr vPoolMgr = PoolMgr.getInstance();
              try
    if (!vPoolMgr.isPoolCreated(fApplicationName))
                        // Parse the ConfigName
                        String vConfigPackage =
    fConfigName.substring(0, fConfigName.lastIndexOf('.'));
    String vConfigSection = fConfigName.substring
    (fConfigName.lastIndexOf('.') + 1);
                        //Strip out the AM Class
                        vConfigPackage =
    vConfigPackage.substring(0, vConfigPackage.lastIndexOf('.'));
    Properties vProps = new Properties();
    vProps.put("ConfigName",fConfigName);
                        ApplicationPool vAppPool =
    vPoolMgr.createPool(fApplicationName,vConfigPackage,
    vConfigSection, vProps);
                        vAppPool.setUserName
    (this.fUsername);
                        vAppPool.setPassword
    (this.fPassword);
              catch (Exception ex)
                   ex.printStackTrace();
                   throw new RuntimeException(ex.toString
    * release() called after doEndTag() to reset state
    public void release()
              super.release();
              fApplicationName = null;
              fConfigName = null;
              fUsername = null;
              fPassword = null;
              fConnectionURL = null;
              fIiopUserName = null;
              fIiopPassword = null;
              JSPApplicationRegistry fAppRegistry = null;
    Another thing is that the JSPApplicationRegistry contains a bug
    (I think)
    It doesn't use the HttpSessionTimeOut variable at all (see
    following code)
    this piece of code is a Method from the
    JSPApplicationRegistry.java File taken from package
    oracle.jbo.html.jsp;
    static synchronized public void
    registerApplicationFromPropertyFile(HttpSession session, String
    sPropFileName)
    if(!mPoolManager.isPoolCreated(sPropFileName))
    registerApplicationFromPropertyFile(sPropFileName);
    if (!PropertyConstants.TRUE.equals((String)session.getValue
    (SESSION_INITIALIZED)))
    Hashtable settings = getAppSettings(sPropFileName);
    /* The timeout variable is declared here */
    int nTimeOut = 300;
    if (settings != null)
    // see if we have a setting for the session timeout
    String sTimeOut;
    /* get the HttpSessionTimeOut variable */
    if(settings.get("HttpSessionTimeOut") != null)
    sTimeOut = (String)settings.get
    ("HttpSessionTimeOut");
    if(sTimeOut != null)
    /* Put the value in the variable... and that's the last thing it
    does. nTimeOut isn't used anywhere in the class */
    nTimeOut = Integer.parseInt(sTimeOut);
    if(settings.get("ImageBase") != null)
    session.putValue("ImageBase", settings.get
    ("ImageBase"));
    else
    settings.put("ImageBase", "/webapp/images");
    session.putValue("ImageBase", "/webapp/images");
    if(settings.get("CSSURL") != null)
    session.putValue("CSSURL",settings.get("CSSURL"));
    else
    settings.put("CSSURL", "/webapp/css/oracle.css");
    session.putValue
    ("CSSURL", "/webapp/css/oracle.css");
    // place default renderers into session, these will not
    be
    // exposed via config file
    session.putValue
    ("oracle_ord_im_OrdImageDomain_Renderer", "oracle.ord.html.OrdBui
    ldURL");
    session.putValue
    ("oracle_ord_im_OrdAudioDomain_Renderer","oracle.ord.html.OrdBuil
    dURL");
    session.putValue
    ("oracle_ord_im_OrdVideoDomain_Renderer","oracle.ord.html.OrdBuil
    dURL");
    session.putValue
    ("oracle_ord_im_OrdVirDomain_Renderer", "oracle.ord.html.OrdBuild
    URL");
    session.putValue
    ("oracle_ord_im_OrdImageDomain_EditRenderer", "oracle.ord.html.F
    ileUploadField");
    session.putValue
    ("oracle_ord_im_OrdAudioDomain_EditRenderer", "oracle.ord.html.F
    ileUploadField");
    session.putValue
    ("oracle_ord_im_OrdVideoDomain_EditRenderer", "oracle.ord.html.F
    ileUploadField");
    session.putValue
    ("oracle_ord_im_OrdVirDomain_EditRenderer", "oracle.ord.html.F
    ileUploadField");
    session.putValue(SESSION_INITIALIZED,
    PropertyConstants.TRUE);
    Am I mistaken or is it a bug?
    Thank you for your fast response.
    Greetings,
    Ief Cuynen

    First of all we get an JBO-30003: "The application pool, {AM Name}, failed to checkout an application module
    instance."
    The JBO-30003 exception is thrown whenever the pool cannot
    properly create/recycle an application module. Please see the
    exception details (scan the exception stack to find the exception
    details) for more information regarding the "root" cause of the
    exception.
    We haven't found a way to alter the BC4J container timeout. Where do we customize the timeout?
    The BC4J container is timed out when the HttpSession is timed
    out. The session timeout is configurable via the web.xml file
    for the J2EE application. Your servlet container may also
    include another mechanism for setting a session timeout.
    Second problem is that the J2EE Container stops functioning after a couple of requests. Even if an other browser
    is started (on the same or different machine) the Container does
    not respond to any request. We have found a Thread on technet
    handling this kind of problem but the solution doesn't work in
    our case.
    The issue sounds like a deadlock. Please use kill -3 (Solaris)
    or ctrl-break (NT) at the java server console to print the thread
    stack trace to stdout. This will contain more information
    regarding which threads are blocked and where. If you would like
    you can send the stack trace to me via mail and I can take a look
    at it.
    The solution of synchronizing your pages with the HttpSession
    context is required only if you are using the BC4J datatags with
    HTML frames (i.e. have multi-threaded application module
    access for a given session). Please note that this solution may
    have a performance impact and should not be implemented unless
    absolutely necessary.
    Another thing is that the JSPApplicationRegistry contains a bug (I think). It doesn't use the HttpSessionTimeOut variable
    at all (see following code)
    This parameter was deprecated after 3.1. It looks like the code
    which used the parameter may have been removed prematurely.
    Sorry for the confusion. Please use the J2EE compliant
    mechanisms mentioned above to configure the session timeout in
    3.2.
    Finally, please note that JDeveloper9i includes new integrated
    features for the often requested feature of supporting different
    db users with the same application pool! Please stay tuned.

Maybe you are looking for

  • HT1386 cant sync apps but will do music and podcasts?

    i have jusy got a new iphone 4s and cant seem to sycn any of my apps. i can do music podcasts and photos? does anyone know what i can try? i had no trouble b4 with my iphone4

  • Dialog WP runtime exceeds value set in rdisp/wp_max_runtime

    Dialog wp runtime exceeds the value set in parameter rdisp/wp_max_runtime Value set for rdisp/wp_max_runtime is 1500 but wp runtime exceeds more than 10,000. we are using 4.5B system on Oracle/AIX. Please suggest how to avoid such wp running for more

  • Symbol driver

    How can I get the driver from symbol tech reader?

  • Not copied to ipod

    When I synch my ipod to itunes, I get the warning "some of the items in the library were not copied to ipod because they could not be found". But they ARE there, on both the library and the ipod. I haven't deleted them, or touched them at all. Why al

  • Cannot connect oracle database follwing path.

    Hi experts,                    cannot connect oracle database in the following path. i take sap daily backup on testing server ,but it is fail. F:\oracle\MPQ\sapcheck\cegvmynv.chk' at location main-11. but the following path not found in the testing