| Author | Message | 
		
		  | steve_ghb | 
			  
				|  Posted: Tue Aug 01, 2006 9:25 am    Post subject: workitems in suspending state |   |  | 
		
		  | Novice
 
 
 Joined: 15 Jun 2005Posts: 13
 
 
 | 
			  
				| We have hundreds of process instances that are in suspending state.  We have a script that is supposed to terminate any process instances older than a specific date but it doesn't seem to terminate these. 
 Could a large number of these be causing performance problems we are having?  Even if not, how can we get rid of them without doing it one by one?  I tried terminating one of them and a got a timeout so that option may not be available anyway.
 
 Thanks
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | sarasu | 
			  
				|  Posted: Tue Aug 01, 2006 9:46 am    Post subject: |   |  | 
		
		  | Master
 
 
 Joined: 02 Feb 2006Posts: 229
 
 
 | 
			  
				| If you are using normal workflow runtime client, use a fileter to sort out all the instances and select all and delete will delete all the process instances. You can do that using API aswell. |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | koko | 
			  
				|  Posted: Tue Aug 01, 2006 10:02 am    Post subject: |   |  | 
		
		  |  Master
 
 
 Joined: 26 Sep 2003Posts: 206
 
 
 | 
			  
				| 
   
	| Quote: |  
	| We have hundreds of process instances that are in suspending state |  
 Do you know why this happened?
 _________________
 Thanks
 
 Koko
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | steve_ghb | 
			  
				|  Posted: Tue Aug 01, 2006 10:14 am    Post subject: |   |  | 
		
		  | Novice
 
 
 Joined: 15 Jun 2005Posts: 13
 
 
 | 
			  
				| 
   
	| Quote: |  
	| Do you know why this happened? |  
 Users are supposed to suspend a workitem if they cannot process it right away, for whatever reason sometimes they sit in suspending state instead of becoming suspended.  Haven't been able to figure out why.
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | koko | 
			  
				|  Posted: Tue Aug 01, 2006 10:26 am    Post subject: |   |  | 
		
		  |  Master
 
 
 Joined: 26 Sep 2003Posts: 206
 
 
 | 
			  
				| 
   
	| Quote: |  
	| Users are supposed to suspend a workitem if they cannot process it right away, for whatever reason sometimes they sit in suspending state instead of becoming suspended |  
 Initally you said that process instances are in suspending state not workitems.
 _________________
 Thanks
 
 Koko
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | steve_ghb | 
			  
				|  Posted: Tue Aug 01, 2006 10:47 am    Post subject: |   |  | 
		
		  | Novice
 
 
 Joined: 15 Jun 2005Posts: 13
 
 
 | 
			  
				| Oops, I meant suspend the instance |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | steve_ghb | 
			  
				|  Posted: Tue Aug 01, 2006 12:50 pm    Post subject: |   |  | 
		
		  | Novice
 
 
 Joined: 15 Jun 2005Posts: 13
 
 
 | 
			  
				| Which state value from process_inst table is the one for 'suspending'? 
 Actually if anyone can point me to a list of what all the state values translate to that would be great.
 
 Thanks alot
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | jmac | 
			  
				|  Posted: Tue Aug 01, 2006 3:25 pm    Post subject: |   |  | 
		
		  |  Jedi Knight
 
 
 Joined: 27 Jun 2001Posts: 3081
 Location: EmeriCon, LLC
 
 | 
			  
				| Here are the values for ProcessInstanceState 
 
   
	| Code: |  
	| enum FmcjProcessInstanceStateValue {
 Fmc_PS_NotSet      =   0,
 Fmc_PS_Ready       =   1, Fmc_PS_Running    =  2, Fmc_PS_Finished = 4,
 Fmc_PS_Terminated  =   8, Fmc_PS_Suspended  = 16,
 Fmc_PS_Terminating =  32, Fmc_PS_Suspending = 64,
 Fmc_PS_Deleted     = 128
 };
 |  You can find the values by doing a search on the *.h files int he API subdirectory of your MQWF installation
 _________________
 John McDonald
 RETIRED
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | xiaojiahuochen | 
			  
				|  Posted: Tue Aug 01, 2006 9:08 pm    Post subject: |   |  | 
		
		  | Newbie
 
 
 Joined: 11 Jul 2006Posts: 6
 
 
 | 
			  
				| first use query filter to query processinstance list then user code
 ProcessInstance.terminate()
 can terminate
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | hos | 
			  
				|  Posted: Tue Aug 01, 2006 11:48 pm    Post subject: |   |  | 
		
		  | Chevalier
 
 
 Joined: 03 Feb 2002Posts: 470
 
 
 | 
			  
				| Hi, 
 have a look into the Programming Guide, chapter 'Process Instance Actions'. There you'll find a state transition diagram that shows you the PI sates, the available transitions and the conditions for a state transition.
 
 Furthermore the Suspend() API describes the conditions for a state transition:
 
 "The process instance remains in state Suspending as long as there are running program activity implementations, suspending non-autonomous subprocesses, or checked-out work items. When the activity implementations completed their executions and the non-autonomous subprocesses reached the Suspended state, and when the checked-out work items are checked in, the process instance is put into the Suspended state."
 
 I personally do not think that it is a good idea to give end-users the authority to suspend process instances.
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | steve_ghb | 
			  
				|  Posted: Wed Aug 02, 2006 5:23 am    Post subject: |   |  | 
		
		  | Novice
 
 
 Joined: 15 Jun 2005Posts: 13
 
 
 | 
			  
				| Thanks all for the information, I'll have to do some research into this too, especially about why these instances are in suspending state.  I can't imagine there are that many workitems still checked out for instances that are several years old.  There must be something still running like you said. |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | steve_ghb | 
			  
				|  Posted: Wed Aug 02, 2006 11:42 am    Post subject: |   |  | 
		
		  | Novice
 
 
 Joined: 15 Jun 2005Posts: 13
 
 
 | 
			  
				| Problem is bigger than I thought at first.  Not so much worried about the suspending instances we can clean those out at some point. 
 Queried the db this morning and got the following numbers:
 
 # of process instances: 617,810 (I didn't filter for top level only)
 # in state=4(finished): 352,300
 
 Looks like our scheduling server isn't moving instances from finished to deleted state.  Keep time is 1 day but I know for sure we didn't finish over 350,000 instances in the last day or two.
 
 Here's our settings:
 
 -    Scheduling server settings
 -       Check interval                         PT1M
 -       Start mode                             Immediate
 -       Notification check interval            PT1M
 -       Create notification items threshold    10
 -       Delete notification items threshold    100
 
 
 -    Cleanup server settings
 -       Check interval                         PT1H
 -       Start mode                             Deferred
 -       Server start time                      Everyday at 02:00
 -       Server stop time                       04:30
 -       Cleanup time                           P1D
 -       Cleanup delay time                     PT1H
 
 
 Any ideas why these instances aren't getting changed to state 128?  also does anyone know what the ibm recommended settings are for these servers?  I don't know whay they were set to 'out of the box' and I'm sure they've been changed.
 
 Thanks
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | jmac | 
			  
				|  Posted: Wed Aug 02, 2006 12:24 pm    Post subject: |   |  | 
		
		  |  Jedi Knight
 
 
 Joined: 27 Jun 2001Posts: 3081
 Location: EmeriCon, LLC
 
 | 
			  
				| Are you certain that the cleanup server is running? 
 Do you see the cleanup server started/stopped messages in the log
 _________________
 John McDonald
 RETIRED
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | steve_ghb | 
			  
				|  Posted: Wed Aug 02, 2006 1:08 pm    Post subject: |   |  | 
		
		  | Novice
 
 
 Joined: 15 Jun 2005Posts: 13
 
 
 | 
			  
				| I thought the cleanup server physically deletes instances that are in state 128, and the scheduling server changes finished processes to state 128 for the cleanup server to delete? 
 Anyway, we ran queries this morning before, during, and after the cleanup server was scheduled (I haven't checked the logs yet) and here's what we got:
 
 before: 12,325 in state 128
 during: 12,325 in state 128 (don't know why yet it didn't do anything at first)
 
 after: 9,570 in state 128
 
 Definitely looks like there's a problem with the cleanup server but I'm more concerned that over half the process instances are finished and not getting cleaned up.
 
 I ran another query and over 175,000 of the finished instances have a completed time of before July 21.  They are supposed to be cleaned up after 1 day.
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | Ratan | 
			  
				|  Posted: Wed Aug 02, 2006 1:19 pm    Post subject: |   |  | 
		
		  |  Grand Master
 
 
 Joined: 18 Jul 2002Posts: 1245
 
 
 | 
			  
				| 
   
	| Quote: |  
	| I ran another query and over 175,000 of the finished instances have a completed time of before July 21. They are supposed to be cleaned up after 1 day. |  
 Just wondering if you might be looking at finished Activity Instances. May be the process instance is not finished yet.
 _________________
 -Ratan
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  |  |