Yeah truly...

I put in a feature request to witango to have some kind of tag to designate
the start/stop of a section of code that needed to be threadsafe so that it
could handle things like this in some way, not sure if thats real feasible
but i hope it is!

In our code w/ our DB we have had collisions occur and found a way around
them maybe this can help you out.

We'd have 2 dbms' one right after the other like this:

selext max(id) from table

insert into table id, userno, description values
@@local$resultset[1,1],@@user$gvuserno,'Test'

what would happen is that 2 different requests would occur almost at the
same time so they would get the same ID#, the second insert would throw an
error since we put a unique restraint on the id.  This is anoying when you
have to go through and manualy fix data ):

we tried a few different techniques and finaly what we did was make a helper
table that had 2 columns, one was an auto-incremented integer, and the other
was a user reference.

instead of selecting the max(id) from the first table, we'd insert the user
reference into the second table, then select max(id) from the second table
where the user reference = the user's user reference.  That would give us
the ID to use in the insert.

The auto-numbering of the column is what saved us here by giving us some
thread safeness,assuring that each request for an ID resulted in a unique
ID.

It might take some imagination but maybe there's some way you can adapt this
to your problem.

----- Original Message ----- 
From: <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, April 22, 2004 11:46 AM
Subject: RE: Witango-Talk: Sleep & While + explanations


>
> Yes, that would work cause I have already used it, but I thought it was
not
> very "elegant"! ;-)
>
> The resource in question is the DB; I am still unsure how to avoid a dead
> lock or race conditions.
> I wish With provided a real example on this issue (rather than the
assurance
> that there is always a QUERYTIMEOUT that kicks in).
>
>
>
> -----Original Message-----
> From: Alan Wolfe [mailto:[EMAIL PROTECTED]
> Sent: Thursday, April 22, 2004 10:52
> To: [EMAIL PROTECTED]
> Subject: Re: Witango-Talk: Sleep & While + explanations
>
> wow, im amazed, i thought i had tried that before and it worked.
>
> well...you could always do it this way, not quite an infinite while loop
but
> maybe close enough for your needs.
>
> This "feature" could also double as a timeout period :P
>
> <@for start=0 stop=100000000 step=1>
>   <@if expr="(expression here)">
>     <@break>
>   </@if>
> </@for>
>
> still doesnt help w/ the sleeping though.
>
> what kind of resource are you waiting on by the way?  maybe with a little
> more info we could come up with an alternate plan of attack to this?
>
> ----- Original Message -----
> From: <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Thursday, April 22, 2004 10:28 AM
> Subject: RE: Witango-Talk: Sleep & While + explanations
>
>
> >
> > I have tried that, but if Step=0, the execution does not enter the
<@FOR>
> > loop.
> > The same is true if Stop < Start.
> >
> > Mike
> > -----Original Message-----
> > From: Alan Wolfe [mailto:[EMAIL PROTECTED]
> > Sent: Thursday, April 22, 2004 09:54
> > To: [EMAIL PROTECTED]
> > Subject: Re: Witango-Talk: Sleep & While + explanations
> >
> > you can use an <@for> like a while loop like so:
> >
> > <@for start=0 stop=1 step=0>
> >
> >   <@if expr="(while expression goes here)">
> >     <@break>
> >   </@if>
> >
> > </@for>
> >
> >
> > ----- Original Message -----
> > From: [EMAIL PROTECTED]
> > To: [EMAIL PROTECTED]
> > Sent: Thursday, April 22, 2004 9:25 AM
> > Subject: RE: Witango-Talk: Sleep & While + explanations
> >
> >
> >
> > I need sleep() (on the server side) to wait for availability on a locked
> > resource ( without loading the CPU ).
> > If I use an external procedure (dos wait) I am not sure what is the
delay
> > needed to load the DOS interpreter; and I would prefer not to bind the
the
> > solution to an OS. Java can solve all this (provided it is already
loaded)
> > but I was curious to see if somebody found a simpler way.
> >
> > I was aware of while action and that would work just fine; however that
> > means I end up fragmenting a results page action; I'd rather use <@FOR>
if
> I
> > can make it act as a while (which can be done in all programming
languages
> > that I know), but I found no way to do that with witango.
> >
> > I wonder, since there are <@TIMER> and <@FOR> metatags, why not <@SLEEP>
> and
> > <@WHILE> as well? They are obviously closely related and I assume they
> > cannot be that difficult to implement...
> >
> >
> > Thank you for all your suggestions.
> > Mike Bravu.
> >
> >
> >
> >
> >
> >
> >
> > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> > Sent: Thursday, April 22, 2004 03:28
> > To: [EMAIL PROTECTED]
> > Subject: Witango-Talk: Sleep & While
> >
> >
> > Hello all,
> >
> > Can anybody help me out with the Witango equivalents for:
> > 1- sleep( milliseconds );   and
> > 2- while( true ) { }
> >
> > The solutions that I found are not acceptable:
> > 1-  except for using externals, if I try to use <@TIMER> it seems I burn
> the
> > CPU, which is not what I want;
> > 2-  <@FOR> </@FOR> does not really work or I do not know how to setup
> > Start/Step/Stop
> >
> > If the solution is already explained in the documentation I apologize, I
> > just could not find it.
> >
> >
> > Thank you,
> > Mike Bravu
> > ________________________________________________________________________
> > TO UNSUBSCRIBE: Go to http://www.witango.com/developer/maillist.taf
> >
> > ________________________________________________________________________
> > TO UNSUBSCRIBE: Go to http://www.witango.com/developer/maillist.taf
> >
> > ________________________________________________________________________
> > TO UNSUBSCRIBE: Go to http://www.witango.com/developer/maillist.taf
> >
> > ________________________________________________________________________
> > TO UNSUBSCRIBE: Go to http://www.witango.com/developer/maillist.taf
>
> ________________________________________________________________________
> TO UNSUBSCRIBE: Go to http://www.witango.com/developer/maillist.taf
>
> ________________________________________________________________________
> TO UNSUBSCRIBE: Go to http://www.witango.com/developer/maillist.taf

________________________________________________________________________
TO UNSUBSCRIBE: Go to http://www.witango.com/developer/maillist.taf

Reply via email to