One more question;
Is there a multiplexing scheme in Mina in order to achieve multiple
sessions are all multiplexed through a single physical connection ? I am
asking this question because the protocol (DIAMETER) which we are trying
to implement advices to open a single connection between client and server.
Serkan Demir wrote:
Hi again,
>>All 100 sessions are sharing the same IoSession/ProtocolSession?
Yes, all client connections share same IoSession. Once i tried to
connect to server over my IoProtocolConnector, i have obtained a
session object (session = connector.connect(socket, connectTimeout,
protocolProvider); ) And i use same session object for all client
requests. Is there a way to duplicate session object, i cannot find a
method like copy or duplicate in Session objects. Or do i have to
connect server for each client request ( this sounds odd to me) to
multiply session objects ?
>>If you want to do parallel processing for a single session, you
will want to create your own ThreadPoolFilter to achieve this.
I have already use SimpleServiceRegistry and adds mina's default
IoThreadPoolFilter to the chains of SocketIoAcceptor, what do you mean
by writing own ThreadPoolFilter? I cannot see any specialized
implementation of ThreadPoolFilter in examples.
As i indicated my previous post, i want to see a dynamic and
auto-scalable thread pool which increases/decreases its pool size
according to traffic. However, i cannot achieve this. (i am also
profiling my application).
peter royal wrote:
On May 1, 2006, at 9:57 AM, Serkan Demir wrote:
int numOfThreads = 100;
for (int i = 0; i < numOfThreads; i++) {
thread[i] = new TrafficWorker(session);
thread[i].setName("Thread#" + i);
}
All 100 sessions are sharing the same IoSession/ProtocolSession? If
so, this will be the cause of your problems. You won't get parallel
processing, since by default, MINA does everything for a given
session in serial. If you want to do parallel processing for a
single session, you will want to create your own ThreadPoolFilter to
achieve this.
Try using a new session in each thread of your tests, I think you'll
get what you are looking for.
-pete