JSC on Tomcat 5.5.20 - Session/Applicaton Bean events not firing

Hi,
I am running a JSC app on Tomcat 5.5.20.
Session and application bean events init and destroy are not firing.
they work fine on my development machine using the Sun App server..
Anyone have any ideas?
Thanks
Colin

Hi,
This is actually a Tomcat bug that was introduced from versions 5.5.20 and higher.
If you create your application in a path that contains spaces you will encounter this problem.
The workaround is to create your application at a path with no spaces.
Here's the bug on Tomcat's website:
http://www.mail-archive.com/[email protected]/msg37222.html
It should be fixed in Tomcat 5.5.24
You won't even need to create a listener or add any jar files.
Hope this helps
Yousuf

Similar Messages

  • Tomcat 5.5.23: SessionBean & ApplicationBean init() methods not firing

    My JSC projects will not work on Tomcat 5.5.23 because ApplicationBean init() and the SessionBean init() are not firing.
    The projects work OK on Weblogic 8.1 and the JSC dev server.
    I have followed the instructions given in
    http://developers.sun.com/docs/jscreator/help/2update1/deploy/howtodeploy/deploy_tomcat.html
    AND
    http://wiki.netbeans.org/wiki/view/DeploymentOnExternalTomcatforNB6
    AND have added:
    <listener>
    <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
    </listener>
    to my web.xml files but no success.
    This problem has been raised before but unfortunately no solution is given. http://forum.java.sun.com/thread.jspa?threadID=5137210
    Can someone please help?
    Thanks

    One of our engineers got a chance to investigate this further. It turns out to be a bug with Tomcat (5.5.20+).
    Please refer to:
    http://issues.apache.org/bugzilla/show_bug.cgi?id=42354
    The workaround now would be to place your app in a directory that contains no spaces.
    As per the tomcat bug eval:
    Fixed in svn and will be included in 5.5.24 onwards.Let us know if the workaround works? We'll update the netbeans tomcat wiki with the above mentioned information.
    /sqad

  • Tomcat  5.5.26 Sessions getting replicated but not working via browser

    Hi,
    I have configured Tomcat 5.5.26 to be clustered across 2 machines with one instance on each. These two machines are behing a BIG-IP loadbalancer which is setup for sticky sessions.
    The catalina.out states that the member can see each other:
    Jul 3, 2008 6:33:50 PM org.apache.catalina.cluster.tcp.SimpleTcpCluster memberAdded
    INFO: Replication member added:org.apache.catalina.cluster.mcast.McastMember[tcp://10.17.21.125:9001,catalina,10.17.21.125,9001, alive=38753]
    Jul 3, 2008 6:33:51 PM org.apache.catalina.cluster.mcast.McastService registerMBean
    The localhost.2008-07-03.log states that the sessions are being replicated for the jsp-examples app - book example. I have an app of our own that does not even state that the session is replicated but I though I would start here with getting the example one working.
    Jul 3, 2008 6:34:31 PM org.apache.catalina.core.ApplicationContext log
    INFO: SessionListener: sessionDestroyed('E7E9E54600927A4826AFEDB59D7EF6E7.tomcatDargle')
    However, when I take down the instance which created the session and attempt to refresh the page or navigate to another page I get page cannot be displayed. This shows that the sessions are not completely replicated. What am I missing?
    I have added my server.xml file contents:
    <Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
    managerClassName="org.apache.catalina.cluster.session.DeltaManager"
    expireSessionsOnShutdown="false"
    useDirtyFlag="false"
    notifyListenersOnReplication="true">
    <Membership
    className="org.apache.catalina.cluster.mcast.McastService"
    mcastAddr="239.192.17.20"
    mcastPort="9002"
    mcastFrequency="500"
    mcastDropTime="3000"/>
    <Receiver
    className="org.apache.catalina.cluster.tcp.ReplicationListener"
    tcpListenAddress="auto"
    tcpListenPort="9001"
    tcpSelectorTimeout="100"
    tcpThreadCount="6"/>
    <Sender
    className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
    replicationMode="pooled"
    ackTimeout="15000"
    waitForAck="true"/>
    <ClusterListener className="org.apache.catalina.cluster.session.ClusterSessionListener" />
    <ClusterListener className="org.apache.catalina.cluster.session.JvmRouteSessionIDBinderListener" />
    <Valve className="org.apache.catalina.cluster.tcp.ReplicationValve"
    filter=".*\.gif;.*\.js;.*\.css;.*\.png;.*\.jpeg;.*\.jpg;.*\.htm;.*\.html;.*\.txt;"
    primaryIndicator="true" />
    <Valve className="org.apache.catalina.cluster.session.JvmRouteBinderValve"
    enabled="true" />
    </Cluster>
    Any help at all would be greatly appreciated.
    Martin

    Hi Ganeshmb,
    The app I am using is the jsp-examples/book example.
    The load balancer is sending requests to both servers.
    When the dargle instance is sent a request I can see in the logs of both servers:
    INFO: SessionListener: sessionCreated('730F4AD5A21CA06639BF956B9F5418CB.tomcatDargle')
    When the tolka instance is sent a request I can see in the logs of both servers:
    INFO: SessionListener: sessionCreated('E7E9E54600927A4826AFEDB59D7EF6E7.tomcatTolka')
    When the server starts up the relevant info is in the logs:
    Jul 3, 2008 6:33:56 PM org.apache.catalina.cluster.session.DeltaManager start
    INFO: Starting clustering manager at /jsp-examples
    Jul 3, 2008 6:33:56 PM org.apache.catalina.cluster.session.DeltaManager getAllClusterSessions
    WARNING: Manager [jsp-examples], requesting session state from org.apache.catalina.cluster.mcast.McastMember[tcp://10.17.21.125:9001,catalina
    ,10.17.21.125,9001, alive=44363]. This operation will timeout if no session state has been received within 60 seconds.
    Jul 3, 2008 6:33:56 PM org.apache.catalina.cluster.session.DeltaManager waitForSendAllSessions
    INFO: Manager [jsp-examples]; session state send at 7/3/08 6:33 PM received in 123 ms.
    The jsp-examples book example is supposed to have serilizable object and was recommended on some sites are the way to test out the replication. Is there any other way to test this?
    Also, the main purpose of the cluster is to replicate an application from an external vendor which they say is compatible with session replication. However, this app does not even output the sessionCreated message so I am unsure if it truly is compatible.
    If I could prove that the cluster is setup correctly then I would have more to go on when contacting the vendor. At the moment I am unsure if the cluster is setup correctly for session replication.
    Thanks,
    Martin

  • EJB2.0 stateless session BMT beans & open transactions

    It is clearly stated in the EJB2.0 spec that stateless session BMT beans are not allowed to complete a method without closing the transaction... but if that happens, what exactly is the container's action? Is there an exception thrown back to the client or is the bean discarded? (or both?)
    Thanks in advance for any clarification!

    Is there an exception thrown back to the
    client or is the bean discarded? (or both?)Both. This would be considered a programming error and treated as a system exception.
    The bean instance from the faulty invocation would be removed, but the stateless session
    bean itself would be available for subsequent invocations.

  • ERR0R :projet_jsf.war JSC to tomcat 6.0

    Hi
    i build an jsf application on jsc it work fine on the inner tomcat of jsc, but when iam deploying on tomcat 5.5 or 6.0 it does not work
    can some body help my resolve that problem
    thks

    No, this is a bug in the beta version of Tomcat. If their JspFactory was initialized property the first time, this wouldn't happen.
    There have been serveral posts on this. Please search the forums for bug details.

  • Spring framework - Error with session scoped Beans

    Hello guys,
    I'm trying execute my Java Application inside Netweaver Application Server, but I'm having problems with serviceBeans with scope session. Anyone have already used Spring with session scope?
    Thanks,
    Cleiton.

    After many attempt, when I declared the bean with <aop:scoped-proxy  /> it works, however it could cause performance problem. I don't need refer this bean by another singleton bean, i did a wrong configuration in order to make a work a round...
    When I run my application on tomcat server, the DWR starts perfectly the "session scope bean form IOC container", but in the WEBAS maybe it's running in other thread. Is it possible?
    Anyone had a problem like this?
    I got a detailed error with log4j,
    ERROR Application [1] org.directwebremoting.impl.DefaultCreatorManager - Error loading class for creator 'SpringCreator[CounterSpringFacade]'.
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'counterSpringFacade': Scope 'session' is not active for the current thread; consider defining a scoped proxy for this bean if you intend to refer to it from a singleton; nested exception is java.lang.IllegalStateException: No thread-bound request found: Are you referring to request attributes outside of an actual web request, or processing a request outside of the originally receiving thread? If you are actually operating within a web request and still receive this message, your code is probably running outside of DispatcherServlet/DispatcherPortlet: In this case, use RequestContextListener or RequestContextFilter to expose the current request.
         at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:312)
         at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
         at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
         at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:881)
         at org.directwebremoting.spring.SpringCreator.getInstance(SpringCreator.java:145)
         at org.directwebremoting.spring.SpringCreator.getType(SpringCreator.java:107)
    Edited by: Cleiton dos Santos Garcia on Jan 7, 2009 5:02 PM

  • Session scope managed bean is not instantiating?

    We have the need to use a session bean (rather than pageFlowScope) in our application.  But it looks like the session beans are not being instantiated at run time like other beans are.  I created a simple test case to verify.  One bean, named "MySessionBean", defined in the task flow as Session scope, then referenced in a view with an input text box, value:  #{sessionScope.MySessionBean.value1}. When I run the application,  I just get PropertyNotFoundException, Target Unreachable, 'MySessionBean' returned null.
    If I simply change the bean to use pageFlowScope, everything works fine.   I have debug code in the bean constructor, and it never gets called.   Is there some other step I am missing to have ADF instantiate the session bean?

    No luck, I tried it in both adfc-config.xml, and faces-config.xml.  I also tried moving the call to my view, from my bounded taskflow, into the adfc-config unbounded task flow, and then I ran that instead.  Still got the same error.    Here is my code from the the last round of tests with the view called in the main adfc-config.xml unbounded taskflow:
    adfc-config.xml:
    <?xml version="1.0" encoding="windows-1252" ?>
    <adfc-config xmlns="http://xmlns.oracle.com/adf/controller" version="1.2">
          <view id="testView">
                <page>/testView.jspx</page>
          </view>
          <managed-bean id="__2">
          <managed-bean-name id="__5">MySessionBean</managed-bean-name>
          <managed-bean-class id="__4">test.MySessionBean</managed-bean-class>
          <managed-bean-scope id="__3">session</managed-bean-scope>
        </managed-bean>
    </adfc-config>
    testView.jspx:
    <?xml version='1.0' encoding='UTF-8'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
              xmlns:f="http://java.sun.com/jsf/core"
              xmlns:h="http://java.sun.com/jsf/html"
              xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
      <jsp:directive.page contentType="text/html;charset=UTF-8"/>
      <f:view>
        <af:document id="d1">
          <af:form id="f1">
            <af:inputText label="Label 1" id="it1"
                          value="#{sessionScope.MySessionBean.value1}"/>
          </af:form>
        </af:document>
      </f:view>
    </jsp:root>
    MySessionBean.java:
    package test;
    public class MySessionBean {
        private String value1="Hello World";
        public MySessionBean() {
            super();
        public void setValue1(String value1) {
            this.value1 = value1;
        public String getValue1() {
            return value1;

  • Java Heap Error when using Stateless Session Timer Bean deployed in Oracle

    Hi,
    Am getting following Java Heap Error when using Stateless Session Timer Bean deployed in Oracle 10g AS R3 (Oracle Containers for J2EE 10g (10.1.3.0.0) (build 060119.1546.05277) ):
    06/08/02 14:58:43 javax.ejb.EJBException: java.lang.OutOfMemoryError: Java heap space
    06/08/02 14:58:43 at com.evermind.server.ejb.EJBUtils.getLocalUserException(EJBUtils.java:304)
    06/08/02 14:58:43 at com.evermind.server.ejb.interceptor.system.AbstractTxInterceptor.convertAndHandleMethodException(AbstractTxInterceptor.java:67)
    06/08/02 14:58:43 at com.evermind.server.ejb.interceptor.system.TxNotSupportedInterceptor.invoke(TxNotSupportedInterceptor.java:45)
    06/08/02 14:58:43 at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:69)
    06/08/02 14:58:43 at com.evermind.server.ejb.StatelessSessionEJBObject.OC4J_invokeMethod(StatelessSessionEJBObject.java:86)
    06/08/02 14:58:43 at com.evermind.server.ejb.StatelessSessionEJBHome.invokeTimer(StatelessSessionEJBHome.java:71)
    06/08/02 14:58:43 at com.evermind.server.ejb.EJBContainer.invokeTimer(EJBContainer.java:1624)
    06/08/02 14:58:43 at oracle.ias.container.scheduler.TimerTask.runBeanTimer(TimerTask.java:92)
    06/08/02 14:58:43 at oracle.ias.container.scheduler.TimerTask.run(TimerTask.java:184)
    06/08/02 14:58:43 at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:819)
    06/08/02 14:58:43 at java.lang.Thread.run(Thread.java:595)
    06/08/02 14:58:43 Caused by: java.lang.OutOfMemoryError: Java heap space
    I had tried using -Xms / -Xmx options (upto 1 GB).
    The trace of exception gets delayed (from being displayed on the console) as the memory size is increased; but after sometime it starts getting displayed on the console.
    Even though this exception is displayed on the console, the Timer Bean continues to execute upto sometime before it finally crashes!
    If anyone has encountered such problem; would appreciate if you could share the solution.
    Regards, Vidyadhar

    Hi guys, I have the same problem. I have an application EAR file with two modules (EJB and WAR starting in this order). The application can schedule a process via EJB timer. In this case restarting the server I receive the error above. If I change the modules start order --> WAR - EJB the server start correctly, but the application scheduler fails (the persistency is not working) with this error:
    07/10/09 10:30:54 FINISSIMO: TimerTask.runBeanTimer java.lang.NullPointerException; nested exception is: java.lang.NullPointerExceptionjavax.ejb.TransactionRolledbackLocalException: java.lang.NullPointerException; nested exception is: java.lang.NullPointerException
    java.lang.NullPointerException
         at java.util.ListResourceBundle.handleGetObject(ListResourceBundle.java:107)
         at java.util.ResourceBundle.getObject(ResourceBundle.java:319)
         at java.util.ResourceBundle.getString(ResourceBundle.java:285)
         at java.util.logging.Formatter.formatMessage(Formatter.java:108)
         at oracle.j2ee.util.TraceLogFormatter.format(TraceLogger.java:124)
         at oracle.j2ee.util.TraceLogger$TraceLoggerHandler.publish(TraceLogger.java:105)
         at java.util.logging.Logger.log(Logger.java:428)
         at java.util.logging.Logger.doLog(Logger.java:450)
         at java.util.logging.Logger.log(Logger.java:539)
         at oracle.ias.container.timer.TimerEntry.readObjFromBytes(TimerEntry.java:308)
         at oracle.ias.container.timer.TimerEntry.getInfo(TimerEntry.java:107)
         at oracle.ias.container.timer.Timer.getInfo(Timer.java:367)
         at oracle.ias.container.timer.EJBTimerImpl.getInfo(EJBTimerImpl.java:89)
         at com.finantix.foundation.integration.ejbtimer.EJBTimerServiceExecutorBean.ejbTimeout(EJBTimerServiceExecutorBean.java:42)
         at com.evermind.server.ejb.interceptor.joinpoint.EJBTimeoutJoinPoint.invoke(EJBTimeoutJoinPoint.java:20)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.SetContextActionInterceptor.invoke(SetContextActionInterceptor.java:44)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.TxBeanManagedInterceptor.invoke(TxBeanManagedInterceptor.java:53)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.InvocationContextPool.invoke(InvocationContextPool.java:55)
         at com.evermind.server.ejb.StatelessSessionEJBObject.OC4J_invokeMethod(StatelessSessionEJBObject.java:87)
         at com.evermind.server.ejb.StatelessSessionEJBHome.invokeTimer(StatelessSessionEJBHome.java:38)
         at com.evermind.server.ejb.EJBContainer.invokeTimer(EJBContainer.java:1714)
         at oracle.ias.container.scheduler.TimerTask.runBeanTimer(TimerTask.java:106)
         at oracle.ias.container.scheduler.TimerTask.run(TimerTask.java:220)
         at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
         at java.lang.Thread.run(Thread.java:595)
    javax.ejb.TransactionRolledbackLocalException: java.lang.NullPointerException; nested exception is: java.lang.NullPointerException
         at com.evermind.server.ejb.EJBUtils.getLocalUserException(EJBUtils.java:309)
         at com.evermind.server.ejb.interceptor.system.AbstractTxInterceptor.convertAndHandleMethodException(AbstractTxInterceptor.java:73)
         at com.evermind.server.ejb.interceptor.system.TxBeanManagedInterceptor.invoke(TxBeanManagedInterceptor.java:55)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.InvocationContextPool.invoke(InvocationContextPool.java:55)
         at com.evermind.server.ejb.StatelessSessionEJBObject.OC4J_invokeMethod(StatelessSessionEJBObject.java:87)
         at com.evermind.server.ejb.StatelessSessionEJBHome.invokeTimer(StatelessSessionEJBHome.java:38)
         at com.evermind.server.ejb.EJBContainer.invokeTimer(EJBContainer.java:1714)
         at oracle.ias.container.scheduler.TimerTask.runBeanTimer(TimerTask.java:106)
         at oracle.ias.container.scheduler.TimerTask.run(TimerTask.java:220)
         at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
         at java.lang.Thread.run(Thread.java:595)
    Caused by: java.lang.NullPointerException
         at java.util.ListResourceBundle.handleGetObject(ListResourceBundle.java:107)
         at java.util.ResourceBundle.getObject(ResourceBundle.java:319)
         at java.util.ResourceBundle.getString(ResourceBundle.java:285)
         at java.util.logging.Formatter.formatMessage(Formatter.java:108)
         at oracle.j2ee.util.TraceLogFormatter.format(TraceLogger.java:124)
         at oracle.j2ee.util.TraceLogger$TraceLoggerHandler.publish(TraceLogger.java:105)
         at java.util.logging.Logger.log(Logger.java:428)
         at java.util.logging.Logger.doLog(Logger.java:450)
         at java.util.logging.Logger.log(Logger.java:539)
         at oracle.ias.container.timer.TimerEntry.readObjFromBytes(TimerEntry.java:308)
         at oracle.ias.container.timer.TimerEntry.getInfo(TimerEntry.java:107)
         at oracle.ias.container.timer.Timer.getInfo(Timer.java:367)
         at oracle.ias.container.timer.EJBTimerImpl.getInfo(EJBTimerImpl.java:89)
         at com.finantix.foundation.integration.ejbtimer.EJBTimerServiceExecutorBean.ejbTimeout(EJBTimerServiceExecutorBean.java:42)
         at com.evermind.server.ejb.interceptor.joinpoint.EJBTimeoutJoinPoint.invoke(EJBTimeoutJoinPoint.java:20)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.SetContextActionInterceptor.invoke(SetContextActionInterceptor.java:44)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.TxBeanManagedInterceptor.invoke(TxBeanManagedInterceptor.java:53)
         ... 9 more
    Any idea?
    Thx Auro

  • The latest version of Firefox no longer asks if you want to save open tabes for your next session..I HATE not having that option. What were they thinking?

    Question
    The latest version of Firefox no longer asks if you want to save open tabs for your next session..I HATE not having that option. What were they thinking? (I think this is self explanatory)

    Firefox 4 saves the previous session automatically, so there is no longer need for the dialog asking if you want to save the current session.<br />
    You can use "Firefox > History > Restore Previous Session" to get the previous session at any time.<br />
    There is also a "Restore Previous Session" button on the default <b>about:home</b> Home page.<br />
    <br />
    Another possibility is to use:
    * [http://kb.mozillazine.org/Menu_differences Firefox (Tools) > Options] > General > Startup: "When Firefox Starts": "Show my windows and tabs from last time"

  • Session in bean

    I have a bean. At the end all variables are set to "". But anyway I need to insert it into a session before, but it seams that I can�t use sessions in bean.
    // Clear the form
    user = "";
    password = "";
    rpassword = "";
    session.setAttribute("icq", iicq);
    iicq = "";Andreas

    Or how would you add session attributes to the bean, if thats possible I do not need to use a servlet.
    package serverspy;
    import java.util.*;
    import java.util.regex.*;
    import java.sql.*;
    import serverspy.*;
    public class UpdateValidatePersonalBean {
    /*  The properties */
    Connection con = null;
    String user = "";
    String password = "";
    String rpassword = "";
    String fname = "";
    String lname = "";
    String dobyear = "";
    String dobmonth = "";
    String dobday = "";
    String country = "";
    String timezone = "";
    String mobilepfx = "";
    String mobile = "";
    String icq = "";
    String terms = "";
    String outgoing = "";
    String imobile = "";
    String iicq = "";
    int ioutgoing;
    public Connection getConnection() {
    return con;
    public void setConnection(Connection con) {
    this.con = con;
    public String getUser() {
    return user;
    public void setUser(String user) {
    this.user = user.trim();
    public String getPassword() {
    return password;
    public void setPassword(String password) {
    this.password = password.trim();
    public String getRpassword() {
    return rpassword;
    public void setRpassword(String rpassword) {
    this.rpassword = rpassword.trim();
    public String getFname() {
    return fname;
    public void setFname(String fname) {
    this.fname = fname.trim();
    public String getLname() {
    return lname;
    public void setLname(String lname) {
    this.lname = lname.trim();
    public String getDobyear() {
    return dobyear;
    public void setDobyear(String dobyear) {
    this.dobyear = dobyear.trim();
    public String getDobmonth() {
    return dobmonth;
    public void setDobmonth(String dobmonth) {
    this.dobmonth = dobmonth.trim();
    public String getDobday() {
    return dobday;
    public void setDobday(String dobday) {
    this.dobday = dobday.trim();
    public String getCountry() {
    return country;
    public void setCountry(String country) {
    this.country = country.trim();
    public String getTimezone() {
    return timezone;
    public void setTimezone(String timezone) {
    this.timezone = timezone.trim();
    public String getMobilepfx() {
    return mobilepfx;
    public void setMobilepfx(String mobilepfx) {
    this.mobilepfx = mobilepfx.trim();
    public String getMobile() {
    return mobile;
    public void setMobile(String mobile) {
    this.mobile = mobile.trim();
    public String getIcq() {
    return icq;
    public void setIcq(String icq) {
    this.icq = icq.trim();
    public String getTerms() {
    return terms;
    public void setTerms(String terms) {
    this.terms = terms.trim();
    public String getOutgoing() {
    return outgoing;
    public void setOutgoing(String outgoing) {
    this.outgoing = outgoing.trim();
    /* Errors */
    public static final Integer ERR_RPASSWORD_ENTER = new Integer(3);
    public static final Integer ERR_PASSWORD_INVALID = new Integer(4);
    public static final Integer ERR_PASSWORD_LENGTH = new Integer(5);
    public static final Integer ERR_FNAME_INVALID = new Integer(6);
    public static final Integer ERR_LNAME_INVALID = new Integer(7);
    public static final Integer ERR_DOB_INVALID = new Integer(8);
    public static final Integer ERR_COUNTRY_INVALID = new Integer(9);
    public static final Integer ERR_TIMEZONE_INVALID = new Integer(10);
    public static final Integer ERR_MOBILE_INVALID = new Integer(11);
    public static final Integer ERR_ICQ_DIGIT = new Integer(12);
    public static final Integer ERR_ICQ_INVALID = new Integer(13);
    public static final Integer ERR_TERMS_INVALID = new Integer(14);
    public static final Integer ERR_OUTGOING_INVALID = new Integer(15);
    // Holds error messages for the properties
    Map errorCodes = new HashMap();
    // Maps error codes to textual messages.
    // This map must be supplied by the object that instantiated this bean.
    Map msgMap;
    public void setErrorMessages(Map msgMap) {
    this.msgMap = msgMap;
    public String getErrorMessage(String propName) {
    Integer code = (Integer)(errorCodes.get(propName));
    if (code == null) {
    return "";
    } else if (msgMap != null) {
    String msg = (String)msgMap.get(code);
    if (msg != null) {
    return msg;
    return "Error";
    /* Form validation and processing */
    public boolean isValid() {
    // Clear all errors
    errorCodes.clear();
    // Validate email
    Pattern p = Pattern.compile("[^A-Za-z0-9\\.\\@_\\-~#]+");
    // Validate Password(s) 
    Matcher mp = p.matcher(password);
    if (mp.find()) {
    errorCodes.put("password", ERR_PASSWORD_INVALID);
    } else if (password.length() < 4) {
    errorCodes.put("password", ERR_PASSWORD_LENGTH);
    if (!password.equals(rpassword))  {
    errorCodes.put("rpassword", ERR_RPASSWORD_ENTER);
    // Validate Firstname   
    if (fname.length() == 0) {
    errorCodes.put("fname", ERR_FNAME_INVALID);
    // Validate Lastname   
    if (lname.length() == 0) {
    errorCodes.put("lname", ERR_LNAME_INVALID);
    // Validate DobYear
    try {
    int dy = Integer.parseInt(dobyear);
    } catch (NumberFormatException e) {
    errorCodes.put("dob", ERR_DOB_INVALID);
    // Validate DobMonth
    try {
    int dm = Integer.parseInt(dobmonth);
    } catch (NumberFormatException e) {
    errorCodes.put("dob", ERR_DOB_INVALID);
    // Validate DobDay
    try {
    int dd = Integer.parseInt(dobday);
    } catch (NumberFormatException e) {
    errorCodes.put("dob", ERR_DOB_INVALID);
    // Validate Country   
    if (country.length() != 2) {
    errorCodes.put("country", ERR_COUNTRY_INVALID);
    // Validate Timezone
    try {
    int tz = Integer.parseInt(timezone);
    } catch (NumberFormatException e) {
    errorCodes.put("timezone", ERR_TIMEZONE_INVALID);
    // Validate MobilePfx
    if (mobilepfx.length() == 0 && mobile.length() != 0) {
    errorCodes.put("mobile", ERR_MOBILE_INVALID);
    } else if(mobilepfx.length() != 0){
    try {
    int mpfx = Integer.parseInt(mobilepfx);
    } catch (NumberFormatException e) {
    errorCodes.put("mobile", ERR_MOBILE_INVALID);
    // Validate Mobile
    if (mobile.length() != 0) {
    try {
    int mn = Integer.parseInt(mobile);
    } catch (NumberFormatException e) {
    errorCodes.put("mobile", ERR_MOBILE_INVALID);
    // Validate Icq
    if (icq.length() >= 6) {
    try {
    int ic = Integer.parseInt(icq);
    } catch (NumberFormatException e) {
    errorCodes.put("icq", ERR_ICQ_DIGIT);
    } else if (icq.length() < 6 && icq.length() != 0) {
    errorCodes.put("icq", ERR_ICQ_INVALID);
    // Validate Terms
    if (!terms.equals("1")) {
    errorCodes.put("terms", ERR_TERMS_INVALID);
    try {
    int te = Integer.parseInt(terms);
    } catch (NumberFormatException e) {
    errorCodes.put("terms", ERR_TERMS_INVALID);
    // Validate Outgoing
    // If no errors, form is valid
    return errorCodes.size() == 0;
    public boolean process() {
    if (!isValid()) {
    return false;
    // Process form...
    serverspy.security.MD5Hash Hash;
    Hash = new serverspy.security.MD5Hash();
    try{
              String ipassword = Hash.doHash(password);
    if (icq.length() >= 6) {
              iicq = icq+"@pager.icq.com";
    } else if (icq.length() == 0) {
    iicq = "";
    if (mobile.length() != 0) {
         imobile = mobilepfx+"-"+mobile;
         } else if (mobile.length() == 0) {
    imobile = "";
              String idob =dobyear+""+dobmonth+""+dobday;
    if (outgoing.equals("on")){
         ioutgoing = 1;
    else {
         ioutgoing = 0;
    System.out.println("Outgoing: "+outgoing);
    System.out.println("Lname: "+lname);
    System.out.println("Fname: "+fname);
    System.out.println("Dob: "+idob);
    System.out.println("Country: "+country);
    System.out.println("Password: "+ipassword);
    System.out.println("Icq: "+iicq);
    System.out.println("Mobile: "+imobile);
    System.out.println("Timezone: "+timezone);
    System.out.println("Terms: "+terms);
    System.out.println("Outgoing: "+ioutgoing);
    System.out.println("User: "+user);
                   PreparedStatement pStmt = con.prepareStatement("UPDATE [USERS] SET [LastName] =?, [FirstName] =?, [Dob] =?, [Country] =?, [Password] =?, [Icq] =?, [Sms_address] =?, [TimeOffset] =?, [Terms] =?, [Outgoing] =? WHERE [Id] =?");
                   pStmt.setString(1, lname);
                   pStmt.setString(2, fname);
                   pStmt.setString(3, idob);
                   pStmt.setString(4, country);
                   pStmt.setString(5, ipassword);
                   pStmt.setString(6, iicq);
                   pStmt.setString(7, imobile);
                   pStmt.setInt(8, Integer.parseInt(timezone));
                   pStmt.setInt(9, Integer.parseInt(terms));
                   pStmt.setInt(10, Integer.parseInt(ioutgoing));
                   pStmt.setInt(11, Integer.parseInt(user));
                   pStmt.executeUpdate();
                   System.out.println("User: "+ user +" has been updated.");
         catch(Exception exp){
              System.out.println("Exception: "+ exp);
    // Clear the form
    user = "";
    password = "";
    rpassword = "";
    fname = "";
    lname = "";
    dobyear = "";
    dobmonth = "";
    dobday = "";
    country = "";
    timezone = "";
    mobilepfx = "";
    mobile = "";
    icq = "";
    terms = "";
    outgoing = "";
    imobile = "";
    iicq = "";
    errorCodes.clear();
    return true;
    }THat would be much better. But how can I set the attributes.
    Andreas

  • Stateful Session Beans are not passivated / serialized when cache idle time

    Technology: Sun Application Server version 7.0.0_01; JDK 1.4.1; developed on Windows 2000; Tested on Sun Solaris.
    Initial error on Sun Solaris:
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr: Exception in thread "service-j2ee-25" org.omg.CORBA.OBJ_ADAPTER: vmcid: SUN minor code: 1015 completed: No
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at com.sun.corba.ee.internal.POA.GenericPOAServerSC.preinvoke(GenericPOAServerSC.java:389)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at com.sun.corba.ee.internal.POA.ServantCachePOAClientSC.initServant(ServantCachePOAClientSC.java:112)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at com.sun.corba.ee.internal.POA.ServantCachePOAClientSC.setOrb(ServantCachePOAClientSC.java:95)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at com.sun.corba.ee.internal.iiop.CDRInputStream_1_0.createDelegate(CDRInputStream_1_0.java:760)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at com.sun.corba.ee.internal.iiop.CDRInputStream_1_0.internalIORToObject(CDRInputStream_1_0.java:750)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at com.sun.corba.ee.internal.iiop.CDRInputStream_1_0.read_Object(CDRInputStream_1_0.java:669)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at com.sun.corba.ee.internal.iiop.CDRInputStream_1_0.read_abstract_interface(CDRInputStream_1_0.java:890)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at com.sun.corba.ee.internal.iiop.CDRInputStream_1_0.read_abstract_interface(CDRInputStream_1_0.java:884)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at com.sun.corba.ee.internal.iiop.CDRInputStream.read_abstract_interface(CDRInputStream.java:307)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at com.sun.corba.se.internal.io.IIOPInputStream.readObjectDelegate(IIOPInputStream.java:228)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at com.sun.corba.se.internal.io.IIOPInputStream.readObjectOverride(IIOPInputStream.java:381)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at java.io.ObjectInputStream.readObject(ObjectInputStream.java:318)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at com.sun.enterprise.iiop.IIOPHandleDelegate.getStub(IIOPHandleDelegate.java:58)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at com.sun.enterprise.iiop.IIOPHandleDelegate.readEJBObject(IIOPHandleDelegate.java:38)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at com.sun.ejb.portable.HandleImpl.readObject(HandleImpl.java:91)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at com.sun.corba.se.internal.io.IIOPInputStream.readObject(Native Method)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at com.sun.corba.se.internal.io.IIOPInputStream.invokeObjectReader(IIOPInputStream.java:1298)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at com.sun.corba.se.internal.io.IIOPInputStream.inputObject(IIOPInputStream.java:908)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at com.sun.corba.se.internal.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:261)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at com.sun.corba.se.internal.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:247)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at com.sun.corba.se.internal.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:209)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at com.sun.corba.ee.internal.iiop.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:981)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at com.sun.corba.ee.internal.iiop.CDRInputStream.read_value(CDRInputStream.java:287)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at com.sun.corba.ee.internal.javax.rmi.CORBA.Util.copyObject(Util.java:598)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at javax.rmi.CORBA.Util.copyObject(Util.java:314)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at com.telstra.nodeman.ejb._NodeMaint_Stub.getHandle(Unknown Source)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at com.telstra.nodeman.arch.NMAViewBeanProxy.checkBeans(NMAViewBeanProxy.java:631)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at com.telstra.nodeman.view.html.NMAStandardButton.handleRequest(NMAStandardButton.java:143)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at com.telstra.nodeman.arch.NMAViewBeanBase.handleRequest(NMAViewBeanBase.java:1573)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at com.iplanet.jato.view.ViewBeanBase.dispatchInvocation(ViewBeanBase.java:824)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at com.iplanet.jato.view.ViewBeanBase.invokeRequestHandlerInternal(ViewBeanBase.java:637)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at com.iplanet.jato.view.ViewBeanBase.invokeRequestHandler(ViewBeanBase.java:595)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at com.iplanet.jato.ApplicationServletBase.dispatchRequest(ApplicationServletBase.java:772)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at com.iplanet.jato.ApplicationServletBase.processRequest(ApplicationServletBase.java:446)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at com.iplanet.jato.ApplicationServletBase.doPost(ApplicationServletBase.java:324)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at com.telstra.nodeman.view.ViewServlet.doPost(ViewServlet.java:243)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at org.apache.catalina.core.StandardWrapperValve.invokeServletService(StandardWrapperValve.java:720)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at org.apache.catalina.core.StandardWrapperValve.access$000(StandardWrapperValve.java:118)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at org.apache.catalina.core.StandardWrapperValve$1.run(StandardWrapperValve.java:278)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at java.security.AccessController.doPrivileged(Native Method)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:274)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:505)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:212)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:505)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:203)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:505)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at com.iplanet.ias.web.connector.nsapi.NSAPIProcessor.process(NSAPIProcessor.java:158)
    [10/Aug/2004:08:04:57] WARNING (17227): CORE3283: stderr:      at com.iplanet.ias.web.WebContainer.service(WebContainer.java:598)
    The above error caused the server to use all available memory and required a reboot to proceed.
    Subsequent testing against the Sun Appliucation Server 7 on Windows 2000 dev environment using the Sun Studio IDE for debugging and trace statements inserted in the code indicate that the Application Server is removing the Stateful Session Beans when they time out without an ejbPassivate event and without serializing the beans to the data-store. cache-idle-timeout-in-seconds set to 180 and removal-timeout-in-seconds set to 1800.
    The server.log indicates that the beans are timing out:
    [19/Aug/2004:18:15:10] WARNING ( 1664): [NRU-com.telstra.nodeman.ejb.AddressMaintBean]: IdleBeanCleanerTask finished after removing 2 idle beans
    Trace statements inserted in ejbPassivate do not appear in the log.
    It is my understanding that the above timeout should have caused an ejbPasssivate and serialization of the beans.
    The beans have been validated using Sun Java Studio Enterprise 6 with 'EJB validate'.
    My reading of the problem is that the beans are not being serialized and the error occurs when the application attempts to reference (getHandle) the bean after timeout.
    Any suggestions would be appreciated.

    Thanks Thorick.
    I am using NRU caching. WL 7.0 SP2.
    I have not defined idle-timeout-seconds in my weblogic-ejb-jar.xml. As I understand
    the default value for this is 600secs. So the ejbs should be removed after this
    time. Below is the
    weblogic-ejb-jar.xml that I am using.
    <!DOCTYPE weblogic-ejb-jar PUBLIC '-//BEA Systems, Inc.//DTD WebLogic 7.0.0 EJB//EN'
    'http://www.bea.com/servers/wls700/dtd/weblogic-ejb-jar.dtd'>
    <!-- Generated XML! -->
    <weblogic-ejb-jar>
    <weblogic-enterprise-bean>
    <ejb-name>Cart</ejb-name>
    <stateful-session-descriptor>
    <stateful-session-clustering>
    <home-is-clusterable>true</home-is-clusterable>
    <replication-type>InMemory</replication-type>
    </stateful-session-clustering>
    </stateful-session-descriptor>
    <transaction-descriptor>
         <trans-timeout-seconds>
              60
         </trans-timeout-seconds>
    </transaction-descriptor>
    <jndi-name>CartHome</jndi-name>
    </weblogic-enterprise-bean>
    </weblogic-ejb-jar>
    "thorick" <[email protected]> wrote:
    >
    The idle-timeout-seconds property controls the timeout/removal behavior.
    which stateful session cache type are you using ? LRUCache or NRUCache

  • Performance of Session Stateless Bean in WebSphere with connection to DB

    Im using WebSphere Advanced Single Server Edition Version 4.0.1. and a WebSphere DataSource to get my connections to Microsoft SQL 2000 (using netdirect's JSQLDriver).
    For the EJB I set the transaction to 'requieresNew'.
    For testing purposes I had been testing some code I'll be using in a Session Stateless Bean inside a servlet's method. In my servlet I use one single connection and preparedStatements to improve performance.
    When I test it on the Servlet, this process takes around 3 minutes to complete, but when I put this code inside a Session Stateless Bean and call it from this servlet's method, it takes around 30 minutes to complete!. How is this possible?!
    Worst of all, when the EJB ends and the process returns to the Servlet, it throws me this exception.
    com.ibm.websphere.ce.cm.StaleConnectionException: class com.ibm.ejs.cm.proxy.PreparedStatementProxy is closed.
    The code uses some utilities from a Framework we created, but I really doubt it affects the performance since I put such classes in a jar file and the EJB is accessing such classes correctly.
    I thought that maybe I was missing something related with how I get the connection inside the EJB, but I had no luck trying to figure this out.
    This is the code in my EJB, commented code was in use when this code was tested in the method of the servlet (some code has been removed or modified, so I just left the 'main' body of the code):
    package cmx.ejb;
    import cmx.common.*;
    import java.util.*;
    import qsi.sys.db.*;
    import qsi.sys.util.*;
    import java.rmi.*;
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    import java.util.*;
    import javax.ejb.*;
    import javax.naming.*;
    import javax.rmi.*;
    import javax.sql.DataSource;
    * Bean implementation class for Enterprise Bean: SimuladorEJB
    public class SimuladorEJBBean implements javax.ejb.SessionBean {
         private javax.ejb.SessionContext mySessionCtx;
    private Context ctx;
    private DataSource ds;
    private static final int TCONSUMO = 4;
    private static final int CARACEQ = 6;
    private static final int PPRODUC = 9;
    private static final int PPUNTA = 12;
    private static final int UTONHR = 8;
    private static final int TPRODUCC = 3;
    private Vector val = null;
    private Vector vecArea = null;
    private String query;
    private Object[] params;
    private int numAreas;
    private int vSecDetHE;
    //All the prepared statements I'll use in my process
    private PreparedStatement pstmSelectSerial = null;
    private PreparedStatement pstmUpdateSerial = null;
    private PreparedStatement pstmgetPPEquipos = null;
    private PreparedStatement pstmgetTransfers = null;
    private PreparedStatement pstmaddRProduccion = null;
    private PreparedStatement pstmupdInventario = null;
    private PreparedStatement pstmgetServicios = null;
    private PreparedStatement pstmaddConsumo = null;
    private PreparedStatement pstmgetAreaEquipos = null;
    private PreparedStatement pstmfindCE = null;
    private PreparedStatement pstmcontEventoLogEq = null;
    private PreparedStatement pstmaddLog = null;
    private PreparedStatement pstmfindCaract = null;
    private PreparedStatement pstmfindComposicion = null;
    private PreparedStatement pstmfindCombAlt = null;
    private PreparedStatement pstmaddInventarioH = null;
    private PreparedStatement pstmgetAlmMatREM = null;
    private PreparedStatement pstmfindAlmacen = null;
    private PreparedStatement pstmcontEventoLogAlm = null;
    private PreparedStatement pstmgetAlmacenes = null;
    private PreparedStatement pstmfindInvHora = null;
    private PreparedStatement pstmgetPeriodoHorario = null;
    private PreparedStatement pstmgetProgramaCE = null;
    private PreparedStatement pstmgetProgramaPP = null;
    private PreparedStatement pstmgetProgramaParo = null;
    private PreparedStatement pstmgetPrograma = null;
         * getSessionContext
         public javax.ejb.SessionContext getSessionContext() {
              return mySessionCtx;
         * setSessionContext
         public void setSessionContext(javax.ejb.SessionContext ctx) {
              mySessionCtx = ctx;
         * ejbActivate
         public void ejbActivate() {
         * ejbCreate
         public void ejbCreate() throws javax.ejb.CreateException {
    System.out.println("ejbCreate()");
    try {
    Hashtable parms = new Hashtable();
    parms.put(Context.INITIAL_CONTEXT_FACTORY, "com.ibm.websphere.naming.WsnInitialContextFactory");
    ctx = new InitialContext(parms);
    ds = (DataSource)ctx.lookup("jdbc/datasource");
    }catch (Exception e){
    e.printStackTrace();
         * ejbPassivate
         public void ejbPassivate() {
         * ejbRemove
         public void ejbRemove() {
    System.out.println("ejbRemove()");
         pstmSelectSerial = null;
         pstmUpdateSerial = null;
         pstmgetPPEquipos = null;
         pstmgetTransfers = null;
         pstmaddRProduccion = null;
         pstmupdInventario = null;
         pstmgetServicios = null;
         pstmaddConsumo = null;
         pstmgetAreaEquipos = null;
         pstmfindCE = null;
         pstmcontEventoLogEq = null;
         pstmaddLog = null;
         pstmfindCaract = null;
         pstmfindComposicion = null;
         pstmfindCombAlt = null;
         pstmaddInventarioH = null;
         pstmgetAlmMatREM = null;
         pstmfindAlmacen = null;
         pstmcontEventoLogAlm = null;
         pstmgetAlmacenes = null;
         pstmfindInvHora = null;
         pstmgetPeriodoHorario = null;
         pstmgetProgramaCE = null;
         pstmgetProgramaPP = null;
         pstmgetProgramaParo = null;
         pstmgetPrograma = null;
    public void GenerarSimulacion(int pidSimulacion, String pfini, String pffin, int cveEntidad, int cveUsuario) throws Exception{
    System.out.println("GenerarSimulacion()");
    System.out.println("***Simulacion " + pidSimulacion + " en proceso...***");
    Calendar inicioProceso = Calendar.getInstance();//Tiempo en que empezo el Proceso
    Calendar finProceso = null;//Tiempo en que termino el Proceso
         Connection cnn = null;
    //boolean autoCommit = false;
         try{
         cnn = ds.getConnection();
    autoCommit = cnn.getAutoCommit();
    cnn.setAutoCommit(false);
         cnn.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);
    pstmSelectSerial = cnn.prepareStatement("select iValor from CatConsecutivo where vcConsecutivo=?");
    pstmUpdateSerial = cnn.prepareStatement("update CatConsecutivo set iValor = iValor+1 where vcConsecutivo=?");
    pstmgetPPEquipos = cnn.prepareStatement(Manager.getParameter("cmx.admin.inicioSesion.getPPEquipos"));
    pstmgetTransfers = cnn.prepareStatement(Manager.getParameter("cmx.admin.inicioSesion.getTransfers"));
    pstmaddRProduccion = cnn.prepareStatement(Manager.getParameter("cmx.admin.inicioSesion.addRProduccion"));
    pstmupdInventario = cnn.prepareStatement(Manager.getParameter("cmx.admin.inicioSesion.updInventario"));
    pstmgetServicios = cnn.prepareStatement(Manager.getParameter("cmx.admin.inicioSesion.getServicios"));
    pstmaddConsumo = cnn.prepareStatement(Manager.getParameter("cmx.admin.inicioSesion.addRConsumo"));
    pstmgetAreaEquipos = cnn.prepareStatement(Manager.getParameter("cmx.admin.inicioSesion.getAreaEquipos"));
    pstmfindCE = cnn.prepareStatement(Manager.getParameter("cmx.admin.inicioSesion.findCE"));
    pstmcontEventoLogEq = cnn.prepareStatement(Manager.getParameter("cmx.admin.inicioSesion.contEventoLogEq"));
    pstmaddLog = cnn.prepareStatement(Manager.getParameter("cmx.admin.inicioSesion.addLog"));
    pstmfindCaract = cnn.prepareStatement(Manager.getParameter("cmx.admin.inicioSesion.findCaract"));
    pstmfindComposicion = cnn.prepareStatement(Manager.getParameter("cmx.admin.inicioSesion.findComposicion"));
    pstmfindCombAlt = cnn.prepareStatement(Manager.getParameter("cmx.admin.inicioSesion.findCombAlt"));
    pstmaddInventarioH = cnn.prepareStatement(Manager.getParameter("cmx.admin.inicioSesion.addInventarioH"));
    pstmgetAlmMatREM = cnn.prepareStatement(Manager.getParameter("cmx.admin.inicioSesion.getAlmMatREM"));
    pstmfindAlmacen = cnn.prepareStatement(Manager.getParameter("cmx.admin.inicioSesion.findAlmacen"));
    pstmcontEventoLogAlm = cnn.prepareStatement(Manager.getParameter("cmx.admin.inicioSesion.contEventoLogAlm"));
    pstmgetAlmacenes = cnn.prepareStatement(Manager.getParameter("cmx.admin.inicioSesion.getAlmacenes"));
    pstmfindInvHora = cnn.prepareStatement(Manager.getParameter("cmx.admin.inicioSesion.findInvHora"));
    pstmgetPeriodoHorario = cnn.prepareStatement(Manager.getParameter("cmx.admin.inicioSesion.getPeriodoHorario"));
    pstmgetProgramaCE = cnn.prepareStatement(Manager.getParameter("cmx.admin.inicioSesion.getProgramaCE"));
    pstmgetProgramaPP = cnn.prepareStatement(Manager.getParameter("cmx.admin.inicioSesion.getProgramaPP"));
    pstmgetProgramaParo = cnn.prepareStatement(Manager.getParameter("cmx.admin.inicioSesion.getProgramaParo"));
    pstmgetPrograma = cnn.prepareStatement(Manager.getParameter("cmx.admin.inicioSesion.getPrograma"));
    pstmgetAreaEquipos = cnn.prepareStatement(Manager.getParameter("cmx.admin.inicioSesion.getAreaEquipos"));
    Map hmEqMat = null;
    Iterator itEqMat = null;
    Map.Entry meEqMat = null;
    Map hmInvAlm = null;
    Iterator itInvAlm = null;
    Map.Entry meInvAlm = null;
    Map hmPunta = null;
    Iterator itPunta = null;
    Map.Entry mePunta = null;
    Iterator itPuntaEq = null;
    HashMap hmPuntaEq = null;
    Vector vecPuntaEq = null;
    Iterator itPPEq = null;
    HashMap hmPPEq = null;
    Vector vecPPEq = null;
    Iterator itCar = null;
    HashMap hmCar = null;
    Vector vecCar = null;
    Iterator itLog = null;
    HashMap hmLog = null;
    Vector vecLog = null;
    Iterator itCA = null;
    HashMap hmCA = null;
    Vector vecCA = null;
    Iterator itCom = null;
    HashMap hmCom = null;
    Vector vecCom = null;
    Iterator it = null;
    HashMap hm = null;
    Vector vecEv = null;
    Iterator itEq = null;
    HashMap hmEq = null;
    Vector vecEq = null;
    Vector vecSim = null;
    Date d;
    String sDSim = "";
    Date dDiaPrevio;
    String sDiaPrevio = "";
    String consulta;
    int vContador= 0;
    int hr=0;
    long vDiaPrevio = 0;
    Integer idInvH;
    Integer idProd;
    Integer idCons;
    Integer idLog;
    int vCont = 0;
    int vCiclo = 0;
    int vArea = 0;
    int vAreaAct = 0;
    int vPuntaEquipo = 0;
    // Periodo de Simulacion
    long fini = getCurrDate(pfini);
    long ffin = getCurrDate(pffin);
    // Variables Generales
    int vSecuencial = 0;
    int vEvento = 0;
    float vCostoE = 0;
    int vAlmacenREM = 0;
    // Variables de Transferencia
    float vCantidad = 0;
    int vTipoMov = 0;
    int vUMedida = 0;
    int vAlmacenTr = 0;
    float vNIni = 0;
    float vNMin = 0;
    float vNMax = 0;
    float vNAct = 0;
    // Variables de Equipos
    int vPPMaterial = 0;
    int vPPEquipo = 0;
    int vPPArea = 0;
    int vMaterial = 0;
    int vCaractEq = 0;
    int vParo = 0;
    int vEstatusParo = 0;
    int vEstatus = 0;
    float vMinPunta = 0;
    float vPorcPunta = 0;
    float vProporcion = 0;
    float vTPH = 0;
    float vGasto = 0;
    float vKwNoProd = 0;
    float vKwProd = 0;
    int vAlmacen = 0;
    // Variables de Composicion de Materiales
    int vMaterialCom = 0;
    float vPorcCom = 0;
    float vFactorCC = 0;
    int vTipoMovCom = 0;
    int vUMedidaCom = 0;
    int vAlmacenCom = 0;
    float vNIniCom = 0;
    float vNMinCom = 0;
    float vNMaxCom = 0;
    float vNActCom = 0;
    int vMaterialCA = 0;
    int vUMedidaCA = 0;
    int vAlmacenCA = 0;
    float vNIniCA = 0;
    float vNMinCA = 0;
    float vNMaxCA = 0;
    float vNActCA = 0;
    int vOk=0;
    int h=0;
    boolean vbOk=false;
    boolean swArea=true;
    Calendar dtH1;
    vecSim = new Vector();
    vecSim.add(new Integer(pidSimulacion));
    for (long ld=fini; ld<=ffin; ld=getNextDate(new Date(ld), 1))
    {   d = new Date(ld);
    //The process which calls find(), upd(), AplicaEvento() and GetCostoEnergia() methods several times.
    //The methods find() and upd() uses a util class (DataDB) which basically assigns the params to the PreparedStatement and executes it, returning the results in a Vector.
    } // for ld : Dia de Simulacion
    //Cerrar la transaccion
    }catch (Exception e){
              System.out.println("rollback...");
                   mySessionCtx.setRollbackOnly();
         System.out.println("rollback ok!");
    System.out.println(e.toString());
                   throw e;
    }finally{
    finProceso = Calendar.getInstance();
    finProceso.setTime(new java.util.Date(finProceso.getTime().getTime() - inicioProceso.getTime().getTime()));
    System.out.println("***Simulacion " + pidSimulacion + " procesada en: " + finProceso.get(Calendar.MINUTE) + ":" + finProceso.get(Calendar.SECOND) + "." + finProceso.get(Calendar.MILLISECOND) + ".***");
    try {
    if (cnn!=null && !cnn.isClosed()) {
              System.out.println("close ok?");
    cnn.close();
                   System.out.println("close ok!");
    }catch (SQLException sqle){
    sqle.printStackTrace();
    System.out.println("commit ok?");
    cnn.commit();
    System.out.println("commit ok!");
    }catch (Exception e){
    e.printStackTrace();
    System.out.println(e.toString());
    try {
    if (cnn!=null && !cnn.isClosed()) {
                   System.out.println("rollback ok?");
                             cnn.rollback();
              System.out.println("rollback ok!");
    }catch (SQLException sqle){
    sqle.printStackTrace();
    }finally{
    finProceso = Calendar.getInstance();
    finProceso.setTime(new java.util.Date(finProceso.getTime().getTime() - inicioProceso.getTime().getTime()));
    System.out.println("Simulacion procesada en: " + finProceso.get(Calendar.MINUTE) + ":" + finProceso.get(Calendar.SECOND) + "." + finProceso.get(Calendar.MILLISECOND) + ".***");
    try {
    if (cnn!=null && !cnn.isClosed()) {
                   System.out.println("autocommit ok?");
                   cnn.setAutoCommit(autoCommit);
              System.out.println("autocommit ok!");
              System.out.println("close ok?");
    cnn.close();
                   System.out.println("close ok!");
    }catch (SQLException sqle){
    sqle.printStackTrace();
    private float GetCostoEnergia(float pfKw, long plFecha, int piHora,int cveEntidad) throws Exception {
    float exito = -1;
    //calculations and has access to DB throught method find()
    return exito;
    private int AplicaEvento(int pidMaterial, int pidEvento, int pidSecuencial, int pidSimulacion, long plFecha, int piHora) throws Exception {
    int exito = -1;
    //calculations and has access to DB throught method find()
    return exito;
    private Iterator find(PreparedStatement pstm, Vector values) throws Exception {
    params = (values!=null)? values.toArray() : null;
    Vector data = DataDB.executeQuery(pstm, params); //This util class is in a external jar file, such util basically assigns the params to the PreparedStatement and executes it, returning the results in a Vector.
    return data.iterator();
    private int upd(PreparedStatement pstm, Vector values) throws Exception {
    params = values.toArray();
    return DataDB.executeUpdate(pstm, params); //This util class is in a external jar file, such util basically assigns the params to the PreparedStatement and executes it.
    Help will be REALLY appreciated!
    Thanks in advance.

    Thanks Paul for your comments.
    In fact, I call my EJB in the servlet just once. Im sure calling the same EJB. My project requieres it to be stateless.
    This is my last log
    1/2/03 13:15:00:481 CST] 17fac55b SystemOut U -ejbCreate()-
    [1/2/03 13:15:00:591 CST] 17fac55b SystemOut U jdbc/xa/oye
    [1/2/03 13:15:00:651 CST] 17fac55b SystemOut U -GenerarSimulacion()-
    [1/2/03 13:15:00:741 CST] 17fac55b SystemOut U ***Simulacion 32 en proceso...??***
    [1/2/03 13:15:01:012 CST] 17fac55b SystemOut U JSQLConnect(2.2721) Trial license - expires on:Tue Jan 07 13:01:32 CST 2003, unlimited connections
    [1/2/03 13:15:01:092 CST] 17fac55b SystemOut U Connection OK!
    [1/2/03 13:15:01:392 CST] 17fac55b SystemOut U PreparedStatements OK!
    [1/2/03 13:15:01:402 CST] 17fac55b SystemOut U Comenzando Sim...
    I forgot to mention that I create a connection (autocommit false) at the begining of my servlet, which I use throught all the servlet, then I call the EJB, and after the EJB succeds I also close the transaction in the Servlet (to commit what is on the servlet, not the EJB). Thats why I set the transaction in the EJB to requiresNew, so after the EJB ends it commits its own transaction, Am I right?.
    The Exception I get I think its because the connection used in the servlet timed out while waiting for the EJB to finish.
    This issue has become urgent, so please if you know why I have this problem reply ASAP.
    Thanks!

  • Using Query String Parameters with Session Scoped bean

    I would like to pass query string parameters from a product page (user clicks on a specific product commandLink) that is request scope to a details page that is session scoped.
    The problem is that the session scoped page only handles the first request. If you view the details of a product and then navigate back to the product page and choose another product ... the details page will not handle the new query string parameters and display the details for the first product chosen.
    Is there a way to make the session scoped bean recognize the query string parameters past the first request?

    I was able to replicate this problem with a very simple app that performs a redirection... just like the real app. Here's the simple app that I put together:
    From request scope page:
    <f:view>
             <h:form>
               <h:commandButton value="Link 1" action="#{reqbean.Link1}"/>
               <br/><br/>
              <h:commandButton value="Link 2" action="#{reqbean.Link2}"/>
            </h:form>
           </f:view>
    From request scope bean:
    public String Link1() throws IOException
        // Add event code here...
        //redirect the user
        FacesContext.getCurrentInstance().getExternalContext().redirect("untitled2.jspx?p=1");
        return null;
      public String Link2() throws IOException
        // Add event code here...
        //redirect the user
        FacesContext.getCurrentInstance().getExternalContext().redirect("untitled2.jspx?p=2");
        return null;
      }At this point... I put a println in the constructor of the session scoped bean because this is where I want to get the query string params. The constructor only gets called the first time a redirect is performed.

  • Lot of sessions with wait event - jobq slave wait

    Hi All,
    My db version is 10.2.0.4.0
    I have scheduled jobs through dbms_scheduler with repeat_interval of 20 mins(this for refresh of mviews).
    Now the job is in running state for a long time. then i checked the sessions..
    I have five session with wait event - "jobq slave wait"
    I check job_queue_parameter - 10
    select count(1) from dba_jobs;
    COUNT(1)
    8
    Now the job is in running state for a long time...
    Can someone help me how to proceed...
    Thanks,
    Suresh S.

    Post Operating System (OS) name & version for DB server system.
    Post results of
    SELECT * from v$version
    does following SQL return any rows? If so, they point to problem area.
    SELECT DECODE(request,0,'Holder: ','Waiter: ')||sid sess,
    id1, id2, lmode, request, type
    FROM V$LOCK
    WHERE (id1, id2, type) IN
    (SELECT id1, id2, type FROM V$LOCK WHERE request>0)
    ORDER BY id1, request
    /

  • ADF BC how to access session backing bean value in servlet

    Hi everyone,
    How do I access session backing bean value in a servlet?

    Frank, thanks for your reply.
    I'm not sure how I can incorporate this example into my situation. Let me explain more detail about my problem.
    "servlet" in my post here actually means a custom servlet I wrote for rendering an image that is stored in db as ordimage. In this servlet, I get hold of my appmodule by using Configuation.createRootApplicationModule(). By doing so (If I'm not wrong) a new database session/connection is created. What I'm going to achieve is set application context for this new session/connection in db with the data stored in a session backing bean in the view layer.
    I can pass the required data to the servlet thru url parameter, but I don't want to do it this way for the reason that the data may contains sensitive information.
    I hope I have explained myself well.
    Message was edited by:
    bsmt

Maybe you are looking for

  • [SOLVED] installation on T420s

    I've been using Arch Linux happily for a couple of years on my Thinkpad T42. Now I got a T420s and I after completing the standar install procedure I have no eth0 and hence I can't install anything that is not on the installation cd. lspci|grep -i et

  • What is a Pantone process color?

    Hi, Hope you're doing well. I am just starting to learn about colors and printing. I have a job I am working on where the printer requires the Pantone colors. The person who originally created the file kept them as CMYK. I have been converting them t

  • Cleaning Mighty Mouse?

    Not sure the best place for this... Scroll wheel stopped working - any ideas how to dismantle and clean? Thanks

  • Cannot open .pkg files in OS X 10.4.11 or run installer

    I recently had to repair disk permissions & verify disk in Disk utility from installer disk. After I did this the only issue I have is opening a .pkg file or running installer. The installer window flashes and closes and does not run. I have right cl

  • Designed in california assembled in china apple headphones...

    My other headphones broke... It was the official one... designed in california assembled in Vietnam. I just got back home buying a other pair apple headphones with mic but this time it stats designed in california assembled in china. Bear in mind I b