[jacorb-developer] Delay in serial communication

Nick Cross jacorb at goots.org
Thu Apr 19 12:38:48 CEST 2012


On 19/04/12 08:54, Kujtim Hyseni wrote:
> Dear Mr. Cross,
>
> thank you for your valuable time spent to answer my questions.
>
> I will now answer your questions and present views.
>
>  >>Hi,
>  >>
>  >>I would advise using the latest available version (ideally 3.0 beta 2).
> I heave downloaded the latest version from web but heaven't installed
> yet. I think installing newest JacORB is a good idea. JacORB 2.3.0 takes
> so much resources thus blocking computer (PC) for doing other tasks. I
> will demonstrate this by an test I've done: I was testing influence of
> delays in servers routine operations (by inserting
> Thread.sleep(milliseconds) ) in overall system performance and watched
> the order of operations executed in server invoked by more than one
> client (from 2 and 3 clients) at the same time. The order of execution
> was correct but the PC was almost down (I was listening music in media
> player and media player was stoped), all programs were stoped or
> malfunctioning. This is not OK and should not be happening in newest
> version 3.0. I think this is a cause for my delay too, Jacorb 2.3
> somehow enters in a delay when it has to wait (in my case for incomming
> stream) for something.
>  >>
>  >>I presume you must have some IDL and client code as well? You state you
>  >>provided a version outside of the 'CORBA world' but that version also
>  >>implements BindServerPOA and has similar operation* calls? I would have
>  >>expected something 'standalone'.
> The two versions I heave presented are both from CORBA but with
> different source organization.

You have still not provided your IDL/Client code (and in fact a complete 
CORBA application would be useful). See below for how to submit it.

> The solutions outside of the 'CORBA
> world' is very similar and is present as follows:

<snipped code>

>  >>
>  >>Given the serial port will be delivering a byte stream it should be
>  >>possible to reproduce this as a test case without the serial port
>  >>reader/writer code (by using a sample byte stream) and demonstrate how
>  >>JacORB is affecting the transport time. You might want to look at the
>  >>JacORB demos/tests as a starting point.
> This is a good idea. I will replace serial port reader/writer with file
> or TCP/IP reader/writer and see how the JacORB is affecting the
> transport time. I heavent seen the demos/tests provided with JacORB 3.0,
> I think that in 2.3.0 there is nothing useful. But again I think that a
> little delay in execution of server operations invokes/affects greater
> delays.


Any communication 'over the wire' will cause *some* delay comparing to a 
direct local call (TCP transfer/marshalling etc). You have mentioned 
JacORB 'causes a delay' but have not shown that the simple overhead of a 
remote CORBA call is causing the supposed delays.

Presumely in your CORBA application the client is calling operation1/2? 
How does your Thread end? I can't see any code to end it?

You also mention that the application is causing a load on the CPU. Have 
you tried profiling it to see where the issue is?

If you can demonstrate a bug in JacORB then please submit a standalone 
compilable test case showing the problem by submitting a bugzilla here
http://www.jacorb.org/contrib.html

>  >>Have you tried using Wireshark to analyse the network trace?
> I cannot use Wireshark in local (localhost) invocations since Windows
> (XP in my case) doesn't allows it - I will try it when I will establish
> a network.

Install Linux in a VM and test using that. Or look at the alternatives 
here http://wiki.wireshark.org/CaptureSetup/Loopback

>  >>Have you
>  >>tried turning on JacORB debug logging?
> Can you explain how to do this, please?

See the JacORB programming guide.


Regards

Nick


More information about the jacorb-developer mailing list