WEBVTT

00:05.290 --> 00:12.340
La première API dont nous allons parler est l'API qui permet au programmeur de créer une file d'attente

00:12.340 --> 00:13.360
de messages.

00:13.870 --> 00:22.060
Un processus peut donc créer une nouvelle file d'attente de messages ou utiliser une file d'attente de messages existante à l'aide de l'API message

00:22.060 --> 00:22.750
queue open.

00:23.530 --> 00:30.430
La valeur de retour de cette file d'attente est en fait un type de données qui représente le descripteur de fichier de la

00:30.430 --> 00:31.480
file d'attente.

00:32.470 --> 00:35.110
Il s'agit donc d'un descripteur de fichier de la file d'attente des messages.

00:36.130 --> 00:43.900
Il s'agit donc d'un type de données intégré et nous l'utilisons pour représenter le descripteur de fichier renvoyé par l'API

00:43.900 --> 00:46.870
ouverte de la file d'attente de messages.

00:48.590 --> 00:52.000
Il existe maintenant deux types de fonction d'ouverture de passage.

00:52.010 --> 00:57.260
Il s'agit de la première saveur dans laquelle vous ne transmettez que le nom de la file d'attente de messages et certains drapeaux à la file d'attente

00:57.260 --> 00:58.040
de messages.

00:58.070 --> 01:03.890
Dans la deuxième variante de cette API, nous transmettons le nom de la file d'attente de messages et les drapeaux de la file d'attente de

01:03.890 --> 01:04.430
messages.

01:04.430 --> 01:09.670
En outre, nous transmettons également le mode et les attributs de la file d'attente de messages.

01:09.680 --> 01:14.390
Nous allons donc examiner en détail les arguments que nous transmettons à la file d'attente des messages.

01:14.390 --> 01:15.440
API ouverte.

01:17.730 --> 01:19.650
Tout d'abord, le nom.

01:19.650 --> 01:27.720
Comme nous l'avons vu, une file d'attente de messages dans le système est identifiée de façon unique par un ID unique.

01:27.870 --> 01:29.670
Cet identifiant unique est une chaîne de caractères.

01:29.670 --> 01:35.730
Nous transmettons donc cet identifiant unique sous la forme d'une chaîne de caractères, en tant que premier argument d'une API d'ouverture de file d'attente de messages.

01:36.180 --> 01:38.500
Voir l'exemple ici.

01:38.520 --> 01:46.320
Ici, nous transmettons l'identifiant de la file d'attente de messages sous la forme d'une barre oblique serveur trait d'union message trait d'union file d'attente.

01:46.350 --> 01:48.990
Il s'agit donc de l'identifiant de la file d'attente de messages.

01:49.050 --> 01:54.330
N'oubliez pas que l'ID de la file d'attente de messages doit commencer par une barre oblique.

01:57.380 --> 02:03.230
Le deuxième argument est constitué de certains drapeaux que nous transmettons en tant qu'argument à l'API d'ouverture des messages.

02:03.260 --> 02:07.610
Voyons maintenant quels sont les drapeaux que nous pouvons passer ici.

02:07.940 --> 02:14.240
Le premier drapeau est en fait un drapeau de lecture seule, qui indique que si un processus ouvre une file d'attente de messages,

02:14.240 --> 02:20.450
il ne peut que lire le message de la file d'attente, mais ne peut pas écrire le message dans la file d'attente de messages.

02:20.510 --> 02:26.510
En d'autres termes, le processus peut seulement effectuer une opération, mais il ne peut pas effectuer d'opération sur une file d'attente de

02:26.510 --> 02:26.990
messages.

02:27.110 --> 02:33.860
Si un processus ouvre une file d'attente de messages avec ce drapeau activé, cela signifie que le processus peut seulement écrire dans la file

02:33.860 --> 02:36.380
d'attente de messages mais ne peut pas la lire.

02:36.470 --> 02:43.190
Si le processus souhaite effectuer des opérations de lecture et d'écriture sur une file d'attente de messages,

02:43.190 --> 02:52.250
il doit ouvrir une file d'attente de messages en définissant ce drapeau qui est read, write, flag, write, create flag (lire, écrire, écrire, créer).

