<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://frp.sage.fr/wiki1000/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
		<id>https://frp.sage.fr/wiki1000/index.php?action=history&amp;feed=atom&amp;title=Exemple_File_d%27attente_avec_un_automate</id>
		<title>Exemple File d'attente avec un automate - Historique des versions</title>
		<link rel="self" type="application/atom+xml" href="https://frp.sage.fr/wiki1000/index.php?action=history&amp;feed=atom&amp;title=Exemple_File_d%27attente_avec_un_automate"/>
		<link rel="alternate" type="text/html" href="https://frp.sage.fr/wiki1000/index.php?title=Exemple_File_d%27attente_avec_un_automate&amp;action=history"/>
		<updated>2026-05-03T19:13:19Z</updated>
		<subtitle>Historique pour cette page sur le wiki</subtitle>
		<generator>MediaWiki 1.18.6</generator>

	<entry>
		<id>https://frp.sage.fr/wiki1000/index.php?title=Exemple_File_d%27attente_avec_un_automate&amp;diff=9602&amp;oldid=prev</id>
		<title>Flfay : /* Code snippet du producteur */</title>
		<link rel="alternate" type="text/html" href="https://frp.sage.fr/wiki1000/index.php?title=Exemple_File_d%27attente_avec_un_automate&amp;diff=9602&amp;oldid=prev"/>
				<updated>2014-06-05T13:44:41Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Code snippet du producteur&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Version précédente&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Version du 5 juin 2014 à 13:44&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 45 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 45 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* Il écrit le message en base par un Post sur le message, c'est une action générique indépendante du type de la file.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* Il écrit le message en base par un Post sur le message, c'est une action générique indépendante du type de la file.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* Le message contient deux paramètres et un contenu binaire&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* Le message contient deux paramètres et un contenu binaire&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* Il &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;ni &lt;/del&gt;a pas besoin de déclarer une transaction.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* Il &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;n y &lt;/ins&gt;a pas besoin de déclarer une transaction.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;===Code snippet du processus de traitement===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;===Code snippet du processus de traitement===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Flfay</name></author>	</entry>

	<entry>
		<id>https://frp.sage.fr/wiki1000/index.php?title=Exemple_File_d%27attente_avec_un_automate&amp;diff=7470&amp;oldid=prev</id>
		<title>Syfre : a déplacé Exemple file d'attente avec un automate vers Exemple File d'attente avec un automate</title>
		<link rel="alternate" type="text/html" href="https://frp.sage.fr/wiki1000/index.php?title=Exemple_File_d%27attente_avec_un_automate&amp;diff=7470&amp;oldid=prev"/>
				<updated>2013-08-29T11:59:43Z</updated>
		
		<summary type="html">&lt;p&gt;a déplacé &lt;a href=&quot;/wiki1000/index.php/Exemple_file_d%27attente_avec_un_automate&quot; class=&quot;mw-redirect&quot; title=&quot;Exemple file d'attente avec un automate&quot;&gt;Exemple file d&amp;#039;attente avec un automate&lt;/a&gt; vers &lt;a href=&quot;/wiki1000/index.php/Exemple_File_d%27attente_avec_un_automate&quot; title=&quot;Exemple File d'attente avec un automate&quot;&gt;Exemple File d&amp;#039;attente avec un automate&lt;/a&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='1' style=&quot;background-color: white; color:black;&quot;&gt;← Version précédente&lt;/td&gt;
		&lt;td colspan='1' style=&quot;background-color: white; color:black;&quot;&gt;Version du 29 août 2013 à 11:59&lt;/td&gt;
		&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Syfre</name></author>	</entry>

	<entry>
		<id>https://frp.sage.fr/wiki1000/index.php?title=Exemple_File_d%27attente_avec_un_automate&amp;diff=7283&amp;oldid=prev</id>
		<title>Syfre : /* Configuration de la file d'attente */</title>
		<link rel="alternate" type="text/html" href="https://frp.sage.fr/wiki1000/index.php?title=Exemple_File_d%27attente_avec_un_automate&amp;diff=7283&amp;oldid=prev"/>
				<updated>2013-04-29T08:31:08Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Configuration de la file d&amp;#039;attente&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Version précédente&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Version du 29 avril 2013 à 08:31&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 7 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 7 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;===Configuration de la file d'attente===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;===Configuration de la file d'attente===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;La file d'attente est configurée par un objet &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;TdbmMessageQueue &lt;/del&gt;du référentiel:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;La file d'attente est configurée par un objet &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[TdbmQueue]] &lt;/ins&gt;du référentiel:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{#images:image1.png|msgqueue/example1}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{#images:image1.png|msgqueue/example1}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Syfre</name></author>	</entry>

	<entry>
		<id>https://frp.sage.fr/wiki1000/index.php?title=Exemple_File_d%27attente_avec_un_automate&amp;diff=7138&amp;oldid=prev</id>
		<title>Syfre le 11 avril 2013 à 14:41</title>
		<link rel="alternate" type="text/html" href="https://frp.sage.fr/wiki1000/index.php?title=Exemple_File_d%27attente_avec_un_automate&amp;diff=7138&amp;oldid=prev"/>
				<updated>2013-04-11T14:41:04Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Version précédente&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Version du 11 avril 2013 à 14:41&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 15 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 15 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* L'attribut QueueConnextionInfos indique le nom de la classe dans laquelle seront stockés les messages, il s'agit de la classe générique permettant de stocker n'importe quel message.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* L'attribut QueueConnextionInfos indique le nom de la classe dans laquelle seront stockés les messages, il s'agit de la classe générique permettant de stocker n'importe quel message.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{tip|Cet exemple fonctionnerait identiquement avec une file d'attente WebSphereMQ ou ActiveMQ en changeant uniquement cet objet de configuration}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;{{tip|Le topic associé à la queue permet de filtrer les objets de classe. Seul les objets ayant ce topic seront pris en compte, la classe peut donc être partagée par plusieurs files.}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{tip|Cet exemple fonctionnerait identiquement avec une file d'attente WebSphereMQ ou ActiveMQ en changeant uniquement cet objet de configuration&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;.&lt;/ins&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;===Code snippet du producteur ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;===Code snippet du producteur ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Syfre</name></author>	</entry>

	<entry>
		<id>https://frp.sage.fr/wiki1000/index.php?title=Exemple_File_d%27attente_avec_un_automate&amp;diff=7128&amp;oldid=prev</id>
		<title>Syfre le 11 avril 2013 à 08:36</title>
		<link rel="alternate" type="text/html" href="https://frp.sage.fr/wiki1000/index.php?title=Exemple_File_d%27attente_avec_un_automate&amp;diff=7128&amp;oldid=prev"/>
				<updated>2013-04-11T08:36:52Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Version précédente&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Version du 11 avril 2013 à 08:36&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 2 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 2 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Dans cet exemple nous allons mettre en oeuvre le design pattern file d'attente en utilisant :&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Dans cet exemple nous allons mettre en oeuvre le design pattern file d'attente en utilisant :&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* Une file d'attente stockée dans la base de données&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* Une file d'attente stockée dans la base de données&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* Un automate pour consommer les messages de cette file d'attente (consommateur)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* Un code script pour générer les messages (producteur)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* Un code script pour générer les messages (producteur)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* Un automate pour consommer les messages de cette file d'attente (consommateur)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* Un processus de traitement pour traiter les messages &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* Un processus de traitement pour traiter les messages &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Syfre</name></author>	</entry>

	<entry>
		<id>https://frp.sage.fr/wiki1000/index.php?title=Exemple_File_d%27attente_avec_un_automate&amp;diff=7127&amp;oldid=prev</id>
		<title>Syfre : /* Configuration de la tâche d'automate */</title>
		<link rel="alternate" type="text/html" href="https://frp.sage.fr/wiki1000/index.php?title=Exemple_File_d%27attente_avec_un_automate&amp;diff=7127&amp;oldid=prev"/>
				<updated>2013-04-11T08:14:19Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Configuration de la tâche d&amp;#039;automate&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Version précédente&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Version du 11 avril 2013 à 08:14&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 104 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 104 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* L'évènement référence la file d'attente par son nom de paramétrage (DBQUEUE)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* L'évènement référence la file d'attente par son nom de paramétrage (DBQUEUE)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* L'intervalle de test est zéro &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;(?)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* L'intervalle de test est zéro &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;ce qui indique qu'il ni a pas de délai entre les différents tests de cet évènement.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;{{tip|Le délai entre chaque test sera conditionné par le délai de boucle configuré sur le serveur d'automate.}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Tâche :'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Tâche :'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Syfre</name></author>	</entry>

	<entry>
		<id>https://frp.sage.fr/wiki1000/index.php?title=Exemple_File_d%27attente_avec_un_automate&amp;diff=7126&amp;oldid=prev</id>
		<title>Syfre : /* Utilisation de plusieurs consommateurs */</title>
		<link rel="alternate" type="text/html" href="https://frp.sage.fr/wiki1000/index.php?title=Exemple_File_d%27attente_avec_un_automate&amp;diff=7126&amp;oldid=prev"/>
				<updated>2013-04-11T08:10:36Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Utilisation de plusieurs consommateurs&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Version précédente&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Version du 11 avril 2013 à 08:10&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 248 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 248 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{#images:image7.png|msgqueue/example1}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{#images:image7.png|msgqueue/example1}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;{{tip|Notez le nodeID propre à chaque instance du service}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Lorsque l'on crée plusieurs messages dans la file d'attente :&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Lorsque l'on crée plusieurs messages dans la file d'attente :&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Syfre</name></author>	</entry>

	<entry>
		<id>https://frp.sage.fr/wiki1000/index.php?title=Exemple_File_d%27attente_avec_un_automate&amp;diff=7125&amp;oldid=prev</id>
		<title>Syfre : /* Exécution */</title>
		<link rel="alternate" type="text/html" href="https://frp.sage.fr/wiki1000/index.php?title=Exemple_File_d%27attente_avec_un_automate&amp;diff=7125&amp;oldid=prev"/>
				<updated>2013-04-11T08:08:41Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Exécution&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Version précédente&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Version du 11 avril 2013 à 08:08&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 180 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 180 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;unEntier=&amp;quot;1999&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;unEntier=&amp;quot;1999&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;{{tip|Après exécution le message a été supprimé de la table TdbmStoredQueueMessage}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;====Production de plusieurs messages====&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;====Production de plusieurs messages====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Syfre</name></author>	</entry>

	<entry>
		<id>https://frp.sage.fr/wiki1000/index.php?title=Exemple_File_d%27attente_avec_un_automate&amp;diff=7124&amp;oldid=prev</id>
		<title>Syfre : /* Configuration de la file d'attente */</title>
		<link rel="alternate" type="text/html" href="https://frp.sage.fr/wiki1000/index.php?title=Exemple_File_d%27attente_avec_un_automate&amp;diff=7124&amp;oldid=prev"/>
				<updated>2013-04-11T08:05:59Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Configuration de la file d&amp;#039;attente&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Version précédente&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Version du 11 avril 2013 à 08:05&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 14 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 14 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* Le type de la file est DatabaseMQ ce qui indique qu'il s'agit d'une file gérée en base de données&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* Le type de la file est DatabaseMQ ce qui indique qu'il s'agit d'une file gérée en base de données&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* L'attribut QueueConnextionInfos indique le nom de la classe dans laquelle seront stockés les messages, il s'agit de la classe générique permettant de stocker n'importe quel message.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* L'attribut QueueConnextionInfos indique le nom de la classe dans laquelle seront stockés les messages, il s'agit de la classe générique permettant de stocker n'importe quel message.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;{{tip|Cet exemple fonctionnerait identiquement avec une file d'attente WebSphereMQ ou ActiveMQ en changeant uniquement cet objet de configuration}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;===Code snippet du producteur ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;===Code snippet du producteur ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Syfre</name></author>	</entry>

	<entry>
		<id>https://frp.sage.fr/wiki1000/index.php?title=Exemple_File_d%27attente_avec_un_automate&amp;diff=7123&amp;oldid=prev</id>
		<title>Syfre : Page créée avec « __TOC__ Dans cet exemple nous allons mettre en oeuvre le design pattern file d'attente en utilisant : * Une file d'attente stockée dans la base de données * Un automate ... »</title>
		<link rel="alternate" type="text/html" href="https://frp.sage.fr/wiki1000/index.php?title=Exemple_File_d%27attente_avec_un_automate&amp;diff=7123&amp;oldid=prev"/>
				<updated>2013-04-11T08:03:08Z</updated>
		
		<summary type="html">&lt;p&gt;Page créée avec « __TOC__ Dans cet exemple nous allons mettre en oeuvre le design pattern file d&amp;#039;attente en utilisant : * Une file d&amp;#039;attente stockée dans la base de données * Un automate ... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;__TOC__&lt;br /&gt;
Dans cet exemple nous allons mettre en oeuvre le design pattern file d'attente en utilisant :&lt;br /&gt;
* Une file d'attente stockée dans la base de données&lt;br /&gt;
* Un automate pour consommer les messages de cette file d'attente (consommateur)&lt;br /&gt;
* Un code script pour générer les messages (producteur)&lt;br /&gt;
* Un processus de traitement pour traiter les messages &lt;br /&gt;
&lt;br /&gt;
===Configuration de la file d'attente===&lt;br /&gt;
La file d'attente est configurée par un objet TdbmMessageQueue du référentiel:&lt;br /&gt;
&lt;br /&gt;
{{#images:image1.png|msgqueue/example1}}&lt;br /&gt;
&lt;br /&gt;
* Le nom de paramétrage de la file est DBQUEUE&lt;br /&gt;
* Le type de la file est DatabaseMQ ce qui indique qu'il s'agit d'une file gérée en base de données&lt;br /&gt;
* L'attribut QueueConnextionInfos indique le nom de la classe dans laquelle seront stockés les messages, il s'agit de la classe générique permettant de stocker n'importe quel message.&lt;br /&gt;
&lt;br /&gt;
===Code snippet du producteur ===&lt;br /&gt;
Le code générant un message dans la file est le suivant :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Procedure TestQueueMessage;&lt;br /&gt;
var msg:TdbmQueueMessage; idx:Integer;&lt;br /&gt;
begin&lt;br /&gt;
  for idx:=1 to 1 do&lt;br /&gt;
   begin&lt;br /&gt;
     msg := TdbmQueueMessage.Create;&lt;br /&gt;
     msg.QueueName := 'DBQUEUE';&lt;br /&gt;
     msg.AddParameter('uneChaine','some text');&lt;br /&gt;
     msg.AddParameter('unEntier',1999);&lt;br /&gt;
     msg.BinaryContent.LoadFromFile('c:\image.jpg');&lt;br /&gt;
     msg.Post;&lt;br /&gt;
   end;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il peut être directement exécuté à partir du concepteur de modèle.&lt;br /&gt;
&lt;br /&gt;
Notez que :&lt;br /&gt;
* Ce code ne connait pas la configuration de la file, il peut fonctionner avec n'importe quel type de file.&lt;br /&gt;
* Il ne fait pas référence à TdbmStoredQueueMessage (ce qui serait propre à la configuration de la file) mais à TdbmQueueMessage qui est un type non  persistant générique représentant un message.&lt;br /&gt;
* Il écrit le message en base par un Post sur le message, c'est une action générique indépendante du type de la file.&lt;br /&gt;
* Le message contient deux paramètres et un contenu binaire&lt;br /&gt;
* Il ni a pas besoin de déclarer une transaction.&lt;br /&gt;
&lt;br /&gt;
===Code snippet du processus de traitement===&lt;br /&gt;
La classe traitant les messages est la suivante :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
unit TestSYFREWF;&lt;br /&gt;
interface&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
  MyProcessus = Class(TitObject)&lt;br /&gt;
  public&lt;br /&gt;
    uneChaine: string;&lt;br /&gt;
    unEntier: integer;&lt;br /&gt;
    Procedure Execute;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
Implementation&lt;br /&gt;
&lt;br /&gt;
{MyProcessus}&lt;br /&gt;
&lt;br /&gt;
Procedure MyProcessus.Execute;&lt;br /&gt;
//Procedure Execute;&lt;br /&gt;
var aMsg:TdbmQueueMessage; idx:Integer;&lt;br /&gt;
begin&lt;br /&gt;
  if Assigned(UserContext.TaskContext) then&lt;br /&gt;
   begin&lt;br /&gt;
     UserContext.TaskContext.AddMessage('MyProcessus.Execute');&lt;br /&gt;
     if Assigned(UserContext.TaskContext.EventContext.receivedMsg) then&lt;br /&gt;
       begin&lt;br /&gt;
         aMsg := UserContext.TaskContext.EventContext.receivedMsg;&lt;br /&gt;
         UserContext.TaskContext.AddMessage('Has a message');&lt;br /&gt;
         for idx:=0 to aMsg.Count-1 do&lt;br /&gt;
          begin&lt;br /&gt;
            UserContext.TaskContext.AddMessage(aMsg.DisplayStrings[idx]);&lt;br /&gt;
          end;&lt;br /&gt;
         // simulate job&lt;br /&gt;
         sleep(5000);&lt;br /&gt;
       end&lt;br /&gt;
       else UserContext.TaskContext.AddMessage('No message');&lt;br /&gt;
   end&lt;br /&gt;
   else showMessage('not in a task');&lt;br /&gt;
end;;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce processus réalise :&lt;br /&gt;
* Vérifie qu'il s'exécute bien dans le contexte du tâche&lt;br /&gt;
* Trace dans les messages du contexte son exécution&lt;br /&gt;
* Récupère le message consommé (aMsg)&lt;br /&gt;
* Trace tous les paramètres du message dans messages du contexte&lt;br /&gt;
* Simule l'exécution d'un traitement.&lt;br /&gt;
&lt;br /&gt;
Le processus sera exécuté par la tâche d'automate consommant les messages.&lt;br /&gt;
&lt;br /&gt;
===Configuration de la tâche d'automate===&lt;br /&gt;
'''Evènement :'''&lt;br /&gt;
&lt;br /&gt;
{{#images:image3.png|msgqueue/example1}}&lt;br /&gt;
&lt;br /&gt;
* L'évènement référence la file d'attente par son nom de paramétrage (DBQUEUE)&lt;br /&gt;
* L'intervalle de test est zéro (?)&lt;br /&gt;
&lt;br /&gt;
'''Tâche :'''&lt;br /&gt;
&lt;br /&gt;
{{#images:image2.png|msgqueue/example1}}&lt;br /&gt;
&lt;br /&gt;
Cet automate est configuré ainsi :&lt;br /&gt;
* L'évènement est de type File d'attente&lt;br /&gt;
* La tâche est de type traitement&lt;br /&gt;
* Les paramètres de la tâche référence le processus MyProcessus&lt;br /&gt;
* L'état suivant est -1&lt;br /&gt;
&lt;br /&gt;
===Exécution===&lt;br /&gt;
'''Exécution du code producteur :'''&lt;br /&gt;
&lt;br /&gt;
{{#images:image4.png|msgqueue/example1}}&lt;br /&gt;
&lt;br /&gt;
* On constate que ce code a créé un objet dans la classe TdbmStoredQueueMessage.&lt;br /&gt;
* Les paramètres du message sont stockés dans l'attribut Data&lt;br /&gt;
* Le contenu binaire est stocké dans l'attribut BinaryContent&lt;br /&gt;
&lt;br /&gt;
'''Démarrage de l'automate :'''&lt;br /&gt;
&lt;br /&gt;
On utilise une console SNMTP pour superviser l'exécution :&lt;br /&gt;
&lt;br /&gt;
{{#images:image5.png|msgqueue/example1}}&lt;br /&gt;
&lt;br /&gt;
On constate que &lt;br /&gt;
* l'évènement DBQUEUE est déclenché.&lt;br /&gt;
* L'exécution de la tâche de traitement est réalisé.&lt;br /&gt;
&lt;br /&gt;
La tâche de traitement génère une entrée dans le journal :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Tâche : Tâche de traitement Traiter un msg de DBQUEUE&lt;br /&gt;
Société : Test SYFRE Workflow&lt;br /&gt;
Utilisateur: syfre&lt;br /&gt;
Base(s) : TestWorkFlowdup_7&lt;br /&gt;
Mode Soc. : Enchainer sur ces sociétés&lt;br /&gt;
Société(s) : &lt;br /&gt;
Début : 11/04/2013 09:39:19&lt;br /&gt;
Fin : 11/04/2013 09:39:24&lt;br /&gt;
Durée : 5 s&lt;br /&gt;
Fichiers : 0&lt;br /&gt;
Statut : 0 OK&lt;br /&gt;
&lt;br /&gt;
MyProcessus.Execute&lt;br /&gt;
Has a message&lt;br /&gt;
MessageClassName=&amp;quot;TStaticRegClass&amp;quot;&lt;br /&gt;
MessageDatetime=&amp;quot;11/04/2013&amp;quot;&lt;br /&gt;
MessageUser=&amp;quot;syfre&amp;quot;&lt;br /&gt;
MessageOID=&amp;quot;000000000000000000E30001A0FF0008&amp;quot;&lt;br /&gt;
MessageID=&amp;quot;166&amp;quot;&lt;br /&gt;
Topic=&amp;quot;WSMQCOPY&amp;quot;&lt;br /&gt;
State=&amp;quot;1&amp;quot;&lt;br /&gt;
OriginalUniqueID=&amp;quot;&amp;quot;&lt;br /&gt;
idOTP=&amp;quot;227&amp;quot;&lt;br /&gt;
ObjectClassLabel=&amp;quot;Classe message stocké d'une file d'attente&amp;quot;&lt;br /&gt;
ObjectClassName=&amp;quot;TDBMSTOREDQUEUEMESSAGE&amp;quot;&lt;br /&gt;
oid=&amp;quot;000000000000000000E30001A0FF0008&amp;quot;&lt;br /&gt;
oiddbmQueue=&amp;quot;&amp;quot;&lt;br /&gt;
oidShare=&amp;quot;&amp;quot;&lt;br /&gt;
QueueName=&amp;quot;WSMQCOPY&amp;quot;&lt;br /&gt;
queueTopic=&amp;quot;WSMQCOPY&amp;quot;&lt;br /&gt;
ShareInfo=&amp;quot;&amp;quot;&lt;br /&gt;
ShareInstanceInfo=&amp;quot;&amp;quot;&lt;br /&gt;
ShareInstanceLevel=&amp;quot;2&amp;quot;&lt;br /&gt;
ShareInstanceRequestedLevel=&amp;quot;-1&amp;quot;&lt;br /&gt;
ShareLevel=&amp;quot;0&amp;quot;&lt;br /&gt;
UniqueID=&amp;quot;166&amp;quot;&lt;br /&gt;
UpdDate=&amp;quot;11/04/2013&amp;quot;&lt;br /&gt;
UpdStamp=&amp;quot;00017D6100000022&amp;quot;&lt;br /&gt;
UpdUser=&amp;quot;syfre&amp;quot;&lt;br /&gt;
uneChaine=&amp;quot;some text&amp;quot;&lt;br /&gt;
unEntier=&amp;quot;1999&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Production de plusieurs messages====&lt;br /&gt;
On peut modifier le code du producteur pour générer plusieurs messages :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Procedure TestQueueMessage;&lt;br /&gt;
var msg:TdbmQueueMessage; idx:Integer;&lt;br /&gt;
begin&lt;br /&gt;
  for idx:=1 to 5 do&lt;br /&gt;
   begin&lt;br /&gt;
     msg := TdbmQueueMessage.Create;&lt;br /&gt;
     msg.QueueName := 'DBQUEUE';&lt;br /&gt;
     msg.AddParameter('uneChaine','some text');&lt;br /&gt;
     msg.AddParameter('unEntier',1999);&lt;br /&gt;
     msg.BinaryContent.LoadFromFile('c:\image.jpg');&lt;br /&gt;
     msg.Post;&lt;br /&gt;
   end;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On constate les déclenchements de l'automate :&lt;br /&gt;
&lt;br /&gt;
{{#images:image6.png|msgqueue/example1}}&lt;br /&gt;
&lt;br /&gt;
Chaque déclenchement est espacé d'environ 5 secondes qui correspondes au temps de traitement du processus.&lt;br /&gt;
&lt;br /&gt;
====Utilisation de plusieurs consommateurs====&lt;br /&gt;
Il est possible de démarrer plusieurs services sur le même automate pour mettre en oeuvre plusieurs consommateurs :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[\SOFTWARE\Sage\Ligne 1000\Administration\IPC\SYFRE1]&lt;br /&gt;
ipcMode=ipcTCP&lt;br /&gt;
tcpPort=8091&lt;br /&gt;
section=SYFRE&lt;br /&gt;
&lt;br /&gt;
[\SOFTWARE\Sage\Ligne 1000\Administration\IPC\SYFRE2]&lt;br /&gt;
ipcMode=ipcTCP&lt;br /&gt;
tcpPort=8092&lt;br /&gt;
section=SYFRE&lt;br /&gt;
&lt;br /&gt;
[\SOFTWARE\Sage\Ligne 1000\Administration\Servers\SYFRE]&lt;br /&gt;
Master Profil=dbMasterTahoe&lt;br /&gt;
Server Societies=Test SYFRE Workflow&lt;br /&gt;
Server Application=Test-SYFRE-WorkFlow&lt;br /&gt;
Server User=syfre&lt;br /&gt;
Server Password=&lt;br /&gt;
Public Folder=C:\Mes documents\Server\&lt;br /&gt;
IPC Started=0&lt;br /&gt;
BP Started=0&lt;br /&gt;
Automate Name=SYFRE&lt;br /&gt;
Automate Started=1&lt;br /&gt;
DEBUGGER Started=0&lt;br /&gt;
DEBUGGER Users=syfre,toto,titi&lt;br /&gt;
SESSIONS profil=CONFIG_SESSION_1&lt;br /&gt;
SOAP Profil=CONFIG_SOAP_1&lt;br /&gt;
SNMP Profil=CONFIG_SNMP_1&lt;br /&gt;
SMTP Profil=CONFIG_SMTP_1&lt;br /&gt;
PROCESS Profil=CONFIG_PROCESS_1&lt;br /&gt;
--HTTP Profil=CONFIG_HTTP_INTERNAL&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{tip|Les services ne démarre pas de serveur HTTP}}&lt;br /&gt;
&lt;br /&gt;
Une fois démarré chaque service exécute le même automate :&lt;br /&gt;
&lt;br /&gt;
{{#images:image7.png|msgqueue/example1}}&lt;br /&gt;
&lt;br /&gt;
Lorsque l'on crée plusieurs messages dans la file d'attente :&lt;br /&gt;
&lt;br /&gt;
{{#images:image8.png|msgqueue/example1}}&lt;br /&gt;
&lt;br /&gt;
On constate que les messages ont été consommés par les deux services.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:File d'attente]]&lt;/div&gt;</summary>
		<author><name>Syfre</name></author>	</entry>

	</feed>