struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From theron.kou...@webmd.net
Subject Re: Hi Folks, 2 questions about Actions and their instance
Date Mon, 01 Apr 2002 18:46:40 GMT

The mm mysql jdbc driver has a last_insert_id() method to call after an
insert.   It's the only way the driver returns you that info.    What I
don't know though is how "accurate" it is?    I think you can shoot
yourself in the foot if the call to it is not properly encapsulated within
a thread-safe/synchronized context.     I'd hate for a call to
last_insert_id() to return a different id (someone else's insert that just
so happened between my insert and the call to last_insert_id()).

Therefore I think encapsulating this within a sync method and having an
action invoke it (like someone else on this group mentioned) may be the way
to go on this.

thanks,
Theron



                                                                                         
              
                    Struts                                                               
              
                    Newsgroup            To:     struts-user@jakarta.apache.org          
              
                    <struts@baseb        cc:                                          
                 
                    eans.com>            Subject:     Re: Hi Folks, 2 questions about Actions
and their 
                                         instance                                        
              
                    04/01/02                                                             
              
                    10:40 AM                                                             
              
                    Please                                                               
              
                    respond to                                                           
              
                    Struts Users                                                         
              
                    Mailing List                                                         
              
                                                                                         
              
                                                                                         
              



Subject: Re: Hi Folks, 2 questions about Actions and their instance
From: Vic Cekvenich <vic@basebeans.com>
 ===
Imeditely calling is not good enough. You must use a JDBC driver
specific call that returns the last "affected rows" ID.
This gives you the new PK.
Vic

theron.kousek@webmd.net wrote:

>>>There are 2 different path elements but both refer to the same Action
>>>
> class
>
>>>instance...    Does this mean 2 static instances of
>>>BillingActionPreloadForm will exist or will only just 1 exist between
>>>
> the 2
>
>>>different action mappings that link to the same class?
>>>
>
>>I don't know, but it doesn't matter.  You should always assume that
>>any specific instance of an Action class could potentially serve multiple
>>threads at once.  Or else what's the point of putting your app on the
>>web?  ;-)
>>
>
> Reason I brought this up is that I plan to use mysql.    Mysql has those
> AUTO INCREMENT fields and I want to insert a record and immediately call
> last_index_id()  to get the newly inserted row.    If I do this is just
one
> and only one action, I may be able to prevent a timing/race condition by
> which last_index_id() may accidentally be returned from the wrong insert.
> I definitely want to prevent that from happening.
>
> thanks,
> Theron
>
>
>
>
>                     Jim Crossley
>                     <jcrossley@if        To:     Struts Users Mailing
List
>                     leet.com>            <struts-user@jakarta.apache.org>
>                                          cc:
>                     04/01/02             Subject:     Re: Hi Folks, 2
questions about Actions and their
>                     09:02 AM             instance
>                     Please
>                     respond to
>                     Struts Users
>                     Mailing List
>
>
>
>
>
> theron.kousek@webmd.net writes:
>
> [...]
>
>
>>So here's my 2 question(s):
>>
>>1.   I then assume that "perform()" is synchronized
>>
>
> No.  If all data objects are local to the perform method, there's no
> reason for it to be synchronized.  If the data objects referred to in
> perform are shared, then their access should probably be synchronized,
> but not necessarily.
>
>
>>2.  What about those cases where 2 different action mappings resort to
>>
> the
>
>>same action class?
>>
>
> [...]
>
>
>>There are 2 different path elements but both refer to the same Action
>>
> class
>
>>instance...    Does this mean 2 static instances of
>>BillingActionPreloadForm will exist or will only just 1 exist between the
>>
> 2
>
>>different action mappings that link to the same class?
>>
>
> I don't know, but it doesn't matter.  You should always assume that
> any specific instance of an Action class could potentially serve multiple
> threads at once.  Or else what's the point of putting your app on the
> web?  ;-)
>
> -- Jim
>
> --
> To unsubscribe, e-mail:   <
> mailto:struts-user-unsubscribe@jakarta.apache.org>
> For additional commands, e-mail: <
> mailto:struts-user-help@jakarta.apache.org>
>
>
>
>
> --
> To unsubscribe, e-mail:   <
mailto:struts-user-unsubscribe@jakarta.apache.org>
> For additional commands, e-mail: <
mailto:struts-user-help@jakarta.apache.org>
>


--
To unsubscribe, e-mail:   <
mailto:struts-user-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <
mailto:struts-user-help@jakarta.apache.org>




--
To unsubscribe, e-mail:   <mailto:struts-user-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:struts-user-help@jakarta.apache.org>


Mime
View raw message