Recent Forum Posts
From categories:
page 1123...next »
Sampad B Mohanty (guest) 31 Oct 2017 14:13
in discussion Hidden / Per page discussions » Broker vs. Brokerless

9 years and month(s) since last revisit.

by Sampad B Mohanty (guest), 31 Oct 2017 14:13

I've added a couple of topics, just possible ideas, by no means definitive.

by Luca BoccassiLuca Boccassi, 31 Aug 2017 12:25
Glenn (guest) 21 Jun 2017 01:24
in discussion Hidden / Per page discussions » NORM Transport Notes

From src/norm_engine.cpp:

        //NormSetTTL(norm_session, options.multicast_hops);  // ZMQ default is 1
        NormSetTTL(norm_session, 255);  // since the ZMQ_MULTICAST_HOPS socket option isn't well-supported

Is there any information on which platforms don't support ZMQ_MULTICAST_HOPS very well?
by Glenn (guest), 21 Jun 2017 01:24

@Marc F Sorry:-) that is typo…Both sender and receiver using same multicast IP address as 239.255.0.20.

Marc F (guest) 19 Jun 2017 21:06
in discussion Hidden / Per page discussions » NORM Transport Notes

Maybe due to the mismatch in IP addresses used in the sender and receiver. The sender seems to be using .2, while the receiver connects to .20.

by Marc F (guest), 19 Jun 2017 21:06

ZeroMQ ( version - zeromq-4.1.6 & zeromq-4.2.1) PGM multicast packet receive stuck in between, even Sender still sending the packets without any issue.

If we restart the Receiver, application now receives the packets, but it won't be a solution. I tried with various ZMQ_RATE in both Sender & Receiver side.

Issue:

Sender sends almost 300,000 packets with following socket options, but Receiver stuck in between & not receiving all the packets.

Environment Setup:

( Sender & Receiver connected within the single subnet using D-Link switch. Media speed is 1Gbps )

Code Snippet

Sender: JZMQ ( ZMQ C library, openPGM )
JZMQ Sender:
ZMQ.Context context = ZMQ.context(1);
ZMQ.Socket socket = context.socket(ZMQ.PUB);
socket.setRate(80000);
socket.setRecoveryInterval(60*60);
socket.setSendTimeOut(-1);
socket.setSendBufferSize(1024*64);
socket.bind("pgm:
local_IP;239.255.0.20:30001");

byte[] bytesToSend = new byte[1024];
int count = 0;
while(count < 300000) {
socket.send(bytesToSend, 0);
count++;
}


//Receiver: ZMQ C++ ( ZMQ C library, openPGM )

// ZMQCPP-PGM-receive.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <stdio.h>
#include "zmq.hpp"

int main(int argc, char* argv[]) {
try {

zmq::context_t context(1);

// Socket to talk to server
printf ("Connecting to server…");

zmq::socket_t *s1 = new zmq::socket_t(context, ZMQ_SUB);

int recvTimeout = 3000;
s1->setsockopt(ZMQ_RCVTIMEO,&recvTimeout,sizeof(int));

int recvRate = 80000;
s1->setsockopt(ZMQ_RATE,&recvRate,sizeof(int));

int recvHwMark = 5000;
s1->setsockopt ( ZMQ_RCVHWM, &recvHwMark, sizeof(int) );

int recsec = 60 * 60;
// s1->setsockopt(ZMQ_RECOVERY_IVL,&recsec,sizeof(recsec));

s1->connect("pgm://local_IP;239.255.0.20:30001");

s1->setsockopt (ZMQ_SUBSCRIBE, NULL, 0);

printf ("done. \n");
int seq=0;
while(true) {

zmq::message_t msgbuff;

int ret = s1->recv(&msgbuff,0);
if(!ret)
{
printf ("Received not received timeout\n");
continue;
}

printf ("Seq(%d) Received data size=%d\n",seq,msgbuff.size());
++seq;
}
//Socket close to be handled
}
catch( zmq::error_t &e ) {
printf ("An error occurred: %s\n", e.what());
return 1;
}
catch( std::exception &e ) {
printf ("An error occurred: %s\n", e.what());
return 1;
}
return 0;
}

What can be the issue?

Raju (guest) 14 Jun 2017 13:29
in discussion Hidden / Per page discussions » Broker vs. Brokerless

Busy for 6years.. !!!

by Raju (guest), 14 Jun 2017 13:29
hfcghfc
fresafresa 09 Jun 2017 11:45
in discussion Hidden / Per page discussions » cppzmq

hfcgfgf

hfcghfc by fresafresa, 09 Jun 2017 11:45

Hi all! Is it possible to send term command (Kill?) to connected peer, or how can i do that?

For example: DEALER (client) - ROUTER - DEALER (service), i need to connect clients with internal security policy… for example i need one client with identity "test", and dont accept other identity's. How to?

Hi,

I am planning to support "Reliable Multicast" for Bulk data transfer in my Desktop application by using ZMQ NORM_Engine. Before that i need clarification like "Is NORM require any network hardware dependency or NORM enabled router to make it as reliable transport apart from NORM based Sender & receiver.

If router doesn't support NORM or PGM protocol, Is it useful to integrate ZMQ PGM or ZMQ NORM library.

As from my analysis, PGM is transport layer protocol and it requires PGM enabled Transport layer in router devices. Also PGM supported only in cisco, Juniper network routers.

Please clarify.

Dear All,

I skip the part where I say how much I love ZMQ and how great/easier it makes my dev….I guess this is implied in this thread trying to implement it in yet another project…

So, I would like to listen on 3 TCP sockets A, B & C: actually 2 clients (A=25500 & B=27500) and a server (C=25000)
Each A, B or C socket should/will receive string CSV packet, where the third parameter is the destination.
Based on this destination, packet will be redirected/forwarded/enqueued to the appropriated socket for sending.
No ack, no validation, no query-expected-response…
If connexion drop on one of the socket, packets for this one are just dropped.

So there is little check for the queue selection, and simply 3 sockets.

Question:
- what is the best implementation? not sure I am aiming at a PUB/SUB here (or a double one for each socket?), no REQ/REP, nor BROKER…
Actually this _could_ look like the famous weather example, however, not only subscribing in one direction, as each inbound is able to send/receive those string packets.. I guess I don't want FORWARD (although very tempting) since it won't le me do my packet/csv inspection at code level…or will it?

This sound so…easy, yet I could not manage to come with a great (thus simple) design…

Improvement:
- a fourth (or N-th) socket could be added in the futur, design should remain flexible.
- this would be initialy Linux/Python, but I don't have any issue with other language (although I am confident this is not really plateform/language dependent, right?)

Could you come with

alick (guest) 01 Mar 2017 09:57
in discussion Hidden / Per page discussions » ZeroMQ for MySQL

the problem has bean resloved bad code line 43 at zeromq.c,the function strlen argument not be a NULL value

by alick (guest), 01 Mar 2017 09:57
alick (guest) 01 Mar 2017 09:15
in discussion Hidden / Per page discussions » ZeroMQ for MySQL

9:14:16 UTC - mysqld got signal 11 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.
We will try our best to scrape up some info that will hopefully help
diagnose the problem, but since we have already crashed,
something is definitely wrong and this may fail.

key_buffer_size=8388608
read_buffer_size=16777216
max_used_connections=38
max_threads=800
thread_count=37
connection_count=37
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 39340442 K bytes of memory
Hope that's ok; if not, decrease some variables in the equation.

Thread pointer: 0x46d304b0
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong…
stack_bottom = 7fdaf8c29d30 thread_stack 0x40000
/usr/sbin/mysqld(my_print_stacktrace+0x3b)[0x91068b]
/usr/sbin/mysqld(handle_fatal_signal+0x491)[0x693c81]
/lib64/libpthread.so.0(+0xf130)[0x7fe5be672130]
/lib64/libc.so.6(+0x162811)[0x7fe5bcf52811]
/usr/lib64/mysql/plugin/libzeromq.so(zmq_client+0xb4)[0x7fe5745f7f05]
/usr/sbin/mysqld(_ZN11udf_handler7val_strEP6StringS1_+0x87)[0x62f537]
/usr/sbin/mysqld(_ZN17Item_func_udf_str7val_strEP6String+0x1c)[0x62f5fc]
/usr/sbin/mysqld(_ZN4Item4sendEP8ProtocolP6String+0x237)[0x5dea67]
/usr/sbin/mysqld(_ZN8Protocol19send_result_set_rowEP4ListI4ItemE+0xc5)[0x68d445]
/usr/sbin/mysqld(_ZN11select_send9send_dataER4ListI4ItemE+0x5f)[0x6e1c8f]
/usr/sbin/mysqld[0x6f5ff0]
/usr/sbin/mysqld[0x6f14ef]
/usr/sbin/mysqld(_Z10sub_selectP4JOINP13st_join_tableb+0x149)[0x6f1899]
/usr/sbin/mysqld(_ZN4JOIN4execEv+0x2e8)[0x6f0a78]
/usr/sbin/mysqld(_Z12mysql_selectP3THDP10TABLE_LISTjR4ListI4ItemEPS4_P10SQL_I_ListI8st_orderESB_S7_yP13select_resultP18st_select_lex_unitP13st_select_lex+0x275)[0x73c6d5]
/usr/sbin/mysqld(_Z13handle_selectP3THDP13select_resultm+0x165)[0x73cf35]
/usr/sbin/mysqld[0x5816e8]
/usr/sbin/mysqld(_Z21mysql_execute_commandP3THD+0x1cb5)[0x714965]
/usr/sbin/mysqld(_Z11mysql_parseP3THDPcjP12Parser_state+0x3b8)[0x71a9d8]
/usr/sbin/mysqld[0x71b231]
/usr/sbin/mysqld(_Z16dispatch_command19enum_server_commandP3THDPcj+0x1b72)[0x71d5f2]
/usr/sbin/mysqld(_Z10do_commandP3THD+0x27b)[0x71f10b]
/usr/sbin/mysqld(_Z24do_handle_one_connectionP3THD+0x162)[0x6e7622]
/usr/sbin/mysqld(handle_one_connection+0x40)[0x6e77e0]
/usr/sbin/mysqld(pfs_spawn_thread+0x143)[0xb55993]
/lib64/libpthread.so.0(+0x7df5)[0x7fe5be66adf5]
/lib64/libc.so.6(clone+0x6d)[0x7fe5bcee61ad]

Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (7fdadc00f640): is an invalid pointer
Connection ID (thread ID): 52
Status: NOT_KILLED

by alick (guest), 01 Mar 2017 09:15
alick (guest) 01 Mar 2017 09:05
in discussion Hidden / Per page discussions » ZeroMQ for MySQL

the zmq_client('socket','message') funciton ,whe message==NULL mysql server will crash, mysql Version=Ver 14.14 Distrib 5.6.28

by alick (guest), 01 Mar 2017 09:05

Number 21, big grey door (it's open), walk into the parking lot and in the opposite corner climb up 4 steps of stairs and you will see a big blue door, a cargo elevator. It's floor 4.

How to get there by Luca BoccassiLuca Boccassi, 02 Feb 2017 08:10
kalki70kalki70 16 Jan 2017 19:03
in discussion Hidden / Per page discussions » ØMQ is just Sockets!

¿You can achieve the same using plain sockets?

Can you take a plain socket, and call bind() for several addresses/ports on it ? Can you take a plain socket and call connect() simultaneously to different destinations? And then, can you call send() and distribute load over all those destinations, using a plain old socket? If those destinations disconnect, your plain socket reconnects automatically? The list here is really very long…

by kalki70kalki70, 16 Jan 2017 19:03

Hello,

I have a problem using ZMQ_PUB. I have a producer which connects to different processes that bind on ZMQ_SUB sockets.
When producer starts it creates s ZMQ_PUB socket and connects it to different processes. It then immediately start sending messages at a regular period.
As expected, if there are no connected subscribers, it drops all messages, until a subscriber starts. The flow works normal then, the subscriber start receives the messages. Now, the problem is :

  • I disconnect the subscriber (stopping the process).
  • There are no active subscriber at this point, as I stopped the only one.
  • The producer continues sending messages, which should be dropped, as there are no connected subscribers anymore…
  • I restart the original subscriber… and it receives all messages produced in the meantime !!

So what I see is that the producer enqueued all messages while the subscriber was down. As soon as the socket reconnected, because the subscriber process restarted, it sends all queued messages.

As I understood from here, a publisher should drop all sent messages when there are no connected subscribers:

As I am a "low-karma" user I can't publish a link to the documentation, which states :

"A publisher has no connected subscribers, then it will simply drop all messages."

Why is this happening?

By the way, I am using C++ over linux for these tests.

Thanks in advance,

Luis

ZMQ_PUB enqueuing messages? by kalki70kalki70, 16 Jan 2017 16:04

The NuGet package manager in visual studio currently offers the ZeroMQ C# binding versioned 4.1.0.21 (for the clr namespace). Installing this package provides the libzmq.dll with a version of 4.1.5. The application I am working on utilizes a binding in another language which is most stable using an older 3.x version of the libzmq.dll. What are my options for the C# binding that will be compatible with a 3.x version of the libzmq.dll?

Can I run the latest binding on the C# side using the 4.1.5 version of libzmq.dll and use the legacy version of zmq from the other component of the application? In general, do all components using zeroMQ to communicate need to use the same libzmq.dll version?

Can I run the latest binding on the C# side with a 3.x version of the libzmq.dll?

Is there a good option for downgrading the binding and libzmq.dll on the C# side, for example the clrzmq package on NuGet?

Gopi (guest) 13 Dec 2016 12:23
in discussion Hidden / Per page discussions » ØMQ is just Sockets!

It is just sockets. I can achieve the same using plain sockets. How it is different from other JMS implementations

by Gopi (guest), 13 Dec 2016 12:23
Kgothatso (guest) 21 Nov 2016 14:03
in discussion Hidden / Per page discussions » NORM Transport Notes

Hi. I built ZeroMQ manually as prescribed above. I point it to the norm source tree path, and on the make steps it shows that it builds the norm_file. However, I still get a "protocol not supported" issue when trying to run my app. Am I missing something? Also, in the Qt Creator .pro file, how do I add the NORM library? (e.g. LIBS += -lzmq for ZeroMQ)

by Kgothatso (guest), 21 Nov 2016 14:03
page 1123...next »