Schedule an EJB?

I have an EJB which takes input from JSP, and running stored procedure in the database. Because it will run for a long time, its better to run during some schedule hours.
After user submit a job from the JSP front, the Stateless Session EJB needs to "wait" until 2:00 AM before it runs the task. How can I do that? I don't want to use a loop since it will eat up all system computing resource.
Thanks
Kenny

Alternatively, your Stateless Session Bean could call a Helper class that uses the Timer and TimerTask classes to schedule you task. Think its six of one and half a dozen of the other though.

Similar Messages

  • Weblogic 10 +APPC+EJB 2.0 problem

    Hi,
    We are upgrading the weblogic 8.1 to weblogic 10. We are using the appc option to build over ejb modules, while validatign the ejb discriptor we are running into problem.
    Environment :
    Operating system : Windows
    Java : 1.5
    Javaee : 5
    Weblogic : 10
    EJB : 2.0
    ===================================================
    [java] <Aug 8, 2007 3:05:13 PM PDT> <Error> <J2EE> <BEA-160197> <Unable to load descriptor C:\EclipseProjects\Swell10\j2ee\build\weblogic\deploy\ejb\qss-ejb-standard.jar/META-INF/ejb-jar.xml of module qss-ejb-standard.jar. The error is weblogic.descriptor.DescriptorException: Unmarshaller failed
    [java] at weblogic.descriptor.internal.MarshallerFactory$1.createDescriptor(MarshallerFactory.java:152)
    [java] at weblogic.descriptor.BasicDescriptorManager.createDescriptor(BasicDescriptorManager.java:292)
    [java] at weblogic.appc.main(appc.java:14)
    [java] Caused by: com.bea.xml.XmlException: java.lang.IllegalArgumentException: remoteAccessManagerDaoClass</env-entry-name> <env-entry-type>java.lang.String</env-entry-type> <env-entry-value>com.questra.a2b.remoteaccessmanager.bizcomp.dao.RemoteAccessManagerDaoSql</env-entry-value> </env-entry> is not a legal value for EnvEntryType. The value must be one of the following: [java.lang.String, java.lang.Integer, java.lang.Double, java.lang.Byte, java.lang.Short, java.lang.Long, java.lang.Float, java.lang.Boolean, java.lang.Character]
    [java] at com.bea.staxb.runtime.internal.AttributeUnmarshaller.unmarshalIntoIntermediary(AttributeUnmarshaller.java:47)
    [java] at com.bea.staxb.runtime.internal.LiteralUnmarshalResult.unmarshalElementProperty(LiteralUnmarshalResult.java:158)
    [java] at com.bea.staxb.runtime.internal.LiteralUnmarshalResult.extractAndFillElementProp(LiteralUnmarshalResult.java:130)
    [java] at weblogic.descriptor.internal.MarshallerFactory$1.createDescriptor(MarshallerFactory.java:141)
    [java] ... 33 more
    [java] Caused by: java.lang.IllegalArgumentException: remoteAccessManagerDaoClass</env-entry-name> <env-entry-type>java.lang.String</env-entry-type> <env-entry-value>com.questra.a2b.remoteaccessmanager.bizcomp.dao.RemoteAccessManagerDaoSql</env-entry-value> </env-entry> is not a legal value for EnvEntryType. The value must be one of the following: [java.lang.String, java.lang.Integer, java.lang.Double, java.lang.Byte, java.lang.Short, java.lang.Long, java.lang.Float, java.lang.Boolean, java.lang.Character]
    [java] at weblogic.descriptor.beangen.LegalChecks.checkInEnum(LegalChecks.java:29)
    [java] ... 55 more
    [java] .>
    [java] at weblogic.appc.main(appc.java:14)
    [java] Caused by: com.bea.xml.XmlException: java.lang.IllegalArgumentException: remoteAccessManagerDaoClass</env-entry-name> <env-entry-type>java.lang.String</env-entry-type> <env-entry-value>com.questra.a2b.remoteaccessmanager.bizcomp.dao.RemoteAccessManagerDaoSql</env-entry-value> </env-entry> is not a legal value for EnvEntryType. The value must be one of the following: [java.lang.String, java.lang.Integer, java.lang.Double, java.lang.Byte, java.lang.Short, java.lang.Long, java.lang.Float, java.lang.Boolean, java.lang.Character]
    [java] at com.bea.staxb.runtime.internal.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:54)
    [java] ... 33 more
    [java] Caused by: java.lang.IllegalArgumentException: remoteAccessManagerDaoClass</env-entry-name> <env-entry-type>java.lang.String</env-entry-type> <env-entry-value>com.questra.a2b.remoteaccessmanager.bizcomp.dao.RemoteAccessManagerDaoSql</env-entry-value> </env-entry> is not a legal value for EnvEntryType. The value must be one of the following: [java.lang.String, java.lang.Integer, java.lang.Double, java.lang.Byte, java.lang.Short, java.lang.Long, java.lang.Float, java.lang.Boolean, java.lang.Character]
    [java] ... 55 more
    [java] Java Result: 1
    ======================================================
    take a look at the ejb-jar.xml also
    <?xml version="1.0"?>
    <!-- edited with XMLSPY v5 rel. 4 U (http://www.xmlspy.com) by Dimitrios Psarros (Questra Corporation) -->
    <!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
    <ejb-jar>
    <enterprise-beans>
    <!-- =============================================== -->
    <!-- RemoteAccessManager -->
    <!-- =============================================== -->
    <session>
    <ejb-name>a2b.RemoteAccessManager</ejb-name>
    <home>com.questra.a2b.remoteaccessmanager.bizcomp.ejb.IRemoteAccessManagerRemoteHome</home>
    <remote>com.questra.a2b.remoteaccessmanager.bizcomp.ejb.IRemoteAccessManagerRemote</remote>
    <ejb-class>com.questra.a2b.remoteaccessmanager.bizcomp.ejb.session.RemoteAccessManagerSessionEjb</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    <env-entry>
         <env-entry-name>remoteAccessManagerDaoClass</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>com.questra.a2b.remoteaccessmanager.bizcomp.dao.RemoteAccessManagerDaoSql</env-entry-value>
    </env-entry>
    <resource-ref>
    <res-ref-name>jdbc/DataSource</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    </session>
    <!-- =============================================== -->
    <!-- DisconnectedAccessManager -->
    <!-- =============================================== -->
    <session>
    <ejb-name>a2b.DisconnectedAccessManager</ejb-name>
    <home>com.questra.a2b.disconnectedaccessmanager.bizcomp.ejb.IDisconnectedAccessManagerRemoteHome</home>
    <remote>com.questra.a2b.disconnectedaccessmanager.bizcomp.ejb.IDisconnectedAccessManagerRemote</remote>
    <ejb-class>com.questra.a2b.disconnectedaccessmanager.bizcomp.ejb.session.DisconnectedAccessManagerSessionEjb</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    <env-entry>
    <env-entry-name>disconnectedaccessmanagerDaoClass</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>com.questra.a2b.disconnectedaccessmanager.bizcomp.dao.DisconnectedAccessManagerDaoSql</env-entry-value>
    </env-entry>
    <resource-ref>
    <res-ref-name>jdbc/DataSource</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    </session>
    <!-- =============================================== -->
    <!-- TotalAccess -->
    <!-- =============================================== -->
    <session>
    <ejb-name>a2b.TotalAccess</ejb-name>
    <home>com.questra.a2b.totalaccess.bizcomp.ejb.ITotalAccessRemoteHome</home>
    <remote>com.questra.a2b.totalaccess.bizcomp.ejb.ITotalAccessRemote</remote>
    <ejb-class>com.questra.a2b.totalaccess.bizcomp.ejb.session.TotalAccessSessionEjb</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    <env-entry>
    <env-entry-name>totalAccessDaoClass</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>com.questra.a2b.totalaccess.bizcomp.dao.TotalAccessDaoSql</env-entry-value>
    </env-entry>
    <resource-ref>
    <res-ref-name>jdbc/DataSource</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    </session>
    <!-- =============================================== -->
    <!-- UsageJobManager -->
    <!-- =============================================== -->
    <session>
    <ejb-name>a2b.UsageJobManager</ejb-name>
    <home>com.questra.a2b.usagejobmanager.bizcomp.ejb.IUsageJobManagerRemoteHome</home>
    <remote>com.questra.a2b.usagejobmanager.bizcomp.ejb.IUsageJobManagerRemote</remote>
    <ejb-class>com.questra.a2b.usagejobmanager.bizcomp.ejb.session.UsageJobManagerSessionEjb</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    <env-entry>
    <env-entry-name>usageJobManagerDaoClass</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>com.questra.a2b.usagejobmanager.bizcomp.dao.UsageJobManagerDaoSql</env-entry-value>
    </env-entry>
    <resource-ref>
    <res-ref-name>jdbc/DataSource</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    </session>
    <!-- =============================================== -->
    <!-- ACM -->
    <!-- =============================================== -->
    <session>
    <ejb-name>a2b.ACM</ejb-name>
    <home>com.questra.a2b.acm.bizcomp.ejb.IACMRemoteHome</home>
    <remote>com.questra.a2b.acm.bizcomp.ejb.IACMRemote</remote>
    <ejb-class>com.questra.a2b.acm.bizcomp.ejb.session.ACMSessionEjb</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    <env-entry>
    <env-entry-name>acmDaoClass</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>com.questra.a2b.acm.bizcomp.dao.ACMDaoSql</env-entry-value>
    </env-entry>
    <resource-ref>
    <res-ref-name>jdbc/DataSource</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    </session>
    <!-- =============================================== -->
    <!-- MonitorManager -->
    <!-- =============================================== -->
    <session>
    <ejb-name>a2b.MonitorManager</ejb-name>
    <home>com.questra.a2b.monitormanager.bizcomp.ejb.IMonitorManagerRemoteHome</home>
    <remote>com.questra.a2b.monitormanager.bizcomp.ejb.IMonitorManagerRemote</remote>
    <ejb-class>com.questra.a2b.monitormanager.bizcomp.ejb.session.MonitorManagerSessionEjb</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    <env-entry>
    <env-entry-name>monitorManagerDaoClass</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>com.questra.a2b.monitormanager.bizcomp.dao.MonitorManagerDaoSql</env-entry-value>
    </env-entry>
    <resource-ref>
    <res-ref-name>jdbc/DataSource</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    </session>
    <!-- =============================================== -->
    <!-- UsageMeterManager -->
    <!-- =============================================== -->
    <session>
    <ejb-name>a2b.UsageMeterManager</ejb-name>
    <home>com.questra.a2b.usagemetermanager.bizcomp.ejb.IUsageMeterManagerRemoteHome</home>
    <remote>com.questra.a2b.usagemetermanager.bizcomp.ejb.IUsageMeterManagerRemote</remote>
    <ejb-class>com.questra.a2b.usagemetermanager.bizcomp.ejb.session.UsageMeterManagerSessionEjb</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    <env-entry>
    <env-entry-name>usageMeterManagerDaoClass</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>com.questra.a2b.usagemetermanager.bizcomp.dao.UsageMeterManagerDaoSql</env-entry-value>
    </env-entry>
    <resource-ref>
    <res-ref-name>jdbc/DataSource</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    </session>
    <!-- =============================================== -->
    <!-- DiagnosticsManager -->
    <!-- =============================================== -->
    <session>
    <ejb-name>a2b.DiagnosticsManager</ejb-name>
    <home>com.questra.a2b.diagnosticsmanager.bizcomp.ejb.IDiagnosticsManagerRemoteHome</home>
    <remote>com.questra.a2b.diagnosticsmanager.bizcomp.ejb.IDiagnosticsManagerRemote</remote>
    <ejb-class>com.questra.a2b.diagnosticsmanager.bizcomp.ejb.session.DiagnosticsManagerSessionEjb</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    <env-entry>
    <env-entry-name>diagnosticsManagerDaoClass</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>com.questra.a2b.diagnosticsmanager.bizcomp.dao.DiagnosticsManagerDaoSql</env-entry-value>
    </env-entry>
    <resource-ref>
    <res-ref-name>jdbc/DataSource</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    </session>
    <!-- =============================================== -->
    <!-- ProcedureManager -->
    <!-- =============================================== -->
    <session>
    <ejb-name>a2b.ProcedureManager</ejb-name>
    <home>com.questra.a2b.proceduremanager.bizcomp.ejb.IProcedureManagerRemoteHome</home>
    <remote>com.questra.a2b.proceduremanager.bizcomp.ejb.IProcedureManagerRemote</remote>
    <ejb-class>com.questra.a2b.proceduremanager.bizcomp.ejb.session.ProcedureManagerSessionEjb</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    <env-entry>
    <env-entry-name>procedureManagerDaoClass</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>com.questra.a2b.proceduremanager.bizcomp.dao.ProcedureManagerDaoSql</env-entry-value>
    </env-entry>
    <resource-ref>
    <res-ref-name>jdbc/DataSource</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    </session>
    <!-- =============================================== -->
    <!-- DataWarehouseProcedureManager -->
    <!-- =============================================== -->
    <session>
    <ejb-name>a2b.DataWarehouseProcedureManager</ejb-name>
    <home>com.questra.a2b.proceduremanager.bizcomp.ejb.IProcedureManagerRemoteHome</home>
    <remote>com.questra.a2b.proceduremanager.bizcomp.ejb.IProcedureManagerRemote</remote>
    <ejb-class>com.questra.a2b.proceduremanager.bizcomp.ejb.session.ProcedureManagerSessionEjb</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    <env-entry>
    <env-entry-name>procedureManagerDaoClass</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>com.questra.a2b.proceduremanager.bizcomp.dao.ProcedureManagerDaoSql</env-entry-value>
    </env-entry>
    <resource-ref>
    <res-ref-name>jdbc/DataSource</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    </session>
    <!-- =============================================== -->
    <!-- DataWarehouseManager -->
    <!-- =============================================== -->
    <session>
    <ejb-name>a2b.DataWarehouseManager</ejb-name>
    <home>com.questra.a2b.datawarehousemanager.bizcomp.ejb.IDataWarehouseManagerRemoteHome</home>
    <remote>com.questra.a2b.datawarehousemanager.bizcomp.ejb.IDataWarehouseManagerRemote</remote>
    <ejb-class>com.questra.a2b.datawarehousemanager.bizcomp.ejb.session.DataWarehouseManagerSessionEjb</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    <env-entry>
    <env-entry-name>dataWarehouseManagerDaoClass</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>com.questra.a2b.datawarehousemanager.bizcomp.dao.DataWarehouseManagerDaoSql</env-entry-value>
    </env-entry>
    <resource-ref>
    <res-ref-name>jdbc/DataWarehouseDataSource</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    </session>
    <!-- =============================================== -->
    <!-- Scheduler -->
    <!-- =============================================== -->
    <session>
    <ejb-name>a2b.Scheduler</ejb-name>
    <home>com.questra.a2b.scheduler.bizcomp.ejb.ISchedulerRemoteHome</home>
    <remote>com.questra.a2b.scheduler.bizcomp.ejb.ISchedulerRemote</remote>
    <ejb-class>com.questra.a2b.scheduler.bizcomp.ejb.session.SchedulerSessionEjb</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    <env-entry>
    <env-entry-name>schedulerDaoClass</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>com.questra.a2b.scheduler.bizcomp.dao.SchedulerDaoSql</env-entry-value>
    </env-entry>
    <resource-ref>
    <res-ref-name>jdbc/DataSource</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    </session>
    <!-- =============================================== -->
    <!-- SystemEventLogger -->
    <!-- =============================================== -->
    <session>
    <ejb-name>a2b.SystemEventLogger</ejb-name>
    <home>com.questra.a2b.common.bizcomp.log.ejb.ISystemEventLoggerRemoteHome</home>
    <remote>com.questra.a2b.common.bizcomp.log.ejb.ISystemEventLoggerRemote</remote>
    <ejb-class>com.questra.a2b.common.bizcomp.log.ejb.session.SystemEventLoggerSessionEjb</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    <env-entry>
    <env-entry-name>systemEventDaoClass</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>com.questra.a2b.common.bizcomp.dao.SystemEventDaoSql</env-entry-value>
    </env-entry>
    <resource-ref>
    <res-ref-name>jdbc/DataSource</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    </session>
    <!-- =============================================== -->
    <!-- LicenseManager -->
    <!-- =============================================== -->
    <session>
    <ejb-name>a2b.LicenseManager</ejb-name>
    <home>com.questra.a2b.common.bizcomp.license.ejb.ILicenseManagerRemoteHome</home>
    <remote>com.questra.a2b.common.bizcomp.license.ejb.ILicenseManagerRemote</remote>
    <ejb-class>com.questra.a2b.common.bizcomp.license.ejb.session.LicenseManagerSessionEjb</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    <resource-ref>
    <res-ref-name>jdbc/DataSource</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    </session>
    <!-- =============================================== -->
    <!-- Security -->
    <!-- =============================================== -->
    <session>
    <ejb-name>a2b.Security</ejb-name>
    <home>com.questra.a2b.security.bizcomp.ejb.ISecurityRemoteHome</home>
    <remote>com.questra.a2b.security.bizcomp.ejb.ISecurityRemote</remote>
    <ejb-class>com.questra.a2b.security.bizcomp.ejb.session.SecuritySessionEjb</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    <env-entry>
    <env-entry-name>tokenTimeout</env-entry-name>
    <env-entry-type>java.lang.Long</env-entry-type>
    <env-entry-value>600000</env-entry-value>
    </env-entry>
    <env-entry>
    <env-entry-name>securityDaoClass</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>com.questra.a2b.security.bizcomp.dao.SecurityDaoSql</env-entry-value>
    </env-entry>
    <resource-ref>
    <res-ref-name>jdbc/DataSource</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    </session>
    <!-- =============================================== -->
    <!-- DocumentManager -->
    <!-- =============================================== -->
    <session>
    <ejb-name>a2b.DocumentManager</ejb-name>
    <home>com.questra.a2b.documentmanager.bizcomp.ejb.IDocumentManagerRemoteHome</home>
    <remote>com.questra.a2b.documentmanager.bizcomp.ejb.IDocumentManagerRemote</remote>
    <ejb-class>com.questra.a2b.documentmanager.bizcomp.ejb.session.DocumentManagerSessionEjb</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    <env-entry>
    <env-entry-name>documentmanagerDaoClass</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>com.questra.a2b.documentmanager.bizcomp.dao.DocumentManagerDaoSql</env-entry-value>
    </env-entry>
    <resource-ref>
    <res-ref-name>jdbc/DataSource</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    </session>
    <!-- =============================================== -->
    <!-- UiManager -->
    <!-- =============================================== -->
    <session>
    <ejb-name>a2b.UiManager</ejb-name>
    <home>com.questra.a2b.ui.bizcomp.ejb.IUiManagerRemoteHome</home>
    <remote>com.questra.a2b.ui.bizcomp.ejb.IUiManagerRemote</remote>
    <ejb-class>com.questra.a2b.ui.bizcomp.ejb.session.UiManagerSessionEjb</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    <env-entry>
    <env-entry-name>uimanagerDaoClass</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>com.questra.a2b.ui.bizcomp.dao.UiManagerDaoSql</env-entry-value>
    </env-entry>
    <resource-ref>
    <res-ref-name>jdbc/DataSource</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    </session>
    <!-- =============================================== -->
    <!-- FileRepositoryManager -->
    <!-- =============================================== -->
    <session>
    <ejb-name>a2b.FileRepositoryManager </ejb-name>
    <home>com.questra.a2b.filerepositorymanager.bizcomp.ejb.IFileRepositoryManagerRemoteHome</home>
    <remote>com.questra.a2b.filerepositorymanager.bizcomp.ejb.IFileRepositoryManagerRemote</remote>
    <ejb-class>com.questra.a2b.filerepositorymanager.bizcomp.ejb.session.FileRepositoryManagerSessionEjb</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    <env-entry>
    <env-entry-name>daoImplClass</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>com.questra.a2b.filerepositorymanager.bizcomp.dao.FileRepositoryManagerDaoSql</env-entry-value>
    </env-entry>
    <resource-ref>
    <res-ref-name>jdbc/DataSource</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    </session>
    <!-- =============================================== -->
    <!-- Registration -->
    <!-- =============================================== -->
    <session>
    <ejb-name>a2b.Registration</ejb-name>
    <home>com.questra.a2b.registration.bizcomp.ejb.IRegistrationRemoteHome</home>
    <remote>com.questra.a2b.registration.bizcomp.ejb.IRegistrationRemote</remote>
    <ejb-class>com.questra.a2b.registration.bizcomp.ejb.session.RegistrationSessionEjb</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    <env-entry>
    <env-entry-name>registrationDaoClass</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>com.questra.a2b.registration.bizcomp.dao.RegistrationDaoSql</env-entry-value>
    </env-entry>
    <resource-ref>
    <res-ref-name>jdbc/DataSource</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    </session>
    <!-- =============================================== -->
    <!-- Alert -->
    <!-- =============================================== -->
    <session>
    <ejb-name>a2b.Alert</ejb-name>
    <home>com.questra.a2b.alert.bizcomp.ejb.IAlertRemoteHome</home>
    <remote>com.questra.a2b.alert.bizcomp.ejb.IAlertRemote</remote>
    <ejb-class>com.questra.a2b.alert.bizcomp.ejb.session.AlertSessionEjb</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    <env-entry>
    <env-entry-name>alertDaoClass</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>com.questra.a2b.alert.bizcomp.dao.AlertDaoSql</env-entry-value>
    </env-entry>
    <resource-ref>
    <res-ref-name>jdbc/DataSource</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    </session>
    <!-- =============================================== -->
    <!-- SoftwareDirector -->
    <!-- =============================================== -->
    <session>
    <ejb-name>a2b.SoftwareDirector</ejb-name>
    <home>com.questra.a2b.softwaredirector.bizcomp.ejb.ISoftwareDirectorRemoteHome</home>
    <remote>com.questra.a2b.softwaredirector.bizcomp.ejb.ISoftwareDirectorRemote</remote>
    <ejb-class>com.questra.a2b.softwaredirector.bizcomp.ejb.session.SoftwareDirectorSessionEjb</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    <env-entry>
    <env-entry-name>softwareDirectorDaoClass</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>com.questra.a2b.softwaredirector.bizcomp.dao.SoftwareDirectorDaoSql</env-entry-value>
    </env-entry>
    <resource-ref>
    <res-ref-name>jdbc/DataSource</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    </session>
    <!-- =============================================== -->
    <!-- ReportsManager -->
    <!-- =============================================== -->
    <session>
    <ejb-name>a2b.ReportsManager</ejb-name>
    <home>com.questra.a2b.reports.bizcomp.ejb.IReportsManagerRemoteHome</home>
    <remote>com.questra.a2b.reports.bizcomp.ejb.IReportsManagerRemote</remote>
    <ejb-class>com.questra.a2b.reports.bizcomp.ejb.session.ReportsManagerSessionEjb</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    <resource-ref>
    <res-ref-name>jdbc/DataSource</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    </session>
    <!-- =============================================== -->
    <!-- Image Manager -->
    <!-- =============================================== -->
    <session>
    <ejb-name>a2b.ImageManager</ejb-name>
    <home>com.questra.a2b.imagemanager.bizcomp.ejb.IImageManagerRemoteHome</home>
    <remote>com.questra.a2b.imagemanager.bizcomp.ejb.IImageManagerRemote</remote>
    <ejb-class>com.questra.a2b.imagemanager.bizcomp.ejb.session.ImageManagerSessionEjb</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    <env-entry>
    <env-entry-name>imagemanagerDaoClass</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>com.questra.a2b.imagemanager.bizcomp.dao.ImageManagerDaoSql</env-entry-value>
    </env-entry>
    <resource-ref>
    <res-ref-name>jdbc/DataSource</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    </session>
         <!-- =============================================== -->
    <!-- DynamicGroups -->
    <!-- =============================================== -->
    <session>
    <ejb-name>a2b.DynamicGroups</ejb-name>
    <home>com.questra.a2b.dynamicgroups.bizcomp.ejb.IDynamicGroupsRemoteHome</home>
    <remote>com.questra.a2b.dynamicgroups.bizcomp.ejb.IDynamicGroupsRemote</remote>
    <ejb-class>c

    I am also getting the same error. Did any one has any resolution for this issue.
    Error:
    Caused by: com.bea.xml.XmlException: java.lang.IllegalArgumentException: <?xml version="1.0" encoding="UTF-8"?> <ejb-jar xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd" version="3.0"> <enterprise-beans> <session> <ejb-name>ExternalOrderService</ejb-name> <home>com.att.absvic.webservices.external.ExternalOrderHome</home> <remote>com.att.absvic.webservices.external.ExternalOrderEJB</remote> <ejb-class>com.att.absvic.webservices.external.ExternalOrderBean</ejb-class> <session-type>Stateless</session-type> <transaction-type>Container</transaction-type> </session> </enterprise-beans> <assembly-descriptor> <container-transaction> <method> <ejb-name>ExternalOrderService</ejb-name> <method-name>*</method-name> </method> <trans-attribute>Required</trans-attribute> </container-transaction> </assembly-descriptor> </ejb-jar> is not a legal value for SessionType. The value must be one of the following: [Stateful, Stateless]
    Thanks,
    Srinivas

  • Is it possible to inject EJB 3.0 SLSB into EntityImpl?

    Hello,
    I'm running JDev Studio Edition Version 11.1.2.3.0.
    Is it possible to inject an EJB 3.0 stateless session bean into an EntityImpl Class via the @EJB annotation? I need to do so in order to use the SLSB to schedule an EJB 3.0 timer.
    If injection is not possible, how do I do a manual lookup?
    Any suggestions with sample config and code would be appreciated.
    Many thanks.

    So you're saying that there are going to be new features in the released product that have not been tested in a beta release? I can't believe you'd go to release without another public beta considering the number of bugs there are in the current public beta never mind what else might be introduced by new features. That aside I appreciate the work of the developers.
    Also, I've seen several posts that refer to bug tracking ids. Where is the bug database? It's hard to know if a bug should be submitted here on this board without knowing which bugs have already been identified. With JDeveloper now available for use by the masses, a public database is essential to keeping message board traffic manageable. An RSS feed for the bug database would be an excellent feature.

  • Scheduling for Java in NetWeaver 6.40

    Hi All,
    I'm looking for a way to schedule an EJB to execute every once in a while. Our WAS version is 6.40. This scheduling is desired because we used load balancer behind our WAS. We have considered the option to deploy a stateful session bean which will schedule the batch task to execute every once in a while. But because of the load balancer, the stateful session bean will be deployed to all instances of the server nodes, which we didn't desire. So we are trying to look at scheduling. Anyone might know about this??
    Best Regards,
    Erick Prajogo

    Hai,
    This approach is not applicable because it's using Java EE 5. Our WAS is using the previous version, Java EE 1.4
    Regards,
    Erick

  • Reference for Connecting EJB in KM scheduler Task

    Hi,
           What are the main References we need to add portalapp.xml,when we connect Ejb in Km scheduler Tasks
    For Example:
    portalapp.xml
    <?xml version="1.0" encoding="UTF-8"?>
      <application >
        <application-config>
        <property name="SharingReference" value="usermanagement, knowledgemanagement,landscape,       htmlb, exportalJCOclient, exportal, com.sap.portal.admin.wizardframework"/>  </application-config>
      <components/>
      <services>
        <service name="RFServiceWrapper">
          <service-config>
            <property name="className" value="com.sap.netweaver.rf.wrapper.RFServiceWrapper"/>
            <property name="startup" value="true"/>
          </service-config>
        </service>
      </services>
    </application>
    Regards,
    Vino

    Hi,
    Try some thing like this:
    ClassLoader originalContextClassLoader = Thread.currentThread().getContextClassLoader();                                   
    try {
              Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader());
              Context initial = new InitialContext();
              Object objref = initial.lookup("JNDI Name Of the Session Bean");
              Object obj = PortableRemoteObject.narrow(objref, BeanHome.class);
         } catch (NamingException ex) {
              ex.printStackTrace();          
         } catch (Exception ex) {
              ex.printStackTrace();          
         finally {
         Thread.currentThread().setContextClassLoader(originalContextClassLoader);
    Regards,
    Praveen Gudapati

  • ANNOUNCE:::::::: EJB job scheduler for Weblogic

    Paramus, NJ - June 26, 2001 - Indus Consultancy Services today announced
    an upgrade release of its Java scheduling product. Kronos Enterprise
    Scheduler is a full-featured job scheduling system written for the
    Enterprise Java (J2EE) environment.
    As a J2EE application, Kronos Enterprise Scheduler is able to achieve a
    high degree of portability, scalability, and reliability, features which
    are critical to an enterprise system.
    Additionally, Kronos Enterprise Scheduler provides a comprehensive set
    of scheduling options, powerful holiday definitions, job dependencies,
    administrative alerts, J2EE security integration, monitoring
    capabilities, Web and "rich client" user interfaces, and an open
    developer API. The combination of these features make Kronos Enterprise
    Scheduler one of the most complete solutions on the market today.
    Version 2.10 contains a number of minor enhancements and bug fixes and
    is a free upgrade for current customers.
    For more information on Kronos, please visit our products page at
    www.indcon.com

    I would hope that BEA will step up and develop a replacement for their
    deprecated APIs. It is unfair to ask their customers to buy something they
    got previously for free. I also understand that the future EJB spec will
    contain scheduling features.

  • Anyway to use quartz to schedule jobs without EJB

    Hai all,
    I had a web application in jsp where i need to send automatic mails at regular intervals of time.For this scheduling process i had decided to use quartz. But i had too develop some ejb's for this purpose.As i am using tomcat server it's not possible for me to use EJB's. So is there any other way i can use quartz without ejb's to run a scheduled task?.
    I request your kind help and suggestions in this regard.
    Thank you.

    According to the iPod nano (5th generation) - User Guide you can video tape in landscape or portrait mode. By default, it is oriented in portrait mode (240x376), but due to an accelerometer, automatically switches to landscape mode (376x240) when rotated.
    When I hold the cam vertically, the recorded videos are sometimes in portrait mode with borders but not always. When I hold the cam horizontally (landscape), the recorded videos are always borderless.
    Which way are you holding the camera when you get videos with borders?

  • KRONOS - EJB Job scheduler for Weblogic

    Paramus, NJ - February 22, 2002 - Indus Consultancy Services (ICS) today
    announced the latest in a series of improvements to Kronos Enterprise
    Scheduler, a full-featured job scheduling system written for the
    Enterprise Java (J2EE) environment.
    This version fixes some minor bugs reported by customers, and adds a new
    security feature to control user visibility to jobs, tasks, and
    schedules. A new environment setting allows the Kronos Enterprise
    Scheduler administrator to restrict users to seeing only those items
    which they have created. Administrators still have full visibility to
    all items.
    ICS is also proud to have Kronos Enterprise Scheduler competing in the
    Java Developer's Journal 2002 Readers' Choice Awards. Every year, Java
    Developer's Journal holds voting for products in a variety of
    categories. This year, Kronos Enterprise Scheduler is nominated in
    three of those categories:
    · Best Java Application (Standing as of 2/22/02 : 16th out of 69
    products with votes.)
    · Best Java Component (Standing as of 2/22/02 : 10th out of 26 products
    with votes.)
    · Most Innovative Java Product (Standing as of 2/22/02 : 21st out of 63
    products with votes.)
    To vote, visit the Java Developer's Journal website at
    <http://www.sys-con.com/java/readerschoice2002>
    To find out more about Kronos Enterprise Scheduler, and learn why
    companies around globe are selecting this powerful product to handle
    their scheduling needs, visit the ICS website at <http://www.indcon.com>
    and request a FREE 30-day evaluation.
    © 2002 Indus Consultancy Services, Inc. All rights reserved. Java and
    all Java-based marks are trademarks or registered trademarks of Sun
    Microsystems, Inc. in the U.S. and other countries. All other product
    and company names are trademarks of their respective owners.

    I would hope that BEA will step up and develop a replacement for their
    deprecated APIs. It is unfair to ask their customers to buy something they
    got previously for free. I also understand that the future EJB spec will
    contain scheduling features.

  • Problem accessing EJB's in KM Scheduler Task

    Hi,
    I have created a new SchedulerTask which implements com.sapportals.wcm.service.scheduler.ISchedulerTask.
    In the run method of the SchedulerTask, I was trying to access the Session bean as below
         try {
              Context initial = new InitialContext();
              Object objref = initial.lookup("JNDI Name Of the Session Bean");
              Object obj = PortableRemoteObject.narrow(objref, BeanHome.class);
         } catch (NamingException ex) {
              ex.printStackTrace();          
         } catch (Exception ex) {
              ex.printStackTrace();          
    When the task is executed, initial lookup is returning 915(I have tried to log the objref above to console and it prints 915) which is resulting in classcast exception while narrowing.
    But, When I placed the same code in a Portal Component, it works fine.
    Portal component and SchedulerTask are in the same portal application project, which mean that all configurations are same.
    I have been struggling very hard to figure out this indifferent behavior.
    Any hints or help would be greatly appreciated.
    Thanks and Regards,
    Suresh.

    Hi,
    Try some thing like this:
    ClassLoader originalContextClassLoader = Thread.currentThread().getContextClassLoader();                                   
    try {
              Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader());
              Context initial = new InitialContext();
              Object objref = initial.lookup("JNDI Name Of the Session Bean");
              Object obj = PortableRemoteObject.narrow(objref, BeanHome.class);
         } catch (NamingException ex) {
              ex.printStackTrace();          
         } catch (Exception ex) {
              ex.printStackTrace();          
         finally {
         Thread.currentThread().setContextClassLoader(originalContextClassLoader);
    Regards,
    Praveen Gudapati

  • Error While updating Process form data Using Scheduler

    Hi All,
    I am trying to update Process form data (ex : lastname) using a scheduled task Code. I am getting Error while updating Field.
    Code :
    HashMap<String, String> map = new HashMap<String, String>();
    map.put("UD_EBS_PF_LASTNAME", "lastname");
    formintf.setProcessFormData(instancekey, map);  //I AM GETTING AT THIS LINE
    Saying
    Thor.API.Exceptions.tcAPIException: The following required fields have not been given values:EBS IT Resource : The following required fields have not been given values:EBS IT Resource
        at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:234)
        at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:348)
        at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:259)
        at Thor.API.Operations.tcFormInstanceOperationsIntfEJB_h6wb8n_tcFormInstanceOperationsIntfRemoteImpl_1036_WLStub.setProcessFormDatax(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.invoke(RemoteBusinessIntfProxy.java:85)
        at $Proxy2.setProcessFormDatax(Unknown Source)
        at Thor.API.Operations.tcFormInstanceOperationsIntfDelegate.setProcessFormData(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at Thor.API.Base.SecurityInvocationHandler$1.run(SecurityInvocationHandler.java:68)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
        at weblogic.security.Security.runAs(Security.java:41)
        at Thor.API.Security.LoginHandler.weblogicLoginSession.runAs(weblogicLoginSession.java:52)
        at Thor.API.Base.SecurityInvocationHandler.invoke(SecurityInvocationHandler.java:79)
        at $Proxy3.setProcessFormData(Unknown Source)
        at com.wyndham.tasks.AssignRandomPasswordToAllUsersSchedulerTest.execute(AssignRandomPasswordToAllUsersSchedulerTest.java:182)
        at com.wyndham.tasks.AssignRandomPasswordToAllUsersSchedulerTest.main(AssignRandomPasswordToAllUsersSchedulerTest.java:63)
    Caused by: Thor.API.Exceptions.tcAPIException: The following required fields have not been given values:EBS IT Resource : The following required fields have not been given values:EBS IT Resource
        at com.thortech.xl.ejb.beansimpl.tcFormInstanceOperationsBean.setProcessFormData(tcFormInstanceOperationsBean.java:761)
        at com.thortech.xl.ejb.beansimpl.tcFormInstanceOperationsBean.setProcessFormData(tcFormInstanceOperationsBean.java:426)
        at Thor.API.Operations.tcFormInstanceOperationsIntfEJB.setProcessFormDatax(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

    Is that possible there was the field ZDATE in your form interface/ context and now it is not? I guess some source has changed so the field in the form (binding to the not existing field) cannot be processed. Otto

  • KM Scheduler not working EPh1 version

    Hi all,
           I have written a scheduler which uses EJB. This works fine in 7.0 SP14 version but it stops working in EPh1 version. It throws an error(from logs) Exception in operation startApp with application  sap.com/ear~file.   sap.com/ear~file is an ear file with EJB.
    Did any one had this issue? how to resolve it. Pls help.
    Thanks,

    This looks like a issue with classloader and the version of the J2EE.
    Use this below code and try.
    ClassLoader originalContextClassLoader = Thread.currentThread().getContextClassLoader();                                   
    try {
              Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader());
              Context initial = new InitialContext();
              Object objref = initial.lookup("JNDI Name Of the Session Bean");
              Object obj = PortableRemoteObject.narrow(objref, BeanHome.class);
         } catch (NamingException ex) {
              ex.printStackTrace();          
         } catch (Exception ex) {
              ex.printStackTrace();          
         finally {
         Thread.currentThread().setContextClassLoader(originalContextClassLoader);

  • KM scheduler not working in EPh1 Version

    Hi all,
    I have written a scheduler which uses EJB. This works fine in 7.0 SP14 version but it stops working in EPh1 version. It throws an error(from logs) Exception in operation startApp with application sap.com/earfile. sap.com/earfile is an ear file with EJB.
    Did any one had this issue? how to resolve it. Pls help.
    Thanks,

    This looks like a issue with classloader and the version of the J2EE.
    Use this below code and try.
    ClassLoader originalContextClassLoader = Thread.currentThread().getContextClassLoader();                                   
    try {
              Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader());
              Context initial = new InitialContext();
              Object objref = initial.lookup("JNDI Name Of the Session Bean");
              Object obj = PortableRemoteObject.narrow(objref, BeanHome.class);
         } catch (NamingException ex) {
              ex.printStackTrace();          
         } catch (Exception ex) {
              ex.printStackTrace();          
         finally {
         Thread.currentThread().setContextClassLoader(originalContextClassLoader);

  • KM Scheduler job

    Hi
    I created several KM scheduler jobs.
    The problem is that they are running in the context of Guest user, and i could find any way to change this.
    Because of that when i try to call new InitialContext () for calling some remote ejbs i get caller not autorized.
    So does somebody know how i can change this?
    Florin

    hi,
    if you ejb connect to backend, you need to configure an service user who has authorized to call
    the rfc functions in R/3.
    Kind regards
    Ben.J.

  • KM Scheduler Task - Service user

    Dear all,
    I created a scheduled task in the NWDS and deployed the par and configured the time table for it. The task is running every minute, so it's all working. Now i'm wondering, is it possible to set the user that executes the task somewhere? like in a service user or so.
    I played around a bit in the portalapp.xml and it now looks like:
    <?xml version="1.0" encoding="utf-8"?>
    <application>
      <application-config>
        <property name="SharingReference" value="usermanagement, knowledgemanagement, landscape, htmlb, exportalJCOclient, exportal,SAPJ2EE::sap.com/ear~test"/>
        <property name="SecurityArea" value="Netweaver.portal"/>
        <property name="Vendor" value="sap.com"/>
      </application-config>
      <components/>
      <services>
        <service name="RFServiceWrapper">
          <service-config>
            <property name="className" value="com.sap.netweaver.rf.wrapper.RFServiceWrapper"/>
            <property name="startup" value="true"/>
            <property name="SafetyLevel" value="low_safety"/>
          </service-config>
        </service>
      </services>
    </application>
    In the run(..) method, i call an ejb, and in the ejb i print the username that's executing it. Sometimes it says it's executed by Guest (most of the times), and sometimes it says it's executed by Administrator...
    What user is used for running the scheduled task? can it be a fixed user, as in "serviceUserX" for example? How do i configure that?
    Kind regards.
    J.
    Message was edited by:
            Joren Crauwels
    Message was edited by:
            Joren Crauwels

    Hi
    Did you find a solution fo this problem?
    Florin

  • Using Timer and TimerTask classes in EJB's(J2EE)

    Does J2EE allow us to use Timer and TimerTask classes from java.util package in SessionBean EJB's ( Statless or Statefull )?.
    If J2EE does allow, I am not sure how things work in practical, Lets take simple example where a stateless SessionBean creates a Timer class
    and schedules a task to be executed after 5 hours and returns. Assuming
    GC kicks in many times in 5 hours, I wonder if the Timer object created by survives the GC run's so that it can execute the scheduled tasks.
    My gut feeling says that the Timer Object will not survive.. Just
    want to confirm that.
    I will be interested to know If there are any techiniques that can make
    the usage of Timer and TimeTask classes in EJB's possible as well as reliable with minmum impact on over all performance.

    Have a look at J2EE 1.4. I think they add a timer service for EJBs there...
    Kai

Maybe you are looking for

  • TS1717 When I click the itunes icon on my laptop and error message appears "new itunes library" What does this mean?

    I can't open Itunes. It just says "new itunes library" and closes. What does this mean?

  • Software update rollback/uninstall?

    Hi all, I've been having issues with the SL Graphics update on my mac mini (it's using a crt tv as a monitor and since the update, the screen rotation appears to be off by a few degress, almost like the image is on a hill) and I want to uninstall the

  • FW table disappears in IE

    I made a layout in FW. Initially, I placed the Fireworks table directly into the page, with default table alignment. This worked in Explorer, as well as Opera, Firefox and Safari. Then, I centered the table using table alignment. The page appeared no

  • Can't install Flash on new Macbook Air

    I've just got a new Macbook Air - new to this! I have tried to install Adobe Flash Player with no success, can someone help? Everytime the download gets to around 50%, it stops and tells me Safari needs closing - however it isn't open. I've already t

  • Session already invalidated

    I am running into an occasional session problem with one of my servlet applications. When this problem occurs, the HttpSession.setAttribute() method throws an IllegalStateException that the session has already been invalidated. My question is how do