struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Neil Pitman <npit...@interlink.net>
Subject Re: Hi Folks, 2 questions about Actions and their instance
Date Tue, 02 Apr 2002 05:42:47 GMT
Theron,

If there are two API call to make then you MUST synchronize the code, 
either with a synchronized block or a synchronized method.  Even if it 
were only one API call it would be better to synchronize, unless you 
were sure that the API correctly handled (and would always correctly 
handle) the synchonization.



theron.kousek@webmd.net wrote:

> 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>
> 
> 


-- 
Neil Pitman
npitman@interlink.net
+1.514.863.5465


--
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