0 Replies Latest reply on Oct 1, 2004 6:21 AM by ___martin___

    Compound Primary Keys / Strange Behavior

    ___martin___

      Hello Community!

      I've a little problem using JBoss 3.2.3 and compound primary keys(the sample uses cmp with added JAAS security, running without any troubles).

      My data-model (EER) contains a weak m-n relationship with additional
      attributes. So I created a single table containing a compound primary key (see the table definition below) that isn't connected to the other tables
      anymore. The Entity-Bean which operates on this table has a finder-Method returning a collection of entity-beans.

      As far as I know this collection should contain Local interfaces of the entity beans returned. But if I try to use methods of these local interfaces I get the error messages (I turned on debugging) shown below.

      When I try to print the content of the returned bean with the .toString() method the output states that a <E-Bean-Name>HomeLocal was returned with the correct compound primary key values.

      The only way to use the returned local interfaces is to call the .getPrimaryKey() method to obtain the compound primary key, get a new <E-Bean-Name>HomeLocal interface and then calling the findByPrimaryKey(<Compound-Primary-Key>) method to get a usable
      local interface. This works fine but causes a lot of additional network
      traffic and results in poor performance. I'm not sure if there are some
      jboss-specific config-files where I have to "declare" the compound-primary
      key. Is there a way to avoid this behavior?

      Any help, comments, hints, ... are very welcome and thanks in advance for your
      help.

      regards,
      martin

      ejb-jar.xml:

       <entity>
       <ejb-name>BidEJB</ejb-name>
       <local-home>com.ejbemarketplace.bid.BidHomeLocal</local-home>
       <local>com.ejbemarketplace.bid.BidLocal</local>
       <ejb-class>com.ejbemarketplace.bid.BidBean</ejb-class>
       <persistence-type>Container</persistence-type>
       <prim-key-class>com.ejbemarketplace.bid.BidPK</prim-key-class>
       <reentrant>False</reentrant>
       <cmp-version>2.x</cmp-version>
       <abstract-schema-name>Bid</abstract-schema-name>
       <cmp-field><field-name>ucid</field-name></cmp-field>
       <cmp-field><field-name>acid</field-name></cmp-field>
       <cmp-field><field-name>amount</field-name></cmp-field>
       <cmp-field><field-name>bidDateTimeStamp</field-name></cmp-field>
       <cmp-field><field-name>valid</field-name></cmp-field>
      
       <security-role-ref>
       <role-name>User</role-name>
       <role-link>User</role-link>
       </security-role-ref>
       <security-identity>
       <run-as>
       <role-name>User</role-name>
       </run-as>
       </security-identity>
      
       <query>
       <query-method>
       <method-name>findBidsForAuction</method-name>
       <method-params>
       <method-param>java.lang.Integer</method-param>
       </method-params>
       </query-method>
       <ejb-ql>
       [CDATA[
       SELECT DISTINCT OBJECT(b)
       FROM Bid AS b
       WHERE b.acid = ?1
       ]]
       </ejb-ql>
       </query>
       <query>
       <query-method>
       <method-name>findOpenBidsOfCustomer</method-name>
       <method-params>
       <method-param>java.lang.Integer</method-param>
       </method-params>
       </query-method>
       <ejb-ql>
       [CDATA[
       SELECT Object(b)
       FROM Bid as b
       WHERE b.ucid = ?1 and b.valid=false
       ]]
       </ejb-ql>
       </query>
       </entity>
      


      db-table definition:
       Table "public.bidejb"
       Column | Type | Modifiers
      ------------------+--------------------------+-----------
       ucid | integer | not null
       acid | integer | not null
       amount | double precision | not null
       biddatetimestamp | timestamp with time zone |
       valid | boolean | not null
      Indexes: pk_bidejb primary key btree (ucid, acid)
      


      usage of bean:
       private float valueOfOpenBids(Integer ucid) throws FinderException, NamingException {
       BidHomeLocal bhl = (BidHomeLocal) jndiContext.lookup("BidHomeLocal");
       Collection openBids = bhl.findOpenBidsOfCustomer(ucid);
       Iterator itopenBids = openBids.iterator();
       float sumob = 0;
      
       while ( itopenBids.hasNext() ) {
       BidLocal bl = (BidLocal) itopenBids.next();
       // using sumob += bl.getAmount() at this point would cause the debug/error messages below
       BidPK bpk = (BidPK) bl.getPrimaryKey();
       bhl = (BidHomeLocal) jndiContext.lookup("BidHomeLocal");
       bl = bhl.findByPrimaryKey(bpk);
       sumob += bl.getAmount();
       System.out.println("BidSBean: valueOfOpenBids(Integer) F:\n\t" + bl.toString());
      
       }
      
       return ( sumob );
       }
      


      debug/error-message:

      2004-10-01 10:45:36,743 TRACE [org.jboss.ejb.plugins.LogInterceptor] Start method=getAmount
      2004-10-01 10:45:36,743 TRACE [org.jboss.security.plugins.JaasSecurityManager.ejbemarketplacepolicy] validateCache, info=org.jboss.security.plugins.JaasSecurityManager$DomainInfo@17e319a
      2004-10-01 10:45:36,743 TRACE [org.jboss.ejb.plugins.SecurityInterceptor] Authenticated principal=6
      2004-10-01 10:45:36,743 TRACE [org.jboss.ejb.plugins.SecurityInterceptor] method=public abstract float com.ejbemarketplace.bid.BidLocal.getAmount() throws javax.ejb.EJBException, interface=LOCAL, requiredRoles=[User]
      2004-10-01 10:45:36,743 TRACE [org.jboss.ejb.plugins.SecurityInterceptor] Checking runAsRole: User
      2004-10-01 10:45:36,743 TRACE [org.jboss.ejb.plugins.TxInterceptorCMT] Current transaction in MI is TransactionImpl:XidImpl [FormatId=257, GlobalId=linux//35, BranchQual=]
      2004-10-01 10:45:36,743 TRACE [org.jboss.ejb.plugins.TxInterceptorCMT] TX_REQUIRED for getAmount
      2004-10-01 10:45:36,743 TRACE [org.jboss.ejb.plugins.TxInterceptorCMT] Thread came in with tx TransactionImpl:XidImpl [FormatId=257, GlobalId=linux//35, BranchQual=]
      2004-10-01 10:45:36,743 TRACE [org.jboss.ejb.plugins.EntityLockInterceptor] Begin invoke, key=4 3
      2004-10-01 10:45:36,744 TRACE [org.jboss.ejb.plugins.EntityInstancePool] Get instance org.jboss.ejb.plugins.EntityInstancePool@1fb9fb3#1#class com.ejbemarketplace.bid.BidBean
      2004-10-01 10:45:36,744 TRACE [org.jboss.ejb.plugins.AbstractInstanceCache] Activated bean BidEJB with id = 4 3
      2004-10-01 10:45:36,744 TRACE [org.jboss.ejb.plugins.LRUEnterpriseContextCachePolicy] entryPromotion, entry=key: 4 3, object: 4f33c1, entry: 1cee0c8
      2004-10-01 10:45:36,744 TRACE [org.jboss.ejb.plugins.LRUEnterpriseContextCachePolicy] entryAdded, entry=key: 4 3, object: 4f33c1, entry: 1cee0c8
      2004-10-01 10:45:36,744 TRACE [org.jboss.ejb.plugins.EntityInstanceInterceptor] Begin invoke, key=4 3
      2004-10-01 10:45:36,744 TRACE [org.jboss.ejb.plugins.EntitySynchronizationInterceptor] invoke called for ctx org.jboss.ejb.EntityEnterpriseContext@4f33c1, tx=TransactionImpl:XidImpl [FormatId=257, GlobalId=linux//35, BranchQual=]
      2004-10-01 10:45:36,745 TRACE [org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.BidEJB] RESET PERSISTENCE CONTEXT: id=4 3
      2004-10-01 10:45:36,745 TRACE [org.jboss.ejb.plugins.cmp.jdbc.ReadAheadCache.BidEJB] load data: entity=BidEJB pk=4 3
      2004-10-01 10:45:36,745 TRACE [org.jboss.ejb.plugins.cmp.jdbc.ReadAheadCache.BidEJB] No preload data found: entity=BidEJB pk=4 3
      2004-10-01 10:45:36,745 TRACE [org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCEntityBridge.BidEJB] Eager-load for entity: readahead=[JDBCReadAheadMetaData : strategy=on-load, pageSize=1000, eagerLoadGroup=*]
      2004-10-01 10:45:36,745 DEBUG [org.jboss.ejb.plugins.cmp.jdbc.JDBCLoadEntityCommand.BidEJB] Executing SQL: SELECT ucid, acid, amount, bidDateTimeStamp, valid FROM bidejb WHERE (ucid=? AND acid=?) OR (ucid=? AND acid=?)
      2004-10-01 10:45:36,746 TRACE [org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMP2xFieldBridge.BidEJB#ucid] Set parameter: index=1, jdbcType=INTEGER, value=4
      2004-10-01 10:45:36,746 TRACE [org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMP2xFieldBridge.BidEJB#acid] Set parameter: index=2, jdbcType=INTEGER, value=3
      2004-10-01 10:45:36,746 TRACE [org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMP2xFieldBridge.BidEJB#ucid] Set parameter: index=3, jdbcType=INTEGER, value=6
      2004-10-01 10:45:36,746 TRACE [org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMP2xFieldBridge.BidEJB#acid] Set parameter: index=4, jdbcType=INTEGER, value=3
      2004-10-01 10:45:36,748 TRACE [org.jboss.ejb.plugins.cmp.jdbc.ReadAheadCache.BidEJB] Add preload data: entity=BidEJB pk=4 3 field=amount
      2004-10-01 10:45:36,749 TRACE [org.jboss.ejb.plugins.cmp.jdbc.ReadAheadCache.BidEJB] Add preload data: entity=BidEJB pk=4 3 field=bidDateTimeStamp
      2004-10-01 10:45:36,749 TRACE [org.jboss.ejb.plugins.cmp.jdbc.ReadAheadCache.BidEJB] Add preload data: entity=BidEJB pk=4 3 field=valid
      2004-10-01 10:45:36,750 TRACE [org.jboss.ejb.plugins.cmp.jdbc.ReadAheadCache.BidEJB] Add preload data: entity=BidEJB pk=6 3 field=amount
      2004-10-01 10:45:36,750 TRACE [org.jboss.ejb.plugins.cmp.jdbc.ReadAheadCache.BidEJB] Add preload data: entity=BidEJB pk=6 3 field=bidDateTimeStamp
      2004-10-01 10:45:36,750 TRACE [org.jboss.ejb.plugins.cmp.jdbc.ReadAheadCache.BidEJB] Add preload data: entity=BidEJB pk=6 3 field=valid
      2004-10-01 10:45:36,751 TRACE [org.jboss.ejb.plugins.LRUEnterpriseContextCachePolicy] entryRemoved, entry=key: null, object: null, entry: 1cee0c8
      2004-10-01 10:45:36,751 TRACE [org.jboss.ejb.plugins.EntityInstanceInterceptor] Ending invoke, exceptionThrown, ctx=org.jboss.ejb.EntityEnterpriseContext@4f33c1
      javax.ejb.NoSuchEntityException: Entity not found: primaryKey=4 3
      at org.jboss.ejb.plugins.cmp.jdbc.JDBCLoadEntityCommand.execute(JDBCLoadEntityCommand.java:219)
      at org.jboss.ejb.plugins.cmp.jdbc.JDBCLoadEntityCommand.execute(JDBCLoadEntityCommand.java:72)
      at org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.loadEntity(JDBCStoreManager.java:612)
      at org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.loadEntity(JDBCStoreManager.java:594)
      at org.jboss.ejb.plugins.CMPPersistenceManager.loadEntity(CMPPersistenceManager.java:381)
      at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.loadEntity(CachedConnectionInterceptor.java:352)
      at org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invoke(EntitySynchronizationInterceptor.java:239)
      at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:185)
      at org.jboss.ejb.plugins.EntityReentranceInterceptor.invoke(EntityReentranceInterceptor.java:114)
      at org.jboss.ejb.plugins.EntityInstanceInterceptor.invoke(EntityInstanceInterceptor.java:163)
      at org.jboss.ejb.plugins.EntityLockInterceptor.invoke(EntityLockInterceptor.java:89)
      at org.jboss.ejb.plugins.EntityCreationInterceptor.invoke(EntityCreationInterceptor.java:54)
      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)
      at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)
      at org.jboss.ejb.EntityContainer.internalInvoke(EntityContainer.java:489)
      at org.jboss.ejb.Container.invoke(Container.java:700)
      at org.jboss.ejb.plugins.local.BaseLocalProxyFactory.invoke(BaseLocalProxyFactory.java:375)
      at org.jboss.ejb.plugins.local.EntityProxy.invoke(EntityProxy.java:38)
      at $Proxy62.getAmount(Unknown Source)
      at com.ejbemarketplace.bid.BidSBean.findMaxBidForAuction(Unknown Source)
      at com.ejbemarketplace.bid.BidSBean.makeBid(Unknown Source)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java: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)
      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.GeneratedMethodAccessor67.invoke(Unknown Source)
      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.GeneratedMethodAccessor66.invoke(Unknown Source)
      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:536)
      2004-10-01 10:45:36,754 TRACE [org.jboss.ejb.plugins.EntityInstanceInterceptor] End invoke, key=4 3, ctx=org.jboss.ejb.EntityEnterpriseContext@4f33c1
      2004-10-01 10:45:36,754 TRACE [org.jboss.ejb.plugins.EntityLockInterceptor] End invoke, key=4 3
      2004-10-01 10:45:36,754 TRACE [org.jboss.ejb.plugins.TxInterceptorCMT] TxInterceptorCMT: In finally
      2004-10-01 10:45:36,754 ERROR [org.jboss.ejb.plugins.LogInterceptor] TransactionRolledbackLocalException in method: public abstract float com.ejbemarketplace.bid.BidLocal.getAmount() throws javax.ejb.EJBException, causedBy:
      javax.ejb.NoSuchObjectLocalException: Entity not found: primaryKey=4 3
      at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:158)
      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)
      at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)
      at org.jboss.ejb.EntityContainer.internalInvoke(EntityContainer.java:489)
      at org.jboss.ejb.Container.invoke(Container.java:700)
      at org.jboss.ejb.plugins.local.BaseLocalProxyFactory.invoke(BaseLocalProxyFactory.java:375)
      at org.jboss.ejb.plugins.local.EntityProxy.invoke(EntityProxy.java:38)
      at $Proxy62.getAmount(Unknown Source)
      at com.ejbemarketplace.bid.BidSBean.findMaxBidForAuction(Unknown Source)
      at com.ejbemarketplace.bid.BidSBean.makeBid(Unknown Source)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java: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)
      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.GeneratedMethodAccessor67.invoke(Unknown Source)
      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.GeneratedMethodAccessor66.invoke(Unknown Source)
      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:536)
      2004-10-01 10:45:36,761 TRACE [org.jboss.ejb.plugins.LogInterceptor] End method=getAmount
      2004-10-01 10:45:36,762 TRACE [org.jboss.ejb.plugins.StatelessSessionInstancePool] Discard instance:org.jboss.ejb.plugins.StatelessSessionInstancePool@16f3ed7#org.jboss.ejb.StatelessSessionEnterpriseContext@16bbeaf#TransactionImpl:XidImpl [FormatId=257, GlobalId=linux//35, BranchQual=]#true#class com.ejbemarketplace.bid.BidSBean
      2004-10-01 10:45:36,762 TRACE [org.jboss.ejb.plugins.TxInterceptorCMT] TxInterceptorCMT: In finally
      2004-10-01 10:45:36,763 TRACE [org.jboss.ejb.plugins.LRUEnterpriseContextCachePolicy] entryRemoved, entry=key: null, object: null, entry: 1ee1775
      2004-10-01 10:45:36,764 TRACE [org.jboss.ejb.plugins.EntitySynchronizationInterceptor] afterCompletion, clear tx for ctx=org.jboss.ejb.EntityEnterpriseContext@d2883b, tx=TransactionImpl:XidImpl [FormatId=257, GlobalId=linux//35, BranchQual=]
      2004-10-01 10:45:36,764 TRACE [org.jboss.ejb.plugins.EntitySynchronizationInterceptor] afterCompletion, sent notify on TxLock for ctx=org.jboss.ejb.EntityEnterpriseContext@d2883b
      2004-10-01 10:45:36,764 TRACE [org.jboss.ejb.plugins.LRUEnterpriseContextCachePolicy] entryRemoved, entry=key: null, object: null, entry: 9c939
      2004-10-01 10:45:36,764 TRACE [org.jboss.ejb.plugins.EntitySynchronizationInterceptor] afterCompletion, clear tx for ctx=org.jboss.ejb.EntityEnterpriseContext@533246, tx=TransactionImpl:XidImpl [FormatId=257, GlobalId=linux//35, BranchQual=]
      2004-10-01 10:45:36,764 TRACE [org.jboss.ejb.plugins.EntitySynchronizationInterceptor] afterCompletion, sent notify on TxLock for ctx=org.jboss.ejb.EntityEnterpriseContext@533246
      2004-10-01 10:45:36,764 TRACE [org.jboss.ejb.plugins.LRUEnterpriseContextCachePolicy] entryRemoved, entry=key: null, object: null, entry: 38fb59
      2004-10-01 10:45:36,764 TRACE [org.jboss.ejb.plugins.EntitySynchronizationInterceptor] afterCompletion, clear tx for ctx=org.jboss.ejb.EntityEnterpriseContext@4b3f8b, tx=TransactionImpl:XidImpl [FormatId=257, GlobalId=linux//35, BranchQual=]
      2004-10-01 10:45:36,764 TRACE [org.jboss.ejb.plugins.EntitySynchronizationInterceptor] afterCompletion, sent notify on TxLock for ctx=org.jboss.ejb.EntityEnterpriseContext@4b3f8b
      2004-10-01 10:45:36,764 TRACE [org.jboss.ejb.plugins.LRUEnterpriseContextCachePolicy] entryRemoved, entry=key: null, object: null, entry: db5b3f
      2004-10-01 10:45:36,764 TRACE [org.jboss.ejb.plugins.EntitySynchronizationInterceptor] afterCompletion, clear tx for ctx=org.jboss.ejb.EntityEnterpriseContext@396fce, tx=TransactionImpl:XidImpl [FormatId=257, GlobalId=linux//35, BranchQual=]
      2004-10-01 10:45:36,764 TRACE [org.jboss.ejb.plugins.EntitySynchronizationInterceptor] afterCompletion, sent notify on TxLock for ctx=org.jboss.ejb.EntityEnterpriseContext@396fce
      2004-10-01 10:45:36,765 ERROR [org.jboss.ejb.plugins.LogInterceptor] TransactionRolledbackException in method: public abstract void com.ejbemarketplace.bid.BidSRemote.makeBid(java.lang.Integer,java.lang.Integer,float) throws java.rmi.RemoteException, causedBy:
      javax.ejb.NoSuchObjectLocalException: Entity not found: primaryKey=4 3
      at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:158)
      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)
      at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)
      at org.jboss.ejb.EntityContainer.internalInvoke(EntityContainer.java:489)
      at org.jboss.ejb.Container.invoke(Container.java:700)
      at org.jboss.ejb.plugins.local.BaseLocalProxyFactory.invoke(BaseLocalProxyFactory.java:375)
      at org.jboss.ejb.plugins.local.EntityProxy.invoke(EntityProxy.java:38)
      at $Proxy62.getAmount(Unknown Source)
      at com.ejbemarketplace.bid.BidSBean.findMaxBidForAuction(Unknown Source)
      at com.ejbemarketplace.bid.BidSBean.makeBid(Unknown Source)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java: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)
      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.GeneratedMethodAccessor67.invoke(Unknown Source)
      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.GeneratedMethodAccessor66.invoke(Unknown Source)
      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:536)
      2004-10-01 10:45:36,771 TRACE [org.jboss.ejb.plugins.LogInterceptor] End method=makeBid
      2004-10-01 10:47:12,048 DEBUG [org.jboss.resource.connectionmanager.IdleRemover] run: IdleRemover notifying pools, interval: 450000