How did you work that out? 

> -----Original Message-----
> From: Kenworthy, Edward [mailto:[EMAIL PROTECTED]]
> Sent: Friday, January 12, 2001 10:32 AM
> To: 'jBoss'
> Subject: RE: [jBoss-User] jBoss ejbStore() for BMP
> 
> 
> If you're not prepared to help yourself why should anyone else ?
> 
> -----Original Message-----
> From: Nortje, Andrew [mailto:[EMAIL PROTECTED]]
> Sent: 12 January 2001 15:08
> To: 'jBoss'
> Subject: RE: [jBoss-User] jBoss ejbStore() for BMP
> 
> 
> nss - this is however the jBoss support forum, I have 
> researched before
> asking the question, its specific, its relevant. 
> 
> Support is there to save us time digging through the code to find the
> answers? 
> 
> BTW Cut and paste from the jBoss web site
> ---  
> [EMAIL PROTECTED]  
> Is the main list for general discussion of jBoss, send 
> support questions
> here as well.
> ---
> 
> > -----Original Message-----
> > From: Kenworthy, Edward [mailto:[EMAIL PROTECTED]]
> > Sent: Friday, January 12, 2001 9:56 AM
> > To: 'jBoss'
> > Subject: RE: [jBoss-User] jBoss ejbStore() for BMP
> > 
> > 
> > It's open source so you could always go read the source.
> > 
> > -----Original Message-----
> > From: Nortje, Andrew [mailto:[EMAIL PROTECTED]]
> > Sent: 12 January 2001 13:41
> > To: 'jBoss'
> > Subject: [jBoss-User] jBoss ejbStore() for BMP
> > 
> > 
> > Since the EJB spec leaves the handling of how ejbLoad() and 
> > ejbStore() are
> > called up to the container developer(jBoss), (the spec is 
> > very loose), I was
> > wondering how jBoss handles this and maybe someone can give 
> > me some useful
> > insights.
> > 
> > Below is a cut and past from the ejb spec.(Take note of note 
> > [7] in the text
> > i.e. 'unreliable' transaction contexts also apply to the 
> > Never and Supports
> > attribute.)
> > 
> > My question is, if Never is also an 'unreliable' transaction 
> > context, how
> > does one implement a read-only bean managed entity bean i.e. 
> > I DON'T WANT
> > a bunch of 'read-only' beans doing ejbStore() outside a 
> > transaction boundary
> > screwing up valid data. The suggestion in the text
> > is that ejbStore be an empty method and that the business 
> > methods call some
> > other method to do the storing. This just seems plain ugly. 
> > Why use EJB if I
> > have to go through all this hassle?
> > 
> > I quess what I would like to see is that ejbStore() be called 
> > ONLY if at
> > least one remote requires, mandatory, requires new method is 
> > called on the
> > bean.
> > 
> > Any comments, what am I missing here, how does jBoss handle 
> > 'unreliable'
> > transaction contexts? (It appears to ejbStore() as often as 
> possible)
> > 
> > Thanks in advance.
> > 
> > Andrew
> > 
> > Concepts Enterprise JavaBeans v1.1, Final Release Entity Bean 
> > Component
> > Contract
> > 113 11/24/99
> > Sun Microsystem Inc
> > entity state. The ejbStore method writes the updated parts of 
> > the entity
> > object's state to the
> > database.
> > . An instance loads the most frequently used part of the 
> > entity object's
> > state in the ejbLoad
> > method and caches it until the container invokes the 
> ejbStore method.
> > Additional parts of
> > the entity object's state are loaded as needed by the 
> > business methods. The
> > ejbStore method
> > writes the updated parts of the entity object's state to 
> the database.
> > . An instance does not cache any entity object's state 
> > between business
> > methods. The business
> > methods access and modify the entity object's state directly in the
> > database. The ejbLoad
> > and ejbStore methods have an empty implementation.
> > We expect that most entity developers will not manually 
> code the cache
> > management and data access
> > calls in the entity bean class. We expect that they will rely 
> > on application
> > development tools to provide
> > various data access components that encapsulate data access 
> > and provide
> > state caching.
> > 9.1.7.1 ejbLoad and ejbStore with the NotSupported 
> > transaction attribute
> > The use of the ejbLoad and ejbStore methods for caching an 
> > entity object's
> > state in the instance
> > works well only if the Container can use transaction 
> > boundaries to drive the
> > ejbLoad and ejbStore
> > methods. When the NotSupported [7] transaction attribute is 
> > assigned to a
> > remote interface method,
> > the corresponding enterprise bean class method executes with 
> > an unspecified
> > transaction context (See
> > Subsection 11.6.3). This means that the Container does not have any
> > well-defined transaction bound-aries
> > to drive the ejbLoad and ejbStore methods on the instance.
> > Therefore, the ejbLoad and ejbStore methods are "unreliable" for the
> > instances that the Container
> > uses to dispatch the methods with an unspecified transaction 
> > context. The
> > following are the only guaran-tees
> > that the Container provides for the instances that execute 
> > the methods with
> > an unspecified transac-tion
> > context:
> > . The Container invokes at least one ejbLoad between 
> > ejbActivate and the
> > first business
> > method in the instance.
> > . The Container invokes at least one ejbStore between the 
> > last business
> > method on the
> > instance and the ejbPassivate method.
> > Because the entity object's state accessed between the 
> > ejbLoad and ejbStore
> > method pair is not
> > protected by a transaction boundary for the methods that 
> > execute with an
> > unspecified transaction con-text,
> > the Bean Provider should not attempt to use the ejbLoad and 
> > ejbStore methods
> > to control
> > caching of the entity object's state in the instance. Typically, the
> > implementation of the ejbLoad and
> > ejbStore methods should be a no-op (i.e. an empty method), 
> > and each business
> > method should access
> > the entity object's state directly in the database.
> > [7] This applies also to the Never and Supports attribute.
> > 
> > > -----Original Message-----
> > > From: Andy Riedel [mailto:[EMAIL PROTECTED]]
> > > Sent: Wednesday, January 10, 2001 11:55 PM
> > > To: jBoss
> > > Subject: RE: CRITICAL BUG: RE: [jBoss-User] Transactions 
> - Spurious
> > > ejbStore -AAAAGGGHHH
> > > 
> > > 
> > > Cool, thanks for the clarification Tobias!
> > > 
> > > Andy
> > > 
> > > -----Original Message-----
> > > From: [EMAIL PROTECTED]
> > > [mailto:[EMAIL PROTECTED]]On Behalf Of Tobias Frech
> > > Sent: Wednesday, January 10, 2001 4:36 PM
> > > To: jBoss
> > > Subject: Re: CRITICAL BUG: RE: [jBoss-User] Transactions 
> - Spurious
> > > ejbStore -AAAAGGGHHH
> > > 
> > > 
> > > Hi guys!
> > > JBoss 2.0-FINAL was released around Nov. 19, 2000. The patch you
> > > described was committed to the cvs by Sebastien Alborini 
> at Nov. 29,
> > > 2000. Clearly JBoss 2.0-FINAL does not have it but the actual cvs
> > > version does.
> > > If you need JBoss 2.0-FINAL with that patch, use cvs to 
> checkout an
> > > older version and apply the patch yourself. If there are 
> > any problems
> > > with that just tell me and you'll receive a zip from me.
> > > 
> > > Cheers,
> > > Tobias
> > > 
> > > Andy Riedel wrote:
> > > >
> > > > Hi Andrew,
> > > >
> > > > I discovered a bug in the way method transactions are handled in
> > > > org.jboss.BeanMetaData which I reported but apparently 
> > > didn't make it into
> > > > the jBoss2.0 final release. I reported it to the author 
> > > Sebastien Alborini
> > > > ([EMAIL PROTECTED]) but I'm not certain if the 
> > fix was ever
> > > > applied. Perhaps Sebastien can clarify the situation.
> > > >
> > > > The bug is in the getMethodTransactionType method. The 
> > > current version
> > > > always matches a method to the '*' definition in the 
> > > ejb-jar.xml even if
> > > the
> > > > method is explicitly overriden with its own definition 
> > later on. The
> > > patched
> > > > version of this method we are using is shown below:
> > > >
> > > >         public byte getMethodTransactionType(String 
> > > methodName, Class[]
> > > params,
> > > > boolean remote) {
> > > >                 byte result = TX_UNKNOWN;
> > > >
> > > >                 Iterator iterator = getTransactionMethods();
> > > >                 while (iterator.hasNext()) {
> > > >                         MethodMetaData m =
> > > (MethodMetaData)iterator.next();
> > > >                         if (m.patternMatches(methodName, 
> > > params, remote))
> > > {
> > > >                           result = m.getTransactionType();
> > > >                           if (!m.getMethodName().equals("*")) {
> > > >                             break;
> > > >                           }
> > > >                         }
> > > >                 }
> > > >
> > > >                 // System.out.println("Trans type for:
> > > > "+methodName+"="+result);
> > > >                 return result;
> > > >         }
> > > >
> > > > This version ensures that all method definitions are 
> > iterated before
> > > > breaking out of its processing loop.
> > > >
> > > > This may be your problem since your "overridden" 
> > transaction method
> > > > definitions are always matched to the '*' definition.
> > > >
> > > > Andy Riedel
> > > > XadrA LLC
> > > >
> > > > -----Original Message-----
> > > > From: [EMAIL PROTECTED]
> > > > [mailto:[EMAIL PROTECTED]]On Behalf Of 
> > Nortje, Andrew
> > > > Sent: Wednesday, January 10, 2001 3:24 PM
> > > > To: 'jBoss'
> > > > Subject: [jBoss-User] Transactions - Spurious ejbStore - 
> > AAAAGGGHHH
> > > >
> > > > Folks at jBoss
> > > >
> > > > I am having real trouble with jBoss transactions and 'spurious'
> > > ejbStore().
> > > >
> > > > I have an Account entity bean that has a balance that must 
> > > be updated. I
> > > > noticed in by debug statements that a set of Account's, 
> > > which were under
> > > the
> > > > control of a single transaction, were been updated correcty 
> > > until the very
> > > > last step. What happens is the following:
> > > >
> > > > Somewhere in my code I create an instance of an Account 
> > > bean which I only
> > > > use for "read only" (to get the account number and 
> > > balance). ejbStore() is
> > > > however being called on this bean, even though no 
> > > transaction REQUIRED
> > > > methods are ever called on this "read only" instance of the 
> > > Account bean.
> > > > The correct balance in the database is then over written.
> > > >
> > > > I then went into ejb-jar.xml and made sure that all bean 
> > > remote and home
> > > > interfaces, using * wildcard, (hence all methods in all 
> > beans ) were
> > > marked
> > > > as NOT SUPPRORTING transactions. I then went and 
> > > selectively set a few
> > > > methods ( account.updateBalance() for one ) to REQUIRED. 
> > > jBoss now hangs
> > > > somewhere on the transaction even though jBoss seems to 
> > > still be working
> > > (I
> > > > see passivation of overaged bean messages etc). My client 
> > also hangs
> > > waiting
> > > > for a reply from jBoss. No exceptions thrown anywhere. When 
> > > I try stop
> > > jBoss
> > > > using ^C it then really hangs and I have to kill it.
> > > >
> > > > I am using the this pointer to figure out which instance of 
> > > bean is being
> > > > called when. No REQUIRED transaction methods are ever 
> > > called on the 'read
> > > > only' instance on the Account bean but ejbStore is.
> > > >
> > > > What to do?
> > > >
> > > > (I am using jBoss-2.0_FINAL.zip (4.19M) on Win 2000 ( 
> > > Production is on
> > > Linux
> > > > ))
> > > >
> > > > --
> > > > --------------------------------------------------------------
> > > > To subscribe:        [EMAIL PROTECTED]
> > > > To unsubscribe:      [EMAIL PROTECTED]
> > > > List Help?:          [EMAIL PROTECTED]
> > > >
> > > > --
> > > > --------------------------------------------------------------
> > > > To subscribe:        [EMAIL PROTECTED]
> > > > To unsubscribe:      [EMAIL PROTECTED]
> > > > List Help?:          [EMAIL PROTECTED]
> > > 
> > > 
> > > --
> > > --------------------------------------------------------------
> > > To subscribe:        [EMAIL PROTECTED]
> > > To unsubscribe:      [EMAIL PROTECTED]
> > > List Help?:          [EMAIL PROTECTED]
> > > 
> > > 
> > > 
> > > --
> > > --------------------------------------------------------------
> > > To subscribe:        [EMAIL PROTECTED]
> > > To unsubscribe:      [EMAIL PROTECTED]
> > > List Help?:          [EMAIL PROTECTED]
> > > 
> > 
> > 
> > --
> > --------------------------------------------------------------
> > To subscribe:        [EMAIL PROTECTED]
> > To unsubscribe:      [EMAIL PROTECTED]
> > List Help?:          [EMAIL PROTECTED]
> > 
> > 
> > --
> > --------------------------------------------------------------
> > To subscribe:        [EMAIL PROTECTED]
> > To unsubscribe:      [EMAIL PROTECTED]
> > List Help?:          [EMAIL PROTECTED]
> > 
> > 
> > --
> > --------------------------------------------------------------
> > To subscribe:        [EMAIL PROTECTED]
> > To unsubscribe:      [EMAIL PROTECTED]
> > List Help?:          [EMAIL PROTECTED]
> > 
> 
> 
> --
> --------------------------------------------------------------
> To subscribe:        [EMAIL PROTECTED]
> To unsubscribe:      [EMAIL PROTECTED]
> List Help?:          [EMAIL PROTECTED]
> 
> 
> --
> --------------------------------------------------------------
> To subscribe:        [EMAIL PROTECTED]
> To unsubscribe:      [EMAIL PROTECTED]
> List Help?:          [EMAIL PROTECTED]
> 


--
--------------------------------------------------------------
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]
List Help?:          [EMAIL PROTECTED]

Reply via email to