Announcement

Collapse
No announcement yet.

SAP-Functions per COM in multithreaded Programmen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • SAP-Functions per COM in multithreaded Programmen

    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

  • #2
    COM-Interfaces müssen bei verwendung in anderen Threads "gemarshalt" werden. Wie genau die nötigen Funktione heißen weiß ich jetzt nicht mehr, aber in den letzten Tagen war eine ähnliche Thread-COM-Diskussion.

    Comment


    • #3
      Siehe auch: http://entwickler-forum.de/showthread.php?t=45036

      Comment


      • #4
        Originally posted by Bernhard Geyer View Post
        COM-Interfaces müssen bei verwendung in anderen Threads "gemarshalt" werden. Wie genau die nötigen Funktione heißen weiß ich jetzt nicht mehr, aber in den letzten Tagen war eine ähnliche Thread-COM-Diskussion.
        Hallo!

        Ich erzeuge und benutze das COM-Objekt im selben Thread, aber es laufen mehrere dieser Threads parallel zum gleichen oder zu unterschiedlichen Systemen. Ich glaube, da hilft nur serialisieren
        Steffen

        Comment

        Working...
        X