Date: Fri, 29 Mar 2024 16:36:39 +0100 (CET) Message-ID: <1488486191.185.1711726599290@vmisdata19.uni-oldenburg.de> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_184_1686852431.1711726599289" ------=_Part_184_1686852431.1711726599289 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
Remark: This handler must be installed (How to install new features).
Important: If you want to use this handler e.g. to send=
csv data to Odysseus, use CSV protocol handler and send csv-values with a trailing "\n=
", as the CSV handler needs this! e.g. "9,7,Blue,98.3\n"
This transport handler allow to send and receive object via the AQMP pro= tocol, implemented with RabbitMQ (see http://www.rabbitmq.com/). Fur= ther parameter information can be found here: http://www.r= abbitmq.com/api-guide.html
Remark: In an older version, there was a publish_style.
Thi=
s will be ignored in future versions.
queue_name:
The queue to send to or receive from
exchange_name:
The exch=
ange to publish the message toconsumer_tag:
The consumer tag
host:
The host where the server runs
The port of the server (if not default)<=
code>port
:
Username (if required)username
:
Password (if required)password
:
virtualhost
: The virtual host (if required)
durable (true / false)
In addition, arbitrary options can bedefined. They need=
to start with the prefix "rabbit."
which will be removed in t=
he actual argument. Example:
['rabbit.x-messa=
ge-ttl',1000]
will be the argument 'x-message-ttl'
with the long value '1000'
.
#PARSER= PQL #REQUIRED de.uniol.inf.is.odysseus.wrapper.rabbitmq.feature #RUNQUERY input =3D ACCESS({ transport=3D'RabbitMQ', source=3D 'Receiver', wrapper=3D'GenericPush', protocol=3D'SimpleCSV', datahandler=3D'Tuple', options=3D[ ['EXCHANGE_NAME','TelCoSim'], ['QUEUE_NAME','DataUsage'], ['CONSUMER_TAG','Odysseus'], ['HOST','localhost'], ['ByteOrder', 'Little_Endian'], ['csv.delimiter',';'] ], schema=3D[ ['TIMESTAMP', 'STARTTIMESTAMP'], ['id', 'String'], ['volume', 'Long'] ] = =20 } =20 )
See https://git.swl.informati= k.uni-oldenburg.de/projects/ODYDATGEN/repos/telcosim/browse/src/main/java/d= e/uniol/inf/is/telCoSim/Simulation.java how the data is generated for t= his input queue.
See RabbitMQ use case for an example how to connect external software with Odysseus via RabbitM= Q.
Here is a simple example where content is send to RabbitMQ and received = with Odysseus again.
#PARSER= PQL #ADDQUERY timer =3D TIMER({PERIOD =3D 1000, SOURCE =3D 'timersource'}) SENDER =3D SENDER({ transport=3D'RabbitMQ', wrapper=3D'GenericPush', protocol=3D'csv', datahandler=3D'Tuple', SINK=3D"SENDER", options=3D[ ['QUEUE_NAME','nexmark'], ['CONSUMER_TAG','bid'], ['HOST','localhost'] ] =20 }, timer )
Receiver
#PARSER= PQL #REMOVEQUERY A #QNAME A #RUNQUERY input =3D ACCESS({ transport=3D'RabbitMQ', source=3D 'Receiver', wrapper=3D'GenericPush', protocol=3D'csv', datahandler=3D'Tuple', options=3D[ ['QUEUE_NAME','nexmark'], ['CONSUMER_TAG','bid'], ['HOST','localhost'], ['ByteOrder', 'LittleEndian'] ], schema=3D[['time', 'StartTimestamp']] = =20 }