game over

Begonnen von eagle, 15 Januar 2022, 15:51:15

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

eagle

15 Januar 2022, 15:51:15 Letzte Bearbeitung: 15 Januar 2022, 16:59:49 von eagle Grund: der weitere verlauf der erstellung der datenbank
Hallo,

absturz nach 1230   dateien

Neue Datenbank erstellt:

Filme vom verzeichnis werden importiert (eingelesen) fertig.

import start alle 4298 filme ohne ofdb abgleich importieren

nach 1230  datei  (28%)ist schluß es werden nur noch fenster auf und zu gemacht

beenden über taskmanager.

Fehler ist reproduzierbar bin auch schon bis 29% gekommen vielleicht 50 Datein mehr.

Es wurden 1232 Datei eingelesen (datenbank)
Ein neustart des Prg  einlesen vom Verzeichniss begann dann bei ca.28%
import start alle 3066 filme ohne ofdb abgleich importieren
bei 2473 Dateien war wieder Schluß.

wieder neu einlesen verzeichniss
import start alle 1825 filme ohne ofdb abgleich importieren
 bei 3741 wieder game over

wieder neu einlesen verzeichniss
import start alle 557 filme ohne ofdb abgleich importieren
 jetzt ohne fehler (waren ja auch nu 557 dateien)



ps. gibt es beim "lagerort" auch die mögichkeit den Pfad mit anzuzeigen?

Vielen Dank
Thomas




tbengel

Hallo Thomas,

liegt wohl daran, dass irgendwann der Java-Speicher voll läuft ... Dieses Problem gibt es
auch bei der PDF-Erstellung wo nach ca 2.300 Filmen Schluss ist, aber sollte ja wohl auch
nicht allzu oft passieren, dass man am Stück über 4.000 Filme einlesen will :happy3:.

Im Lagerort kannst Du nachträglich reinschreiben was Du willst. Nutze die Stapelverarbeitung,
dann kannst Du das Feld auch dynamisch und in einem Rutsch für alle Filme anpassen.

Grüße

tbengel

MxO2204


eagle

16 Januar 2022, 01:07:13 #3 Letzte Bearbeitung: 16 Januar 2022, 01:25:29 von eagle Grund: test exportPdf
Hallo tbengel,


der Hinweis mit dem Ram war ein anhaltspunkt
über Eigenschaften von java mehr Ram zu gewiesen 16Gb
getestet und die ernüchterung bei max 1,2-1,3 Gb war wieder Game over
Im gegenteil jetzt war schon nach ca. 500 Dateien schluß.

Neuer Versuch aufruf über Batchdatei mit Speicherparameter
im 1. versuch speicherauslastung ging schon auf 4Gb hoch selber gestoppt.

Jetzt will Ich es wissen


Neuer test

Neue Datenbank erstellt
und es noch mal probiert

test läuft.....


und  :banana:  :dodo:

nur 1 durchlauf  Speicher auslastung lag bei 9,755Gb.

Das könnte auch die Lösung für Dein Pdf Problem sein.

1 versuch Pdf mit 3666 Dateien erstellt dann die 1. !!! Fehlermeldung irgendwas mit speicher
auslastung lag da bei ca. 11Gb

2. versuch noch mal diesmal auch ein durchmarsch
auslastung lag dann bei 12,3 Gb

Also sollte man nach grösseren Aktionen öfter mal das Prg neustarten
Thomas

tbengel

Hallo Thomas,

danke für Deine Tests ... dann lag ich mit meiner Vermutung richtig.

Java ist per Default auf eine nur sehr begrenzte Menge RAM eingestellt,
deshalb ist der Weg wie Du ihn gegangen bist genau richtig.

Wenn der Garbage Collektor, also das Teil, welches den RAM eigentlich
schnell aufräumen sollte, seinen Job richtig machen würde, dann würde
es nicht zu solchen Engpässen kommen. Irgenwie kommt er bei Schleifen
nicht rechtzeitig hinterher ... Naja ich warte diesbezüglich noch auf
eine höhere Eingebung, solange kann man sich ja so behelfen, wie Du
dies getan hast  :respect:.

ZitatAlso sollte man nach grösseren Aktionen öfter mal das Prg neustarten
Auch hier das gleiche Problem, selbst wenn die Schleife abgeschlossen ist,
wird der RAM nicht freigegeben. Keine Ahnung, was Java da für Probleme
hat. In anderen Programmiersprachen kann man selber dafür sorgen, dass
Speicherbereiche wieder freigegeben werden. In Java ist dies nur sehr
rudimentär möglich.

Grüße

tbengel

tbengel

16 Januar 2022, 10:15:28 #5 Letzte Bearbeitung: 16 Januar 2022, 10:23:17 von tbengel
.. und noch was zum Thema Lagerort ...

Du kannst beim Verzeichnis-Importer bestimmen, in welche Felder welche Information
geschrieben wird (Auswahl der Header-Spalte). Solltest Du Informationen von mehreren
Spalten später in einer Spalte haben wollen, kannst Du dies, wie bereits geschrieben,
schnell mit der Stapelverarbeitung lösen.

