BMP in EJB 3.0

I've been on the google for a few days now and haven't found one single notion on bean-managed persistence in EJB 3.0 specification. Even the official specification PDFs don't mention it :(
Help! I need BMP! Does anybody know what's the situtation in EJB 3.0? Can I and how mark an entity bean to be bean-managed persistent and use ejbLoad and ejbStore functions like in the EJB 2.0 or something like that?
Tnx in advance,
Igor

Hi Sumit,
The direction the spec took was to define a completely new persistence model rather than try to retrofit the old BMP/CMP model. As with all Java EE releases, all requirements supported in previous releases of the platform continue to be supported. That's why you can continue to choose to develop using BMP if you'd like.
However, there is no architected relationship between the Java Persistence API and BMP/CMP. One thing the Java Persistence API and CMP have in common is the belief that all database interaction code should be perfomed by the system layer and not reside in the application.
That's why you don't see BMP-like features within the new Persistence API. In addition, Entity classes developed using the Java Persistence API are not EJB components. The Java Persistence API can be used from any Java EE component (EJB, web component, Application Client) and from J2SE.
The Java Persistence API does define many lifecycle callbacks events (e.g. @PrePersist, @PreUpdate, etc.) that can be delivered to the Entity class. However, these are intended for performing tasks other than direct interaction with the persistent store.
--ken                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

