Bookshelf Home | Contents | Index | Search | PDF |
Configuration Guidelines > Performance Guidelines > Multivalue Link Underlying Multivalue Groups >
CheckNoMatch
The property CheckNoMatch may be set to TRUE or FALSE. This property controls the application's behavior when an MVL uses a primary join, but the primary ID field has the value No Match Row Id.
Typically, when a multivalue link has been configured with a primary join, the foreign key used by this join to identify the primary record may not match the primary record. For example, this can happen when the primary record has been deleted from the multivalue group or the multivalue group is new and has no records. In these cases, you can configure the multivalue link to update the primary foreign key to a value of NULL, or to a special value of NoMatchRowId, depending on your requirements. You configure this behavior through the Check No Match property of the Multi Value Link object type; however, there are consequences for the application's performance. The special NoMatchRowId value is designed to prevent secondary queries on foreign key values that are known to have failed, which improves performance the same way using a primary join improves performance.
You activate the NoMatchRowId generating and subsequent testing of behavior by setting Check No Match to FALSE for the MVL. This setting has the following results:
- When you have a master record where the primary foreign key is NULL or invalid, do a secondary query to determine if there are detail records in the multi-value group. If there are no detail records, set the primary ID field to the special value NoMatchRowId.
- When you have a master record where the primary foreign key has the value NoMatchRowId, this tells the system that there are no detail records in the multi-value group and the secondary query is not performed. This is not a permanent setting—you can update the primary after it is set to NoMatchRowId.
When this property is set to TRUE, check to see that there really are no child records. Do this check by executing a query against the child business component. If, in this case, the Auto Primary property is set to Default, the first record returned is set as the primary. If the Auto Primary property is set to SELECTED, check to determine whether any other multi-value link to this business component has indicated a primary, and set that record as the primary of this multi-value link.
AutoPrimary, CheckNoMatch and Performance
The combined settings of either of the following attributes and values will cause reduced performance in an environment with a high number of parent records without primary child records, as the application is forced to check the existence of child records by executing secondary queries. Both settings of the AutoPrimary property allow the user to set only the primary child records, so the reduced performance could have a long duration.
Consider using the same environment with a high number of parent records without primary child records and the following settings:
This configuration could also cause poor performance when displaying the parent records for the first time. Setting CheckNoMatch forces the application to execute a second query to check the existence of the child records. Because of the AutoPrimary property setting, the application sets the first read child record as the primary. This way, the parent records get a primary child record, and the performance significantly improves the next time these parent records are displayed.
Set Check No Match to FALSE for most multi-value links because of the performance consequences. Set it to TRUE only if the multi-value group could possibly have records added to it without going through the multi-value group itself. For example, account addresses might actually be inserted through the Business Address multi-value group on the Contact business component instead of the Business Address multi-value group on the Account business component. Also, if records can be added to the detail business component through Enterprise Integration Manager, the TRUE setting is the appropriate one.
Bookshelf Home | Contents | Index | Search | PDF |
Configuration Guidelines Published: 18 April 2003 |