Hallo!
Ich rufe von einem Programm diverse SAP-Funktionen per RFC-Schnittstelle über COM auf. Diese entsprechenden Funktionen habe ich in eine DLL ausgelagert. In einem "normalen" Programm funktioniert das auch ohne Probleme, so bald ich jedoch das Ganze in einem multithreaded implementierten Dienst mit dem gleichzeitigen Zugriff von verschiedenen Threads aufs SAP verwende gehts nicht mehr, d.h. der erste Thread erhält vollen Zugriff, alle nachfolgenden bekommen eine Zugriffsverletzung.
Die Initialisierung erfolgt per CoInitializeEx(nil, 0), was also heisst - Single Threaded Apartment, eine Initialisierung mit (nil,2) - Multithreaded - schmiert prompt mit einer Zugriffsverletzung ab.
Funktioniert diese Art Zugriff übers SAP-GUI prinzipiell nicht oder gibts da noch eine Möglichkeit?
Eine andere Schnittstelle habe ich mit Java realisiert, dort scheint diese Beschränkung nicht zu bestehen...
Schöne Grüsse
Steffen
Ich rufe von einem Programm diverse SAP-Funktionen per RFC-Schnittstelle über COM auf. Diese entsprechenden Funktionen habe ich in eine DLL ausgelagert. In einem "normalen" Programm funktioniert das auch ohne Probleme, so bald ich jedoch das Ganze in einem multithreaded implementierten Dienst mit dem gleichzeitigen Zugriff von verschiedenen Threads aufs SAP verwende gehts nicht mehr, d.h. der erste Thread erhält vollen Zugriff, alle nachfolgenden bekommen eine Zugriffsverletzung.
Die Initialisierung erfolgt per CoInitializeEx(nil, 0), was also heisst - Single Threaded Apartment, eine Initialisierung mit (nil,2) - Multithreaded - schmiert prompt mit einer Zugriffsverletzung ab.
Funktioniert diese Art Zugriff übers SAP-GUI prinzipiell nicht oder gibts da noch eine Möglichkeit?
Eine andere Schnittstelle habe ich mit Java realisiert, dort scheint diese Beschränkung nicht zu bestehen...
Schöne Grüsse
Steffen
Comment