Hello Steve, thanks for the quick answer. What about my other problem.
Isn't it possible to bind /connect a sender/receiver
to two different sockets on the same interface like this:
private static final ZMQ.Context CONTEXT = ZMQ.context (1);
private static final ZMQ.Socket PRODUCER_SOCKET = CONTEXT.socket(ZMQ.PUB);
private static final ZMQ.Socket CONSUMER_SOCKET = CONTEXT.socket(ZMQ.SUB);
...
PRODUCER_SOCKET.bind("tcp://127.0.0.1:5555");
CONSUMER_SOCKET.setsockopt(ZMQ.SUBSCRIBE, "");
CONSUMER_SOCKET.connect("tcp://127.0.0.1:5555");
...
Producer Thread:
while(!Thread.currentThread().interrupted()) {
try {
String value = TinyUUID.randomTinyUUID().toString();
LOG.debug("Send " + value);
PRODUCER_SOCKET.send(value.getBytes(), 0);
Thread.sleep(1000);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
Consumer Thread (Runnable scheduled via ExecutorService):
while (!Thread.currentThread().isInterrupted()) {
try {
LOG.debug("Receiving ...");
byte[] rawMessage = CONSUMER_SOCKET.recv(0);
LOG.debug("Received %s", new String(rawMessage));
} catch (Exception e) {
LOG.error("An error occured handling zmq message ...");
}
}
The problem is that the send thread using the producer socket blocks on
send. If I don't
start the consumer send() does not block. Furthermore, If I use the two
different VMs (
one producer, one consumer main app) it works splendidly too.
What am I doing wrong?
Best regards, Jens
Am 30.06.2010 11:58, schrieb Steven McCoy:
On 30 June 2010 17:44, Jens Mehnert <[email protected]
<mailto:[email protected]>> wrote:
The second problem I've is that if I'm using two contexts I'm
running into troubles when I'm changing
the protocol to epgm. Because in that case I'm getting following
error: Assertion failed: !pgm_supported () (zmq.cpp:239)
// Unfortunately, OpenPGM doesn't support refcounted
init/shutdown, thus,
// let's fail if it was initialised beforehand.
zmq_assert (!pgm_supported ());
i.e. ZeroMQ only allows one PGM session per process. OpenPGM v3 has
implemented reference counting to resolve such issues.
--
Steve-o
_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev
--
Jens Mehnert
sMeet Communications GmbH
Gipsstrasse 5
D-10119 Berlin
Fon: +49 -30- 2887 88963
Fax: +49 -30- 9700 5359
E-Mail: [email protected]
smeet.com
see.meet.talk
Sitz der Gesellschaft: Birmingham, UK
Handelsregister Berlin Charlottenburg: HRB 104503 B
Geschäftsführer: Reinhard Köhn, Sebastian Funke
_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev