[zeromq-dev] Frequent error messages
Trevor Bernard
trevor.bernard at gmail.com
Fri Mar 8 16:06:55 CET 2013
Hi Gonzalo,
Can you try building the latest from jzmq master? Not knowing what
2.1.2-SNAPSHOT you have, I can't be certain which fixes are included in
your version.
These issues might be contributing to your stability problems that have
since been resolved:
- https://github.com/zeromq/jzmq/issues/174
- https://github.com/zeromq/jzmq/issues/186
Also, I'm working on build more stable/interruptible zmq devices.
>From looking at your code, you're basically use the zmq queue device. Here
is my WIP for the queue device:
https://github.com/trevorbernard/jzmq/commit/8ff283764340758159ab915afcbbe87894882a31
This is completely untested but I intend to finalize it over the weekend.
Warmest regards,
Trev
On Fri, Mar 8, 2013 at 7:57 AM, Gonzalo Vasquez <gvasquez at altiuz.cl> wrote:
> Dear Min,
>
> File pom.xml inside jzmq-master.zip says "2.1.2-SNAPSHOT"
>
> ZMQ is the latest, i.e. 3.2.2
>
> Gonzalo Vásquez Sáez
> Gerente Investigación y Desarrollo (R&D)
> Altiuz Soluciones Tecnológicas de Negocios Ltda.
> Av. Nueva Tajamar 555 Of. 802, Las Condes - CP 7550099
> +56 2 335 2461
> gvasquez at altiuz.cl
> http://www.altiuz.cl
> http://www.altiuzreports.com
> <https://www.facebook.com/altiuz> <http://twitter.com/altiuz> <http://www.linkedin.com/company/altiuz>
>
> El 07-03-2013, a las 22:59, Min <miniway at gmail.com> escribió:
>
> Hi,
>
> And what version of jzmq and libzmq did you
> use?
>
> Thanks
> Min
>
> 2013년 3월 7일 목요일에 Gonzalo Vasquez님이 작성:
>
>> This is the client side code that I use to communicate with the server:
>>
>> private byte[] getByte(final String table, final String name,
>> final int doc_off, final int doc_len, final int comp_off,
>> final int comp_len, final char compressionType) throws Exception {
>> File file = new File(cacheRoot, table.substring(0, 3) + "/DOC/" +
>> name); //$NON-NLS-1$
>> Context ctx = ZMQ.context(1);
>>
>> Socket req = ctx.socket(ZMQ.REQ);
>> req.connect(ENDPOINT);
>>
>> // TODO Crear POJO en vez de Map
>> Map<String, String> params = new HashMap<String, String>();
>> params.put("path", file.getAbsolutePath());
>> params.put("dOff", String.valueOf(doc_off));
>> params.put("dLen", String.valueOf(doc_len));
>> params.put("cOff", String.valueOf(comp_off));
>> params.put("clen", String.valueOf(comp_len));
>> params.put("cType", String.valueOf(compressionType));
>>
>> ByteArrayOutputStream baos = new ByteArrayOutputStream();
>> ObjectOutputStream oos = new ObjectOutputStream(baos);
>> oos.writeObject(params);
>> oos.close();
>> params.clear();
>> baos.close();
>>
>> req.send(baos.toByteArray(), NO_FLAGS);
>> byte[] data = req.recv();
>> req.close();
>> ctx.term();
>> return data;
>> }
>>
>>
>> And on the server side I use the three attached classes
>>
>> public void run() {
>> // Prepare our context and sockets
>> Context context = ZMQ.context(1);
>> Socket frontend = context.socket(ZMQ.ROUTER);
>> Socket backend = context.socket(ZMQ.DEALER);
>> frontend.bind("tcp://*:5559");
>> backend.bind("inproc://workers");
>>
>> Thread threads[] = new Thread[workers];
>> for (int i = 0; i < threads.length; i++) {
>> threads[i] = new WorkerThread(i, context);
>> threads[i].start();
>> }
>> System.out.println("launch and connect broker.");
>>
>> // Initialize poll set
>> Poller items = context.poller(2);
>> items.register(frontend, Poller.POLLIN);
>> items.register(backend, Poller.POLLIN);
>>
>> boolean more = false;
>> byte[] message;
>>
>> // Switch messages between sockets
>> try {
>> while (!Thread.currentThread().isInterrupted()) {
>> // poll and memorize multipart detection
>> items.poll();
>>
>> if (items.pollin(0)) {
>> while (true) {
>> // receive message
>> message = frontend.recv(0);
>> more = frontend.hasReceiveMore();
>>
>> // Broker it
>> backend.send(message, more ? ZMQ.SNDMORE : 0);
>> if (!more) {
>> break;
>> }
>> }
>> }
>> if (items.pollin(1)) {
>> while (true) {
>> // receive message
>> message = backend.recv(0);
>> more = backend.hasReceiveMore();
>> // Broker it
>> frontend.send(message, more ? ZMQ.SNDMORE : 0);
>> if (!more) {
>> break;
>> }
>> }
>> }
>> }
>> } finally {
>> // We never get here but clean up anyhow
>> frontend.close();
>> backend.close();
>> context.term();
>> }
>> }
>>
>> Does that help solving the problem?
>> Gonzalo Vásquez Sáez
>> Gerente Investigación y Desarrollo (R&D)
>> Altiuz Soluciones Tecnológicas de Negocios Ltda.
>> Av. Nueva Tajamar 555 Of. 802, Las Condes - CP 7550099
>> +56 2 335 2461
>> gvasquez at altiuz.cl
>> http://www.altiuz.cl
>> http://www.altiuzreports.com
>> <https://www.facebook.com/altiuz> <http://twitter.com/altiuz> <http://www.linkedin.com/company/altiuz>
>>
>> El 05-03-2013, a las 18:19, Pieter Hintjens <ph at imatix.com> escribió:
>>
>>
>> On Tue, Mar 5, 2013 at 9:57 PM, Gonzalo Vasquez <gvasquez at altiuz.cl>wrote:
>>
>>> Hi there!
>>>
>>> Upon stressing a Java / ZMQ based piece of software, I'm getting TWO
>>> repeated errors every now and then, they are:
>>>
>>
>> Hi Gonzalo,
>>
>> As with any error you're trying to report (to any project, I guess), the
>> best tool is a minimal (I can't emphasize that enough) test case that
>> provokes the crash. If you can make this in Java we can recreate it in C,
>> and see where the problem is.
>>
>> The test case is essential to fixing the problem since after we fix it we
>> have to run the same test case to be 100% the problem is gone.
>>
>> -Pieter
>>
>> _______________________________________________
>> zeromq-dev mailing list
>> zeromq-dev at lists.zeromq.org
>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>>
>> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>
>
>
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20130308/ec4774aa/attachment.htm>
More information about the zeromq-dev
mailing list