Local Channel, LocalServer and EventReceiver problem


(estebanp) #1

Delphi Tokyo.

Latest version of ROSDK. Using OLYMPIA Server and SynapseSuperTCP.

We have services that listen to their own events. This is in order to have a single set of services that can be used across the organization, we simply switch to local channel and server if it is called within a service or synapse if its called from a different service out of process.

We use TROLocalServer, TROLocalChannel and TROEventReceiver. After struggling for a bit on why we were not getting messages in real time we just discovered that the event receiver is polling requests when is connected using the Local components.

Being in-process we were hoping that the LocalServer and Channel will be as efficient as the supertcp ones avoding to use polling. is there a reason why these ones do not work in the same way?

Adding a bit more to it, these services using the local channel and server have access to Olympia so they can all share the same messages. I’m wondering if Olympia which is connecting via supertcp and is getting the messages in real time why are not the local channels getting them too?

I will assume that probably the EventReceiver was not updated to use the same functionality as the eventaware components when dealing with LocalChannel. Any suggestions? solutions?

Making it worst, our testing setting it to polling every second, makes it unstable after a while.

(EvgenyK) #2


TROLocalChannel/TROLocalServer were designed for executing of service methods as simple as possible.
they don’t support IROActiveEventChannel/IROActiveEventServer interfaces at this moment.
I’ll log issue for adding this possibility.

as a temporary workaround, you can use WinMessage channel - it supports above interfaces and should work w/o any issues in your case.

(RemObjects) #3

Thanks, logged as bugs://81536

(estebanp) #4

Hi there,

Thank you for the suggestion. It did ok for a few tests, but shortly after we were hit with “Channel is busy errors” everywhere. It seems it can’t handle being called from itself and/or too frequently. Local channel does well, except for the active event repository.

We will see how we can manage while we hope for the chance of local server supporting active channel.


(EvgenyK) #5

can you create a simple testcase that reproduces failure with local channel, pls?
it will be very usable for me during implementing/testing bugs://81536.
you can attach it here or send directly to support@

(EvgenyK) #6

I’ve done some changes and seems it works w/o any problems:

2 timers send events

still I need your testcase …

(RemObjects) #7

bugs://81536 got closed with status fixed.