Gilt ab List & Label 23
Zur Vermeidung von Threading-Problemen bei Verwendung eines Repositories unter Progress OpenEdge sollte das [SingleThread]-Attribut aus dem combit.ListLabel??.Repository-Namespace auf die Repository-Klasse angewendet werden. Die Hürde hierbei: OpenEdge selbst unterstützt keine Attribute.Da in OpenEdge nur das Interface implementiert, das Attribut selbst aber nicht gesetzt werden kann, kann eine Lösung wie folgt aussehen:
Erzeugen Sie eine "Dummy"-Klasse, die das Attribut setzt:
namespace LuL.OpenEdgeRepository
{
[combit.ListLabel23.Repository.SingleThreadedAttribute]
public class SingleThreadedRepository
{
public SingleThreadedRepository ()
{
}
}
}
Ein OpenEdge ABL Repository implementiert dann das IRepository Interface und erbt von der “Dummy”-Klasse:
CLASS ListLabel.OpenEdgeRepository.OpenEdgeRepositoryModel IMPLEMENTS IRepository INHERITS LuL.OpenEdgeRepository.SingleThreadedRepository:
IDKBTD001355 KBTD001355