Wenn gar nichts mehr geht, danns chau mal nach Percona InnoDB Recovery Tool bzw. DBSake
evtl. kannst du damit die ibdata Dateien reten.
Beiträge von volker.trotte
Als Gast kannst du das komplette Forum ansehen. Um selbst Beiträge oder Themen verfassen zu können, musst du dich erst registrieren.
-
-
Hier ist ein ein Stück Code, der genau das macht, was der Worker auch macht.
Du könntest ihn durhc console.log angaben debuggen und dann analysiren, wo genau er fehlschlägt, vielleicht bekomst du auch eine genauere Fehlermeldung.
Du musst deine UUID eintragen.
Das ist alles aber schon sehr entwicklungslastig.
Hinweis: ich habe den ganzen Code der Version 11.13.0 entnommen.
Hinweis 2: Das hier ist die Suche, die der Worker nutzt um entsprechende Objekte zum verarbeiten zu finden:Codeidentifier_ci:agorum_composite_notification agorum_composite_notification_next_date_range:[* TO NOW] agorum_composite_notification_count:[0 TO *] agorum_composite_notification_interval:[0 TO *]Code
Alles anzeigen/* global sc, sca */ let objects = require('common/objects'); let metadata = require('common/metadata'); let item = objects.find(9999); /*<= hier deine uuid rein*/ let data = { uuid: item.UUID, owner: item.owner }; let mds = metadata.all(item, /^agorum_composite_notification_/); data = Object.assign({}, data, mds); console.log({ data: data }); worker(data); function worker(data) { let obj = objects.tryFind(data.uuid); // object does not exist anymore if (!obj) return; let user = obj.owner; /* let query = cache.read(data.agorum_composite_notification_configuration + '_' + user.ID); if (!query) { query = searchUtils.buildQuery(data.agorum_composite_notification_configuration, user); cache.write(data.agorum_composite_notification_configuration + '_' + user.ID, query); } */ let queryWithSort = searchUtils.buildQueryWithSort(data.agorum_composite_notification_configuration, user); let query = queryWithSort.query; let sortAttribute = queryWithSort.sortAttribute; let stickySuffix = data.agorum_composite_notification_configuration + ';' + user.UUID; let sticky = 'Notification configuration error: ' + stickySuffix; if (query) { log.clearSticky(sticky); } else { // something went wrong in require-cache, print it out for debugging log .warning() .detail( 'filter or search configuration not found: ' + data.agorum_composite_notification_configuration + '. There is a notification configuration for the user: ' + user.name + ' (' + user + '), that is basing on a configuration, that is not present anymore. ' + 'To solve the problem you may delete the configuration with the id:' + obj + '\n\ncache structure:\n' + Object.entries(require.cache) .map(([key, value]) => key + ': ' + Object.keys(value.exports || {}).join(', ')) .join('\n')) .object(obj) .sticky(sticky) .log(sticky); // reset the script cache Object.keys(require.cache).forEach(key => delete require.cache[key]); // try again queryWithSort = searchUtils.buildQueryWithSort(data.agorum_composite_notification_configuration, user); query = queryWithSort.query; sortAttribute = queryWithSort.sortAttribute; } if (!query) { return; } let scUser = sc.asUser(user); let objectsUser = objects.sc(scUser); let lastSeen = common.formatDateLocale(data.agorum_composite_notification_lastseen, "yyyy-MM-dd'T'HH:mm:ss.S'Z'"); let baseQuery = query; // filter out elements, for notifying query = '(' + query + ') ' + sortAttribute + '_date_range:[' + lastSeen + ' TO *] NOT ag_temporary:true NOT fromaddress:"' + NOTIFY_IDENT + '"'; sticky = 'Notification query failed: ' + stickySuffix; let result; try { result = objectsUser .query(query) .sort(sortAttribute + ' desc') .limit(1) .search('uuid', sortAttribute); log.clearSticky(sticky); } catch (err) { log .error() .object(obj) .detail( 'query: ' + query, 'sortAttribute: ' + sortAttribute, 'configuration name: ' + data.agorum_composite_notification_configuration, err) .sticky(sticky) .log(sticky); return; } let total = result.total; let lastUpdateDate = new Date(0); let hasNewItems = false; if (result.rows && result.rows[0]) { lastUpdateDate = new Date(new Date(result.rows[0][sortAttribute]).getTime() + 1); if (lastUpdateDate.getTime() > data.agorum_composite_notification_lastnotified.getTime()) { hasNewItems = true; } } // call notifier, when there are new items or the total has change (e.g. something was removed) if (hasNewItems || data.agorum_composite_notification_count != total) { let lastNotified = data.agorum_composite_notification_lastnotified || data.agorum_composite_notification_lastseen; lastNotified = common.formatDateLocale(lastNotified, "yyyy-MM-dd'T'HH:mm:ss.S'Z'"); if (!hasNewItems) { // no new items, so set the lastUpdateDate to the current value of lastNotified lastUpdateDate = lastNotified; } metadata({ agorum_composite_notification_count: total, agorum_composite_notification_lastnotified: lastUpdateDate, }).save(obj); // hand over to notify handler, to do something with the result // do only, when user is not locked if (user.lockState === 0) { let typeSetting = loadType(data.agorum_composite_notification_type); if (typeSetting && typeSetting.notify) { /** @type {NotificationInfo} */ let notifyData = { user: user, scUser: scUser, obj: obj, data: data, name: data.agorum_composite_notification_type, rows: result.rows, total: total, query: baseQuery, hasNew: hasNewItems, lastSeen: lastSeen, lastNotified: lastNotified, sortAttribute: sortAttribute, }; sticky = 'Notification script failed: ' + stickySuffix; try { typeSetting.notify(notifyData); log.clearSticky(sticky); } catch (err) { log.error().object(obj).detail(notifyData, err).sticky(sticky).log(sticky); } } } } else { objects.reIndex(obj); } } -
Dazu noch
agorum core previewZitatIn welcher Version enthalten?
• agorum core pro
-
Hallo StefanF schau mal hier:
ThemaVorschau bzw. Preview Modul aktivieren/lizenzieren
Verwendete Version: agorum core open 11.5.1.3-1756 via Virtual Appliance
Hallo zusammen,
ist es möglich in der agorum core open Version Module zu aktivieren/lizenzieren? Genauer gesagt das Vorschau/Preview Modul. Leider finde ich diesbezüglich keine Optionen (oder ich bin zu blind).
Falls es nur in der pro Version möglich ist, kann man den Reiter "Vorschau" ausblenden?
Vielen Dank im Voraus!
- NthusiastNthusiast6. März 2024 um 13:37 -
Nach einem Neustart wird das "first message date" auf die Zeit des Neustarts gesetzt und das "last message date" wandert im 5-Minuten-Takt mit der jeweils aktuellen Uhrzeit mit.
Wobei ich gerade festgestellt habe, dass hier ein uralter MySQL-Server läuft, vielleicht ist ein Update auf eine aktuelle MariaDB die Lösung?! Werde ich heute Abend mal testen.
anni@agorum:~$ sudo /opt/agorum/agorumcore/mysql/bin/mysql --version
/opt/agorum/agorumcore/mysql/bin/mysql Ver 14.14 Distrib 5.7.17, for linux-glibc2.5 (x86_64) using EditLine wrapperLösung nicht unbedingt, aber ein update ist angeraten - siehe auch
AES-256 encryption is not available -
Wobei ich nicht wirklich verstehe, warum das jdk beim Update von agorum core nicht automatisch mit aktualisiert wird (oder gibt es ein sinnvolles Szenario bei einer veralteten jdk bleiben zu wollen/müssen?) oder zumindest im Rahmen eines dependency checks eine Warnung erscheint, dass das aktuell verwendete jdk zu alt für die neue Version ist.
Die Frage musst du annkatrin.goepfert stellen

Ich weiss nur, dass es Nutzer gibt, die ein sehr speziellen anwendungsfall haben (z.B. arm prozessoren) wo dann ein anderes jdk gebraucht wird, dass würde bei einem Update dann nicht mehr gehen.
ebenso werden ja alle Dritttools (ghostscript, imagemagick, datenbank...) auch nicht automatisch aktualisiert. Das ist Teil des Betriebs. -
Nach deinem Neustart:
Wie ist jetzt das "last message date"?
agorum löscht nicht unbedingt alles diese sticky Meldungen, manche muss man auch einfach selbst wegklicken. KOmmt auf den Kontext drauf an. -
Hallo Anni
Das ist tatsächlcih etwas trickyagorum.roi.ejb.common.Transaction$TransactionException: Could not commit transaction (null|Already marked for rollback)
at agorum.roi.ejb.common.Transaction.commit(Transaction.java:111)Dieser Teil der Fehlermeldung verweist darauf, dass eine DB Transaction nicht durchgeführt werden konnte. Es sollte also imho nicht das Problem des scriptes das hier läuft sein, sondern der Datenbank.
Bleibt dieses Problem nach einem Neustart (explizit auch der DB) bestehen? -
Das ist die richtige Lösung.
M.W.n hat agorum das jdk customized, deswegen bringt agorum auch ein eigenes mit. -
Wir hatten heute das gleiche Problem bei einem Kunden (Windows Server 2019)
Wir haben ganz kurz temporär folgendes geändert:ZitatPassword must meet complexity requirements = disabled (war enabled)
Dann den Domänenjoin gemacht -> das klappte, dann wieder zurückgestellt
Der Dienstleister des Kunden hatte da aber viele Bauchschmerzen bei.
Der join hatte dann erstmal geklappt - ob das SSO dann auch wirklich klappt, dass muss ich noch prüfen.
Wir haben das dann sofort wieder zurückgestellt (Password must meet complexity requirements = enabled)
Wäre es nicht möglich, bei der Maske "SSO" im Support Tool weitere Eingabefelder für den Benutzername+passwort für den Benutzeraccount der in der Domäne angelegt werden muss einzufügen? jede Domäne hat ihrer eigenen Passwortsicherheitsrichtlinien, da wird ein automatisch generiertes Passwort (was hoffentlich so ist) es nicht unbedingt treffen. -
@ralph
ich kenne nur die Doku hier.Dort in eine beispielhafte Properties-Datei enthalten und dort steht auch etwas über den dbDriver und den connection string.
Weitere Informationen dazu scheint es aber nicht zu geben.Vielleicht kann agorum da erhellen?
-
Guten Morgen gvhf
es gibt in der MetaDB 2 entsprechende Schlüssel für jeden Eintrag in SMA.
Vielleicht kannst du dort am Änderungsdatum etwas feststellen?
-
Hallo npoessl,
acls werden aus Sicherheitsgründen beim einfachen cut&insert beibehalten.
Du könntest z.B. einen worker/task machen, der die Objekte neu berechtigt.
Alternativ könntest du auch eine Kontextmenüaktion registrieren und einbauen, welches das Verschieben technisch abbildet und die ACLs setzt. Dann könntest du auch steuern wer diese Aktion ausführen darf. -
Das kann durchaus eine Rolle spielen und ein Update ist sowieso notwendig.
Als Ergänzung: andere PDF-Reader funktionieren, d.h. es ist auch ein Adobe-Thema. Danke für die Unterstüzung.
vielleicht kannst du einen anderen PDF-Reader als Standarprogramm zum öffnen für PDFs einstellen?
das wäre ein einfacher workaround -
Ich tippe darauf, dass der unc-Pfad den agorum beim direkten öffnen herausgibt zu lang für Windows
In 9.3.1 wurde dazu folgendes eingebaut.Überschreitet ein Pfad eine bestimmte Länge (200 Zeichen), wird nun beim Öffnen über den agorum client automatisch eine Verlinkung im Home-Verzeichnis des Benutzers angelegt, um die Kompatibilität mit Windows-Clients zu verbessern
Für dein aktuelles Problem gibt es da - so mir bekannt - wohl eher keine sinnvolle Lösung als ein Update zu machen.
-
Welche agorum Version wird verwendet?
-
Hallo, das Öffnen von PDF's über das agorum core (Laufwerk oder SmartAssistant) bringt eine Fehlermeldung.
Die PDF's selber sind i.O.
Mit zwei anderen PDF-Readern (PDF 24 und Foxit oder auch Browser) lassen sich die PDF's öffnen.
Die möglichen Sicherheitseinstellungen im adobe sind geprüft und gesetzt, leider ohne Erfolg. Der Kunde muss leider bzgl. anderer Anwendung den adobe acrobat reader als Produkt einsetzen. Ideen immer gerne willkommen.Moin KStoehr gibt es viellicht Probleme bei der maximalen Pfadlänge unter Windows?
Lade doch testweise das pdf mal herunter und öffne es manuell aus dem Downloadordner heraus - geht das? -
Hallo markusloffler,
das klingt nach einem grundsätzlich gangbaren Weg, für jemanden mit technischer Erfahrung
Lass uns gerne an dem Ergebnis teilhaben. -
Alles anzeigen
Hi Volker,
top, genau die Info die ich brauche! Gute Community hier

> Der vserver sollte sich dabei am besten an den Vorschlägen von agorum orientieren
Die Systemanforderung sind recht heavy.
Zum Hintergrund: Ich bin IT-Freiberufler und habe noch eine gewerbliche Tätigkeit nebenher. Ca. 50 Belege pro Jahr. Dann habe ich noch zwei Familienmitglieder, die auch in diesem Umfang eine Selbstständigkeit betreiben. Also würden fast nie zwei Benutzer gleichzeitig das System benutzen.
Ich brauche ein DMS eigentlich nur wegen der GoBD. Würde ich für die drei Person Lexware Archivierung verwenden, wäre ich nach 10 Jahren bei ca. €8500, nur um die GoBD zu erfüllen

Allerdings wäre dann E-Mail Archivierung mit dabei, die fehlt ja bei Agorum core open.
Grüße,
Markus
Hallo markusloffler
Die Möglichkeit Mails automatisiert per Mailadapter in agorum herunterzuladen gibt es tatsächlich erst ab der Pro Version.
Je nach dem wie du mailservertechnisch ausgestattet bist - hilft aber vielleicht die eingebaute Mailserverfunktionalität.
agorum bringt einen eigenen Mailserver mit. Du kannst Mails entsprechend an einen konfigurierten Port im agorum weiterleiten und diese Mails werden dann je nach Zieladresse den usern im agorum zugeordnet.
Sieh mal hier:
E-Mails mit agorum core empfangen -
Hallo markusloffler,
Wenn du 3 verschiedene Systeme willst, dann lieber einen vserver (linux/proxmox) und 3 VMs (linux). Der vserver sollte sich dabei am besten an den Vorschlägen von agorum orientieren (hier auf genügend RAM achten). (https://www.thomas-krenn.com/de/unternehmen…h-server-agorum)
Dann 3 Mal agorum installieren und fertig.
Ich würde _nicht_ dazu raten 3 Systeme auf einem bare metal bzw. auf einem Betriebssystem zu machen. Da sind (sehr viele) Konfigurationen nötig, die das alles aus meiner Sicht unnötig komplex machen.Unabhängig ob nu 3 VMs oder eine - Bitte auch immer mind. 1 Test und im Idealfall 1 DEV-System einplanen und auch eine Backupstrategie.
Gerne unterstützen wir euch auch auch darin.