02:52.250 --> 02:56.450
Cet indicateur est utilisé par le processus pour créer une file d'attente de messages.

02:56.450 --> 02:59.220
S'il n'existe pas déjà.

03:00.370 --> 03:07.060
En d'autres termes, si le processus tente de créer une file d'attente de messages et que celle-ci n'existe pas

03:07.060 --> 03:10.270
encore, le processus peut alors activer ce drapeau.

03:10.940 --> 03:17.240
Indique au système d'exploitation que si le message n'existe pas déjà sous ce nom, il faut en créer

03:17.240 --> 03:18.020
un nouveau.

03:19.980 --> 03:20.520
C'est vrai.

03:20.520 --> 03:26.280
De même, le dernier drapeau, le drapeau d'exclusion, est opposé au drapeau de création.

03:27.950 --> 03:30.720
Quelle est donc la fonction du drapeau d'exclusion ?

03:30.740 --> 03:36.020
L'API MQ open échoue si le processus a tenté d'ouvrir une file d'attente de messages.

03:36.050 --> 03:38.800
Ce drapeau n'a aucune signification lorsqu'il est utilisé seul.

03:38.810 --> 03:42.200
Il est toujours utilisé avec le drapeau de création.

03:43.070 --> 03:43.610
C'est vrai.

03:43.610 --> 03:46.820
L'exclusion d'un drapeau est donc en fait le contraire de la création d'un drapeau.

03:47.120 --> 03:55.330
Ainsi, si le processus ouvre une file d'attente de messages à l'aide de l'API d'ouverture de file d'attente de messages

03:55.340 --> 04:06.860
et si l'indicateur spécifié est créer ou ou exclure, cela signifie que le processus tente d'ouvrir une nouvelle file d'attente de messages et si la file d'attente

04:06.860 --> 04:08.090
de messages.

04:09.290 --> 04:14.050
existe déjà, alors le processus ne veut pas ouvrir une file d'attente de messages.

04:15.300 --> 04:22.710
Ce drapeau permet donc de contrôler le comportement d'un processus qui ne doit pas ouvrir une file d'attente de messages

04:22.710 --> 04:24.120
déjà existante.

04:24.660 --> 04:30.060
De même, vous pouvez ajouter d'autres drapeaux en les concaténant à l'aide de l'opérateur Or.

04:30.090 --> 04:32.070
Il s'agit donc de l'opérateur Or.

04:33.350 --> 04:37.940
Le troisième argument que nous transmettons à la deuxième saveur du message est le mode.

04:37.970 --> 04:40.160
Par mode, on entend ici les autorisations.

04:40.190 --> 04:46.610
Si vous avez une idée de l'utilisation du système d'exploitation Linux, vous avez l'habitude de définir les autorisations sur

04:46.610 --> 04:48.320
les fichiers et les répertoires.

04:48.500 --> 04:55.010
De même, pour une file d'attente de messages, le processus de création, c'est-à-dire le processus qui crée une file d'attente de messages,

04:55.050 --> 04:58.970
peut définir des autorisations de fichier pour la file d'attente de messages.

04:59.150 --> 05:05.270
L'autorisation de fichier la plus couramment utilisée pour une file d'attente de messages est donc 0660.

05:05.870 --> 05:12.320
Ainsi, en définissant les autorisations de fichier, le processus propriétaire de la file d'attente de messages contrôle en fait

05:12.860 --> 05:20.570
les privilèges que les autres processus qui ouvriront ultérieurement cette file d'attente de messages auront sur cette file d'attente de messages.

05:21.310 --> 05:21.850
C'est vrai.

05:21.850 --> 05:27.610
Il s'agit de savoir si le processus créateur souhaite que d'autres processus ouvrent une file d'attente de messages en mode lecture ou en mode

05:27.610 --> 05:28.690
écriture uniquement.

05:28.690 --> 05:29.710
ET cetera.

05:30.100 --> 05:33.550
Le processus de création peut donc définir les autorisations de la file d'attente de messages.

