Druckstart dauert ewig
Moderator: Moderatoren
- Jan
- Marvin
- Beiträge: 14662
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Druckstart dauert ewig
Ich habe gerade ein merkwürdiges Phänomen: Ich drucke ein Dokument. Klappt super. Aber im Moment arbeite ich in einem Netzwerk, da hält der an der Zeile oDrucker:startDoc() minutenlang an. Woran kann das liegen? Der Ausdruck selber ist danach vollkommen OK.
Jan
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1931
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Druckstart dauert ewig
Hi Jan,
woher weißt du das er bei startdoc() hängt ?? zeige uns doch mal code
woher weißt du das er bei startdoc() hängt ?? zeige uns doch mal code
- Jan
- Marvin
- Beiträge: 14662
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Druckstart dauert ewig
Rolf,
woher weiß ich das wohl? Debugger? Zeile für Zeile durchgehen?
Jan
woher weiß ich das wohl? Debugger? Zeile für Zeile durchgehen?
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Druckstart dauert ewig
fragst du vor o:StartDoc() den o:PrinterStatus() ab ?Jan hat geschrieben:Ich habe gerade ein merkwürdiges Phänomen: Ich drucke ein Dokument. Klappt super. Aber im Moment arbeite ich in einem Netzwerk, da hält der an der Zeile oDrucker:startDoc() minutenlang an. Woran kann das liegen? Der Ausdruck selber ist danach vollkommen OK.
Code: Alles auswählen
oDC := oPrinter:device()
nStatus := oDC:PrinterStatus()
gruss by OHR
Jimmy
Jimmy
- Jan
- Marvin
- Beiträge: 14662
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Druckstart dauert ewig
Hallo Jimmy,
das habe ich nicht abgegefragt. Wird diese Woche auch nix mehr werden. Aber: Ich tippe darauf, das es das nicht ist. Das gleiche Problem habe ich von zwei verschiedenen Rechnern aus auf zwei verschiedene Drucker. Und andere Dokumende werde auf diese beiden Drucker sauber (soll heißen: flott) ausgegeben.
Jan
das habe ich nicht abgegefragt. Wird diese Woche auch nix mehr werden. Aber: Ich tippe darauf, das es das nicht ist. Das gleiche Problem habe ich von zwei verschiedenen Rechnern aus auf zwei verschiedene Drucker. Und andere Dokumende werde auf diese beiden Drucker sauber (soll heißen: flott) ausgegeben.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Druckstart dauert ewig
das würde bei der Lösung des Problems helfen.Jan hat geschrieben:das habe ich nicht abgegefragt.
wie schon gesagt tippe ich auf -2 im Netzwerk.
also passiert es "nur" bei der Xbase++ Applikation und "nur" bei Netzwerk Druckern und der o:PrinterStatus() ist -2 ?Jan hat geschrieben:Aber: Ich tippe darauf, das es das nicht ist. Das gleiche Problem habe ich von zwei verschiedenen Rechnern aus auf zwei verschiedene Drucker. Und andere Dokumende werde auf diese beiden Drucker sauber (soll heißen: flott) ausgegeben.
wenn ja zeigt und mal deine "PrinterPS" ( XbpPrinter():New() ... o:create() ) aussieht ... ich hab da einen "Verdacht"...
gruss by OHR
Jimmy
Jimmy
- Jan
- Marvin
- Beiträge: 14662
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Druckstart dauert ewig
Jimmy,
der gesamt Codeteil sieht so aus:
Andere Xbase++-Programme drucken anstandslos.
Auch wenn ich den Druckerdialog weglasse und sofort das Druckerobjekt erstelle, ändert das nichts.
Wie gesagt, ob die Rückgabe wirklich -2 ist kann ich nicht sagen, und kann ich aucherst kommende Woche herausfinden, wenn ich wieder beim Kunden bin.
Jan
der gesamt Codeteil sieht so aus:
Code: Alles auswählen
oDlgPrint := XbpPrintDialog():new()
oDlgPrint:create()
oDrucker := oDlgPrint:display()
IF oDrucker == NIL
MasgBox(Kein Drucker ausgewählt", "Achtung")
RETURN NIL
ENDIF
// Neuen Presentation-Space erzeugen
oPS := XbpPresSpace():new()
// Bedruckbarer Bereich auf dem Papier
aSize := oDrucker:paperSize()
nRandOben := aSize[4]
nRandLinks := IIf(aSize[3] < 0.5, 0.5, aSize[3])
aSize := {aSize[5] - aSize[3], aSize[6] - aSize[4]}
oPS:create(oDrucker, aSize, GRA_PU_LOMETRIC + GRA_PO_TOPLEFT)
// Schriftattribut
aAttrString := Array(GRA_AS_COUNT) // Schriftttribut bestimmen
aAttrStringOld := GraSetAttrString(oPs, aAttrString)
// Schrift wählen
oFont := xbpFont():new(oPs)
oFont:FamilyName := "Arial"
oFont:nominalPointSize := 12
oFont:create()
GraSetFont(oPs, oFont)
nFontHeight := oPS:setFont():height // Schrifthöhe für "Zeilenvorschub" feststellen
// Hierfür der 2. Papierschacht
oDrucker:setPaperBin(1)
// Und los gehts mit dem Ausdruck
oDrucker:startDoc("Angebot")
Auch wenn ich den Druckerdialog weglasse und sofort das Druckerobjekt erstelle, ändert das nichts.
Wie gesagt, ob die Rückgabe wirklich -2 ist kann ich nicht sagen, und kann ich aucherst kommende Woche herausfinden, wenn ich wieder beim Kunden bin.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1931
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Druckstart dauert ewig
Hi Jan,
werden denn andere Druckaufträge an diesem PC mit diesem Netzwerk flott ausgedruckt ??
werden denn andere Druckaufträge an diesem PC mit diesem Netzwerk flott ausgedruckt ??
- Jan
- Marvin
- Beiträge: 14662
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Druckstart dauert ewig
Moin Rolf,
wie ich oben an Jimmy schrieb: Ja.
Jan
wie ich oben an Jimmy schrieb: Ja.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Druckstart dauert ewig
wenn du die selben Routinen in anderen Xbase++ Programme auf dem selben PC / Drucker verwendest und die da funktionieren muss es ein anderes Problem sein.Jan hat geschrieben:Andere Xbase++-Programme drucken anstandslos.
wie "gross" ist den ca. das was du drucken willst was über das Netzwerk geschickt wird ?
drucken die anderen Xbase++-Programme ähnliche Grössen ? (Bilder etc ? )
btw. "druckst" du "direkt" zum Netzwerk Drucker ? Timeout (bei grössen Dateien) ?
hätte ich sonst vorgeschlagen um zu sehen ob das o:create() erfolgreich war.Jan hat geschrieben:Auch wenn ich den Druckerdialog weglasse und sofort das Druckerobjekt erstelle, ändert das nichts.
ich pflege den Druckernamen vorzugeben und das Printer Object so zu erstellen
Code: Alles auswählen
FUNCTION PRINTERPS( cPrinter, nCopies, nPaperBin )
LOCAL oDC := XbpPrinter():New()
LOCAL aPrint := oDC:list()
BEGIN SEQUENCE
IF cPrinter != NIL // if NIL use Windows default?
cPrinter := SearchPrinter( aPrint,cPrinter )
ENDIF
IF oDC:Create( cPrinter ) == oDC // = self
ELSE
MsgBox( "! Drucker ist Offline !" )
BREAK // raus
ENDIF
nStatus := oDC:PrinterStatus()
es gab im Alaska Forum mal eine langen Thread mit o:PrinterStatus() von Netzwerk Druckern ...Jan hat geschrieben:Wie gesagt, ob die Rückgabe wirklich -2 ist kann ich nicht sagen, und kann ich aucherst kommende Woche herausfinden, wenn ich wieder beim Kunden bin.
gruss by OHR
Jimmy
Jimmy
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Druckstart dauert ewig
em ... äh ... hast du den Code verändert ? stand da nicht vorher XbpPrinter() statt XbpPrinterDialog() ?Jan hat geschrieben:Code: Alles auswählen
oDlgPrint := XbpPrintDialog():new() oDlgPrint:create() oDrucker := oDlgPrint:display()
deshalb ja auch mein Kommentar wegen o:create(cPrinter) was für XbpPrinter() galt
... so würde die Aussage ja keinen Sinn mehr machenJan hat geschrieben:Auch wenn ich den Druckerdialog weglasse und sofort das Druckerobjekt erstelle, ändert das nichts.
mir fällt da noch o:paperbin auf. benutzen die andern Xbase++ Programme auch "den" Schacht ?
gruss by OHR
Jimmy
Jimmy
- Jan
- Marvin
- Beiträge: 14662
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Druckstart dauert ewig
Jimmy,
nein, ich habe da nichts verändert. Und nein, auch wenn ich den aperBin() raus nehme, dann bringt das nichts. Hatte ich gestern auch schon probiert.
Jan
nein, ich habe da nichts verändert. Und nein, auch wenn ich den aperBin() raus nehme, dann bringt das nichts. Hatte ich gestern auch schon probiert.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Druckstart dauert ewig
mich wundert das o:setPaperBin(1) bei dir funktioniert ... welcher Schacht soll den das sein ?Jan hat geschrieben: auch wenn ich den aperBin() raus nehme, dann bringt das nichts.
p.s. "nach" einem XbpPrintDialog() würde ich keine Parameter setzte sondern nur "davor"
gruss by OHR
Jimmy
Jimmy
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 105 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Re: Druckstart dauert ewig
ProcMon von SysInternals einklinken und beobachten, was geschieht:
http://technet.microsoft.com/en-us/sysi ... s/bb842062
http://technet.microsoft.com/en-us/sysi ... s/bb842062
Herzlich,
Tom
Tom
- Jan
- Marvin
- Beiträge: 14662
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Druckstart dauert ewig
Gerade bekomm ich eine Mail vom Kunden rein. Es scheint wieder reibungslos zu funktionieren. Ohne das ich etwas geändert habe! Intern tippt man jetzt darauf, das der Panda schuld daran ist. Der Virenscanner hält wohl öfters mal innnerbetrieblichen Verkehr auf. Irgendwas in dieser speziellen .exe oder der Anforderung des Druckjobs hat da wohl eine Kaskade von Überprüfungen ausgelöst, die dann diese enorme Verzögerung bewirkt hat.
Wenn das wirklich so ist, würde sich das decken mit Erfahrungen in meiner ehemaligen Firma. Dort wurde der Panda rausgeschmissen, nachdem regelmäßig u. a. der Rechner des Geschäftsführers lahmgelegt wurde durch irgendwelche resourcenfressende Überprüfungen. Gerade Panda scheint da Probleme mit zu haben.
Warum aber gerade der :startDoc() das ausgelöst haben soll ...
Jan
Wenn das wirklich so ist, würde sich das decken mit Erfahrungen in meiner ehemaligen Firma. Dort wurde der Panda rausgeschmissen, nachdem regelmäßig u. a. der Rechner des Geschäftsführers lahmgelegt wurde durch irgendwelche resourcenfressende Überprüfungen. Gerade Panda scheint da Probleme mit zu haben.
Warum aber gerade der :startDoc() das ausgelöst haben soll ...
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Jan
- Marvin
- Beiträge: 14662
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Druckstart dauert ewig
Gute Idee! Dieses spezielle Problem scheint sich ja jetzt zum Glück gelöst zu haben. Aber für die Zukunft werde ich da mal dran denken. Immerhin habe ich das Teil schon auf dem Rechner liegen.
Jan
Jan
Tom hat geschrieben:ProcMon von SysInternals einklinken und beobachten, was geschieht:
http://technet.microsoft.com/en-us/sysi ... s/bb842062
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Martin Altmann
- Foren-Administrator
- Beiträge: 16586
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 116 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: Druckstart dauert ewig
Moin Jan,
Viele Grüße,
Martin
wenn der Windows Spooler aktiv ist (also genutzt wird, man kann ja auch direkt drucken), dann wird eine Spooldatei im Filesystem erzeugt, die dann zum Drucker geht. Die muss man übrigens auch hart im Filesystem löschen, wenn man einen blockierenden Druckjob hat den man auch nicht mehr über die GUI aus der Queue gelöscht bekommt.Jan hat geschrieben:Warum aber gerade der :startDoc() das ausgelöst haben soll ...
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 105 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Re: Druckstart dauert ewig
Hallo, Jan.
Schön, dass sich das Problem gelöst hat.
Schön, dass sich das Problem gelöst hat.
Alle Virenscanner sind, mit Verlaub, scheiße. Mit Streubomben wird auf Ameisen geschossen. Was dafür gedacht ist, vom extrem unvorsichtigen Internetdaddler bis hin zum Office-Arbeitsplatz alles zu schützen, erzeugt im Ergebnis jede Menge Fehlalarme - und bremst vor allem dateibasierte Datenbanksysteme, aber eben auch Applikationen, die viele Dateien bewegen/generieren, hoffnungslos aus. Ich hatte gerade auch wieder so ein Telefonat, in dem ich einem EDV-Beauftragten erklären musste, warum der Kaspersky in der Standardversion (On-Demand-Scan sämtlicher Daten) dafür sorgt, dass a) der Datenzugriff ausgebremst wird und es b) aufgrund der kaskadierenden Scans sogar zu Timeouts und Datenfehlern kommt. Avira mit seiner beschissenen Heuristik ist ein Thema für sich. Leider gibt es so gut wie keine Möglichkeit, Virenscanner aus der Applikation heraus zu manipulieren (das könnten die Viren dann schließlich auch), so dass wir inzwischen Merkblätter und Handlungsanweisungen verteilen, die mindestens unsere Daten aus dem Scanprozess ausblenden, im Optimalfall aber dafür sorgen, dass tatsächlich nur noch untersucht wird, was auch gefährlich werden kann. Virenscanner in der Standardinstallation kann man damit vergleichen, dass ein Neuwagen nicht mehr alle 20.000 km in die Werkstatt zur Wartung kommt, sondern dass bei jedem Anfahrvorgang Mechaniker herbeispringen und das Auto auf Herz und Nieren untersuchen. Dass man auf diese Weise nicht mehr vorankommt, dürfte eigentlich jedem klar sein.Gerade Panda scheint da Probleme mit zu haben.
Herzlich,
Tom
Tom