+1 800 256 3608 (toll-free in North America) or +49 7531 90 60 10| service@combit.com

App blockt bei LL.Core.Dispose


(Guest) #1

Hallo,
ich habe einen Windows-Dienst, der in regelmäßigen Abständen Labels produziert.
Vor jedem Job wird LL instanziert und am Ende mit LL.Core.Dispose und LL.Dispose zerstört.

Ab und an, läßt sich leider nicht nachfolziehen, bleibt er beim LL.Core.Dispose hängen. Dann hilft nur der Griff zum Taskmanager, über regulären Neustart mit Dienstemanager keine Chance.

Tritt sowohl mit Version 13 und 14 auf.

Hat einer eine Idee? Danke im voraus,
mfg
Holger


(Guest) #2

ich habe einen Windows-Dienst, der in regelmäßigen Abständen Labels produziert.
Vor jedem Job wird LL instanziert und am Ende mit LL.Core.Dispose und LL.Dispose zerstört.
Ab und an, läßt sich leider nicht nachfolziehen, bleibt er beim LL.Core.Dispose hängen. Dann hilft nur der Griff zum Taskmanager, über regulären Neustart mit Dienstemanager keine Chance.

Hallo Holger,

das Problem könnte sein, daß Du überhaupt Core.Dispose() aufrufst. Das Jobhandling macht die Komponente komplett selber, d.h. Du rufst nur new ListLabel() und anschliessend LL.Dispose() auf. Wenn Du einen neuen Job brauchst, einfach ein neues ListLabel-Objekt erzeugen. Vermutlich kommen sich bei Deiner Vorgehensweise gelegentlich die Komponente selber und Dein Dispose in die Quere.

Das Problem gab es aber schon gelegentlich, vermutlich sollte der Core-Konstruktor besser privat sein - nobody is perfect :-).

Guten Rutsch,

G.


(Guest) #3

Hallo Guenther,
danke für die Info. Allerdings hatte ich das Problem auch schon, wenn nur LL.Dispose() aufgerufen wurde. Dann blieb das Programm in dieser Methode stecken.
Vom Support habe ich den Hinweis bekommen, mal einen Dump mittels WinDBG zu ziehen. Problem ist nur, das es “relativ” selten auftritt, aber dann die Anwender drängeln…
Guten Rutsch ins neue Jahr!

Mfg
holger.ebest

ich habe einen Windows-Dienst, der in regelmäßigen Abständen Labels produziert.
Vor jedem Job wird LL instanziert und am Ende mit LL.Core.Dispose und LL.Dispose zerstört.
Ab und an, läßt sich leider nicht nachfolziehen, bleibt er beim LL.Core.Dispose hängen. Dann hilft nur der Griff zum Taskmanager, über regulären Neustart mit Dienstemanager keine Chance.

Hallo Holger,

das Problem könnte sein, daß Du überhaupt Core.Dispose() aufrufst. Das Jobhandling macht die Komponente komplett selber, d.h. Du rufst nur new ListLabel() und anschliessend LL.Dispose() auf. Wenn Du einen neuen Job brauchst, einfach ein neues ListLabel-Objekt erzeugen. Vermutlich kommen sich bei Deiner Vorgehensweise gelegentlich die Komponente selber und Dein Dispose in die Quere.

Das Problem gab es aber schon gelegentlich, vermutlich sollte der Core-Konstruktor besser privat sein - nobody is perfect :-).

Guten Rutsch,

G.


(Guest) #4

holger wrote:

Hallo,
ich habe einen Windows-Dienst, der in regelmäßigen Abständen Labels produziert.
Vor jedem Job wird LL instanziert und am Ende mit LL.Core.Dispose und LL.Dispose zerstört.

Ab und an, läßt sich leider nicht nachfolziehen, bleibt er beim LL.Core.Dispose hängen. Dann hilft nur der Griff zum Taskmanager, über regulären Neustart mit Dienstemanager keine Chance.

Tritt sowohl mit Version 13 und 14 auf.

Hat einer eine Idee? Danke im voraus,

Probiere mal:

a) WinDBG installieren

b) wenn’s auftritt, WinDBG an den Prozess attachen (F6), dann DMP-File
erzeugen (Anleitung gibt’s bei combit)

c) das dann (nach Absprache) bei combit) hochladen.

So klappt’s bei mir immer am besten, wenn man ein Problem innerhalb des
LL-Codes hat, denn dann können die nachschauen, wo das Programm hängt.

An alle: HAPPY NEW YEAR!!!

Paulchen


(Guest) #5

hallo,

zwischenzeitlich hatte ich die gelegenheit, einen dump zu ziehen und dem support zu schicken.
ich habe den tipp bekommen, einmal mit der Option
LL.NoPrintJobSupervision = true
zu arbeiten. und statt ll.core.dispose + ll.dispose nur letzteren zu verwenden.
wobei ich schon vermute, das es die NoPrintJobSupervision-Option ist, da ich dienste ohne druck-ausgabe habe, bei
denen das problem noch nicht aufkam.

mfg
h.ebest

holger wrote:

Hallo,
ich habe einen Windows-Dienst, der in regelmäßigen Abständen Labels produziert.
Vor jedem Job wird LL instanziert und am Ende mit LL.Core.Dispose und LL.Dispose zerstört.

Ab und an, läßt sich leider nicht nachfolziehen, bleibt er beim LL.Core.Dispose hängen. Dann hilft nur der Griff zum Taskmanager, über regulären Neustart mit Dienstemanager keine Chance.

Tritt sowohl mit Version 13 und 14 auf.

Hat einer eine Idee? Danke im voraus,

Probiere mal:

a) WinDBG installieren

b) wenn’s auftritt, WinDBG an den Prozess attachen (F6), dann DMP-File
erzeugen (Anleitung gibt’s bei combit)

c) das dann (nach Absprache) bei combit) hochladen.

So klappt’s bei mir immer am besten, wenn man ein Problem innerhalb des
LL-Codes hat, denn dann können die nachschauen, wo das Programm hängt.

An alle: HAPPY NEW YEAR!!!

Paulchen