05:33.580 --> 05:39.670
Dans ce cas, nous spécifions généralement une des permissions les plus courantes de la file d'attente des messages, à savoir 0660.

05:41.230 --> 05:46.690
Nous n'entrerons pas dans le détail de ces options, car elles ne sont pas pertinentes dans le cadre de ce cours.

05:46.870 --> 05:53.050
Le quatrième argument que nous transmettons à l'API d'ouverture de la file d'attente de messages est en fait un pointeur vers la structure de données

05:53.050 --> 05:54.040
d'attributs.

05:54.190 --> 06:00.730
La structure de données d'attributs est donc une structure de données prédéfinie et j'ai énuméré ici les définitions

06:00.730 --> 06:02.530
de cette structure.

06:02.620 --> 06:07.480
Vous pouvez donc vouloir définir certaines propriétés ou certains attributs d'une file d'attente de messages.

06:07.510 --> 06:10.090
Cette structure vous permet donc de le faire.

06:11.050 --> 06:16.630
Les deux champs que nous pouvons utiliser dans cette structure sont la file d'attente des messages et le message Max.

06:16.660 --> 06:22.210
Il s'agit du nombre maximal de messages pouvant se trouver dans une file d'attente à un moment donné.

06:22.330 --> 06:27.100
Supposons donc qu'un processus d'envoi continue à mettre le message en file d'attente.

06:27.890 --> 06:32.840
Mais le processus de réception ne retire pas le message de la file d'attente.

06:33.170 --> 06:37.880
Que se passera-t-il alors si les messages continuent à s'accumuler dans la file d'attente ?

06:37.970 --> 06:40.610
Ce paramètre permet donc de contrôler cela.

06:40.610 --> 06:46.400
Quel est le nombre maximum de messages pouvant s'accumuler dans une file d'attente ?

06:46.430 --> 06:49.790
La valeur par défaut de ce paramètre est dix.

06:49.880 --> 06:54.820
Vous pouvez donc ouvrir ce fichier et en voir le contenu.

06:54.830 --> 06:58.580
Ce fichier contient la valeur par défaut de ce paramètre.

07:00.180 --> 07:05.070
Le deuxième paramètre que nous utilisons généralement est la taille du message.

07:05.520 --> 07:12.150
Ce paramètre contrôle donc la taille maximale du message qui peut être placé dans la file d'attente.

07:12.270 --> 07:16.660
La valeur par défaut de ce paramètre est donc également de dix octets.

07:16.680 --> 07:22.110
Vous pouvez ouvrir le fichier et voir le contenu de ce fichier sur votre machine Linux et voir ce qu'il

07:22.110 --> 07:23.070
contient.

07:23.100 --> 07:30.180
Les deuxième et troisième paramètres sont donc les paramètres que nous définissons habituellement en tant qu'attributs de la file d'attente de messages.

07:31.150 --> 07:37.810
Les paramètres flack et current message ne sont généralement pas très utiles.

07:38.810 --> 07:43.670
Ainsi, si l'ouverture de la file d'attente de messages réussit, elle renvoie un descripteur de fichier à la file d'attente de messages.

07:43.700 --> 07:49.130
Nous avons donc déjà vu que si l'ouverture de la file d'attente de messages réussit, la valeur de retour de l'API

07:49.160 --> 07:56.690
d'ouverture de la file d'attente de messages est le descripteur de fichier de la file d'attente de messages, qui est représenté par un type de données MQ

07:57.290 --> 07:58.250
underscore T.

07:59.210 --> 08:04.480
À l'aide de cette poignée, nous effectuons toutes les opérations sur la file d'attente de messages tout au long du programme.

08:04.490 --> 08:11.660
Ainsi, une fois que l'API d'ouverture de la file d'attente de messages a réussi, elle nous renvoie cette poignée et, à l'aide de cette poignée, nous effectuons le reste

08:11.660 --> 08:17.480
des opérations sur cette file d'attente de messages, comme l'envoi, la réception ou la fermeture de la file d'attente de messages.

08:18.200 --> 08:22.610
Voyons maintenant un exemple d'utilisation de ce message.

08:22.610 --> 08:23.840
API ouverte de la file d'attente.

