oops this is the one I meant to suggest the link to service engine and FAQ
Jacques Le Roux sent the following on 9/13/2011 10:24 PM: > Thanks Anne, > > I don't see a better place either. > > Jacques > > From: "Anne" <[email protected]> >> I've added a page to the wiki at >> https://cwiki.apache.org/confluence/display/OFBIZ/SECAs+and+Error+and+Failure+Management >> >> summarising my findings on secas and error/failure handling. >> >> I couldn't find an obvious place to link to it from, so as yet there >> are no links to it from anywhere else in the wiki. Does anyone have >> any suggestions? If no one has a better idea, I could add a link from >> the Misc section of the FAQ. >> >> Comments/corrections/suggestions welcome. >> >> Cheers, >> Anne. >> >> On 6 September 2011 20:58, Scott Gray <[email protected]> wrote: >>> The main service will never run if an error condition exists, I don't >>> think that is something I would consider unexpected. I'm not really >>> sure why the context validation is skipped but I don't think it >>> matters much since the main service won't be run anyway. But anyway, >>> just consider the main service to be set as run-on-error="false" >>> permanently. >>> >>> Aside from this there is the whole issue of transactions to consider, >>> if a service error results in a transaction rollback then that will >>> effect all other service calls executed within the same transaction. >>> >>> Regards >>> Scott >>> >>> On 6/09/2011, at 10:19 PM, Anne wrote: >>> >>>> Thanks Scott. But I now think it's more complicated than that. >>>> >>>> After BJ's comment I spent nearly all of today going through the code >>>> (ServiceDispatcher.java and friends) to try to answer my question. I >>>> had hoped to avoid doing that, for what I thought was a simple >>>> question. >>>> >>>> It's looking like it wasn't a simple question after all. In the >>>> example you give, nothing after the "in-validate" event will be run >>>> (assuming all have run-on-error="false"). However if instead we set >>>> run-on-error="true" everywhere, then once the in-validate action has >>>> an error, validation of the IN data will be skipped, and the main >>>> service will *not* be run, but all the other SECAs will be run. Not >>>> what I would have expected. >>>> >>>> I intend continuing through ServiceDispatcher and friends tomorrow. >>>> Once I'm done, I'll write up something that will hopefully help the >>>> next person who has questions about secas and errors/failures. >>>> >>>> Cheers, >>>> Anne. >>>> >>>> On 6 September 2011 17:47, Scott Gray <[email protected]> >>>> wrote: >>>>> run-on-error="true", run this eca service even when the main >>>>> service flow contains an error condition >>>>> ignore-error="true", do not allow an error return from this service >>>>> to cause an error condition in the main service flow >>>>> >>>>> For example if you have a "validate" event eca with >>>>> ignore-error="false" that when executed it returns an error, and >>>>> you then you have an "invoke" event eca with run-on-error="false" >>>>> then this eca will not be executed because an error condition exists. >>>>> >>>>> Regards >>>>> Scott >>>>> >>>>> On 6/09/2011, at 11:56 AM, Anne wrote: >>>>> >>>>>> Does anyone know how "run-on-error" (eca tag) and "ignore-error" >>>>>> (action tag) attributes work for a SECA that is set to run at invoke >>>>>> time? The documentation's wording suggests to me it is talking >>>>>> about a >>>>>> commit or return SECA. >>>>>> >>>>>> Cheers, >>>>>> Anne. >>>>>> >>>>>> On 2 September 2011 15:35, Anne <[email protected]> wrote: >>>>>>> Hi >>>>>>> >>>>>>> I've successfully added secas many times before, but only on actions >>>>>>> that run after the service, such as "return" or "commit" events. >>>>>>> I now >>>>>>> need an "invoke" seca, and it isn't working the way I expected. So I >>>>>>> re-read the documentation, and all that did was confuse me. :-( >>>>>>> Searching the mailing list showed me plenty of examples that did >>>>>>> make >>>>>>> sense, but only for "return" or "commit" events, so they didn't help >>>>>>> me at all. >>>>>>> >>>>>>> At http://ofbiz.apache.org/docs/services.html#ECAs it says for >>>>>>> the eca >>>>>>> tag "run-on-error Should this ECA run if there is an error in the >>>>>>> service". I know the service it refers to is the one named in the >>>>>>> eca >>>>>>> tag. But if the event is set to invoke, the action service is run >>>>>>> before the eca service is invoked. Does this mean the run-on-error >>>>>>> attribute is irrelevant for an invoke event? >>>>>>> >>>>>>> Further down in the same page it says for the action tag >>>>>>> "ignore-error >>>>>>> Ignore any errors caused by the action service. If true the error >>>>>>> will cause the original service to fail. Default true.". Does this >>>>>>> mean, if ignore-error is true and the "invoke" action service >>>>>>> returns >>>>>>> an error, that: >>>>>>> >>>>>>> 1) the eca service will not be run, and an error will be returned >>>>>>> ( I >>>>>>> think not, as the attribute name would then be wrong)? OR >>>>>>> >>>>>>> 2) the eca service will not be run, but a failure will be >>>>>>> returned? OR >>>>>>> >>>>>>> 3) the eca service will be run, but a failure (or error) will be >>>>>>> returned no matter the result of the eca service? OR >>>>>>> >>>>>>> 4) the eca service will be run, and the return will be whatever the >>>>>>> eca service returns >>>>>>> >>>>>>> >>>>>>> What I'm trying to do is use a seca to check some things and not run >>>>>>> the main service if the seca action service fails/errors. Perhaps I >>>>>>> should be doing this on "auth" or "in-validate" events, but I'll >>>>>>> still >>>>>>> need a better understanding of "run-on-error" and "ignore-error". >>>>>>> >>>>>>> Anyone able to explain? >>>>>>> >>>>>>> Cheers, >>>>>>> Anne. >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Coherent Software Australia Pty Ltd >>>>>>> PO Box 2773 >>>>>>> Cheltenham Vic 3192 >>>>>>> Phone: (03) 9585 6788 >>>>>>> Fax: (03) 9585 1086 >>>>>>> Web: http://www.cohsoft.com.au/ >>>>>>> Email: [email protected] >>>>>>> >>>>>>> Bonsai ERP, the all-inclusive ERP system >>>>>>> http://www.bonsaierp.com.au/ >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Coherent Software Australia Pty Ltd >>>>>> PO Box 2773 >>>>>> Cheltenham Vic 3192 >>>>>> Phone: (03) 9585 6788 >>>>>> Fax: (03) 9585 1086 >>>>>> Web: http://www.cohsoft.com.au/ >>>>>> Email: [email protected] >>>>>> >>>>>> Bonsai ERP, the all-inclusive ERP system >>>>>> http://www.bonsaierp.com.au/ >>>>> >>>>> >>>> >>>> >>>> >>>> -- >>>> Coherent Software Australia Pty Ltd >>>> PO Box 2773 >>>> Cheltenham Vic 3192 >>>> Phone: (03) 9585 6788 >>>> Fax: (03) 9585 1086 >>>> Web: http://www.cohsoft.com.au/ >>>> Email: [email protected] >>>> >>>> Bonsai ERP, the all-inclusive ERP system >>>> http://www.bonsaierp.com.au/ >>> >>> >> >> >> >> -- >> Coherent Software Australia Pty Ltd >> PO Box 2773 >> Cheltenham Vic 3192 >> Phone: (03) 9585 6788 >> Fax: (03) 9585 1086 >> Web: http://www.cohsoft.com.au/ >> Email: [email protected] >> >> Bonsai ERP, the all-inclusive ERP system >> http://www.bonsaierp.com.au/ >> > > >
