| Author | Message | 
		
		  | spprash | 
			  
				|  Posted: Tue Jul 15, 2003 7:42 am    Post subject: [SOLVED]Slow Response for Block Activity |   |  | 
		
		  | Apprentice
 
 
 Joined: 29 Dec 2002Posts: 25
 
 
 | 
			  
				| I have defined an activity within a block. The block is supposed to iterate till a specific condition is met. The activity inside is a manual activity and I complete the activity using checkin and checkout. Unforunately the checkin for the activity within the block consumes nearly 100 seconds compared to the 1 sec it took prior to placing it inside a block. 
 Is there any reason why such a behavior is exhibited by workflow.
 _________________
 Prash
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | jmac | 
			  
				|  Posted: Tue Jul 15, 2003 8:27 am    Post subject: |   |  | 
		
		  |  Jedi Knight
 
 
 Joined: 27 Jun 2001Posts: 3081
 Location: EmeriCon, LLC
 
 | 
			  
				| Something is wrong, I am hard pressed to believe that this can happen.  If the FDL and the code are small, please post them so we can all have a look. _________________
 John McDonald
 RETIRED
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | Ratan | 
			  
				|  Posted: Tue Jul 15, 2003 8:40 am    Post subject: |   |  | 
		
		  |  Grand Master
 
 
 Joined: 18 Jul 2002Posts: 1245
 
 
 | 
			  
				| If you are trying to loop a manual activity within a block, why do you need a block? you can as well have exit condition for the activity and loop with out having to use a block. _________________
 -Ratan
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | spprash | 
			  
				|  Posted: Tue Jul 15, 2003 8:20 pm    Post subject: |   |  | 
		
		  | Apprentice
 
 
 Joined: 29 Dec 2002Posts: 25
 
 
 | 
			  
				| The FDL for the Block Activity is attached below 
 CODEPAGE 1252
 FM_RELEASE V3R3 2
 
 BLOCK 'Approval Block' ( 'WORKITEMDATA', 'WORKITEMDATA' )
 START WHEN AT_LEAST_ONE CONNECTOR TRUE
 EXIT WHEN "workItemUserMainList="""" or workItemResponse = ""REJECTED"" or workItemResponse = ""AUTOAPPROVED""" XPOS -300 YPOS 150
 LAYOUT XPOS -300 YPOS 300
 NAME_POSITION XPOS -300 YPOS 225
 WINDOW VIEW_REFERENCE_POINT XPOS 0 YPOS 325
 WINDOW SHOW ALL CONNECTORS
 WINDOW SHOW ALL CONDITIONS
 SOURCE 1 XPOS -700 YPOS 0
 SINK 2 XPOS 300 YPOS 0
 PROGRAM_ACTIVITY 'ACTION_APPROVE' ( 'WORKITEMDATA', 'WORKITEMDATA' )
 DOCUMENTATION "Approve Change Request"
 START MANUAL WHEN AT_LEAST_ONE CONNECTOR TRUE
 EXIT AUTOMATIC WHEN "_RC=0 or _RC=1 or _RC=2" XPOS -200 YPOS -150
 LAYOUT XPOS -200 YPOS 0
 NAME_POSITION XPOS -200 YPOS -75
 PRIORITY DEFINED_IN INPUT_CONTAINER
 EXPIRATION AFTER TAKEN_FROM "autoApprovalTime"
 DONE_BY PERSON TAKEN_FROM 'monitorID' 'workItemUserMainList'
 PROGRAM 'WORKITEM'
 SYNCHRONIZATION NESTED
 END 'ACTION_APPROVE'
 PROGRAM_ACTIVITY 'ACTION_APPROVE PENDING' ( 'WORKITEMDATA', 'WORKITEMDATA' )
 DOCUMENTATION "Change Request Approval Pending"
 START MANUAL WHEN AT_LEAST_ONE CONNECTOR TRUE
 EXIT AUTOMATIC WHEN "_RC=0 or _RC=1" XPOS -200 YPOS 350
 LAYOUT XPOS -200 YPOS 500
 NAME_POSITION XPOS -200 YPOS 425
 PRIORITY DEFINED_IN INPUT_CONTAINER
 EXPIRATION AFTER TAKEN_FROM "autoApprovalTime"
 DONE_BY STARTER_OF_ACTIVITY "Approval Block.ACTION_APPROVE"
 PROGRAM 'WORKITEM'
 SYNCHRONIZATION NESTED
 END 'ACTION_APPROVE PENDING'
 PROGRAM_ACTIVITY 'AUTOAPPROVED' ( 'WORKITEMDATA', 'WORKITEMDATA' )
 START AUTOMATIC WHEN AT_LEAST_ONE CONNECTOR TRUE
 EXIT AUTOMATIC
 LAYOUT XPOS 300 YPOS 500
 NAME_POSITION XPOS 300 YPOS 425
 PRIORITY DEFINED_IN INPUT_CONTAINER
 EXPIRATION AFTER 0 SECONDS
 DONE_BY PERSON 'UPES'
 PROGRAM 'FMCINTERNALNOOP'
 PROGRAM_EXECUTION_UNIT 'EMPTY.FMCSYS.FMCGRP'
 SYNCHRONIZATION CHAINED
 END 'AUTOAPPROVED'
 CONTROL
 FROM 'ACTION_APPROVE' TO 'ACTION_APPROVE PENDING'
 WHEN "approvalType = ""SINGLE"" and workItemResponse = ""PENDING"""
 XPOS -200 YPOS 225
 CONTROL
 FROM 'ACTION_APPROVE PENDING' TO 'AUTOAPPROVED'
 WHEN "_state()=_Expired"
 XPOS 50 YPOS 475
 CONTROL
 FROM 'ACTION_APPROVE' TO 'AUTOAPPROVED'
 WHEN "_state()=_Expired"
 XPOS -49 YPOS 126
 LAYOUT
 XPOS 0 YPOS 200
 DATA
 FROM 'ACTION_APPROVE' TO SINK 2
 MAP '_STRUCT' TO '_STRUCT'
 DATA
 FROM SOURCE 1 TO 'ACTION_APPROVE'
 MAP '_STRUCT' TO '_STRUCT'
 LAYOUT
 XPOS -400 YPOS 0
 DATA
 DEFAULT 'ACTION_APPROVE PENDING'
 MAP '_STRUCT' TO '_STRUCT'
 LAYOUT
 XPOS -200 YPOS 700
 XPOS -100 YPOS 700
 DATA
 DEFAULT 'ACTION_APPROVE'
 MAP '_STRUCT' TO '_STRUCT'
 LAYOUT
 XPOS -200 YPOS -200
 XPOS -100 YPOS -200
 DATA
 FROM 'ACTION_APPROVE PENDING' TO 'AUTOAPPROVED'
 MAP '_STRUCT' TO '_STRUCT'
 LAYOUT
 XPOS -100 YPOS 600
 XPOS 200 YPOS 600
 DATA
 DEFAULT 'AUTOAPPROVED'
 MAP '_STRUCT' TO '_STRUCT'
 MAP 'autoApprovedKey' TO 'workItemResponse'
 LAYOUT
 XPOS 300 YPOS 700
 XPOS 400 YPOS 700
 DATA
 FROM 'ACTION_APPROVE' TO 'AUTOAPPROVED'
 MAP '_STRUCT' TO '_STRUCT'
 LAYOUT
 XPOS -100 YPOS 0
 XPOS 300 YPOS 400
 DATA
 FROM 'ACTION_APPROVE' TO 'ACTION_APPROVE PENDING'
 MAP '_STRUCT' TO '_STRUCT'
 LAYOUT
 XPOS -300 YPOS 100
 XPOS -300 YPOS 400
 DATA
 FROM 'AUTOAPPROVED' TO SINK 2
 MAP '_STRUCT' TO '_STRUCT'
 LAYOUT
 XPOS 300 YPOS 100
 DATA
 FROM 'ACTION_APPROVE PENDING' TO SINK 2
 MAP '_STRUCT' TO '_STRUCT'
 END 'Approval Block'
 
 
 I have a requirement to route workitems to a multiple set of approvers and the number of approvers are dynamic. I need to proceed only after
 obtaining responses from all of them or on expiry of the assigned time.
 
 For this reason I have placed the manual activity (the staff for the activity is provided within a container element) within a block and every time a person gives his response using checkin function I remove his id from the container member containing all the approvers and loop back to the same activity. This brings the workitem to all the approvers except the id which was removed.  Unfortunately the checkin time takes over 100 secs. Could it be because I have incorporated the auto approval using the expiry time. But without the block the checkin consumes less than a sec.
 _________________
 Prash
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | spprash | 
			  
				|  Posted: Wed Jul 16, 2003 2:43 am    Post subject: |   |  | 
		
		  | Apprentice
 
 
 Joined: 29 Dec 2002Posts: 25
 
 
 | 
			  
				| Iam getting this error in the system log available in fmcautil 
 -  7/16/2003 4:01:50 PM FMCSYS: FMC31100W The message QryProcInstStatus could not be processed because of a database deadlock or timeout. The message will be retried.
 
 -  7/15/2003 8:52:30 PM FMCSYS: FMC31100W The message ChndTxnActImplComplete could not be processed because of a database deadlock or timeout. The message willbe retried.
 
 -  7/15/2003 8:56:30 PM FMCSYS: FMC31100W The message QryProcInstStatus could not be processed because of a database deadlock or timeout. The message will be retried.
 
 
 Can this database lock be the cause of the slow response time observed in checkin command for a block activity.
 _________________
 Prash
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | spprash | 
			  
				|  Posted: Wed Jul 16, 2003 4:04 am    Post subject: |   |  | 
		
		  | Apprentice
 
 
 Joined: 29 Dec 2002Posts: 25
 
 
 | 
			  
				| Hi I have overcome the above problem..I had to reconfigure Workflow to a new runtime database. I had used DB2 UDB in winnt. 
 Funny that such a problem exists only in block activity.
 _________________
 Prash
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | Ratan | 
			  
				|  Posted: Wed Jul 16, 2003 8:28 am    Post subject: |   |  | 
		
		  |  Grand Master
 
 
 Joined: 18 Jul 2002Posts: 1245
 
 
 | 
			  
				| When you are getting Database deadlock errors in your log, it is the time you did a database reorg and rebind wf executables. this will reduce the problem. Also if you havent, apply the latest Support pack. _________________
 -Ratan
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  |  |