08:25.310 --> 08:29.690
Comme nous l'avons dit, l'API ouverte aux messages se décline en deux versions.

08:30.480 --> 08:35.070
Je vous ai donc montré les deux utilisations de l'API ouverte de la file d'attente de messages.

08:35.220 --> 08:38.340
Il s'agit donc de la première utilisation de l'API ouverte de la file d'attente de messages.

08:38.370 --> 08:43.170
Vous pouvez constater que le premier argument de l'API d'ouverture de la file d'attente de messages est le nom de la file d'attente de messages.

08:43.380 --> 08:50.370
Le deuxième argument est le drapeau, que le processus de création essaie en fait de placer sur une file d'attente de messages.

08:50.400 --> 08:56.760
Le processus de création, c'est-à-dire le processus qui a invoqué l'API d'ouverture de la file d'attente de messages, souhaite

08:56.760 --> 09:00.170
donc ouvrir la file d'attente de messages en mode lecture seule.

09:00.180 --> 09:05.910
En d'autres termes, il souhaite uniquement retirer les messages de la file d'attente des messages et.

09:07.030 --> 09:12.430
Le processus veut créer une nouvelle file d'attente de messages et si la file d'attente de messages existe déjà, alors le

09:12.430 --> 09:15.550
processus ne veut pas créer une nouvelle file d'attente de messages.

09:15.650 --> 09:18.820
Ce comportement est donc contrôlé par ces deux drapeaux.

09:18.850 --> 09:25.570
Ensuite, un processus définit les autorisations sur cette file d'attente de messages et ici les attributs sont transmis comme

09:25.570 --> 09:26.440
étant nuls.

09:26.470 --> 09:29.830
En d'autres termes, il est toujours possible de passer un attribut nul.

09:29.830 --> 09:36.370
Ainsi, lorsque le processus passe les attributs null, cela signifie que la file d'attente de messages sera créée

09:36.370 --> 09:38.380
avec les attributs par défaut.

09:40.140 --> 09:47.490
En d'autres termes, le nombre maximal de messages pouvant s'accumuler dans une file d'attente est de dix et la taille maximale d'un

09:47.490 --> 09:51.690
message pouvant être placé dans une file d'attente est de dix octets.

09:52.460 --> 09:54.590
Il s'agit donc des paramètres par défaut.

09:56.340 --> 10:04.950
Mais si vous souhaitez modifier ces paramètres par défaut, vous devez créer une structure dans laquelle vous définirez les attributs

10:04.950 --> 10:07.230
de la file d'attente de messages.

10:07.260 --> 10:11.580
J'ai donc défini les attributs de la file d'attente de messages comme suit.

10:11.820 --> 10:17.520
Ainsi, le nombre maximal de messages pouvant résider dans une file d'attente est de dix, ce qui est la valeur par

10:17.520 --> 10:23.280
défaut uniquement, mais la taille maximale du message pouvant être placé dans la file d'attente est de 496.

10:23.400 --> 10:32.010
Vous pouvez maintenant invoquer une API d'ouverture de file d'attente de messages et vous pouvez simplement transmettre l'adresse de la structure d'attribut comme dernier

10:32.010 --> 10:35.430
argument à l'API d'ouverture de file d'attente de messages.

10:36.270 --> 10:43.080
Notez également que la définition des autorisations de la file d'attente de messages n'a de sens que lorsque le processus crée

10:43.080 --> 10:47.010
réellement une nouvelle file d'attente de messages qui n'existe pas.

10:47.910 --> 10:48.620
C'est vrai.

10:48.630 --> 10:55.050
Si le processus est en train d'ouvrir une file d'attente de messages déjà existante, cela signifie que cette file

10:55.080 --> 11:02.470
d'attente a déjà été créée par un autre processus et que ce processus a dû spécifier des autorisations sur cette file d'attente de

11:02.470 --> 11:03.310
messages.

11:03.700 --> 11:04.330
C'est vrai.

11:04.330 --> 11:10.390
Les autorisations sur la file d'attente des messages n'ont donc de sens que lorsque la file d'attente des messages est fraîchement

11:10.390 --> 11:11.830
créée par un processus.
