[ 
https://issues.apache.org/jira/browse/SANDESHA2C-52?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Damitha Kumarage closed SANDESHA2C-52.
--------------------------------------

    Resolution: Fixed

This branch is now merged into the trunk.

> Improvements in the branch 
> https://svn.apache.org/repos/asf/webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008
> ---------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: SANDESHA2C-52
>                 URL: https://issues.apache.org/jira/browse/SANDESHA2C-52
>             Project: Sandesha2/C
>          Issue Type: Improvement
>            Reporter: Damitha Kumarage
>            Assignee: Damitha Kumarage
>
> I have done significant changes to the Sandesha2/C code base in the branch
> https://svn.apache.org/repos/asf/webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008
> The intention is
> 1. To make it very stable/reliable as expected from a reliable messaging 
> implementation.
> 2. To minimize the additional overhead added when messages are sent reliably.
> 3. To improve the performance.
> 4. To fix the memory leaks.
> To achieve the above goals I have worked on the following.
> 1. In single channel one/two way scenario's completely avoid using 
> Sandesha2/C specfic threads to send
>    messages. Instead send the messages in the same thread as the thread that 
> invoked the Sandesha2/C handler.
>    Let me explain this in more detail. Suppose that application client send 
> an application message that
>    need to be sent reliably. When this hit the Sandesha2/C out handler in the 
> client side what it
>    do is prepare a Sandesha2/C specific create sequence message(CS) and send 
> it to the server in the same
>    thread. Now it block for specified amount of time until a create sequence 
> response(CSR) arrive.
>    If necessary it resend the CS as specified in the configuration.
>    Once the CSR arrives it sends the held in application message to the 
> server. Then it blocks until a
>    application response message arrives for a specified amount of time and do 
> resends if neccessary as
>    specified in the configuration.
>    In dual channel scenario it is not possible to completely get rid of the 
> Sandesha2/C specific threads.
>    However in all happy scenario where there is no network/server crash it 
> does not use any Sandesha2/C
>    specific threads avoiding any complexity. However if there needs resends 
> then those resends are done
>    in a Sandesha2/C specific thread.
> 2. In single channel one/two way scenario always piggyback the acknowledgment 
> messages on application/terminate
>    messages. This minimize the RM specific messages only to CS/CSR and 
> Terminate messages.
> 3. Reducing the complexity which resulted in more clean environment.
> These measures has resulted in vast improvements over the existing 
> Sandesha2/C. In addition all the changes
> are purely implementational. There is no API changes, no configuration 
> changes.
> Also currently only RM 1.0 single channel one/two way is completed which 
> means it is ready for scripting languages.
> I have tested it with 100 messages in a sequence in Linux platform 
> successfully.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to