access violation using tkbmMWVirtualMessagingServerTransport

Home Forums kbmMW access violation using tkbmMWVirtualMessagingServerTransport

Viewing 1 reply thread
  • Author
    Posts
    • #53447
      jet2050
      Participant

      Hello

      I’m trying to use the same concept of the Remote Desktop example (Server, Proxy, Client)
      having the following components on the Server part:

      kbmMWServer
      TkbmMWTCPIPIndyMessagingServerTransport (->kbmServer, -> qIn, -> qOut)
      qIn: TkbmMWMemoryMessageQueue
      qOut: TkbmMWMemoryMessageQueue
      ClientTransport: TkbmMWTCPIPIndyMessagingClientTransport (qIn, -> qOut)
      qServerIn: TkbmMWMemoryMessageQueue
      VirtualTransport : TkbmMWVirtualMessagingServerTransport (->kbmServer, -> qServerIn, -> qOut)

      But when I set kbmMWServer.Active it gives me the access violation

      exception message : Access violation at address 00C0EC4E in module ‘Servidor_WIB.exe’. Read of address 00000000.

      main thread ($4ed4):
      00c0ec4e +0e6 Servidor_WIB.exe kbmMWCustomServerMessagingTransport 2255 +21 TkbmMWCustomSAFServerTransport.Listen

      Please help me solve this problem

      Thanks for your time

      Regards

      Job Espejel

      PS

      I’m using Delphi Enterprise 10.2.3 (Tokio) and kbmMW Enterprise 5.08.10

    • #53456
      kimbomadsen
      Keymaster

      Hi,

      Open kbmMWCustomServerMessagingTransport.pas
      Locate procedure TkbmMWCustomSAFServerTransport.Listen implementation

      Change

      
                if mwmdSubscribe in FDirection then
                   FInboundQueueProcessor.Start
                else
                    FInboundQueueProcessor.Stop;
       
                if mwmdPublish in FDirection then
                   FOutboundQueueProcessor.Start
                else
                    FOutboundQueueProcessor.Stop;
           

      To

           if FInboundQueueProcessor<>nil then
           begin
                if mwmdSubscribe in FDirection then
                   FInboundQueueProcessor.Start
                else
                    FInboundQueueProcessor.Stop;
           end;
      
           if FOutboundQueueProcessor<>nil then
           begin
                if mwmdPublish in FDirection then
                   FOutboundQueueProcessor.Start
                else
                    FOutboundQueueProcessor.Stop;
           end;
Viewing 1 reply thread
  • You must be logged in to reply to this topic.