We don't close the sockets because you are allowed to send multiple requests
over the same connection.

Requests received over the same connection are processed serially, in order.

Does that answer your question?

Utku Can Topçu wrote:
> While experimenting with the oneway (asynchronous) service calls to a Java
> Service, we've faced a serious connection overload.
> Currently we're using TBufferedTransport together with TThreadPoolServer on
> the Server side.
> Diving deep into the Java Thrift Libraries, auto-generated Java classes and
> debugging the code, we've seen that the oneway void methods on the Java
> Server side does not close the "TSocket"s that are related to the methods in
> question.
> 
> Is this a design decision? Should we treat this as a bug?
> 
> Our current solution to this problem is employing a ThreadPoolExecutor for
> each oneway method, we immediately transform the asynchronous requests into
> Runnables and place them in the thread pool and return from the method.
> 
> I think a similar approach should be implemented in the Thrift Java
> libraries.
> 
> What do you think on this issue?
> 
> Best Regards,
> Utku

Reply via email to