Hi,
I have an application which has a very simple scenario of sending Java
POJO(serializable) objects from Mina client to server and client waits for the
response.
It was all working very fine with mina-core-2.0.0-M3.jar but looks like
something has changed in mina-core-2.0.0-M6.jar and mina-core-2.0.0-RC1.jar
where on several messages mina server receives the message from client ( both
process running on same machine) after a delay of 5 seconds. I can see that on
client side LoggingFilter has written the message but then there is a delay on
server side when it is received.
I ran the test on the same "dataset" for the above 3 versions of MINA and - M3
runs fine without any issue and there is no delay. I am testing this in a
controlled environment where at any given point of time only 1 message is sent.
Only after the response is received, does the second message is sent out.
Message is basically - an array List - have 3 members where2 members are of
string type and 1 member is HashMap of around 12 objects(11 are simple
primitive wrappers and 1 POJO - having 6 primitives wrappers)
Can someone point me to the right direction?
Thanks
Vijay
-----------------Mina client code snippet ------------
connector.getFilterChain().addLast("codec",new
ProtocolCodecFilter(new ObjectSerializationCodecFactory()));
connector.getFilterChain().addLast( "logger",new LoggingFilter() );
connector.setConnectTimeoutMillis(30 * 1000);
ConnectFuture future1 = connector.connect( address );
future1.awaitUninterruptibly(15, TimeUnit.SECONDS);
if (!future1.isConnected()) {
return false;
}
session = future1.getSession();
CloseFuture closeFuture = session.getCloseFuture();
closeFuture.addListener((IoFutureListener<?>) new
IoFutureListener<IoFuture>() {
public void operationComplete(IoFuture future) {
System.out.println("The session is now closed");
logger.info("Mina client session is getting closed");
}
});
---------------------------------------Mina Server Code snippet
---------------------------------------------------------
acceptor = new NioSocketAcceptor();
acceptor.getFilterChain().addLast( "logger",
new LoggingFilter() );
acceptor.getFilterChain().addLast( "codec",
new ProtocolCodecFilter( new
ObjectSerializationCodecFactory() ) );
acceptor.setHandler( handler );
acceptor.getSessionConfig().setReadBufferSize( 2048 );
acceptor.getSessionConfig().setIdleTime( IdleStatus.BOTH_IDLE,
3 );
acceptor.bind( new InetSocketAddress( "127.0.0.1", port ) );