[zeromq-dev] Frequent error messages

Gonzalo Vásquez gvasquez at altiuz.cl
Fri Mar 8 17:16:40 CET 2013


Trevor,

That snapshot was downloaded last week, nevertheless, I'll do as instructed.

Regards,

Gonzalo 

Enviado desde mi iPhone

El 08-03-2013, a las 12:06, Trevor Bernard <trevor.bernard at gmail.com> escribió:

> 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
>>   
>> 
>> 
>> 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
>>>>   
>>>> 
>>>> 
>>>> 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
> 
> _______________________________________________
> 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/e499083d/attachment.htm>


More information about the zeromq-dev mailing list