[Glass] Gem go down when ex retry is manage for aBlock on: do:
Dario Trussardi
dario.trussardi at tiscali.it
Wed Jan 22 04:44:25 PST 2014
Ciao,
>
> Ciao,
>
>> Dario,
>>
>> Yes, trying to do a seaside callback inside the exception is a use case that has not been tested in GemStone, so I am not surpirsed that it causes a nasty problem...
>>
>> Off the top of my head, I can think of a couple of different approaches:
>>
>> - given that it may take time for the print connection to succeed, I'd replace the
>> Delay loop with a call to a sevice vm that way the seaside gem is not blocked
>> while waiting for the print job to be handled
>
> what service ?
>
>> - you might be able to successfully trigger a dialog to pop up if you can
>> avoid making the jquery call inside the exception block ... something where you
>> set a flag inside the exception block and pop up the dialog for retry in the
>> code following the exception might work as well ...
>
> How i can open a pop up when exception occured ?
>
> Anyone has an example about it ?
>
>
>>
>> There might be other approaches as well...
>>
>
> I change my code for go out from exception : ex return: false
>
> and manage a new request .
>
> With this the whileFalse loop ok two times, after the gem go down.
>
> [ stampaok] whileFalse:[
> stampaok := true.
> [TicketBaseTipoCentriCarico newOn: dcmModel dettagli: tfDettagli onPrinter: rfrMaster aPrinterTicket ]
> on: Error do: [:ex |
> self jqDialog: (DTRCassaDialogConferma openOnException: ex onModel: dcmModel)
> title: 'ERRORE STAMPA'.
>
> stampaok := false.
> ex return: false.
> ]
> ].
>
> I allegate the relative WAFast*** .log.
>
> Thanks,
>
> Dario
>
> <WAFastCGIAdaptor_server-9040.log>
> <WAFastCGIAdaptor_start-9040.log>
>
I semplificate the code:
[ stampaok] whileFalse:[
stampaok := true.
[ Error signal: 'error' ]
on: Error do: [:ex | self inform: 'ERRORE STAMPA'.
stampaok := false.
ex return: false. ].
].
It loop well two times after the gem go down.
I wrong something ?
Thanks,
Dario
>
>
>
>
>> Dale
>>
>>
>> On Tue, Jan 21, 2014 at 8:41 AM, Dario Trussardi <dario.trussardi at tiscali.it> wrote:
>> Hi,
>>
>> > HI,
>> >
>> > i have a code to open tcp/ip connection and send data to relative printer device.
>> >
>> >
>> > The code work fine into Pharo but i have problem into GLASS.
>> >
>> >
>> > The code is :
>> >
>> > [TicketBaseTipoCentriCarico newOn: dcmModel dettagli: tfDettagli onPrinter: rfrMaster aPrinterTicket ]
>> >
>> > on: Error do: [:ex |
>> >
>>
>> i remove the jqDialog user action
>>
>> > self jqDialog: (DTRCassaDialogConferma openOnException: ex onModel: dcmModel)
>> >
>> > title: 'ERRORE STAMPA'.
>> >
>> and add : ( Delay forSeconds: 20) wait.
>>
>> >
>> > ex retry]
>> >
>>
>> With this code the ex retry work fine : it loop until the connection is ok.
>>
>>
>> A this point how i can manage the browser interface to advised the user of the connection problem and resubmit the printer task ?
>>
>>
>> The AbstractException class retry method is :
>>
>> AbstractException retry
>> "When sent within an ANSI handler's handlerBlock ,
>> resume execution by sending #value to the receiver of the
>> #on:do: send which installed the currently active handlerBlock ,
>> and using the stack frame of that #on:do: .
>>
>> Any ensure: blocks between top of stack and that #on:do: will
>> be executed and stack trimmed back before resuming execution.
>>
>> Generates an error if sent within a legacy handler's handlerBlock,
>> or if stack trim would cross the frame of a C primitive or user action."
>>
>> ^self retryUsing: nil
>>
>> This user action is in conflict with the jqDialog ???
>>
>> Thanks for any advise,
>>
>> Dario
>>
>> >
>> > A) The block :
>> >
>> > [TicketBaseTipoCentriCarico newOn: dcmModel dettagli: tfDettagli onPrinter: rfrMaster aPrinterTicket ]
>> >
>> >
>> > open a tcp/ip connection and send data to the printer.
>> >
>> > B) The on: Error do: [:ex |
>> >
>> > is define to manage some connection problem ( for example if the tcp/ip printer is off )
>> >
>> > If this happens the jqDialog is open to indicate at the user the problem.
>> >
>> >
>> >
>> > Now in Pharo when i have a connection problem and the: ex retry is execute all work fine,
>> >
>> > and the retry loop with jqDialog segnalation until the connection is ok, and the ticket is printed.
>> >
>> >
>> > Into GLASS when i have connection problem and the: ex retry is execute the relative gem go down
>> >
>> > and i need soon to restart the GLASS environment (All WAFastCGIAdaptor is down )
>> >
>> >
>> > Thanks for any considerations.
>> >
>> > Dario
>> >
>> > P.S. Of course if the connection is ok all works fine in both the environment.
>> > _______________________________________________
>> > Glass mailing list
>> > Glass at lists.gemtalksystems.com
>> > http://lists.gemtalksystems.com/mailman/listinfo/glass
>>
>> _______________________________________________
>> Glass mailing list
>> Glass at lists.gemtalksystems.com
>> http://lists.gemtalksystems.com/mailman/listinfo/glass
>>
>
> _______________________________________________
> Glass mailing list
> Glass at lists.gemtalksystems.com
> http://lists.gemtalksystems.com/mailman/listinfo/glass
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/private/glass/attachments/20140122/a4c07517/attachment.html>
More information about the Glass
mailing list