Grüße

tbengel

P.S. Ein anderer oft praktizierter Ansatz ist der, seine Dateien selber mitteles Batch einzulesen
und anhand dieser Liste eine eigene CSV-Datei zu erstellen, welche alle Informationen so
enthält, wie diese Importiert werden sollen.

tbengel

... weiterhin würde ich Dir immer empfehlen den Import "MIT OFDB Abgleich"
durchzuführen, dies dauert zwar längert, ist jedoch für die Zukunft wesentlich
komfortabler, das Du dann sowohl die OFDB-ID, als auch die IMDb-ID für
jeden Film hast, über die sich leicht und automatisiert weitere Informationen
anspielen lassen.

Grüße

tbengel


eagle

16 Januar 2022, 12:38:48 #7 Letzte Bearbeitung: 16 Januar 2022, 12:52:39 von eagle
Zitat von: tbengel am 16 Januar 2022, 10:18:55... weiterhin würde ich Dir immer empfehlen den Import "MIT OFDB Abgleich"
durchzuführen, dies dauert zwar längert, ist jedoch für die Zukunft wesentlich
komfortabler, das Du dann sowohl die OFDB-ID, als auch die IMDb-ID für
jeden Film hast, über die sich leicht und automatisiert weitere Informationen
anspielen lassen.



da findet er nicht viel

Thomas

eine reine "offline" version würde auch erstmal reichen


Nachtrag
 da aus einer Batch gestartet wird
sehe ich auch warum er nichts findet.


java.lang.Exception: Die obige Url ist kein gültiger OFDb-Link!
        at mymdbce.f.a(ContentParser.java:170)
        at mymdbce.ad$10.run(UpdateImdbOfdbData.java:632)
java.lang.Exception: Die obige Url ist kein gültiger OFDb-Link!
        at mymdbce.f.a(ContentParser.java:170)
        at mymdbce.ad$10.run(UpdateImdbOfdbData.java:632)
java.lang.Exception: Die obige Url ist kein gültiger OFDb-Link!
        at mymdbce.f.a(ContentParser.java:170)
        at mymdbce.ad$10.run(UpdateImdbOfdbData.java:632)

eagle

Zitat von: tbengel am 16 Januar 2022, 10:09:12Wenn der Garbage Collektor, also das Teil, welches den RAM eigentlich
schnell aufräumen sollte, seinen Job richtig machen würde, dann würde
es nicht zu solchen Engpässen kommen. Irgenwie kommt er bei Schleifen
nicht rechtzeitig hinterher ...


man sieht es im Taskmanager wie er sich quält :sleep:

Thomas

eagle

Hallo tbengel,

das mit dem Lagerort bekomme ich nicht hin.
Sehe den Wald vor lauter Bäumen nicht :denk2:

jetzt steht "E:" drin soll aber "E:\Serien\********" drin stehen.

Thomas

tbengel

Hallo Thomas,

Zitatdas mit dem Lagerort bekomme ich nicht hin.
Sehe den Wald vor lauter Bäumen nicht :denk2:
Auch hier unbedingt das Handbuch lesen, dann genau dafür ist es da ...

Du hast wie gesagt die zwei Möglichkeiten:

1. Die einzelnen Pfadangaben findest Du am Ende der Import-Tabelle unter "nicht importieren"
Diese könntest Du einem beliebigen Feld zuordnen und anhand dieser Felder kannst Du Dir dann
das Lageort-Feld in der STapelverarbeitung zusammenbauen:

UPDATE <DATENBANK> SET ort = <PFADFELD1> + '/' + <PFADFELD2> + '/' + <PFADFELD3> ...

2. Die leichtere Möglichkeit. Du erstellst Dir eine eigene CSV-Datei anhand Deiner Wünsche,
list diese genauso ein und bist fertig.

Grüße

tbengel

eagle

Hi tbengel,

also beim import bekomme Ich das nicht hin.
Warum gibt es die Spalte Pfad nicht?
In der spalte Link ist der Pfad ja drin .
wie bekomme ich den als text in eine Spalte?


Thomas

PS. sorry wenn ich nerve :bier:

tbengel

Zitatalso beim import bekomme Ich das nicht hin.
... und was ist das Problem?

ZitatWarum gibt es die Spalte Pfad nicht?
Weil bisher bei über 20.000 Usern dies noch nie jemand haben wollte, da es
diesbezüglich anscheinend genug andere Möglichkeiten gibt. Ich könnte
dies in die neue Version mit einbauen, nur wird Dir dies jetzt nicht helfen.

Warum nutzt Du keinen CSV-Import?

Grüße

tbengel

tbengel

Halle eagle,

da Du es anscheinend nicht alleine hinbekommst, habe ich nun für die bald kommende Version 2.1.1
beim Verzeichnis-Importer die Pfad-Angaben sowie den Dateinamen auch noch auswählbar hinzugefügt.

Sag Bescheid, falls Du noch weitere Angaben brauchst. Noch kann man diese schnell vor dem Versionsupgrade
einbauen.

Grüße

tbengel

TinyPortal 2.0.0 © 2005-2020