[ 
https://issues.apache.org/jira/browse/THRIFT-66?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12901853#action_12901853
 ] 

James E. King, III commented on THRIFT-66:
------------------------------------------

Looks like the test .thrift files in the Channels subdirectory have a syntax 
error.  The IDL does not have channel specifications - those are made in code.  
For anybody applying the patch, just remove the channel designation in the 
ThriftTest/Channels/echo.thrift and rand.thrift and everything will compile.  
It was taken out a while ago, but I forgot to update the .thrift files.  I 
guess the Single File Code Generator for Visual Studio doesn't get invoked on a 
Rebuild All, which is odd.

> Allow multiplexing multiple services over a single TCP connection
> -----------------------------------------------------------------
>
>                 Key: THRIFT-66
>                 URL: https://issues.apache.org/jira/browse/THRIFT-66
>             Project: Thrift
>          Issue Type: New Feature
>          Components: C# - Library, C++ - Library, Cocoa - Library, Erlang - 
> Library, Java - Library, Perl - Library, Python - Library, Ruby - Library
>            Reporter: Johan Stuyts
>            Priority: Trivial
>         Attachments: CalculatorImpl.java, MultiplexTestClientMain.java, 
> MultiplexTestServerMain.java, ReleaseWaitingReplyThreadsOnDisconnect.patch, 
> SharedImpl.java, Thrift Endpoints and Channels.vsd, 
> ThriftCSharpEndpointsChannels.zip, ThriftMultiplexInvocationHandler.java, 
> TMultiplexServer.java, TMultiplexServer.py, TSimpleMultiplexServer.java
>
>
> The current {{TServer}} implementations expose a single service on a port. If 
> an application has many services many ports have to be opened. This is 
> cumbersome because:
> - you have to document which service is available on which port, and 
> remembering the port numbers is difficult
> - to prevent the overhead of connection setup on each call, a client has to 
> maintain to many connections: at least one to each port
> - it requires opening many ports on a firewall if one is between the client 
> and the server.
> By multiplexing multiple services on a single port the problems above are 
> resolved:
> - instead of a port number a symbolic name can be assigned to a service
> - a client can maintain a small pool of connections to a single port
> - only one port has to be opened on the firewall
> The attached Java implementation simply wraps a normal {{CALL}} message with 
> a (new) {{SERVICE_SELECTION}} message. It is not necessary to modify or wrap 
> the response. No changes are needed to the generated classes. Only a new type 
> of server is introduced, and an invocation handler for a dynamic proxy around 
> the {{Client}} classes of services is provided for the client side. The 
> implementation does not handle communication errors (invalid data, timeouts, 
> etc.) yet.

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

Reply via email to