FTP (Gestionnaire de message)
Ce type de gestionnaire permet d'utiliser un serveur de fichier FTP comme une file d'attente.
- Consommer un message revient à lire (GET) les fichiers présents dans un répertoire du serveur.
- Produire un message revient à envoyer un fichier (PUT) dans un répertoire du serveur.
Paramétrage de la file d'attente
Propriété | Valeur |
---|---|
QueueConnectionInfos | URL de définition du service FTP (voir plus bas) |
QueueTopic | Nom de répertoire par défaut si non renseigné dans QueueConnectionInfos. |
La chaine QueueConnectionInfos peut utiliser les formats suivant :
ftp://user:password@server ftp://user:password@server/directory ftp://user:password@server/directory?parameters
Paramètres de l'url
Ces paramètres peuvent être ajoutés à l'URL définissant la file d'attente pour paramétrer le comportement de la file.
Nom | Sens | Usage | Défaut |
---|---|---|---|
user | cnx | Utilisateur | |
password | cnx | Mot de passe | |
sndDirectory | production | Nom du paramètre du message contenant le répertoire destination du fichier sur le serveur | Directory,Topic |
sndFileName | production | Nom du paramètre du message contenant le nom du fichier destination sur le serveur | FileName,AttachementName |
sndContent | production | Nom du paramètre du message contenant le contenu du fichier | Content,Subject |
Messages produits
Réaliser une opération InQueue sur une file de type FTP revient à écrire un fichier sur le serveur FTP.
- Répertoire destination
- Le répertoire destination est déterminé par paramètre Directory du message. Si ce nom n'est pas défini le sujet de la file d'attente est utilisé.
- Nom du fichier
- Le nom du fichier sur le serveur est déterminé par paramètre Filename. Si le nom du fichier n'est pas défini un nom unique est utilisé par tirage d'un GUID. Dans ce cas le nom tiré est ajouté aux paramètres du message.
- Contenu
- Si le message (TdbmQueueMessage) contient un contenu binaire (BinaryContent) celui-ci est envoyé sur le serveur. Si le message ne contient pas de contenu binaire le contenu du fichier est défini par le paramètre Content.
Exemple :
var msg:TdbmQueueMessage; idx:Integer; begin // Store a file on the FTP server defined by QUEUEFTP under the topic of the queue // The name of the file will be a GUID msg := TdbmQueueMessage.Create; msg.QueueName := 'QUEUEFTP'; msg.BinaryContent.LoadFromFile('c:\image.jpg'); msg.Post; // Store a file on the FTP server defined by QUEUEFTP under the topic "ThisTopic" // The name of the file will be "ThisFileName" msg := TdbmQueueMessage.Create; msg.QueueName := 'QUEUEFTP'; msg.AddParameter('Directory','ThisTopic'); msg.AddParameter('FileName','ThisFileName'); msg.BinaryContent.LoadFromFile('c:\image.jpg'); msg.Post; end;
Messages consommés
Réaliser une opération DeQueue sur une file de type FTP revient à lire un répertoire du serveur FTP.
Les opérations réalisés pour simuler le comportement d'un Gestionnaire de Message est le suivant :
- La session FTP est ouverte.
- La session FTP est positionnée dans le répertoire de travail; ce répertoire correspondant au sujet de la file.
- Un répertoire temporaire privé est créé, ce répertoire est un sous répertoire du répertoire de travail.
- Les fichiers disponibles dans le répertoire de travail sont récupérés.
- Pour chaque fichier
- Tentative de renommage du fichier dans le répertoire temporaire.
- Si le fichier existe dans le répertoire temporaire alors il est obtenu et traité comme un message; sinon il est ignoré.
- Si la consommation du message est acquitté (ACK) le fichier temporaire est supprimé.
- Si la consommation du message est annulée (NACK) le fichier est renommé sous son nom d'origine et replacé dans le répertoire de travail.
Les paramètres positionnés pour un message consommé sont les suivants :
Paramètre | Valeur |
---|---|
UniqueID | Identifiant unique du message (*) |
MessageID | Identifiant unique du message (*) |
MsgOID | Identifiant unique du message (*) |
MsgTopic | Répertoire de travail |
Directory | Répertoire de travail |
FileName | Nom du fichier |
TempDir | Nom du répertoire temporaire |
TempName | Nom du fichier dans le répertoire temporaire |
TempPath | Chemin relatif au répertoire de travail du fichier temporaire |
FileDate | Date et heure du fichier retournée par le serveur FTP |
FileSize | Taille du fichier |
ReceiveDate | Date et heure de réception du fichier |
BinaryContent | Contenu du fichier |
(*) Le serveur FTP ne fournissant pas d'identifiant unique un GUID est alloué au message.
Voir aussi: