4D v14.3Méthode base Sur ouverture connexion serveur |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v14.3
Méthode base Sur ouverture connexion serveur
Méthode base Sur ouverture connexion serveur
La Méthode base Sur ouverture connexion serveur est appelée une fois sur la machine serveur chaque fois qu’un poste 4D distant démarre un process de connexion. La Méthode base Sur ouverture connexion serveur n’est appelée que par 4D Server, à l’exclusion de tout autre environnement 4D. La Méthode base Sur ouverture connexion serveur est appelée à chaque fois que :
Dans chaque cas, plusieurs process démarrent. Un sur la machine client, et un ou deux autres sur la machine serveur (suivant les besoins). Sur la machine client, le process exécute le code et envoie les requêtes à 4D Server. Sur la machine serveur, le process 4D Client (process préemptif) gère l’environnement de base de données du process client (c.-à-d. les sélections courantes et le verrouillage des enregistrements pour le process utilisateur) et répond aux requêtes envoyées par le process exécuté sur la machine cliente. Le process base 4D Client (process coopératif) est chargé de contrôler le process 4D Client correspondant. (*) A compter de 4D v13, pour des raisons d'optimisation les process serveurs (process préemptif pour les accès au moteur de la base et process coopératif pour l’accès au langage) ne sont créés qu’en cas de nécessité lors de l’exécution du code côté client. Par exemple, voici le détail d’une séquence de code 4D s’exécutant dans un nouveau process client : // le process global commence sans nouveau process sur le serveur, comme un process local. Important : Les connexions Web et les connexions SQL ne provoquent pas l'exécution de la Méthode base Sur ouverture connexion serveur. Lorsqu’un navigateur Web se connecte à 4D Server, la Méthode base Sur ouverture connexion serveur (si elle existe) et/ou la Méthode base Sur connexion Web sont appelées. Lorsque 4D Server reçoit une requête SQL, la Méthode base Sur authentification SQL (si elle existe) est appelée. Pour plus d’informations, reportez-vous à la description de ces méthodes base dans le manuel Langage de 4D. Important : Lors du démarrage d’une procédure stockée, la Méthode base Sur ouverture connexion serveur n’est pas appelée. Les Procédures stockées sont des process serveur et non des process 4D Client. Elles exécutent du code sur la machine serveur mais ne répondent pas aux requêtes échangées par 4D Client (ou d’autres clients) et 4D Server. La Méthode base Sur ouverture connexion serveur est exécutée sur le poste serveur dans le process 4D Client qui a provoqué l’appel de la méthode. Si, par exemple, un 4D distant se connecte à une base 4D Server en mode interprété, il démarre le process utilisateur, le process de développement ainsi que (par défaut) le process d'inscription du client. La Méthode base Sur ouverture connexion serveur est donc exécutée trois fois de suite. La première fois dans le process principal, la deuxième fois dans le process d'inscription du client et la troisième fois dans le process de développement. Si les trois process sont respectivement les 6e, 7e et 8e process démarrés sur la machine serveur, et si vous appelez Numero du process courant dans la Méthode base Sur ouverture connexion serveur, le premier Numero du process courant retourne 6, le deuxième 7 et le troisième 8. Notez que la Méthode base Sur ouverture connexion serveur s’exécute sur le poste serveur, à l'intérieur du process 4D Client sur le serveur. Elle ignore tout du process exécuté sur le client. En outre, au moment où la méthode est appelée, le process 4D Client n’est pas encore nommé (INFORMATIONS PROCESS ne retournera pas, à ce moment, le nom du process 4D Client). La Méthode base Sur ouverture connexion serveur n’a pas accès à la table des variables process du process exécuté sur le client. Cette table réside sur le poste client, pas sur le serveur. Lorsque la Méthode base Sur ouverture connexion serveur accède à une variable process, elle travaille avec une table de variables process particulière, créée dynamiquement pour le process 4D Client. 4D Server passe trois paramètres de type Entier long à la Méthode base Sur ouverture connexion serveur et attend un résultat Entier long. La méthode doit donc être explicitement déclarée avec trois paramètres Entier long ainsi qu'un retour de fonction Entier long : C_ENTIER LONG($0;$1;$2;$3) Si vous ne retournez pas de valeur dans $0 et donc laissez la variable indéfinie ou initialisée à zéro, 4D Server estime que la méthode base accepte la connexion. Si vous n’acceptez pas la connexion, retournez une valeur non nulle dans $0. Le tableau ci-dessous détaille les informations fournies par les trois paramètres passés à la méthode base :
Ces numéros de référence ne sont pas directement utilisables en tant que « sources d’information » à passer, par exemple, comme paramètres à une commande 4D. Ils vous fournissent un moyen d’identifier de manière unique un process 4D Client entre la Méthode base Sur ouverture connexion serveur et la Méthode base Sur fermeture connexion serveur. La combinaison de ces valeurs est unique à tout moment d’une session 4D Server. Si vous stockez cette information dans une table ou un tableau interprocess, les deux méthodes base peuvent échanger des informations. Dans l’exemple présenté à la fin de cette section, les deux méthodes base utilisent cette information pour stocker l’heure et la date du début et de la fin d’une connexion dans le même enregistrement d’une table. L’exemple suivant montre comment maintenir un historique des connexions à la base de données en utilisant la Méthode base Sur ouverture connexion serveur et la Méthode base Sur fermeture connexion serveur. La table [Server Log] (ci-dessous) sert à garder la trace des process de connexion : L’information stockée dans cette table est gérée par la Méthode base Sur ouverture connexion serveur et la Méthode base Sur fermeture connexion serveur listées ci-dessous : ` Méthode base Sur ouverture connexion serveur ` Méthode base Sur fermeture connexion serveur Voici quelques entrées dans [Server Log] montrant plusieurs connexions distantes : L’exemple suivant interdit toute nouvelle connexion entre 2 et 4 heures du matin. ` Méthode base Sur ouverture connexion serveur |
PROPRIÉTÉS
Produit : 4D
HISTORIQUE
Modifié : 4D v13 UTILISATION DE L'ARTICLE
4D - Langage ( 4D v14 R3) Hérité de : Méthode base Sur ouverture connexion serveur ( 4D v12.4) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||