Hi, I also found that there're two issues here.
- At the examples, HWM is not set. so the default value, 1000 is applied. Messages can be dropped silently in broker, worker or client. - Late binding issue. So the first message can be loss. I'm going to set required socket options to the examples. Thanks Min On Sep 7, 2013, at 6:09 AM, Roger <[email protected]> wrote: > I'm using jeromq. > > I ran the mdworker, mdbroker and mdclient2 (the async example) and the > client loses about 15% of the messages. > > If I run msclient (sync example) all messages are received. > > To exaggerate the message loss, and record the number of messages lost I > made a few changes to mdclient2. > > ---- > import org.zeromq.ZMsg; > > > /** > * Majordomo Protocol client example, asynchronous. Uses the mdcli API to > hide > * all MDP aspects > */ > > public class mdclient2 { > > public static void main( String[] args ) throws Exception { > boolean verbose = ( args.length > 0 && "-v".equals( args[ 0 ] ) ); > mdcliapi2 clientSession = new mdcliapi2( "tcp://localhost:5555", verbose > ); > > > System.out.println( "Sending" ); > int count, recvCount = 0; > for( count = 0; count < 100000; count++ ) { > ZMsg request = new ZMsg(); > request.addString( "Hello world " + count ); > clientSession.send( "echo", request ); > } > > System.out.println( "Sleeping" ); > Thread.sleep( 5000 ); > > System.out.println( "Receiving" ); > > for( int i = 0; i < 100000; i++ ) { > ZMsg reply = clientSession.recv(); > if( reply != null ) { > ++recvCount; > reply.destroy(); > } > else { > break; > } > } > > System.out.printf( "%d requests, %d replies\n", count, recvCount ); > clientSession.destroy(); > } > > } > > > _______________________________________________ > zeromq-dev mailing list > [email protected] > http://lists.zeromq.org/mailman/listinfo/zeromq-dev _______________________________________________ zeromq-dev mailing list [email protected] http://lists.zeromq.org/mailman/listinfo/zeromq-dev
