Re: [JBoss-user] RE: How to implement version control using Value Object Pattern in CMP 2.0

2003-12-13 Thread Alexey Loubyansky
Boulatian, Misak wrote:

Hi,

We have a big problem using EJB 2.0 with jboss. We use Updatable Value 
Object Pattern (currently, Transfer Object Pattern). This means we have 
individual get and set methods in entity bean's remote interface and 
also have setData methods to make changes in entity bean's attributes in 
one remote method call. As you know, this may introduce Stale Value 
Objects. Before considering using CMP 2.0 we were using CMP 1.1. We had 
version control attribute that was updated in every set method call of 
bean class. getData method copied the current value of version control 
in the Value Object and sent it to the client. When updated Value Object 
was sent back through setData, the implementation of setData within bean 
class compared version attribute value with the copy of the bean class 
and threw appropriate exception if they were not the same.

Using CMP 2.0 we can no longer update version control attribute since 
all set methods are abstract. We thought we can increment version 
control within ejbStore but jboss can call it without even any entity 
bean attribute change (very inpredictable). So, we thought we can use 
optimistic tag and specify version control attribute within 
jbosscmp-jdbc, but this doesn' t seem to be the case either.

I have the following questions:
1) When bean developer specifies version control attribute, does jboss 
update its value?
Yes.

2) If it does, then does jboss compare its value in Value Object Pattern 
scenario and throw any exception? If it does then what is the exception 
type?
On synchronization, the version field is added to the WHERE clause of 
the UPDATE statement. Like UPDATE  WHERE PK = ? AND VERSION = ?
If failed, TransactionRolledBack exception is thrown.

3) If jboss doesn't compare, is there a way that bean developer can 
compare to let client know of differences?
The version field can be implicit and explicit. Explicit means it is a 
real cmp-field that has CMP getter and setter and is declared in 
ejb-jar.xml. JBoss will update this field as above. And you still can 
use its getter to check the value.

4) If none of these applies then I would like to hear how this 
optimistic tag with version-control works so we can try to use jboss 
with CMP 2.0
Seems to be answered.

5) Is there any other way to do version control check in jboss using CMP 
2.0 to avoid stale objects problem (weblogic has similar version control 
and automatically checks and throws exception if versions do not match).
How does it work in weblogic?

It seems like with CMP 2.0 it is the container's responsibility to 
provide for this type of solution.
Yes. But this is not defined in the spec.

If jboss doesn't have this then how 
can we use jboss with CMP 2.0 in production.
I think, you can do it.

Or, because of this, we 
have to use CMP 1.1 only if we still want to stay on jboss.

I really appreciate the response.
Thanks,
Misak


This message and any attachments are intended only for the use of the 
addressee and may contain information that is privileged and 
confidential. If the reader of the message is not the intended recipient 
or an authorized representative of the intended recipient, you are 
hereby notified that any dissemination of this communication is strictly 
prohibited. If you have received this communication in error, please 
notify us immediately by e-mail and delete the message and any 
attachments from your system.



---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278alloc_id=3371op=click
___
JBoss-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-user


[JBoss-user] RE: How to implement version control using Value Object Pattern in CMP 2.0

2003-12-12 Thread Boulatian, Misak



Hi, We have a big problem using EJB 2.0 with 
jboss. We use Updatable Value Object Pattern 
(currently, Transfer Object Pattern). This means we have individual get 
and set methods in entity bean's remote interface and also have setData methods 
to make changes in entity bean's attributes in one remote method call. As you 
know, this may introduce Stale Value Objects. Before considering using CMP 2.0 
we were using CMP 1.1. We had version control attribute that was updated in 
every set method call of bean class. getData method copied the current value of 
version control in the Value Object and sent it to the client. When updated 
Value Object was sent back through setData, the implementation of setData within 
bean class compared version attribute value with the copy of the bean class and 
threw appropriate exception if they were 
not the same. Using CMP 2.0 we can no longer update version control 
attribute since all set methods are abstract. We thought we can increment 
version control within ejbStore but jboss can call it without even any entity 
bean attribute change (very 
inpredictable). So, we thought we 
can use optimistic tag and specify version control attribute within 
jbosscmp-jdbc, but this doesn' t seem to be the case either.I havethe following questions:1) When bean 
developer specifies version control attribute, does jboss update its 
value?2) If it does, then does jboss compare its value in Value Object 
Pattern scenario and throw any exception? If it does then what is the exception 
type? 3) If jboss doesn't compare, is there a way that bean developer can 
compare to let client know of differences? 4) If none of these applies then 
I would like to hear how this optimistic tag with version-control works so we 
can try to use jboss withCMP 2.0 
5) Is there any other way to do version control check in jbossusing CMP 2.0 to avoid stale objects problem 
(weblogic has similar version control and automatically checks and throws 
exception if versions do not match).

It seems like with CMP 2.0 it is the container's responsibility to 
provide for this type of solution. If jboss doesn't have this then how can we 
use jboss with CMP 2.0 in production. Or, because of this, we have to use CMP 
1.1 only if we still want to stay on jboss.I really 
appreciate the response. Thanks, Misak
This message and any attachments are intended only for the use of the addressee and
may contain information that is privileged and confidential. If the reader of the 
message is not the intended recipient or an authorized representative of the
intended recipient, you are hereby notified that any dissemination of this
communication is strictly prohibited. If you have received this communication in
error, please notify us immediately by e-mail and delete the message and any
attachments from your system.