Download PDF (1.3 MB) - IBM Redbooks
Download PDF (1.3 MB) - IBM Redbooks
Download PDF (1.3 MB) - IBM Redbooks
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Figure 3-2 shows an example of a good BPD design pattern.<br />
Figure 3-2 Good BPD design pattern<br />
3.<strong>1.3</strong> Use conditional joins only when necessary<br />
Simple joins use an “and” condition; all lines that head into the join must have an active token<br />
for the tokens to continue forward.<br />
By contrast, for conditional joins, all possible tokens must reach the join before they<br />
proceed. Thus, if you have a conditional join with three incoming lines, but only two of them<br />
currently have tokens (or might have tokens by looking upstream), then those two tokens<br />
must arrive at the join to proceed. To determine this condition, the BPD engine must evaluate<br />
all possible upstream paths to determine whether the tokens can arrive at the join. This<br />
evaluation can be expensive for large, complex BPDs. Use this capability judiciously.<br />
3.1.4 Guidelines for error handling<br />
Avoid global error handling in a service, which can use an excessive amount of server<br />
processor utilization and can even result in infinite loops in coaches.<br />
When catching errors on an activity in a BPD, do not route the error back to the same activity.<br />
Doing so causes the server to thrash between the BPD and service engine, using a large<br />
amount of Process Server processor time and also database processing.<br />
Chapter 3. Development best practices 25