Hi Nicolas,

I have no objection but I don't think it is something I would ever use.  I
would either fix the screen or increase the timeout for that specific
screen.

Regards
Scott

On Fri, 20 Sep 2019 at 20:20, Nicolas Malin <nicolas.ma...@nereide.fr>
wrote:

> Hello Scott, thanks for your return,
>
> in line ...
>
> On 9/17/19 10:45 AM, Scott Gray wrote:
> > Has anyone ever had a good experience with transaction timeouts?  I feel
> > like they achieve nothing useful in that:
> > 1. They don't interrupt any work that is taking too long (they just
> prevent
> > it from being committed)
> > 2. By the time the exception is thrown, all the work is already done and
> > the result is that it just gets thrown away in exchange for an error
> >
> > Surely there's a positive side to them, and I've just never seen it?
>
> Completely agree, it's also my life :) , transaction timeout it's just a
> pain to be sure that you waste your time.
>
> Currently the advantage that I saw, it's detect an unexpected too long
> service and help to spend enough time to optimize it or thinking about
> an other solution.
>
> > But Nicolas, in your case I think the solution lies elsewhere.  I don't
> > think it's ever ok for a screen to take over a minute to load and tie up
> > the http connection all that time.  Slow pages happen to all of us, but
> IMO
> > the solution always lies in making the screen faster, limiting the amount
> > of data that can be processed in a single request or by making the
> request
> > asynchronous.
>
> Sure, I'll join you there. It's generally my first step, currently I
> most concentrate on the second step, decrease error raise where there is
> no benefit.
>
> Do you have an objection if I implement the properties explained below
> with the current default value (60s)? Like this no change for general
> case, and for server with high load, free will for administrator site to
> adjust it.
>
> Cheers,
>
> Nicolas
>
> >
> > Regards
> > Scott
> >
> > On Wed, 11 Sep 2019 at 06:57, Nicolas Malin <nicolas.ma...@nereide.fr>
> > wrote:
> >
> >> Hi all,
> >>
> >> Since I increase the sensibility of error message [1], we have on
> >> different screen that take some time to rendering an  error throw due to
> >> transaction timeout.
> >>
> >> By default each screen is rendering with the default timeout (60s) that
> >> isn't enough when you have big data compilation or some external service
> >> latency.
> >>
> >> Of course it's possible to analyze each case with purpose to increase
> >> the screen velocity or set a transaction-timeout on screen definition,
> >> but as first easy step what do you think if we add a default transaction
> >> timeout for screen to 10 minutes with possibility to override by
> >> properties ?
> >>
> >> Example:
> >>
> >> *****************************
> >>
> >>
> >>
> framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelScreen.java
> >> @@ -122,7 +123,7 @@ public class ModelScreen extends ModelWidget {
> >>            // wrap the whole screen rendering in a transaction, should
> >> improve performance in querying and such
> >>            Map<String, String> parameters =
> >> UtilGenerics.cast(context.get("parameters"));
> >>            boolean beganTransaction = false;
> >> -        int transactionTimeout = -1;
> >> +        int transactionTimeout =
> >> UtilProperties.getPropertyAsInteger("widget",
> >> "widget.transaction.timeout.default", 600);
> >>            if (parameters != null) {
> >>                String transactionTimeoutPar =
> >> parameters.get("TRANSACTION_TIMEOUT");
> >>                if (transactionTimeoutPar != null) {
> >> @@ -152,12 +153,7 @@ public class ModelScreen extends ModelWidget {
> >>                // If transaction timeout is present, use it to start the
> >> transaction
> >>                // If transaction timeout is set to zero, no transaction
> >> is started
> >>                if (useTransaction) {
> >> -                if (transactionTimeout < 0) {
> >> -                    beganTransaction = TransactionUtil.begin();
> >> -                }
> >> -                if (transactionTimeout > 0) {
> >> -                    beganTransaction =
> >> TransactionUtil.begin(transactionTimeout);
> >> -                }
> >> +                beganTransaction =
> >> TransactionUtil.begin(transactionTimeout);
> >>                }
> >>
> >>                // render the screen, starting with the top-level section
> >>
> >> *******************************
> >>
> >> Any remarks ?
> >>
> >> In parallel i will investigate why the error message catch is so
> sensible.
> >>
> >> Nicolas
> >>
> >> [1] http://svn.apache.org/viewvc?view=revision&revision=1856175
> >>
> >> --
> >> logoNrd <https://nereide.fr/>
> >>          Nicolas Malin
> >> The apache way <http://theapacheway.com/> : *Charity* Apache’s mission
> >> is providing software for the public good.
> >> informat...@nereide.fr
> >> 8 rue des Déportés 37000 TOURS, 02 47 50 30 54
> >>
> >> Apache OFBiz <http://ofbiz.apache.org/>|The Apache Way
> >> <http://theapacheway.com/>|réseau LE <http://www.libre-entreprise.org/>
> >>
>

Reply via email to