Service Registry 2005Q4 Versionshinweise

Nach dem Erstellen eines ExtrinsicObject oder ExternalLink treten aufgrund eines ungültigen Konzepts Fehler auf (6318002)

Problemzusammenfassung: Wenn Sie in Web Console ein ExtrinsicObject erstellen und ein Konzept auswählen, das sich unter einem anderen Konzept als ExtrinsicObject befindet, scheint das Objekt erfolgreich erstellt zu werden. Beim Erstellen sind jedoch Fehler aufgetreten. Das gleiche Problem tritt auf, wenn Sie ein ExternalLink erstellen und ein Konzept auswählen, das sich unter einem anderen Konzept als ExternalLink befindet.

Im Serverprotokoll werden diese Fehler als NullPointerException wiedergegeben.

Wenn es sich bei dem Konzept um ein anderes untergeordnetes Konzept von RegistryObject handelt, wirkt sich das Problem hauptsächlich dadurch aus, dass es bei einer Suche nicht gefunden wird. Wenn sich das Konzept unter einem anderen ClassificationScheme als ObjectType befindet, wird die Datenbank beschädigt. Wenn Sie den Server neu starten, treten Laufzeitfehler auf (InvocationTargetException ).

Das Objekttyp-Konzept muss ein untergeordnetes Konzept innerhalb des ExtrinsicObject -oder ExternalLink-Konzepts sein. Web Console erzwingt diese Voraussetzung jedoch nicht.

Umgehung: Verwenden Sie das Admin-Tool, um nach den Objekten zu suchen, die ein falsches Konzept aufweisen. Verwenden Sie den Befehl select, um die Objekte zu suchen, und den Befehl rm, um die Objekte zu löschen. Führen Sie folgende Schritte zur Ausführung dieser Aufgabe aus:

  1. Starten Sie Service Registry neu, wie unter To Stop and Restart the Application Server Domain for the Registry im Service Registry 3 2005Q4 Administration Guide beschrieben.

  2. Starten Sie das Admin-Tool entweder als Registry-Administrator oder als Eigentümer der beschädigten Objekte neu, wie unter Starting the Admin Tool im Service Registry 3 2005Q4 Administration Guide beschrieben.

  3. Navigieren Sie zur obersten Speicherortebene der Datenbank:


    admin> cd /
    
  4. Verwenden Sie den Befehl select, um die zu entfernenden Objekte aufzulisten. Wenn Sie das Tool als Registry-Administrator gestartet haben, verwenden Sie folgenden Befehl (in einer Zeile):


    admin> select ro.* FROM RegistryObject ro, ClassificationNode cn 
    WHERE ro.objectType = cn.id AND NOT ( cn.path = 
    '/urn:oasis:names:tc:ebxml-regrep:classificationScheme:ObjectType/RegistryObject' 
    or cn.path like 
    '/urn:oasis:names:tc:ebxml-regrep:classificationScheme:ObjectType/RegistryObject/%' )
    

    Wenn Sie das Tool als Eigentümer der Objekte gestartet haben, verwenden Sie folgenden Befehl (in einer Zeile):


    admin> select ro.* FROM RegistryObject ro, ClassificationNode cn, 
    AffectedObject ao, AuditableEvent ae WHERE ro.objectType = cn.id AND 
    ae.user_ = $currentUser AND ao.id = ro.id AND ao.eventId = ae.id AND NOT 
    ( cn.path = 
    '/urn:oasis:names:tc:ebxml-regrep:classificationScheme:ObjectType/RegistryObject' 
    or cn.path like 
    '/urn:oasis:names:tc:ebxml-regrep:classificationScheme:ObjectType/RegistryObject/%' )
    
  5. Verwenden Sie den Befehl rm, um die Objekte zu löschen. Geben Sie die URN für jedes zu löschende Objekt an.


    admin> rm urn1 urn2 ...
    
  6. Führen Sie den Befehl select erneut aus, um zu überprüfen, ob die Objekte aus der Registry entfernt wurden.