[OFBiz] Users - How does one keep a sync'd service fromrescheduling?

A. Zeneski jaz at ofbiz.org
Wed Aug 25 14:53:34 EDT 2004


And both of these methods are really all in the same. The method on the 
dispatcher is a way to force certain instances of a service without 
flagging the service in general to run in this way.

This is exactly what it was intended to be used for. :)

On Aug 25, 2004, at 2:41 PM, Mike Baschky wrote:

> Hi Again,
> 	Ok this issue is solved if you have the services run in different 
> transactions. If they run in the same transaction and service A fails 
> then the whole thing fails and ofbiz reschedules the originating 
> service (B). So there are two ways to solve this. One, in the 
> service.xml use the require-new-transaction="true" attribute in the 
> service definiton. Two, tell service A to run in a sperate transaction 
> by using "dispatcher.runSync( String servicename,  Map context, int 
> transactiontimeout, boolean requireNewTransaction)" method signature. 
> Either one appears to work.
>
> Mike
>
> -----Original Message-----
> From: Mike Baschky
> Sent: Tuesday, August 24, 2004 4:41 PM
> To: users at lists.ofbiz.org
> Subject: [OFBiz] Users - How does one keep a sync'd service
> fromrescheduling?
>
>
> Hi,
> 	I'll try and keep this from getting to convoluted - what I want to do 
> is kick off a sync'd service(A) inside another service (B) and if 
> service A fails I want to handle the issue in service B (i.e., I don't 
> want ofbiz to reschedule anything). However what I'm finding is that 
> when I kick of service B which in turn kicks off service A (sync'd) 
> and service A fails ofbiz reschedules Service B??? As a trival 
> example:
>
>            SERVICE A:
> 	public static Map retrieveGO50RankReport( DispatchContext dctx, Map 
> context ) {
> 		Map resultMap = new HashMap();
> 		((Map) resultMap).put(ModelService.RESPONSE_MESSAGE, 
> ModelService.RESPOND_ERROR);
> 		
> 		return resultMap;
> 	}
>
>
>
> 	SERVICE B:
> 	
> 	public static Map failGO50RankReport( DispatchContext dctx, Map 
> context ) {
> 		Map rresultMap = new HashMap();
> 		LocalDispatcher dispatcher = dctx.getDispatcher();
>        	try {
>
>         		rresultMap = dispatcher.runSync("retrieveGO50RankReport", 
> context);
> 		Debug.logInfo("INSIDE THE MAP: "+ rresultMap.toString(), module);
>         	} catch (GenericServiceException e) {
>             	//DO nothing
>
>            }		
> 		return ServiceUtil.returnSuccess();;
>
> 	}
>
> When I kick off service B via webtools and A fails I get B being 
> rescheduled and an error about 'commit transactions failing with a 
> null value.' Looking through the API I don't find a way of telling 
> sync'd services not to persist. I do find such abilities in in 
> runAsyncWait (dispatcher.runAsyncWait("retrieveGO50RankReport", 
> context, false)) and in runAsync 
> dispatcher.runAsync("retrieveGO50RankReport", context, false ). As I 
> said I'm kicking B off in webtools (job scheduling) for testing 
> purposes so is my issue maybe with webtools scheduling or am I missing 
> something more basic with Services. Thanks.
>
> Mike
>
> _______________________________________________
> Users mailing list
> Users at lists.ofbiz.org
> http://lists.ofbiz.org/mailman/listinfo/users
>
> _______________________________________________
> Users mailing list
> Users at lists.ofbiz.org
> http://lists.ofbiz.org/mailman/listinfo/users
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2094 bytes
Desc: not available
Url : http://lists.ofbiz.org/pipermail/users/attachments/20040825/a2cd2dcf/smime.bin


More information about the Users mailing list