Home › Forum › Nuclos Bedienung › Administration und Installation › Benutzereinstellungen plötzlich verschwunden
- Dieses Thema hat 9 Antworten und 3 Teilnehmer, und wurde zuletzt aktualisiert vor 11 Jahre, 6 Monaten von
Frank Pavlic.
-
AutorBeiträge
-
28 November 2011 um 11:11 Uhr #4559
Martin Schwärzel
TeilnehmerHallo
von einem auf den anderen Tag habe ich folgende Fehlermeldung für den Administrator nuclos:
(ich habe immer ein Hintertürchen mit einem 2. Administrator, darum nicht so schlimm, komme noch ins System rein)In welchem Pfad sind die Benutzerdaten gespeichert, um sie wieder herzustellen?
Gruss Martin
Exception in thread „AWT-EventQueue-0“ org.nuclos.common.NuclosFatalException: Die Benutzereinstellungen konnten nicht geladen werden.
at org.nuclos.client.common.prefs.NuclosPreferencesFactory.userRoot(NuclosPreferencesFactory.java:139)
at java.util.prefs.Preferences.userRoot(Unknown Source)
at org.nuclos.common2.ClientPreferences.getUserPreferences(ClientPreferences.java:45)
at org.nuclos.client.common.LocaleDelegate.selectLocale(LocaleDelegate.java:275)
at org.nuclos.client.login.LoginController.postProcessLogin(LoginController.java:384)
at org.nuclos.client.login.LoginController.access$200(LoginController.java:95)
at org.nuclos.client.login.LoginController$2.propertyChange(LoginController.java:258)
at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
at java.awt.Component.firePropertyChange(Unknown Source)
at javax.swing.JOptionPane.setValue(Unknown Source)
at javax.swing.plaf.basic.BasicOptionPaneUI$ButtonActionListener.actionPerformed(Unknown Source)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicRootPaneUI$Actions.actionPerformed(Unknown Source)
at javax.swing.SwingUtilities.notifyAction(Unknown Source)
at javax.swing.JComponent.processKeyBinding(Unknown Source)
at javax.swing.KeyboardManager.fireBinding(Unknown Source)
at javax.swing.KeyboardManager.fireKeyboardAction(Unknown Source)
at javax.swing.JComponent.processKeyBindingsForAllComponents(Unknown Source)
at javax.swing.JComponent.processKeyBindings(Unknown Source)
at javax.swing.JComponent.processKeyEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.util.prefs.InvalidPreferencesFormatException: org.xml.sax.SAXParseException: Element type „ma“ must be followed by either attribute specifications, „>“ or „/>“.
at java.util.prefs.XmlSupport.importPreferences(Unknown Source)
at java.util.prefs.Preferences.importPreferences(Unknown Source)
at org.nuclos.client.common.prefs.NuclosPreferencesFactory.userRoot(NuclosPreferencesFactory.java:132)
… 57 more
Caused by: org.xml.sax.SAXParseException: Element type „ma“ must be followed by either attribute specifications, „>“ or „/>“.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.seekCloseOfStartTag(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at java.util.prefs.XmlSupport.loadPrefsDoc(Unknown Source)
… 60 more28 November 2011 um 11:48 Uhr #4562Frank Pavlic
TeilnehmerHallo Martin,
in keinem Pfad, die findest Du in der Datenbank. Laut Quellcode verwendet Nuclos
java.util.prefs.Preferences . Die Ergebnisse aus dem Backend werden in XML-Format zurückgegeben. Die Daten werden allerdings von nuclos in der Datenbank gesichert.
Tabelle lautet T_MD_USER , Spalte OBJPREFERENCES und gesucht wird mit dem Benutzernamen in STRUSER. OBJPREFERENCES enthält Binäre Daten.Gruß
Frank
28 November 2011 um 12:18 Uhr #4566Martin Schwärzel
TeilnehmerInteressanterweise finde ich in dieser Tabelle beim user nuclos einen Eintrag, scheint aber korrupt zu sein.
Kann dies sein, weil ich am Freitag die Verbindung nur getrennt habe und nicht ausgeloggt habe. Sollte eigentlich kein Problem sein, weil ich dies schon öfters gemacht habe.Setze nun die Datenbank zurück und dann sollte es wieder klappen.
Zusätzliche Frage:
Hat der erste Benutzer nuclos als Superuser noch spezielle Berechtigungen wie bei anderen Systemen, wo der Standardadmin einmalig ist, oder haben alle als Superuser definierten Benutzer genau die gleichen Rechte?Gruss Martin
28 November 2011 um 12:27 Uhr #4570Frank Pavlic
TeilnehmerHallo Martin,
bei Netzwerk-Einsatz kann vieles möglich sein, von Paketverlusten, hinüber zu korrupten Netzwerkpaketen und damit Schrottdaten , usw… Bevor ich hier ein Fehler in der Software suche, würde ich einen tcpdump laufen lassen und checken was überhaupt bei der Datenbank ankommt, sollte das Phänomen öfters vorkommen.Die zusätzliche Frage kann ich Dir leider nicht beantworten aus Mangel an Wissen.
Eine Idee wäre einen Superuser neben nuclos anzulegen und die beiden XMLs bzw. Datenbankeinträge zu vergleichen. Oder aber warten, bis ein nuclos-Entwickler über diesen Post stolpert 😉Gruß
Frank
28 November 2011 um 14:39 Uhr #4578Ramin Goettlich
TeilnehmerHallo,
alles Superuser haben die gleichen Rechte.
Grüsse,
nuclosian28 November 2011 um 17:56 Uhr #4581Martin Schwärzel
Teilnehmerok, dann ist der erste Schritt in jeder nuclos Umgebung Erstellen eines 2. Superusers, damit man immer in das System rein kommt, solange es läuft.
Gruss Martin
28 November 2011 um 17:58 Uhr #4582Ramin Goettlich
TeilnehmerOder im Fehlerfalle (wie oben) die Spalte OBJPREFERENCES beim User nuclos auf der DB leeren.
28 November 2011 um 21:32 Uhr #4593Frank Pavlic
TeilnehmerHallo nuclosian,
cool, wieder etwas gelernt, einfach OBJPREFERENCES löschen setzt alles zurück. Wäre doch super, wenn man solche Tipps im Wiki unterbringen könnte. Gibt es hierfür schon einen Bereich? „Tipps & Tricks“ oder Ähnliches…Gruß
Frank
28 November 2011 um 21:35 Uhr #4594Ramin Goettlich
TeilnehmerHallo Frank,
aber das ist nur die Lösung im Fehlerfall (wenn man aufgrund eines Fehlers in den Preferences Nuclos mit einem bestimmten Account nicht mehr starten kann, im normalen Betrieb sollte man das nicht tun.
Dafür gibt es aber ab 3.2 die Möglichkeit, die Preferences selektiv (z.B. für eine bestimmte Entität) per Kontextmenü auf den Workspace-Default zurückzusetzen.
Das WIKI steht übrigens grundsätzlich jedem zur Bearbeitung frei.
Grüsse,
nuclosian30 November 2011 um 12:52 Uhr #4615Frank Pavlic
TeilnehmerHallo nuclosian,
danke für die Informationen.Gruß
Frank
-
AutorBeiträge