Actually I backported the fix to the latest version of 1.x. However,
it's not as configurable as 2.x.
wwTyler, Could you provide us some reproduceable stand alone application?
HTH,
Trustin
On Jan 10, 2008 4:00 AM, Mike Heath <[EMAIL PROTECTED]> wrote:
> Are you using the latest code from trunk? I believe there was an issue
> where an unfair priority was given to reads over writes and I think that
> has been fixed in trunk. Could you try downloading and compiling that
> latest version of MINA and see if you're still experience the same
> delays with writes?
>
> -Mike
>
>
> wwTyler wrote:
> > HI
> > Recently I have experience something very weird when using Mina core 2 m1 as
> > my application network infrastructure. the thing is that my Mina Connector's
> > IoSession can not write and read simultaneously under heavy write and read
> > load.
> >
> > Here is my situation:
> > 1. I develop a Web service based application on JBoss Application
> > Server(let's say, serverA). The Web Service Method (let's say, methodA) have
> > to handle invocations or requests from hundreds of, or maybe thousands of,
> > clients.
> > 2. And, methodA handle those invocations by just create some specific XML
> > messages, and send them to another Server (let's say, serverB).
> > 3. I use NioSocketConnector in serverA to implement the connection with
> > serverB. this means the serverA is client, serverB is the socket server, and
> > there is only one session between them.
> > 4. In methodA, I use the only IoSession to send all the XML messages to
> > serverB. the code is like below:
> > Client.getSession().write((Object) xmlMessage);
> > 5. I have a IoHandler for the NioSocketConnector called MyIoHandler. The
> > main job of it is to handle all the response XML message in
> > MyIoHandler.messageReceived().
> >
> >
> > While doing the performance test, I simulate 200 concurrent virtual users to
> > continuously call methodA. and the result is
> > that methodA swallow all the request from the virtual users, and
> > successfully write those XML message using session.write(). But the problem
> > is that MyIoHandler.messageReceived() was not acted as I expected. It only
> > handle very small amount of messages, and most of the response messages from
> > serverB are queued in the Mina's internal queue. If I stop all the virtual
> > users, the MyIoHandler.messageReceived() will resume the power, and begin
> > to handle.
> >
> > This is very strange, because my server's CPU usage is only about 40% during
> > the test, and it acted as IoSession can not write and read simultaneously
> > under heavy write and read load.
> >
> > I try to use connector.getSessionConfig().setUseReadOperation(true) and
> > call the session.read() after I write. Although it can make the session
> > write and read simultaneously, but the performance decreased dramatically.
> >
> > Questions:
> > 1. Can anyone tell me what's the reason of all above, or does someone know
> > how to fix it and make the server handle read and write all together?
> > 2. Do I need to synchronized the session?
> >
> > BTW, I am use java 1.5, mina 2.0m1, and jboss4.2.2. and I already disable
> > the ExecutorFilter.
> >
> > Thnak you in advance and Happy new year!
> >
> >
> >
>
>
--
what we call human nature is actually human habit
--
http://gleamynode.net/
--
PGP Key ID: 0x0255ECA6