FIX: ORM source model becomes stuck in an infinite loop when you show all constraints (321570)



The information in this article applies to:

  • Microsoft Visio for Enterprise Architects (2002), when used with:
    • Microsoft Visual Studio .NET (2002), Enterprise Architect Edition

This article was previously published under Q321570

SYMPTOMS

When you click Show All Constraints, the Lay Out Shapes dialog box appears in an endless loop.

CAUSE

This problem occurs when you delete the subset constraint from the existing page but you do not delete the model, and then you delete another page in an Object Role Modeling (ORM) Source Model.

RESOLUTION

To prevent this problem, install the latest service release for Visio for Enterprise Architects 2002.

For additional information, click the article number below to view the article in the Microsoft Knowledge Base:

320765 Visio2002: How to Obtain the Latest Visio for Enterprise Architects 2002 Service Release

WORKAROUND

To work around this problem, use the Task Manager to close Visio.

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article. This problem was first corrected in Visio for Enterprise Architects 2002 Service Release 1 (SR-1).

MORE INFORMATION

Steps to Reproduce the Behavior

To reproduce the problem, follow these steps:
  1. On the File menu, point to New, point to Database, and then click ORM Source Model.
  2. On the Database menu, point to View, and then click Fact Editor.
  3. On the Fact tab, type Person for the Object Name, has for the Relationship, and Dog for the second Object Name. Click Apply.
  4. On the Fact tab, type Person for the Object Name, has for the Relationship, and Kennel for the second Object Name. Click OK.
  5. On the Database menu, point to View, and then click Business Rules.
  6. Drag both facts from the Fact Type list to the diagram.
  7. In the diagram, select both of the predicates by clicking one predicate, holding down the SHIFT key, and then clicking the other predicate.
  8. Right-click one of the predicates, and then click Add Constraints.
  9. From the Constraint type list, click Subset.
  10. Change the Number of roles at each end from 1 to 2.
  11. Click the two check boxes next to [Person] has [Kennel] from left to right, and then click in the two check boxes next to [Person] has [Dog] from left to right. The resulting subset constraint is the following:

    If Person p has Kennel d then Person p has Dog d.

    Click OK.
  12. Click New Page on the Insert menu to add another page to the diagram. Accept all defaults for the Page properties, and then click OK.
  13. Drag both facts to Page-2.
  14. On Page-1, click the subset constraint shape, and then delete the shape from the diagram. Click No, when prompted to remove the selected item from the underlying model.
  15. Right-click the Page-2 tab, and then click Delete to delete Page-2. Click No, when prompted to remove the selected item from the underlying model.
  16. Right-click one of the predicates, and then click Show All Constraints.

Modification Type:MinorLast Reviewed:1/19/2006
Keywords:kbvs2005doesnotapply kbvs2005swept kbtshoot kbvs2002sp1sweep kbbug kbfix KB321570 kbAudDeveloper