Similar Messages

  • Bean-managed persistence (BMP) in EJB 3.0

    I've been on the google for a few days now and haven't found one single notion on bean-managed persistence in EJB 3.0 specification. Even the official specification PDFs don't mention it :(
    Help! I need BMP! Does anybody know what's the situtation in EJB 3.0? Can I and how mark an entity bean to be bean-managed persistent and use ejbLoad and ejbStore functions like in the EJB 2.0 or something like that?
    Tnx in advance,
    Igor

    Tnx Frank, I was afraid of that :(
    I think that is a step back for the EJB technology. Now it is fixed to the table structure, every change in the database calls for a re-desing, re-compilation and re-deplyoment.
    With BMP in EJB 2.1 one was able to build a bean that modifies itself according to the table structure dinamically. Is there any way to do it in EJB 3.0?
    Igor

  • Bmp entity ejb transactions, using DAO objects

    hi all,
    i'm new to entity ejb's... i'm using the j2ee reference implementation (1.3.1) with the cloudscape db to test my code.
    i can't seem to get my ejbCreate method to work. i'm using a DAO object to encapsulate all my database code, and simply call dao.insert(...) in my ejbCreate method.
    i tested the dao object, and it works fine when it's invoked straight. but when i try to invoke under the ejb container i run into problems:
    i deploy the bean with container managed transactions:
    (1) with the 'required' attribute:
    I get a javax.transaction.RollbackException nested inside another RollbackException, nested inside a RemoteException, nested inside another RemoteException. The final RollbackException says <<no stack trace available>>...
    So I've got no clue what's causing it...
    (2) with the 'never' attribute:
    I get a NullPointerException nested inside another NullPointerException, nested inside a RemoteException, nested inside another RemoteException. The final NullPointerException says <<no stack trace available>>...
    So I've got no clue what's causing it...
    I'm assuming something messed up with my deployment -- but I've checked it against all the examples I can find -- seems to be correct. Would the encapsulated Data Access code cause a problem? Some other config problem?
    Thanks in advance for any help!!

    i'm using the cloudscape db that's already configured with the server. i believe the datasource is correctly configured, as i am able to successfully invoke the dao methods straight -- the problem occurs when I try to do it via the entity bean that uses the dao object.
    here's my server startup messages:
    Binding DataSource, name = jdbc/Cloudscape, url = jdbc:cloudscape:rmi:CloudscapeDB;create=
    true
    Binding DataSource, name = jdbc/DB1, url = jdbc:cloudscape:rmi:CloudscapeDB;create=true
    Binding DataSource, name = jdbc/EstoreDB, url = jdbc:cloudscape:rmi:CloudscapeDB;create=tr
    ue
    Binding DataSource, name = jdbc/InventoryDB, url = jdbc:cloudscape:rmi:CloudscapeDB;create
    =true
    Binding DataSource, name = jdbc/DB2, url = jdbc:cloudscape:rmi:CloudscapeDB;create=true
    Binding DataSource, name = jdbc/XACloudscape, url = jdbc/XACloudscape__xa
    Binding DataSource, name = jdbc/XACloudscape__xa, dataSource = COM.cloudscape.core.RemoteX

  • Duplicate BMP Entity EJB

    Somehow WebLogic is allowing two instances of an entity bean to represent
    one database row.
    Look at the log below.
    It was produced with println statements inside the EJB.
    Before 18:26:38, JobRecord 14395 was first represented by object 10e42b8.
    Starting at 18:26:38, it was also represented by object 726a57.
    The two objects co-existed until 18:28:13, when object 10e42b8 departed from
    the log.
    We found out about this because the state change of JobRecord from RUNNING
    to DONE was lost because of the dual object.
    That is, one part of our code updated the JobRecord with the change, but the
    change was never reflected in the database.
    Other parts of our code obviously referenced the other object, and thus
    never realized that the state has changed.
    We had to manually update the database row to correct this problem.
    Needless to say, the incorrect state is a very serious matter for us.
    How did this happen? Is this our bug, or is this a WebLogic bug?
    My belief is that WebLogic should never allow 2 instances of an entity bean
    to represent one thing AT THE SAME TIME.
    If that's true, then this is a WebLogic bug.
    The fact that the overlap lasted for about 95 seconds is quite amazing to
    me.
    Please tell me where I'm wrong about this.
    Fri Mar 10 18:26:29 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status ==
    RUNNING
    Fri Mar 10 18:26:32 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status ==
    RUNNING
    Fri Mar 10 18:26:36 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status ==
    RUNNING
    Fri Mar 10 18:26:38 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status ==
    RUNNING
    Fri Mar 10 18:26:38 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:26:42 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status ==
    RUNNING
    Fri Mar 10 18:26:44 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status ==
    RUNNING
    Fri Mar 10 18:26:47 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status ==
    RUNNING
    Fri Mar 10 18:26:50 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status ==
    RUNNING
    Fri Mar 10 18:26:51 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status ==
    RUNNING
    Fri Mar 10 18:26:53 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:26:56 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:26:59 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:27:02 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:27:06 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:27:07 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:27:09 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:27:10 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:27:14 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:27:17 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:27:20 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:27:22 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status ==
    RUNNING
    Fri Mar 10 18:27:22 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status ==
    RUNNING
    Fri Mar 10 18:27:26 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status ==
    RUNNING
    Fri Mar 10 18:27:27 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status ==
    RUNNING
    Fri Mar 10 18:27:29 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status ==
    RUNNING
    Fri Mar 10 18:27:35 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status ==
    RUNNING
    Fri Mar 10 18:27:36 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status ==
    RUNNING
    Fri Mar 10 18:27:38 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status ==
    RUNNING
    Fri Mar 10 18:27:41 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status ==
    RUNNING
    Fri Mar 10 18:27:44 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status ==
    RUNNING
    Fri Mar 10 18:27:47 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status ==
    RUNNING
    Fri Mar 10 18:27:50 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status ==
    RUNNING
    Fri Mar 10 18:27:53 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status ==
    RUNNING
    Fri Mar 10 18:27:56 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status ==
    RUNNING
    Fri Mar 10 18:27:59 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status ==
    RUNNING
    Fri Mar 10 18:28:02 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status ==
    RUNNING
    Fri Mar 10 18:28:06 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status ==
    RUNNING
    Fri Mar 10 18:28:08 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status ==
    RUNNING
    Fri Mar 10 18:28:11 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status ==
    RUNNING
    Fri Mar 10 18:28:13 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status ==
    RUNNING
    Fri Mar 10 18:28:14 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:28:17 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:28:21 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:28:22 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:28:24 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:28:27 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:28:29 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:28:32 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:28:36 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:28:38 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:28:41 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:28:44 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:28:48 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:28:50 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:28:53 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:28:53 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:28:56 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:28:59 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:01 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:02 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:05 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:09 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:12 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:13 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:14 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:19 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:19 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:23 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:26 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:29 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:30 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:32 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:35 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:37 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:41 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:44 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:47 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:50 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:53 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:56 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:59 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:30:02 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:30:06 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:30:08 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:30:11 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:30:13 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status ==
    RUNNING
    Fri Mar 10 18:30:13 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    DEBUG : Echo : JobRecordEJB 14395 == [BaseEJBObject] home:
    gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_HomeImpl@e73783
    Fri Mar 10 18:30:14 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:30:14 EST 2006 DEBUG: JobRecordEJB : 14395 Updated from
    RUNNING to (DONE,0).
    Fri Mar 10 18:30:14 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    DONE
    Fri Mar 10 18:30:14 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    DONE
    Fri Mar 10 18:30:15 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    DONE
    Fri Mar 10 18:30:17 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    DONE
    Fri Mar 10 18:30:17 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    DONE
    Fri Mar 10 18:30:17 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    DONE
    Fri Mar 10 18:30:20 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    DONE
    Fri Mar 10 18:30:21 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    DONE
    Fri Mar 10 18:30:40 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    DONE

    Do I have to call my problem a potential bug to get attention here?
    I certainly think my problem is a BEA bug.
    I mean, how could BEA allow 2 instances of an entity bean that represent the
    same database row to be concurrently visible?
    "C. Allen Sher" <[email protected]> wrote in message
    news:[email protected]...
    Correction:
    The last appearance of object 10e42b8 was at 18:30:13.
    This means that the two objects coexisted for a whopping 215 seconds.
    "C. Allen Sher" <[email protected]> wrote in message
    news:[email protected]...
    Somehow WebLogic is allowing two instances of an entity bean to represent
    one database row.
    Look at the log below.
    It was produced with println statements inside the EJB.
    Before 18:26:38, JobRecord 14395 was first represented by object 10e42b8.
    Starting at 18:26:38, it was also represented by object 726a57.
    The two objects co-existed until 18:28:13, when object 10e42b8 departed
    from the log.
    We found out about this because the state change of JobRecord from
    RUNNING to DONE was lost because of the dual object.
    That is, one part of our code updated the JobRecord with the change, but
    the change was never reflected in the database.
    Other parts of our code obviously referenced the other object, and thus
    never realized that the state has changed.
    We had to manually update the database row to correct this problem.
    Needless to say, the incorrect state is a very serious matter for us.
    How did this happen? Is this our bug, or is this a WebLogic bug?
    My belief is that WebLogic should never allow 2 instances of an entity
    bean to represent one thing AT THE SAME TIME.
    If that's true, then this is a WebLogic bug.
    The fact that the overlap lasted for about 95 seconds is quite amazing to
    me.
    Please tell me where I'm wrong about this.
    Fri Mar 10 18:26:29 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status
    == RUNNING
    Fri Mar 10 18:26:32 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status
    == RUNNING
    Fri Mar 10 18:26:36 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status
    == RUNNING
    Fri Mar 10 18:26:38 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status
    == RUNNING
    Fri Mar 10 18:26:38 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:26:42 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status
    == RUNNING
    Fri Mar 10 18:26:44 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status
    == RUNNING
    Fri Mar 10 18:26:47 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status
    == RUNNING
    Fri Mar 10 18:26:50 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status
    == RUNNING
    Fri Mar 10 18:26:51 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status
    == RUNNING
    Fri Mar 10 18:26:53 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:26:56 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:26:59 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:27:02 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:27:06 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:27:07 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:27:09 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:27:10 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:27:14 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:27:17 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:27:20 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:27:22 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status
    == RUNNING
    Fri Mar 10 18:27:22 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status
    == RUNNING
    Fri Mar 10 18:27:26 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status
    == RUNNING
    Fri Mar 10 18:27:27 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status
    == RUNNING
    Fri Mar 10 18:27:29 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status
    == RUNNING
    Fri Mar 10 18:27:35 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status
    == RUNNING
    Fri Mar 10 18:27:36 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status
    == RUNNING
    Fri Mar 10 18:27:38 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status
    == RUNNING
    Fri Mar 10 18:27:41 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status
    == RUNNING
    Fri Mar 10 18:27:44 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status
    == RUNNING
    Fri Mar 10 18:27:47 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status
    == RUNNING
    Fri Mar 10 18:27:50 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status
    == RUNNING
    Fri Mar 10 18:27:53 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status
    == RUNNING
    Fri Mar 10 18:27:56 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status
    == RUNNING
    Fri Mar 10 18:27:59 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status
    == RUNNING
    Fri Mar 10 18:28:02 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status
    == RUNNING
    Fri Mar 10 18:28:06 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status
    == RUNNING
    Fri Mar 10 18:28:08 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status
    == RUNNING
    Fri Mar 10 18:28:11 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status
    == RUNNING
    Fri Mar 10 18:28:13 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status
    == RUNNING
    Fri Mar 10 18:28:14 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:28:17 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:28:21 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:28:22 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:28:24 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:28:27 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:28:29 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:28:32 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:28:36 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:28:38 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:28:41 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:28:44 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:28:48 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:28:50 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:28:53 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:28:53 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:28:56 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:28:59 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:01 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:02 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:05 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:09 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:12 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:13 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:14 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:19 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:19 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:23 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:26 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:29 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:30 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:32 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:35 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:37 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:41 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:44 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:47 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:50 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:53 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:56 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:29:59 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:30:02 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:30:06 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:30:08 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:30:11 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:30:13 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@10e42b8 with status
    == RUNNING
    Fri Mar 10 18:30:13 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    DEBUG : Echo : JobRecordEJB 14395 == [BaseEJBObject] home:
    gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_HomeImpl@e73783
    Fri Mar 10 18:30:14 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    RUNNING
    Fri Mar 10 18:30:14 EST 2006 DEBUG: JobRecordEJB : 14395 Updated from
    RUNNING to (DONE,0).
    Fri Mar 10 18:30:14 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    DONE
    Fri Mar 10 18:30:14 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    DONE
    Fri Mar 10 18:30:15 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    DONE
    Fri Mar 10 18:30:17 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    DONE
    Fri Mar 10 18:30:17 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    DONE
    Fri Mar 10 18:30:17 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    DONE
    Fri Mar 10 18:30:20 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    DONE
    Fri Mar 10 18:30:21 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    DONE
    Fri Mar 10 18:30:40 EST 2006 DEBUG: JobRecordEJB.ejbLoad() : JobRecord
    14395==gov.bls.cpi.jcs.ejb.JobRecordEJB_j4eeci_Impl@726a57 with status ==
    DONE

  • Wierd functionality of OC4J with BMP EJB....Crazy or is this supposed to happen?

    Hi. I'm in a class developing a BMP Entity EJB. I deployed the
    bean, whose functionality does simple insert, update, delete
    from one table. I created a test client to run from the command
    line which works for the create (it inserts a row into the
    database). I run SQLPLUS to confirm this.
    I then go in to the database through SQL PLUS and delete the row
    and commit.
    Then I RERUN the test client and the application gives me an
    javax.ejb.DuplicateKeyException . Should this happen? When I
    look in the database, the ejbCreate is called because the row is
    inserted back in, so that much works, but for some reason the
    exception is called. Anybody have an idea?
    Thanks - Matt

    Figured it out thanx to the instructor. Apparently OC4J sets an
    EJB setting in the orion-ejb-jar.xml file.
    Under <entity-deployment>,
    you need to set exclusive-write-access = "false"
    The current default is "true"
    The default of "true" basically assumes the EJB is the only way
    to access the data in the database, so it gives better
    performance since data is cached. However, if your application
    is used in a distributed environment where you have other
    applications working with the data (i.e. Developer App, or
    SQLPLUS), then you will want to set this field to "false".

  • Lookup a MySQL Datasource with a EntityBean EJB with jboss

    Hy all,
    For a few days, i have problems to instance a datasource from my Entitybean
    EJB
    jboss release is 3.2.2 , MySQL 3.23.38
    i use mysql-connector-java-3.0.9-stable-bin.jar for jdbc connectivity
    Here is the source of my datasource mysql-ds.xml
    <datasources>
    <local-tx-datasource>
    <jndi-name>MySQLmydbDS</jndi-name>
    <connection-url>jdbc:mysql://localhost:3306/mydb</connection-url>
    <driver-class>org.gjt.mm.mysql.Driver</driver-class>
    <user-name>mylogin</user-name>
    <password>mypass</password>
    </local-tx-datasource>
    </datasources>
    The datasource is deployed in jboss cause i see the ligne as followed in the
    administration console
    http://localhost:8080/jmx-console
    a.. name=MySQLmydbDS,service=LocalTxCM
    a.. name=MySQLmydbDS,service=ManagedConnectionFactory
    a.. name=MySQLmydbDS,service=ManagedConnectionPool
    My EJB deploy without problems when i put the jar in the deploy directory
    Here is the part of the source of my EJB causing Exception
    public void setEntityContext(EntityContext context) {
    this.context = context;
    try {
    InitialContext ic = new InitialContext();
    DataSource ds = (DataSource) ic.lookup("java:comp/env/jdbc/ClientDB");
    /* ----> ERROR */
    connexionBD = ds.getConnection();
    catch (Exception e) {
    throw new EJBException("Connexion � la base de donn�es impossible : "
    + e.getMessage());
    Here my ejb-jar.xml
    <ejb-jar>
    <description>Descripteur de d�ploiement pour l'EJB client</description>
    <display-name>EJB Client</display-name>
    <enterprise-beans>
    <entity>
    <description>EJB Client ( BMP )</description>
    <ejb-name>Client</ejb-name>
    <home>com.foobar.ejbs.ClientHome</home>
    <remote>com.foobar.ejbs.Client</remote>
    <ejb-class>com.foobar.ejbs.ClientBean</ejb-class>
    <persistence-type>Bean</persistence-type>
    <prim-key-class>java.lang.String</prim-key-class>
    <reentrant>False</reentrant>
    <resource-ref>
    <res-ref-name>jdbc/ClientDB</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    </entity>
    </enterprise-beans>
    <assembly-descriptor>
    <container-transaction>
    <method>
    <ejb-name>Client</ejb-name>
    <method-name>*</method-name>
    </method>
    <trans-attribute>Required</trans-attribute>
    </container-transaction>
    </assembly-descriptor>
    </ejb-jar>
    And finally the jboss.xml
    <jboss>
    <enterprise-beans>
    <entity>
    <ejb-name>Client</ejb-name>
    <jndi-name>ejb/Client</jndi-name>
    <resource-ref>
    <res-ref-name>jdbc/ClientDB</res-ref-name>
    <jndi-name>MySQLmydbDS</jndi-name>
    </resource-ref>
    </entity>
    </enterprise-beans>
    </jboss>
    The error message when i execute my client :
    java.rmi.ServerException : RemoteException occured in server Thread; nested
    exception is :
    java.rmi.ServerException: EJBException:; nested exception is :
    javax.ejb.EJBException: Connexion � la base de donn�e impossible : Could not
    dereference object
    Thanks in advance if you've already seen this problem.
    Antoine

    I uses MSSQLERVER 2000,<res-ref-name>jdbc/MSSQLDS</res-ref-name>
    <jndi-name>java:/java:/MSSQLDS</jndi-name>
    but DataSource ds = (DataSource) ic.lookup("java:comp/env/jdbc/MSSQLDS")cann't be execute throwing execption:
    java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
         java.rmi.ServerException: RuntimeException; nested exception is:
         java.lang.NullPointerException
         at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:292)
         at sun.rmi.transport.Transport$1.run(Transport.java:148)
         at java.security.AccessController.doPrivileged(Native Method)
         at sun.rmi.transport.Transport.serviceCall(Transport.java:144)
         at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
         at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
         at java.lang.Thread.run(Thread.java:534)
         at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:247)
         at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:223)
         at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:133)
         at org.jboss.invocation.jrmp.server.JRMPInvoker_Stub.invoke(Unknown Source)
         at org.jboss.invocation.jrmp.interfaces.JRMPInvokerProxy.invoke(JRMPInvokerProxy.java:135)
         at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:96)
         at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:46)
         at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:45)
         at org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessionInterceptor.java:100)
         at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:85)
         at $Proxy1.loginUser(Unknown Source)
         at au.com.tusc.client.SessionBMPClient.testBean(SessionBMPClient.java:55)
         at au.com.tusc.client.SessionBMPClient.main(SessionBMPClient.java:77)
    Caused by: java.rmi.ServerException: RuntimeException; nested exception is:
         java.lang.NullPointerException
         at org.jboss.ejb.plugins.LogInterceptor.handleException(LogInterceptor.java:361)
         at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:195)
         at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)
         at org.jboss.ejb.StatelessSessionContainer.internalInvoke(StatelessSessionContainer.java:331)
         at org.jboss.ejb.Container.invoke(Container.java:700)
         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:324)
         at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
         at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:546)
         at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:367)
         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:324)
         at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261)
         at sun.rmi.transport.Transport$1.run(Transport.java:148)
         at java.security.AccessController.doPrivileged(Native Method)
         at sun.rmi.transport.Transport.serviceCall(Transport.java:144)
         at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
         at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
         at java.lang.Thread.run(Thread.java:534)
    Caused by: java.lang.NullPointerException
         at au.com.tusc.dao.StoreAccessDAOImpl.loginUser(StoreAccessDAOImpl.java:82)
         at au.com.tusc.session.StoreAccessSession.loginUser(StoreAccessSession.java:60)
         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:324)
         at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:683)
         at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:185)
         at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:72)
         at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:84)
         at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:267)
         at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:128)
         at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:118)
         at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:191)
         ... 21 more
    you said:"Also, when you get a change I believe it recommended that the name and password are placed in the login-config.xml ".
    How where to set up name and password in the login-config.xml .
    additionally,i uses jboss3.2.3,on the jmx-console management,i cann't find "jboss;service=Hypersonic SQL",why?

  • Unable lookup Datasource from EJB

    I am unable to lookup the datasource from my entity bean. I am using BMP in Weblogic
    81. The call in the bean is :
    ds = (DataSource)jndiContext.lookup("java:comp/env/jdbc/myPool");
    I get the following exception:
    javax.naming.LinkException: . Root exception is javax.naming.NameNotFoundExcept
    ion: While trying to lookup 'jdbc.myPool' didn't find subcontext 'jdbc' Re
    solved ; remaining name 'jdbc/myPool'
    at weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(Basic
    NamingNode.java:869)
    at weblogic.jndi.internal.BasicNamingNode.lookupHere(BasicNamingNode.jav
    In my config.xml file, I have the pool setup as:
    <JDBCConnectionPool DriverName="oracle.jdbc.OracleDriver"
    Name="myPool" Password="{3DES}PKeN6pXlt/o="
    Properties="user=dmluser" Targets="myserver"
    TestConnectionsOnCreate="true" TestConnectionsOnReserve="true"
    TestTableName="SQL SELECT 1 FROM DUAL" URL="jdbc:oracle:thin:@localhost:1521:DEV"/>
    <JDBCTxDataSource JNDIName="myPool" Name="myPool"
    PoolName="myPool" Targets="myserver"/>
    Any ideas of what might be wrong?
    Thanks
    Tom

    You have defined the datasource with a global JNDI name, so
    jndiContext.lookup("myPool") would work.
    java:/comp/env is a JNDI namespace local to your component. So if you
    will need to add a mapping in your BMP's ejb-jar.xml and
    weblogic-ejb-jar.xml that maps comp/env/jdbc/myPool to the myPool name
    in the global JNDI.
    -- Rob
    Tom Jordan wrote:
    I am unable to lookup the datasource from my entity bean. I am using BMP in Weblogic
    81. The call in the bean is :
    ds = (DataSource)jndiContext.lookup("java:comp/env/jdbc/myPool");
    I get the following exception:
    javax.naming.LinkException: . Root exception is javax.naming.NameNotFoundExcept
    ion: While trying to lookup 'jdbc.myPool' didn't find subcontext 'jdbc' Re
    solved ; remaining name 'jdbc/myPool'
    at weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(Basic
    NamingNode.java:869)
    at weblogic.jndi.internal.BasicNamingNode.lookupHere(BasicNamingNode.jav
    In my config.xml file, I have the pool setup as:
    <JDBCConnectionPool DriverName="oracle.jdbc.OracleDriver"
    Name="myPool" Password="{3DES}PKeN6pXlt/o="
    Properties="user=dmluser" Targets="myserver"
    TestConnectionsOnCreate="true" TestConnectionsOnReserve="true"
    TestTableName="SQL SELECT 1 FROM DUAL" URL="jdbc:oracle:thin:@localhost:1521:DEV"/>
    <JDBCTxDataSource JNDIName="myPool" Name="myPool"
    PoolName="myPool" Targets="myserver"/>
    Any ideas of what might be wrong?
    Thanks
    Tom

  • Converting BMP to EJB3

    I m pretty new to Java EE. I need to migrate an exisiting BMP in to EJB 3. 0. Existing BMP bean uses lot of sql call based on the bussiness logic which makes it difficult to convert BMP in to CMP kind of beans.
    In EJB 3.0 entity bean can I directly get access to the database connection and exectue the sql queries ?
    How do i convert BMP to EJB 3.0 ?

    EJB 3.0 entity is about persistence and O/R mapping, you don't need to get direct access to database connection but you can execute native sql query in such manner
    EntityManager em = Persistence.createEntityManagerFactory("Incubator").createEntityManager();
    List rs = em.createNativeQuery(String nativeSQL, Class resultClass).getResultList();
    this will return list of resultClass objects.
    ...hope it helps....

  • CMP and BMP

    hi there,
    is this true?
    CMP -> JTA
    BMP -> EJBContext.getUserTransaction
    note: CMP uses JTA to do transaction but BMP uses EJB api to do transaction handling.
    Thanks
    Neo

    Disagree that CMP is always better than BMP. CMP is in reality merely an implementation of BMP that provides a declarative method of providing a persistence layer. You could easily use other declarative systems to provide the same service, but you are alway relying on BMP and when CMP fails to provide you need to return to the raw BMP.
    It a bit like the difference between high/low level languages. We don't normally write direct assembly (yes, I am aware that real programmers yada yada yada) but we do use it, and sometimes you actually have to write it for specialised applications - most notably for high performance.
    Both have their pluses and minuses, and you need to know when to use one over the other.

  • JMS issues when migration from weblogic 9.2 to 10.3.5

    We are facing some issues when migration from weblogic 9.2 to 10.3.5
    In  weblogic 9.2 :_
    BMP Entity EJBs used in our project are read-only in nature using entity cache, below is the configuration details
    <!DOCTYPE weblogic-ejb-jar PUBLIC "-//BEA Systems, Inc.//DTD WebLogic 6.0.0 EJB//EN" "http://www.bea.com/servers/wls600/dtd/weblogic-ejb-jar.dtd">
    <weblogic-ejb-jar>
    <weblogic-enterprise-bean>
    <ejb-name>
    Company
    </ejb-name>
    <entity-descriptor>
    <pool>
    <max-beans-in-free-pool>300</max-beans-in-free-pool>
    <initial-beans-in-free-pool>150</initial-beans-in-free-pool>
    </pool>
    <entity-cache>
    <max-beans-in-cache>3500</max-beans-in-cache>
    <idle-timeout-seconds>100000</idle-timeout-seconds>
    <read-timeout-seconds>0</read-timeout-seconds>
    <concurrency-strategy>ReadOnly</concurrency-strategy>
    </entity-cache>
    Entity beans will get refreshed using the JMS messges. with in the MDB descriptor files(weblogic-ejb-jar.xml) we are using the provider URL directly and XA enabled connection factory is set to false.
    migration to Weblogic 10.3.5_
    With the same configurations MDB are not not getting deployed in weblogic 10 with some exception, so we removed the provider URL from weblogic-ejb-jar.xml and changed the JMS configuration to use foreign JMS and XA enable connection factory is set to true. Now when ever the JMS message is triggered Entity bean is not getting refreshed with the updated values. i.e values are stale.
    Can some one look into this and provide your inputs to resolve this issue.

    I think the Entity bean refresh problem appears to be unrelated to MDBs. The MDB is only responsible for getting the message to your application (which in turn interacts with Entity beans). You might want to try posting your question to an EJB newsgroup.
    Tom

  • Backup/Recovery from web application

    Hello guys,
    I am using Oracle 9i as DB and Oracle 9iAS for web application server. I want to provide Backup and Recovery functionality to the user via web. I don't know any thing in this regard.
    Is it possible that we can take backup and recovery from web application?
    Is there any alternative for this function.
    any other comments will be appreciated.
    Thank you,
    Jawed Nazar Ali

    Read this article in order to get an idea about Java Stored Procedures.
    Oracle Developer JAVA STORED PROCEDURES
    Simplify with Java Stored Procedures
    By Kuassi Mensah
    Use Java stored procedures to bridge SQL, XML, Java, and J2EE and Web Services.
    Stored procedures allow a clean separation of persistence logic that runs in the database tier from business logic that runs in the middle tier. This separation reduces overall application complexity and increases reuse, security, performance, and scalability.
    A major obstacle, however, for widespread adoption of stored procedures is the set of various proprietary, database-dependent implementation languages that different database vendors use. The use of Java-based stored procedures fixes this concern. Oracle has implemented ANSI standards that specify the ability to invoke static Java methods from SQL as procedures or functions. This implementation is called simply "Java stored procedures."
    In this article, you will learn how Java stored procedures help simplify and increase the performance of your business logic and extend database functionality. I'll show how Oracle enables the use of Java stored procedures within the database. I'll also look at how Java stored procedures access data, and show how to create a basic Java stored procedure.
    PL/SQL or Java
    When you think of Oracle stored procedures, you probably think of PL/SQL. Oracle, however, has provided Java support in the database since Oracle8i, to offer an open and portable alternative to PL/SQL for stored procedures. I can hear the $64,000 question: "How do I choose between PL/SQL and Java? Should I forget all the things I've been told about PL/SQL and move on to the greener Java pastures?"
    Both languages are suitable for database programming, and each has its strengths and weaknesses. In deciding which language to use, here's a general rule of thumb:
    Use PL/SQL for database-centric logic that requires seamless integration with SQL and therefore complete access to database objects, types, and features.
    Use Java as an open alternative to PL/SQL for database independence, but also for integrating and bridging the worlds of SQL, XML, J2EE, and Web services.
    OracleJVM Lets You Run Java within the Database
    Since Oracle8i, Release 1 (Oracle 8.1.5), Oracle has offered a tightly integrated Java virtual machine (JVM) that supports Oracle's database session architecture. Any database session may activate a virtually dedicated JVM during the first Java code invocation; subsequent users then benefit from this already Java-enabled session. In reality, all sessions share the same JVM code and statics—only private states are kept and garbage collected in an individual session space, to provide Java sessions the same session isolation and data integrity capabilities as SQL operations. There is no need for a separate Java-enabled process for data integrity. This session-based architecture provides a small memory footprint and gives OracleJVM the same linear SMP scalability as the Oracle database.
    Creating Java Stored Procedures
    There are a few steps involved in turning a Java method into a Java stored procedure. These include loading the Java class into the database using the loadjava utility, and publishing the Java methods using a call specification (Call Spec) to map Java methods, parameter types, and return types to their SQL counterparts. The following section shows how to do this.
    I'll use a simple Hello class, with one method, Hello.world(), that returns the string "Hello world":
    public class Hello
    public static String world ()
    return "Hello world";
    The Loadjava Utility
    Loadjava is a utility for loading Java source files, Java class files, and Java resource files; verifying bytecodes; and deploying Java classes and JAR files into the database. It is invoked either from the command line or through the loadjava() method contained within the DBMS_JAVA class. To load our Hello.class example, type:
    loadjava -user scott/tiger Hello.class
    As of Oracle9i Release 2, loadjava allows you to automatically publish Java classes as stored procedures by creating the corresponding Call Specs for methods contained in the processed classes. Oracle provides Oracle9i JDeveloper for developing, testing, debugging, and deploying Java stored procedures.
    The Resolver Spec
    The JDK-based JVM looks for and resolves class references within the directories listed in the CLASSPATH. Because Oracle database classes live in the database schema, the OracleJVM uses a database resolver to look for and resolve class references through the schemas listed in the Resolver Spec. Unlike the CLASSPATH, which applies to all classes, the Resolver Spec is applied on a per-class basis. The default resolver looks for classes first in the schema in which the class is loaded and then for classes with public synonyms.
    loadjava -resolve <myclass>
    You may need to specify different resolvers, and you can force resolution to occur when you use loadjava, to determine at deployment time any problems that may occur later at runtime.
    loadjava -resolve -resolver "((* SCOTT) (foo/bar/* OTHERS)
    (* PUBLIC))"
    Call Spec and Stored Procedures Invocation
    To invoke a Java method from SQL (as well as from PL/SQL and JDBC), you must first publish the public static method through a Call Spec, which defines for SQL the arguments the method takes and the SQL types it returns.
    In our example, we'll use SQL*Plus to connect to the database and define a top-level Call Spec for Hello.world():
    SQL> connect scott/tiger
    SQL> create or replace function helloworld return
    VARCHAR2 as language java name 'Hello.world () return
    java.lang.String';
    Function created.
    You can then invoke the Java stored procedure as shown below:
    SQL> variable myString varchar2[20];
    SQL> call helloworld() into :myString;
    Call completed.
    SQL> print myString;
    MYSTRING
    Hello world
    Java stored procedures are callable, through their Call Spec, from SQL DML statements (INSERT, UPDATE, DELETE, SELECT, CALL, EXPLAIN PLAN, LOCK TABLE, and MERGE), PL/SQL blocks, subprograms, and packages, as well as database triggers. The beauty of Call Spec is that stored procedure implementations can change over time from PL/SQL to Java or vice versa, transparently to the requesters.
    Call Spec abstracts the call interface from the implementation language (PL/SQL or Java) and therefore enables sharing business logic between legacy applications and newer Java/J2EE-based applications. At times, however, when invoking a database-resident Java class from a Java client, you may not want to go through the PL/SQL wrapper. In a future release, Oracle plans to provide a mechanism that will allow developers to bypass the Call Spec.
    Advanced Data-Access Control
    Java stored procedures can be used to control and restrict access to Oracle data by allowing users to manipulate the data only through stored procedures that execute under their invoker's privileges while denying access to the table itself. For example, you can disable updates during certain hours or give managers the ability to query salary data but not update it, or log all access and notify a security service.
    Sharing Data Logic Between Legacy and J2EE Applications
    Because legacy applications and J2EE applications both invoke stored procedures through the Call Spec, the same data logic can be shared between J2EE and non-J2EE worlds. Thanks to Call Spec, this data logic can be shared regardless of the implementation language used (whether PL/SQL or Java).
    Autogeneration of Primary Keys for BMP Entity Beans
    When using BMP for EJB entity beans, a bean instance can be uniquely identified by the auto-generated primary key associated with the newly inserted data as a return value for ejbCreate(). You can retrieve this value within ejbCreate() in one database operation by using a stored procedure that inserts the corresponding data and retrieves or computes the primary key. Alternatively, you could insert the data and retrieve the corresponding key (or ROWID) in one SQL statement, using the RETURN_GENERATED_KEYS feature in JDBC 3.0. However, the stored procedure approach is more portable across JDBC driver versions and databases.
    You can implement this pattern with these three steps:
    Create the Java stored procedure, defining a public static Java method insertAccount() within a public GenPK class. This method will insert data, compute a unique key (by passing out a sequence number), and return the computed key as primary key.
    Define the Call Spec.
    CREATE OR REPLACE PROCEDURE insertAccount(owner IN
    varchar, bal IN number, newid OUT number)
    AS LANGUAGE JAVA NAME 'GenPK.insertAccount(
    java.lang.String [])';
    Invoke the stored procedure within ejbCreate().
    Public AccountPK ejbCreate(String ownerName, int balance) throws CreateException
    try {
    CallableStatement call = conn.prepareCall{
    "{call insertAccount(?, ?, ?)}"};          
    return new AccountPK(accountID);
    Custom Primary Key Finders for CMP Entity Beans
    Finder methods are used for retrieving existing EJB entity bean instances. Primary key finders allow you to retrieve a uniquely identified EJB instance. For CMP entity beans, the EJB container automatically generates the primary key finder findByPrimaryKey() method, based on declarative description. In some situations, however, you might need more control; for example, you may need a specialized finder such as findByStoredProcKey(). In these situations, you can use Java stored procedures in conjunction with an object relational framework (such as Oracle9i Application Server [Oracle9iAS] TopLink) to implement a custom primary key finder method. After you define the EJB finder as a REDIRECT or NAMED finder, TopLink will generate the SQL query for retrieving the bean instance.
    Data-Driven EJB Invocation
    In a data-driven architecture, business logic invocation can be triggered as a result of database operations (such as inserts, updates, or deletes). A Java stored procedure implementing the data logic can be declared as a database trigger to invoke EJBs running in a middle-tier J2EE application server. You can make EJB calls by using either standard remote method invocation (RMI) over Interoperable Inter-ORB Protocol (IIOP), using a J2EE 1.3 compatible server, or RMI over a vendor-specific transport protocol (such as ORMI with Oracle9iAS/OC4J or RMI over T3 with BEA WebLogic). Each application server vendor has its own optimized protocol while providing RMI over IIOP for interoperability. Oracle9iAS supports both RMI calls over IIOP and ORMI protocols.
    Data-Driven Messaging
    Oracle9i Database embeds Advanced Queuing (AQ), which is an integrated, persistent, reliable, secure, scalable, and transactional message-queuing framework. Oracle exposes AQ features to Java developers through the standard Java Messaging System (JMS) API. Java stored procedures can invoke AQ operations through the JMS interface to allow fast, intra-session, scalable, data-driven messaging.
    Java stored procedures can use JMS to invoke AQ operations. You can implement this pattern in four steps:
    Create and start the JMS Queue (to do so, embed the following operations within a SQL script):
    execute dbms_aqadm.create_queue_table(queue_table =>
    'queue1', queue_payload_type =>
    'SYS.AQ$_JMS_TEXT_MESSAGE', comment => 'a test queue',
    multiple_consumers => false, compatible => '8.1.0');
    execute dbms_aqadm.create_queue( queue_name => 'queue1',
    queue_table => 'queue1' );
    execute dbms_aqadm.start_queue(queue_name => 'queue1');
    Create the Java stored procedure (a code snippet is shown):
    public static void runTest(String msgBody)
    try
    // get database connection
    ora_drv = new OracleDriver();
    db_conn = ora_drv.defaultConnection();
    // setup sender (cf online code sample)
    // create message
    s_msg = s_session.createTextMessage(msgBody);
    // send message
    sender.send(s_msg);
    s_session.commit();
    // receive message
    r_msg = (TextMessage) receiver.receive();
    r_session.commit();
    // output message text
    String body = r_msg.getText();
    System.out.println("message was '"+body+"'");
    Create the Call Spec:
    create or replace procedure jmsproc (t1 IN VARCHAR)
    as language java name 'jmsSample.main (java.lang.String[])';
    Invoke the stored procedure:
    call jmsproc('hello');
    Database-Assisted Web Publishing (Cache Invalidation)
    One of the common issues application architects must face is how to cache database information reliably to increase overall system performance. JCACHE is an upcoming standard specification (JSR 107) that addresses this problem. It specifies an approach for temporary, in-memory caching of Java objects, including object creation, shared access, spooling, invalidation, and consistency across JVMs. It can be used to cache read-mostly data such as product catalogs and price lists within JSP. Using JCACHE, most queries will have response times an order of magnitude faster because of cached data (in-house testing showed response times about 15 times faster).
    In order to track all the changes to the origin data and refresh the cached data, a Java stored procedure is attached to a table as a trigger. Any change to this table will result in the automatic invocation of this stored procedure, which in turn will call out a defined JSP to invalidate the JCACHE object that maps its state to the database table. Upon invalidation, the very next query will force the cache to be refreshed from the database. Next Steps
    READ MORE about Java Stored Procedures
    This article is adapted from the white paper "Unleash the Power of Java Stored Procedures." You can find the white paper at:
    /tech/java/java_db/pdf/
    OW_30820_JAVA_STORED_PROC_paper.PDF
    New PL/SQL features in Oracle9i Database, Release 2
    /tech/pl_sql/pdf/
    Paper_30720_Doc.pdf
    Resolver Spec
    /docs/products/oracle9i/
    doc_library/release2/java.920/a96659.pdf
    OracleJVM and Java 2 Security
    /docs/products/oracle9i/
    doc_library/release2/java.920/a96656.pdf
    DOWNLOAD Code
    Exercise code examples from this article:
    /sample_code/tech/
    java/jsp/Oracle9iJSPSamples.html
    LEARN about stored procedures as Web services
    /tech/webservices
    Extending Database Functionality
    One of the great things about running Java code directly in the database is the ability to implement new functionality by simply loading the code or library and using the Call Spec to make the entry points (public static methods) available to SQL, PL/SQL, Java, J2EE, and non-Java APIs. Oracle9i Database customers can easily extend database functionality. Oracle itself leverages this capability for new utilities and packages such as the XML Developer Kits (XDKs).
    Bridging SQL, PL/SQL, Java, J2EE, .NET, and XML
    The Oracle XDK is written in Java and exposes its public methods as Java stored procedures, extending the database's XML programmability. SQL, PL/SQL, Java, J2EE, and non-Java (.NET) business logic all have access to the XML parser, the XSLT processor, the XPath engine, and XML SQL Utility (XSU).
    The XML parser is accessible through the xmlparser and xmldom packages. XSU is a Java utility that generates an XML document from SQL queries or a JDBC ResultSet, and writes data from an XML document into a database table or view. Using XSU, XML output can be produced as Text, DOM trees, or DTDs. XSU is exposed to PL/SQL through the dbms_xmlquery and dbms_xmlsave packages.
    Conclusion
    The integration of the Oracle database with a Java VM enables the creation of portable, powerful, database-independent data logic and persistence logic. The loose coupling of business logic that runs in the middle tier with data logic that runs in the database tier improves application scalability, performance, flexibility, and maintenance.
    Kuassi Mensah ([email protected]) is a product manager in the Server Technologies division at Oracle.
    http://otn.oracle.com/oramag/oracle/03-jan/o13java.html
    Joel Pérez

  • How to create a jar, deploy and run it

    I extract the example bmp-simple.ear into class file and xml files.
    I create jar by the command
    jar cvf bmp-simpleEjb.jar META-INF samples
    (The java program are in package samples.ejb.bmp.simple.ejb; ) Suitable xml are stored in directory META-INF.
    Finally I jar all the jars into a bmp-simple.ear file, I can deploy it by admin console in j2ee 1.4, but when I run it, the following errors are shown
    I:\jdk14b\domains\domain1\applications\j2ee-apps\bmp-simple>appclient -client bm
    p-simpleClient.jar -name StorageBinClient -textauth
    Mar 23, 2004 4:19:52 PM com.sun.enterprise.appclient.Main <init>
    WARNING: ACC003: Application threw an exception.
    java.lang.ClassNotFoundException:
    at java.net.URLClassLoader$1.run(URLClassLoader.java:199)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
    at com.sun.enterprise.appclient.Main.<init>(Main.java:365)
    at com.sun.enterprise.appclient.Main.main(Main.java:105)
    If I create ear file from sun 's jar file, I can run it.
    If I create ear file from class and xml, I cannot run it
    The server I am using: J2EE(TM) Application Server 1.4 Developer Release (build b44-dr)
    Thanks for any help! (I repost and rewrite this question)

    please see the response to your question yesterday.

  • Load Balancing cockpit error

              We are testing clustering and load balancing using WLS 6SP1. We have found that
              the fail over works fine (i.e. we kill a server and the next call is invoked on
              another server). However, we find that all calls (modulo failover) always go to
              the same server. We expected to get round-robin for each home access. I've attached
              the config.xml and deployment descriptors. What am I missing here? Is there anything
              special I should be doing code wise?
              BTW: All calls are going to a stateless session bean.
              Regards,
              Andy
              [config.zip]
              

              Viresh Garg <[email protected]> wrote:
              >The attached config.zip seems to be corrupted. I can't download it.
              Wierd, I've just managed to download it. Anyway, I'll paste the
              contents into the text below.
              >
              >I am assuming that you are using a JAVA client. Could you describe your
              >test case to
              >test the load balancing between home methods of EJB ( what kind of EJB??)
              We have a stateless session bean. At each request we use JNDI to
              obtain a handle to a stateless session bean. We invoke an
              operation on it and then call remove on the stateless session
              bean. We run several of these clients (Java clients) and observe
              the system load and network traffic. We see that network traffic
              is almost minimal and system load on the "other" server is non-
              existent. We know that other server can satisfy calls to the
              stateless session bean because fail over (between calls) works
              correctly. I'm sure we are doing something daft, but I can't spot it.
              --------------------- config.xml ---------------------------
              <?xml version="1.0" encoding="UTF-8"?>
              <!--If your domain is active, please do not edit the config.xml file. Any changes
              made to that file while the domain is active will not have any effect on the domain's
              configuration and are likely to be lost. If your domain is inactive, you may edit
              this file with an XML editor. If you do so, please refer to the configuration
              documentation at http://edocs.bea.com/wls/docs60/adminguide/config_xml.html.
              In general, we recommend that changes to your configuration file be made through
              the Administration Console.-->
              <Domain Name="myDomain">
              <Security Name="petstore"
              PasswordPolicy="wl_default_password_policy" Realm="myRealm"/>
              <Application Name="wl_management_internal2" Path="C:\bea\wlserver6.0sp1\config\tmp">
              <WebAppComponent Name="wl_management_internal2"
              Targets="petstoreServer" URI="wl_management_internal2.war"/>
              </Application>
              <PasswordPolicy Name="wl_default_password_policy"/>
              <Server Cluster="PetStoreCluster" ClusterWeight="80"
              IIOPEnabled="false" JavaCompiler="C:\bea\jdk130/bin/javac"
              ListenAddress="194.152.80.29" ListenPort="7001" Machine="ROWAN"
              Name="petstoreServer" NativeIOEnabled="false"
              RootDirectory="C:\bea\wlserver6.0sp1" StdoutDebugEnabled="true"
              StdoutEnabled="true" StdoutSeverityLevel="64"
              ThreadPoolSize="15" TransactionLogFilePrefix="config/myDomain/logs/">
              <Log FileName="./config/myDomain/logs/weblogic.log" Name="petstoreServer"/>
              <ServerDebug DebugAbbreviation="false" DebugCluster="true"
              DebugClusterAnnouncements="true"
              DebugClusterFragments="true" DebugClusterHeartbeats="true"
              DebugConnection="true" DebugEJB="true" DebugEJBCache="true"
              DebugEJBCalls="false" DebugEJBDeployment="true"
              DebugEJBFreepool="true" DebugEJBLocking="true"
              DebugEJBPersistence="true" DebugEJBSecurity="true"
              DebugEventManager="true" DebugFailOver="true"
              DebugHttp="true" DebugJMSBackEnd="true" DebugJMSBoot="true"
              DebugJMSCommon="true" DebugJMSConfig="true"
              DebugJMSDurableSubscribers="true" DebugJMSFrontEnd="true"
              DebugJMSJDBCScavengeOnFlush="true" DebugJMSLocking="true"
              DebugJMSStore="true" DebugJMSXA="true" DebugJNDI="true"
              DebugJNDIFactories="true" DebugJNDIResolution="false"
              DebugLoadBalancing="true" DebugMessaging="true"
              DebugRC4="true" DebugRSA="true" DebugReplication="true"
              DebugReplicationDetails="true" DebugRouting="true"
              DebugSSL="true" DebugSecurityPasswordPolicy="true"
              DebugSecurityRealm="true" DebugTunnelingConnection="true"
              DebugTunnelingConnectionTimeout="true"
              DebugURLResolution="true" JDBCConn="true" JDBCSQL="true"
              JTA2PC="true" JTAAPI="true" JTAJDBC="true"
              JTAPropagate="true" JTARMI="true" JTARecovery="true"
              JTATLOG="true" JTAXA="true" ListenThreadDebug="true"
              LogDGCStatistics="true" MagicThreadDumpBackToSocket="false"
              MagicThreadDumpEnabled="false"
              MagicThreadDumpFile="debugMagicThreadDumpFile"
              MagicThreadDumpHost="localhost" Name="petstoreServer"/>
              <SSL CertificateCacheSize="3" Enabled="true" ListenPort="7002"
              Name="petstoreServer"
              ServerCertificateChainFileName="./config/myDomain/ca.pem"
              ServerCertificateFileName="./config/myDomain/democert.pem"
              ServerKeyFileName="./config/myDomain/demokey.pem" TrustedCAFileName="./config/myDomain/ca.pem"/>
              <WebServer DefaultWebApp="tour"
              LogFileName="./config/myDomain/logs/access.log"
              LoggingEnabled="true" Name="petstoreServer"/>
              <KernelDebug Name="petstoreServer"/>
              </Server>
              <Application Name="wl_management_internal1" Path="C:\bea\wlserver6.0sp1\config\tmp">
              <WebAppComponent Name="wl_management_internal1"
              Targets="petstoreServer" URI="wl_management_internal1.war"/>
              </Application>
              <Application Deployed="true" Name="tour" Path="C:\bea\wlserver6.0sp1\config\myDomain\applications">
              <WebAppComponent Name="tour" Targets="petstoreServer" URI="tour.war"/>
              </Application>
              <FileRealm Name="myFileRealm"/>
              <Security Name="myDomain"
              PasswordPolicy="wl_default_password_policy" Realm="wl_default_realm"/>
              <Application Deployed="true" Name="monitorApp1_1" Path="C:\bea\wlserver6.0sp1\config\myDomain\applications\monitorApp1_1.ear">
              <EJBComponent Name="monitorBeans1_1" Targets="PetStoreCluster" URI="monitorBeans1_1.jar"/>
              <WebAppComponent Name="monitorClient1_1"
              Targets="PetStoreCluster" URI="monitorClient1_1.war"/>
              </Application>
              <ApplicationManager Name="petstore"/>
              <FileRealm Name="wl_default_file_realm"/>
              <JDBCConnectionPool CapacityIncrement="1"
              DriverName="com.inet.tds.TdsDriver" InitialCapacity="1"
              JDBCXADebugLevel="0" LoginDelaySeconds="0" MaxCapacity="10"
              Name="monitorSimplePool"
              Properties="sql7=true;user=sa;port=1433;password=;url=jdbc:inetdae7:194.152.80.29;host=194.152.80.29;database=poc3a"
              RefreshMinutes="0" ShrinkPeriodMinutes="15"
              ShrinkingEnabled="true" SupportsLocalTransaction="false"
              Targets="PetStoreCluster" TestConnectionsOnRelease="false"
              TestConnectionsOnReserve="false" URL="jdbc:inetdae7:194.152.80.29"/>
              <Machine Name="ROWAN"/>
              <Log FileName="./config/myDomain/logs/wl-domain.log" Name="petstore"/>
              <Server AcceptBacklog="50" AdministrationPort="0"
              Cluster="PetStoreCluster" ClusterWeight="100"
              CompleteHTTPMessageTimeout="480"
              CompleteIIOPMessageTimeout="480" CompleteT3MessageTimeout="480"
              ConsoleInputEnabled="false" DGCIdlePeriodsUntilTimeout="2"
              DefaultIIOPPassword="guest" DefaultIIOPUser="guest"
              DefaultProtocol="t3" DefaultSecureProtocol="t3s"
              EnabledForDomainLog="true" HelpPageURL="/docs/adminhelp/"
              HttpdEnabled="true" IIOPEnabled="false"
              IdlePeriodsUntilTimeout="4" InstrumentStackTraceEnabled="false"
              JDBCLoggingEnabled="false"
              JMSDefaultConnectionFactoriesEnabled="true"
              JavaCompiler="C:\bea\jdk130/bin/javac"
              ListenAddress="194.152.80.1" ListenPort="7001"
              ListenThreadStartDelaySecs="0"
              LogRemoteExceptionsEnabled="false" LoginTimeout="1000"
              LoginTimeoutMillis="5000" Machine="MOUSE"
              MaxHTTPMessageSize="10000000" MaxIIOPMessageSize="10000000"
              MaxT3MessageSize="10000000" Name="petstoreServerClone"
              NativeIOEnabled="false" NetworkClassLoadingEnabled="false"
              PeriodLength="60000" ResponseTimeout="0"
              ReverseDNSAllowed="false" RjvmIdleTimeout="0"
              RootDirectory="C:\bea\wlserver6.0sp1"
              SocketReaderTimeoutMaxMillis="1000"
              SocketReaderTimeoutMinMillis="100" StdoutDebugEnabled="true"
              StdoutEnabled="true" StdoutSeverityLevel="64"
              ThreadPoolPercentSocketReaders="33" ThreadPoolSize="15"
              TransactionLogFilePrefix="config/myDomain/logs/"
              TunnelingClientPingSecs="45" TunnelingClientTimeoutSecs="40"
              TunnelingEnabled="false" WorkspaceShowUserKeysOnly="false"
              ZACEnabled="true" ZACPublishRoot="exports">
              <WebServer ClusteringEnabled="false" DefaultWebApp="tour"
              HttpsKeepAliveSecs="60" KeepAliveEnabled="true"
              KeepAliveSecs="30" LogFileBufferKBytes="8"
              LogFileFlushSecs="60" LogFileFormat="common"
              LogFileName="./config/myDomain/logs/access.log"
              LogRotationPeriodMins="2147483647" LogRotationType="size"
              LoggingEnabled="true" MaxLogFileSizeKBytes="0"
              MaxPostSize="-1" MaxPostTimeSecs="-1"
              Name="petstoreServerClone" PostTimeoutSecs="0" WAPEnabled="false"/>
              <SSL CertificateCacheSize="3" ClientCertificateEnforced="false"
              Enabled="true" ExportKeyLifespan="500" HandlerEnabled="true"
              KeyEncrypted="false" ListenPort="8002"
              LoginTimeoutMillis="25000" MDAcceleration="Java"
              Name="petstoreServerClone" PeerValidationEnforced="0"
              RC4Acceleration="Native/Java" RSAAcceleration="Native/Java"
              ServerCertificateChainFileName="./config/myDomain/ca.pem"
              ServerCertificateFileName="./config/myDomain/democert.pem"
              ServerKeyFileName="./config/myDomain/demokey.pem"
              TrustedCAFileName="./config/myDomain/ca.pem" UseJava="true"/>
              <Log FileCount="7" FileMinSize="500"
              FileName="./config/myDomain/logs/weblogic_clone.log"
              FileTimeSpan="24" Name="petstoreServerClone"
              NumberOfFilesLimited="false" RotationType="none"/>
              <KernelDebug Name="petstoreServerClone"/>
              <ServerDebug DebugAbbreviation="false" DebugCluster="true"
              DebugClusterAnnouncements="true"
              DebugClusterFragments="true" DebugClusterHeartbeats="true"
              DebugConnection="true" DebugEJB="true" DebugEJBCache="true"
              DebugEJBCalls="false" DebugEJBDeployment="true"
              DebugEJBFreepool="true" DebugEJBLocking="true"
              DebugEJBPersistence="true" DebugEJBSecurity="true"
              DebugEventManager="true" DebugFailOver="true"
              DebugHttp="true" DebugJMSBackEnd="true" DebugJMSBoot="true"
              DebugJMSCommon="true" DebugJMSConfig="true"
              DebugJMSDurableSubscribers="true" DebugJMSFrontEnd="true"
              DebugJMSJDBCScavengeOnFlush="true" DebugJMSLocking="true"
              DebugJMSStore="true" DebugJMSXA="true" DebugJNDI="true"
              DebugJNDIFactories="true" DebugJNDIResolution="false"
              DebugLoadBalancing="true" DebugMessaging="true"
              DebugRC4="true" DebugRSA="true" DebugReplication="true"
              DebugReplicationDetails="true" DebugRouting="true"
              DebugSSL="true" DebugSecurityPasswordPolicy="true"
              DebugSecurityRealm="true" DebugTunnelingConnection="true"
              DebugTunnelingConnectionTimeout="true"
              DebugURLResolution="true" JDBCConn="true" JDBCSQL="true"
              JTA2PC="true" JTAAPI="true" JTAJDBC="true"
              JTAPropagate="true" JTARMI="true" JTARecovery="true"
              JTATLOG="true" JTAXA="true" ListenThreadDebug="true"
              LogDGCStatistics="false" MagicThreadDumpBackToSocket="false"
              MagicThreadDumpEnabled="false"
              MagicThreadDumpFile="debugMagicThreadDumpFile"
              MagicThreadDumpHost="localhost" Name="petstoreServerClone"/>
              </Server>
              <Log FileName="myDomain.log" Name="myDomain"/>
              <JTA Name="myDomain"/>
              <Machine Name="MOUSE"/>
              <ApplicationManager Name="myDomain"/>
              <Realm FileRealm="myFileRealm" Name="myRealm"/>
              <Realm FileRealm="wl_default_file_realm" Name="wl_default_realm"/>
              <Cluster ClusterAddress="194.152.80.1,194.152.80.29:7001"
              DefaultLoadAlgorithm="round-robin"
              MulticastAddress="224.10.10.1" Name="PetStoreCluster" ServiceAgeThresholdSeconds="180"/>
              <Application Name="console" Path="C:\bea\wlserver6.0sp1\config\examples\applications">
              <WebAppComponent Name="console" Targets="petstoreServer" URI="console.war"/>
              </Application>
              <JDBCDataSource JNDIName="monitorSimplePool"
              Name="monitorSimpleDB_1" PoolName="monitorSimplePool" Targets="PetStoreCluster"/>
              </Domain>
              ---------------------- ejb-jar.xml -------------------------
              <?xml version="1.0"?>
              <!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans
              1.1//EN' 'http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd'>
              <ejb-jar>
              <enterprise-beans>
              <entity>
              <ejb-name>ContractCMP</ejb-name>
              <home>com.liffe.monitor.contractonly.server.cmp.ContractCMPHome</home>
              <remote>com.liffe.monitor.contractonly.server.Contract</remote>
              <ejb-class>com.liffe.monitor.contractonly.server.cmp.ContractCMPBean</ejb-class>
              <persistence-type>Container</persistence-type>
              <prim-key-class>com.liffe.monitor.general.ContractPK</prim-key-class>
              <reentrant>False</reentrant>
              <cmp-field>
              <field-name>contractCode</field-name>
              </cmp-field>
              <cmp-field>
              <field-name>tradeVolume</field-name>
              </cmp-field>
              <cmp-field>
              <field-name>suspended</field-name>
              </cmp-field>
              </entity>
              <entity>
              <ejb-name>ContractBMP</ejb-name>
              <home>com.liffe.monitor.contractonly.server.bmp.ContractBMPHome</home>
              <remote>com.liffe.monitor.contractonly.server.Contract</remote>
              <ejb-class>com.liffe.monitor.contractonly.server.bmp.ContractBMPBean</ejb-class>
              <persistence-type>Bean</persistence-type>
              <prim-key-class>com.liffe.monitor.general.ContractPK</prim-key-class>
              <reentrant>False</reentrant>
              </entity>
              <session>
              <ejb-name>ContractMonitor</ejb-name>
              <home>com.liffe.monitor.contractonly.server.ContractMonitorHome</home>
              <remote>com.liffe.monitor.contractonly.server.ContractMonitor</remote>
              <ejb-class>com.liffe.monitor.contractonly.server.ContractMonitorBean</ejb-class>
              <session-type>Stateful</session-type>
              <transaction-type>Container</transaction-type>
              <ejb-ref>
              <ejb-ref-name>ejb/ContractCMPHome</ejb-ref-name>
              <ejb-ref-type>Entity</ejb-ref-type>
              <home>com.liffe.monitor.contractonly.server.cmp.ContractCMPHome</home>
              <remote>com.liffe.monitor.contractonly.server.Contract</remote>
              </ejb-ref>
              <ejb-ref>
              <ejb-ref-name>ejb/ContractBMPHome</ejb-ref-name>
              <ejb-ref-type>Entity</ejb-ref-type>
              <home>com.liffe.monitor.contractonly.server.bmp.ContractBMPHome</home>
              <remote>com.liffe.monitor.contractonly.server.Contract</remote>
              </ejb-ref>
              </session>
              <session>
              <ejb-name>InjectorTarget</ejb-name>
              <home>com.liffe.monitor.injector.server.InjectorTargetHome</home>
              <remote>com.liffe.monitor.injector.server.InjectorTarget</remote>
              <ejb-class>com.liffe.monitor.injector.server.InjectorTargetBean</ejb-class>
              <session-type>Stateless</session-type>
              <transaction-type>Container</transaction-type>
              <ejb-ref>
              <ejb-ref-name>ejb/ContractCMPHome</ejb-ref-name>
              <ejb-ref-type>Entity</ejb-ref-type>
              <home>com.liffe.monitor.contractonly.server.cmp.ContractCMPHome</home>
              <remote>com.liffe.monitor.contractonly.server.Contract</remote>
              </ejb-ref>
              <ejb-ref>
              <ejb-ref-name>ejb/ContractBMPHome</ejb-ref-name>
              <ejb-ref-type>Entity</ejb-ref-type>
              <home>com.liffe.monitor.contractonly.server.bmp.ContractBMPHome</home>
              <remote>com.liffe.monitor.contractonly.server.Contract</remote>
              </ejb-ref>
              </session>
              </enterprise-beans>
              <assembly-descriptor>
              <method-permission>
              <role-name>everyone</role-name>
              <method>
              <ejb-name>InjectorTarget</ejb-name>
              <method-name>*</method-name>
              </method>
              </method-permission>
              <container-transaction>
              <method>
              <ejb-name>ContractCMP</ejb-name>
              <method-intf>Remote</method-intf>
              <method-name>*</method-name>
              </method>
              <trans-attribute>Required</trans-attribute>
              </container-transaction>
              <container-transaction>
              <method>
              <ejb-name>ContractMonitor</ejb-name>
              <method-intf>Remote</method-intf>
              <method-name>*</method-name>
              </method>
              <trans-attribute>Required</trans-attribute>
              </container-transaction>
              <container-transaction>
              <method>
              <ejb-name>InjectorTarget</ejb-name>
              <method-name>*</method-name>
              </method>
              <trans-attribute>Required</trans-attribute>
              </container-transaction>
              </assembly-descriptor>
              </ejb-jar>
              ------------------- weblogic-ejb-jar.xml -----------------
              <?xml version="1.0"?>
              <!DOCTYPE weblogic-ejb-jar PUBLIC '-//BEA Systems, Inc.//DTD WebLogic 5.1.0 EJB//EN'
              'http://www.bea.com/servers/wls510/dtd/weblogic-ejb-jar.dtd'>
              <weblogic-ejb-jar>
              <weblogic-enterprise-bean>
              <ejb-name>ContractCMP</ejb-name>
              <caching-descriptor>
              <max-beans-in-cache>1000</max-beans-in-cache>
              </caching-descriptor>
              <persistence-descriptor>
              <persistence-type>
              <type-identifier>WebLogic_CMP_RDBMS</type-identifier>
              <type-version>5.1.0</type-version>
              <type-storage>META-INF/weblogic-cmp-rdbms-jar-contractonly-cmp.xml</type-storage>
              </persistence-type>
              <persistence-use>
              <type-identifier>WebLogic_CMP_RDBMS</type-identifier>
              <type-version>5.1.0</type-version>
              </persistence-use>
              </persistence-descriptor>
              <clustering-descriptor>
              <home-is-clusterable>true</home-is-clusterable>
              <home-load-algorithm>random</home-load-algorithm>
              </clustering-descriptor>
              <transaction-descriptor>
              <trans-timeout-seconds>15</trans-timeout-seconds>
              </transaction-descriptor>
              <jndi-name>com.liffe.monitor.contractonly.server.cmp.ContractCMPHome</jndi-name>
              <transaction-isolation>
              <isolation-level>TRANSACTION_READ_COMMITTED</isolation-level>
              <method>
              <ejb-name>ContractCMP</ejb-name>
              <method-intf>Remote</method-intf>
              <method-name>*</method-name>
              </method>
              </transaction-isolation>
              </weblogic-enterprise-bean>
              <weblogic-enterprise-bean>
              <ejb-name>ContractBMP</ejb-name>
              <caching-descriptor>
              <max-beans-in-cache>1000</max-beans-in-cache>
              </caching-descriptor>
              <clustering-descriptor>
              <home-is-clusterable>true</home-is-clusterable>
              <home-load-algorithm>random</home-load-algorithm>
              </clustering-descriptor>
              <transaction-descriptor>
              <trans-timeout-seconds>15</trans-timeout-seconds>
              </transaction-descriptor>
              <jndi-name>com.liffe.monitor.contractonly.server.bmp.ContractBMPHome</jndi-name>
              <transaction-isolation>
              <isolation-level>TRANSACTION_READ_COMMITTED</isolation-level>
              <method>
              <ejb-name>ContractBMP</ejb-name>
              <method-intf>Remote</method-intf>
              <method-name>*</method-name>
              </method>
              </transaction-isolation>
              </weblogic-enterprise-bean>
              <weblogic-enterprise-bean>
              <ejb-name>ContractMonitor</ejb-name>
              <caching-descriptor>
              <max-beans-in-cache>100</max-beans-in-cache>
              </caching-descriptor>
              <clustering-descriptor>
              <home-is-clusterable>true</home-is-clusterable>
              <home-load-algorithm>round-robin</home-load-algorithm>
              </clustering-descriptor>
              <reference-descriptor>
              <ejb-reference-description>
              <ejb-ref-name>ejb/ContractCMPHome</ejb-ref-name>
              <jndi-name>com.liffe.monitor.contractonly.server.cmp.ContractCMPHome</jndi-name>
              </ejb-reference-description>
              <ejb-reference-description>
              <ejb-ref-name>ejb/ContractBMPHome</ejb-ref-name>
              <jndi-name>com.liffe.monitor.contractonly.server.bmp.ContractBMPHome</jndi-name>
              </ejb-reference-description>
              </reference-descriptor>
              <jndi-name>com.liffe.monitor.contractonly.server.ContractMonitorHome</jndi-name>
              </weblogic-enterprise-bean>
              <weblogic-enterprise-bean>
              <ejb-name>InjectorTarget</ejb-name>
              <caching-descriptor>
              <max-beans-in-free-pool>50</max-beans-in-free-pool>
              </caching-descriptor>
              <clustering-descriptor>
              <home-is-clusterable>true</home-is-clusterable>
              <home-load-algorithm>round-robin</home-load-algorithm>
              </clustering-descriptor>
              <reference-descriptor>
              <ejb-reference-description>
              <ejb-ref-name>ejb/ContractCMPHome</ejb-ref-name>
              <jndi-name>com.liffe.monitor.contractonly.server.cmp.ContractCMPHome</jndi-name>
              </ejb-reference-description>
              <ejb-reference-description>
              <ejb-ref-name>ejb/ContractBMPHome</ejb-ref-name>
              <jndi-name>com.liffe.monitor.contractonly.server.bmp.ContractBMPHome</jndi-name>
              </ejb-reference-description>
              </reference-descriptor>
              <jndi-name>ejb/InjectorTargetHome</jndi-name>
              </weblogic-enterprise-bean>
              </weblogic-ejb-jar>
              ---------------------- weblogic-cmp-.... ---------------------
              <!DOCTYPE weblogic-rdbms-bean PUBLIC
              '-//BEA Systems, Inc.//DTD WebLogic 5.1.0 EJB RDBMS Persistence//EN'
              'http://www.bea.com/servers/wls510/dtd/weblogic-rdbms-persistence.dtd'>
              <weblogic-rdbms-bean>
              <pool-name>monitorSimplePool</pool-name>
              <table-name>Contract</table-name>
              <attribute-map>
              <object-link>
              <bean-field>contractCode</bean-field>
              <dbms-column>contractCode</dbms-column>
              </object-link>
              <object-link>
              <bean-field>tradeVolume</bean-field>
              <dbms-column>tradeVolume</dbms-column>
              </object-link>
              <object-link>
              <bean-field>suspended</bean-field>
              <dbms-column>suspended</dbms-column>
              </object-link>
              </attribute-map>
              <finder-list>
              <finder>
              <method-name>findByGTVolume</method-name>
              <method-params>
              <method-param>int</method-param>
              </method-params>
              <finder-query><![CDATA[(> tradeVolume $0)]]></finder-query>
              </finder>
              <finder>
              <method-name>findAllContracts</method-name>
              <finder-query><![CDATA[(isNotNull contractCode)]]></finder-query>
              </finder>
              </finder-list>
              <options>
              <use-quoted-names>false</use-quoted-names>
              </options>
              </weblogic-rdbms-bean>
              

  • Lookup Data ( Readonly Entity Bean)

    My application has a requirement for multiple lookup data ( asset types ,
    broker types ) with code and description. The lookup data is fairly static
    and only updated through an external source.Can I use a read only BMP Entity
    EJB. The primary key will be the lookup type.
    Is this a good pattern or are any other efficient ways to achieve the same
    thing.
    John.

    That fits quite well into what ReadOnly entity beans are designed for.
    Charles
    "John" <[email protected]> wrote:
    My application has a requirement for multiple lookup data ( asset types
    broker types ) with code and description. The lookup data is fairly static
    and only updated through an external source.Can I use a read only BMP
    Entity
    EJB. The primary key will be the lookup type.
    Is this a good pattern or are any other efficient ways to achieve the
    same
    thing.
    John.

  • Any adverse effects from singleton classes?

    We're trying to decide whether it is a good/bad/indifferent idea to use
    singleton classes in various places in an application (servlets, session
    EJBs, BMP entity EJBs), in a clustered environment. Our app designers
    have a number of different potential uses in mind, such as storing some
    rarely changed data, and localised caches. We're happy with the
    restriction that they obviously wouldn't be replicated. However, we're
    not sure about what other implications there might be, especially when
    the thing is scaled up. Questions that spring to mind include:
    - any inbuilt synchronisation that WL may do (if the singleton had to
    dive off to a database to get some further info we wouldn't necessarily
    want to have other callers to it synchronise at that point)
    - the effect on the JVM if we tie up some of its virtual memory
    - any other considerations
    Note that they are considering using this technique in both the web app
    and the ejbs (which will reside in different clusters).
    Are there any guidelines available for the use of singletons,
    particularly from a performance point of view?
    Thanks
    Chris

    For caching in clustering, read only entity beans are best bet.
    You must not bind a cach ( HashMap or soemthing) object in JNDI tree in
    clustering. This could lead to mess as this binding is not cluster aware. You
    might see conflict messages in your log file or your local bidning could fail
    in one or other server depending upon timing.
    Other than that as long as you don't have synchronization in singleton classes
    that leads to deadlocks, there should not be a problem.
    Viresh Garg
    Principal Developer Relations Emgineer
    BEA Systems
    Larry Presswood wrote:
    Well duno if this helps but their new Jolt Pool Manager is a singleton
    class.
    Also you could use JNDI as a data cache but be careful as it replicates
    across
    the cluster.
    Chris Palmer wrote:
    We're trying to decide whether it is a good/bad/indifferent idea to use
    singleton classes in various places in an application (servlets, session
    EJBs, BMP entity EJBs), in a clustered environment. Our app designers
    have a number of different potential uses in mind, such as storing some
    rarely changed data, and localised caches. We're happy with the
    restriction that they obviously wouldn't be replicated. However, we're
    not sure about what other implications there might be, especially when
    the thing is scaled up. Questions that spring to mind include:
    - any inbuilt synchronisation that WL may do (if the singleton had to
    dive off to a database to get some further info we wouldn't necessarily
    want to have other callers to it synchronise at that point)
    - the effect on the JVM if we tie up some of its virtual memory
    - any other considerations
    Note that they are considering using this technique in both the web app
    and the ejbs (which will reside in different clusters).
    Are there any guidelines available for the use of singletons,
    particularly from a performance point of view?
    Thanks
    Chris

Maybe you are looking for

  • Survey response anwers...

    Hi, I have created one survey for the BP. Once the it clicks on yes or no option and submits the survey then I have to update the business partners attributes under the marketing tab in BP and also I have to store the BP record in Z table when they c

  • How Do I Get Cam Stream To Appear in FMLE Using iGlasses Software?

    How Do I Get Cam Stream To Appear in FMLE Using iGlasses Software? Sair

  • Firefox shuts down when I try to print, what can I do?

    When I try to print, Firefox freezes and the program stops responding and I have to shut it down and restart it. And the problem persists...

  • Start Flash Video in stopped mode ...

    Hi, I'm using a standard video player from flash8 and the videos start right away when going on the web-page. How can I define that the movie is stopped and you would need to hit the play button before it starts. In the way that the first image of th

  • RTF Summary column

    In a RTF template I need to do a running total on a field based on value of field. For eg i need to total the value in columnx if the value in column y is "YES" How to do this inside a template? Thanks Priya