Ungültige Objekt-IDs in Applikations-Datensatz?
Auf der VRZ NRW tritt im StartStopp-Debug häufiger folgende Exception auf:
#000260 23.11.2020 11:17:17,492:+0100 (TID:000196) ######################
FEHLER : StartStopp.de.bsvrz.dav.daf.main.impl.SubscriptionManager
Fehler im Updater-Thread, Datenverteilerverbindung wird terminiert:
java.lang.RuntimeException: java.lang.IllegalStateException: Ungültiges Objekt mit id 577586652210266430
at de.bsvrz.dav.daf.communication.dataRepresentation.data.info.version1.ReferenceDefinitionInfo.getSystemObject(ReferenceDefinitionInfo.java:134)
at de.bsvrz.dav.daf.communication.dataRepresentation.data.info.version1.ReferenceDefinitionInfo.getSystemObject(ReferenceDefinitionInfo.java:120)
at de.bsvrz.dav.daf.communication.dataRepresentation.data.byteArray.ByteArrayPrimitiveData.getSystemObject(ByteArrayPrimitiveData.java:170)
at de.bsvrz.sys.startstopp.process.dav.DatenVerteiler.update(DatenVerteiler.java:98)
at de.bsvrz.dav.daf.main.impl.subscription.CollectingReceiver.deliver(CollectingReceiver.java:105)
at de.bsvrz.dav.daf.main.impl.subscription.CollectingReceiverManager.deliverOnce(CollectingReceiverManager.java:160)
at de.bsvrz.dav.daf.main.impl.SubscriptionManager$DataDeliveryThread.run(SubscriptionManager.java:1023)
Caused by: java.lang.IllegalStateException: Ungültiges Objekt mit id 577586652210266430
at de.bsvrz.dav.daf.communication.dataRepresentation.data.info.version1.ReferenceDefinitionInfo.getSystemObject(ReferenceDefinitionInfo.java:130)
... 6 more
Es ist davon auszugehen, dass es sich bei dem betreffenden Datensatz um die atg.angemeldeteApplikationen
handelt, die StartStopp anfragt, um die aktuell laufenden Applikationen zu ermitteln. (Hinweis: StartStopp könnte auch die Applikationen-Menge am Datenverteiler abfragen, was vielleicht performanter und sauberer wäre, sofern die Menge vorhanden und durch die AOE beschreibbar ist).
Unklar ist, wie es passieren kann, dass in den Datensatz scheinbar Objekt-IDs von Applikationen eingetragen werden können, die die Konfiguration nachher nicht auflösen kann. Dieser Fall dürfte eigentlich nicht auftreten und müsste weiter analysiert werden. Der Datenverteiler sollte zuerst das Applikations-Objekt bei der Konfiguration anlegen und erst danach die ID in den Datensatz eintragen.