What version of ZeroMQ are you using?
On Wed, Sep 24, 2014 at 8:17 PM, Mohit Anchlia <mohitanch...@gmail.com> wrote: > When I change from inproc:// to tcp:// everything seem to work. Not sure why > it's not working, perhaps order in which things are started? I am starting > in this order: > > 1) Bring up router/dealer -> This also connects router to dealer through > ZMQQueue. Router is tcp and dealer is inproc > 2) Bring up workter and connect to inproc > > When I change everything to tcp:// it works with exact same code and > sequence of operations > > On Tue, Sep 23, 2014 at 11:16 AM, Mohit Anchlia <mohitanch...@gmail.com> > wrote: >> >> I am trying to use router/dealer with dealer using inproc://, when I run >> my program the router seems to bind to the port (netstat), client seem to >> connect successfully but the recv after send hangs. Worker on the other hand >> doesn't see the request come in from router/dealer. Here is the snippet of >> my code, not sure what is wrong here: >> >> Router/Dealer: >> >> log.info("Starting ZeroMQ Router on port=" + port); >> // Prepare our context and socket >> ZMQ.Context context = ZMQ.context(1); >> // Socket to talk to clients >> ZMQ.Socket clients = context.socket(ZMQ.ROUTER); >> clients.bind("tcp://*:" + port); >> >> // Socket to talk to workers >> ZMQ.Socket workers = context.socket(ZMQ.DEALER); >> workers.bind("inproc://workers"); >> >> // Connect work threads to client threads via a queue >> ZMQQueue queue = new ZMQQueue(context, clients, workers); >> new Thread(queue).start(); >> >> log.info("Exiting ZeroMQ"); >> >> Worker: >> >> public JMSZMQRepServer() { >> this.context = ZMQ.context(1); >> socket = context.socket(ZMQ.REP); >> socket.connect("inproc://workers"); >> >> log.info("Server bind inproc"); >> } >> >> @Override >> public void run() { >> while (true) { >> // Wait for next request from client (C string) >> try { >> log.info("Start"); >> String request = socket.recvStr(0); >> // String request = new String(GZIPUtils.gunzip(socket.recv())); >> // Do some 'work' >> String response = null; >> response = doWork(request); >> // Send reply back to client (C string) >> socket.send(response, 0); >> } catch (ZMQException e) { >> if (e.getErrorCode() == ZMQ.Error.ETERM.getCode()) { >> log.warn("Exiting ", e.getMessage()); >> break; >> } else { >> log.error("Unable to send request", e); >> } >> } catch (Exception e) { >> // TODO Auto-generated catch block >> log.error("Error in gunzip", e); >> } >> } >> if (null != socket) { >> log.info("Socket closed"); >> socket.close(); >> } >> } >> >> Client: >> >> public JMSZMQClient() { >> context = ZMQ.context(1); >> requester = context.socket(ZMQ.REQ); >> requester.connect("inproc://workers"); >> log.info("Connected to in proc workers"); >> } >> public String processRequest(String json) throws DataStoreException { >> String result = null; >> long latency = System.currentTimeMillis(); >> // byte [] bJson = GZIPUtils.gzip(json.getBytes()); >> log.info("Send request to zMQ server"); >> // requester.send(bJson); >> requester.send(json, 0); >> result = requester.recvStr(0); >> log.info("ZeroMQ client took=" >> + (System.currentTimeMillis() - latency)); >> MessageUtil.validateZMQMessage(result); >> return result; >> } >> >> >> > > > _______________________________________________ > zeromq-dev mailing list > zeromq-dev@lists.zeromq.org > http://lists.zeromq.org/mailman/listinfo/zeromq-dev > _______________________________________________ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev