Re: Apache common pooling 2
SM Can this session be shared among multiple threads at the same time? The GenericKeyedObjectPool API supports the behavior of borrowing and returning objects: borrowObject(Object key) returnObject(Object key, Object obj) This means that one thread would borrow the SFTP session/client object, perform it's work, and then return it to the pool. The 'borrow' would indicate that the object usage would be exclusive to the borrower-thread until it is returned. JC Perhaps you'd be more interested in a cache rather than a pool? If the intention is to share an SFTP session/client reference between threads, check-in and check-out could be important. Although I do not know the use-case, I would imagine that each SFTP session would likely need to be borrowed from the pool exclusively for some set of FTP-commands and then returned once the intended set of steps had been completed. Otherwise, the various threads might issue commands to the session/client that would interrupt each other. Because GenericKeyedObjectPool supports exclusivity, testing idle, idle object evictor, and ensuring a minimum number of idle objects, it would be ideal for maintaining a connection to an SFTP server, where a simple cache could eventually be holding onto stale objects or clients having closed connections. - MDH On Tue, Feb 3, 2015 at 3:21 PM, James Carman ja...@carmanconsulting.com wrote: Perhaps you'd be more interested in a cache rather than a pool? On Tue, Feb 3, 2015 at 3:20 PM, Syed Mudassir syed.mudas...@gaiatv.in wrote: Guys, I have a question. I am using GenericKeyedObjectPool for pooling SFTP sessions. Suppose I have one session in the pool. Can this session be shared among multiple threads at the same time? I mean suppose if there are four threads running parallely, can this session be used at the same time by all the four threads simultaneously? If it is possible, any sample code to get it done? -- -- (847) 494-2866
Re: Apache common pooling 2
Hello, instead of the SFTP connections you can pool channels or sessions. Each of them will only have a single borrower, but multiple threads could use the same physical connection. This is possible because ssh protocol allows some multiplexing. But in most scenarios I am not sure if the work is work it. BTW: I think unlike JCA wich allows a seperation between logical connections and managed connections the Pool does not offer a ready solution for that kind of abstraction (especially not related to tearing down all channels when one fails or initiating new physical connections starting with a given utilisation). Gruss Bernd BTW: something I would really like to see is a JDBC pool where you get connection stubs which get bound late to actual JDBC sessions. This helps code which holds on to the object and does not return it ASAP. Am Tue, 3 Feb 2015 18:28:01 -0500 schrieb James Carman ja...@carmanconsulting.com: On Tue, Feb 3, 2015 at 5:07 PM, Matthew Huckaby matthew.huck...@gmail.com wrote: JC Perhaps you'd be more interested in a cache rather than a JC pool? If the intention is to share an SFTP session/client reference between threads, check-in and check-out could be important. I was assuming that the true intent was to really share the instances between threads. If that's the case, then a cache might be more appropriate. However, as you point out, it's probably not wise to share those connections with SFTP anyway, so pooling really is what you want. You're going to have to do some form of serialization of the messages/requests (whatever they're called) going across that connection. May as well let commons-pool do it for you by borrow/return pattern. - To unsubscribe, e-mail: user-unsubscr...@commons.apache.org For additional commands, e-mail: user-h...@commons.apache.org - To unsubscribe, e-mail: user-unsubscr...@commons.apache.org For additional commands, e-mail: user-h...@commons.apache.org
Re: Apache common pooling 2
On Tue, Feb 3, 2015 at 5:07 PM, Matthew Huckaby matthew.huck...@gmail.com wrote: JC Perhaps you'd be more interested in a cache rather than a pool? If the intention is to share an SFTP session/client reference between threads, check-in and check-out could be important. I was assuming that the true intent was to really share the instances between threads. If that's the case, then a cache might be more appropriate. However, as you point out, it's probably not wise to share those connections with SFTP anyway, so pooling really is what you want. You're going to have to do some form of serialization of the messages/requests (whatever they're called) going across that connection. May as well let commons-pool do it for you by borrow/return pattern. - To unsubscribe, e-mail: user-unsubscr...@commons.apache.org For additional commands, e-mail: user-h...@commons.apache.org
Apache common pooling 2
Guys, I have a question. I am using GenericKeyedObjectPool for pooling SFTP sessions. Suppose I have one session in the pool. Can this session be shared among multiple threads at the same time? I mean suppose if there are four threads running parallely, can this session be used at the same time by all the four threads simultaneously? If it is possible, any sample code to get it done? --
Re: Apache common pooling 2
Perhaps you'd be more interested in a cache rather than a pool? On Tue, Feb 3, 2015 at 3:20 PM, Syed Mudassir syed.mudas...@gaiatv.in wrote: Guys, I have a question. I am using GenericKeyedObjectPool for pooling SFTP sessions. Suppose I have one session in the pool. Can this session be shared among multiple threads at the same time? I mean suppose if there are four threads running parallely, can this session be used at the same time by all the four threads simultaneously? If it is possible, any sample code to get it done? --