Hyper File Client/Serveur et composants
DSI WDF
Inscrit:
06/04/2004 12:07
Post(s): 337
Bonsoir,

Je suis en train de remettre en place le mode client/serveur d'hyper file pour une de mes applis, et je me pose une question concernant l'accés aux données des composants :

J'ai environ 15/20 composants différents dans mon application, et chaque composant accède à des fichiers de données (composant client email, composant GED, etc...).

Le problème que je constate maintenant, quand mon appli est lancée, c'est qu'elle ouvre autant de connexions sur le serveur hyper file qu'il y à de composants...!

C'est à dire qu'une seule instance de l'application donne lieu à plus de 15 connexions sur le serveur.

Alors je me pose la question suivante : comment utiliser différents composants "branchés" sur la même base de données, sans ouvrir une nouvelle connexion par composant ?

Comment vous faite, vous ?

Merci d'avance,

Seb

Contribution le : 05/09/2007 20:54
Créer un fichier PDF de la contribution Imprimer


Re: Hyper File Client/Serveur et composants
DSI WDF
Inscrit:
03/12/2004 07:46
Post(s): 235
Si tous les fichiers sont sur le même serveur et dans la même base de données, et même si chaque composant à sa propre analyse et "voit" donc seulement une partie de la base de données, tu peux partager la même connexion de la manière suivante.

//---------------------------------------------
// Déclaration de la connexion principale
cnxConnexPrincipale est une Connexion

// initialisation des Paramètres de la connexion
cnxConnexPrincipale..Provider = hAccèsHFClientServeur
cnxConnexPrincipale..Utilisateur = "UTILISATEUR"
cnxConnexPrincipale..MotDePasse = "MOT_DE_PASSE"
cnxConnexPrincipale..Serveur = "SERVEUR" + ":" + "NUMERO_PORT"
cnxConnexPrincipale..BaseDeDonnées = "Base_de_données"
cnxConnexPrincipale..Cryptage = hCryptageNon

// Ouverture de la connexion
HOuvreConnexion(cnxConnexPrincipale)
HChangeConnexion("*",cnxConnexPrincipale)

//-------------------------------------------------
// Et dans chaque composant
cnxConnexComposant est une Connexion = cnxConnexPrincipale

Ainsi les composants doivent partager la même connexion.
Je n'ai pas testé mais ça doit fonctionner.
Cordialement

Contribution le : 06/09/2007 08:54
Créer un fichier PDF de la contribution Imprimer


Re: Hyper File Client/Serveur et composants
DSI WDF
Inscrit:
06/04/2004 12:07
Post(s): 337
Merci de ta rèponse Bebe, mais ça ne semble pas marcher.

Je déclare la connexion principale au niveau des variables du projet hote, et ensuite, que je fasse :

cnxConnexComposant est une Connexion = cnxConnexPrincipale


ou

cnxConnexComposant est une Connexion = "cnxConnexPrincipale"


ou

cnxConnexComposant est une Connexion = {"cnxConnexPrincipale"}


dans le composant, ça me fait une erreur disant que la connexion cnxConnexPrincipale n'à pas été trouvée.

J'ai aussi essayé de passer en paramètre cnxConnexPrincipale à mon composant comme ça :


PROCEDURE InitComposant(_cnx est une connexion)
HCHangeConnexion("*",_cnx)
...



Et j'ai la même erreur, en me disant que la connexion cnxConnexPrincipale n'à pas été trouvée...

Contribution le : 06/09/2007 09:31
Créer un fichier PDF de la contribution Imprimer


Re: Hyper File Client/Serveur et composants
DSI WDF
Inscrit:
03/12/2004 07:46
Post(s): 235
Je pense que tu cumules 2 problèmes.

1: A quel moment sont chargés tes composants ?
au lancement du projet ou à la 1ere utilisation.

2 : chaque composant a besoin de sa propre connexion

Peux-tu essayer de la manière suivante ?

1 : Tu charge les composants à la 1ere utilisation
Menu : Atelier
Composant
Liste des composants importés dans le projet
Bouton : Description
Onglet : Général
Selecteur : Mode de chargement du composant

2 : Tu crée la connexion principale Avant de charger les composants.

3 : Tu As dans chaque composant une variable globale de type connexion

4 : Tu crée dans chaque composant une procédure initialisation de la connexion
PROCEDURE InitComposant(_cnx est une connexion)
gConnexComposant = _cnx
HCHangeConnexion("*",gConnexComposant)


En espérant que celà marche.

Contribution le : 06/09/2007 10:08
Créer un fichier PDF de la contribution Imprimer


Re: Hyper File Client/Serveur et composants
DSI WDF
Inscrit:
03/12/2004 07:46
Post(s): 235
Après tests, il semblerait que tu ais raison.

Il ne semble pas possible de partager la même connexion entre l'application et les composants

Je pense que tu devrais soumettre le problème au ST, avec l'intégralité de notre conversation.
S'ils n'ont pas de solution, peut-être un correctif serait le bienvenu.
Le développement par composants est intêressant sur les gros projet, avec de nombreuses fonctionnalités mais si chaque utilisateur ouvre une vingtaine de connexion au serveur
La solution consisterait (peut-être) à pouvoir créer des objets "connexion" dynamique.

Cordialement

Contribution le : 06/09/2007 12:00
Créer un fichier PDF de la contribution Imprimer


Re: Hyper File Client/Serveur et composants
DSI WDF
Inscrit:
06/04/2004 12:07
Post(s): 337
Je vais peut être faire ça et remonter l'info au ST.

Sinon je suis en train de tester une astuce donnée par quelqu'un d'autre sur le forum de PCSoft :

Créer un composant qui contient un objet, comportant lui même une variable globale de type connexion. A priori si on instancie l'objet dans le projet maitre, et que l'on initialise tous les composants en passant cet objet en paramètre, ça pourrais marcher.

Je suis en train d'essayer de tester ça entre 2 appels clients, mais pour l'instant ça semble prometteur... bien qu'un peu tordu.

Je vous tiens au courant.

Par contre il semble que chaque connexion au serveur hyperfile ne soit pas tellement gourmande en ressource quand elle est inutilisée. Contrairement à Oracle.

Contribution le : 06/09/2007 13:11
Créer un fichier PDF de la contribution Imprimer


Re: Hyper File Client/Serveur et composants
DSI WDF
Inscrit:
06/04/2004 12:07
Post(s): 337
Suite à ce post, j'ai continué mes tests hier et ce matin, mais je ne suis pas parvenu à faire fonctionner le tout comme expliqué...

Post sur pcsoft.fr

Pour le moment, je tourne avec 1 connexion par composant, avec quelques utilisateurs j'arrive à 90 connexions actives !!! Mais ce qui m'étonne le plus, c'est que même avec ces 90 connexions, le service manta.exe ne consomme que 20Mo de RAM.

Contribution le : 07/09/2007 12:55
Créer un fichier PDF de la contribution Imprimer


Re: Hyper File Client/Serveur et composants
DSI WDF
Inscrit:
06/04/2004 12:07
Post(s): 337
Bon, j'ai eut une réponse du ST de PCSoft me disant que c'était un choix de développement, que l'on pouvait soit initialiser la connexion dans chaque composant, soir définir les options de compilations du composant pour utiliser le même contexte hyper file que l'application hote (d'ailleur à ce sujet, j'ai toujours pas trouvé cette fameuse option...).

Dans tous les cas, selon le ST, si j'ai 20 connexions au serveur pour un même exe, cela ne change absolument pas les performance, par rapport au fait d'en avoir une seule.

Contribution le : 11/09/2007 12:59
Créer un fichier PDF de la contribution Imprimer


Re: Hyper File Client/Serveur et composants
DSI WDF
Inscrit:
03/12/2004 07:46
Post(s): 235
J'ai moi aussi essayé de faire pression sur le ST pour me trouver une solution.
Voici la réponse textuelle :

Aujourd'hui ce qu'il est possible de faire c'est que les composants utilisent la connexion du projet " parent ".

Dans ce cas, il vous suffit de paramétrer correctement cette connexion pour que tous les composants en bénéficie.

Il faudra cependant indiquer dans chaque composant que l'on veut utiliser le contexte Hyper File du projet parent. Cette option est accessible depuis le projet ayant permis la génération du composant, menu " Atelier...Composant...Liste des composants générés à partir de ce projet ".


Je me suis empressé de leur répondre que cette solution n'était applicable que si les composants et le projet principal partageait la même analyse cq qui n'était pas mon cas

Je vous ajoute leur dernier post, je crois que le sujet est clos, dans tous cas chez PC Soft, a moins que l'un d'entre nous ai une idée de génie

Votre remarque est juste. Maintenant, si chaque projet est véritablement indépendant, c’est un peu un contre sens de le rendre dépendant d’un autre composant par l'appel d'une procédure.

Dans tous les cas, le seul moyen actuellement d'effectuer ce partage de contexte Hyper File est celui indiqué dans ma précédente réponse.

J'ai toutefois transmis votre remarque à notre équipe développement.



Très amicalement

Contribution le : 11/09/2007 15:15
Créer un fichier PDF de la contribution Imprimer


Re: Hyper File Client/Serveur et composants
DSI WDF
Inscrit:
06/04/2004 12:07
Post(s): 337
Ok, donc pas trop d'espoir de ce coté.

N'empêche qu'ils font pas d'éfforts pour essayer de comprendre la problèmatique. Il me semble évident qu'on peux avior besion d'intégrer des composants dans un projet, avec une analyse différente de celle du projet parent.

Pour ma part j'ai bataillé toute l'après midi d'hier pour reduire à 0 le nombre de connexions qui s'ouvres sans se refermer (j'avais des connexions fantomes qui apparaissaient au fil du temps). Maintenant mon applic consomme environ 15 connexions par exe, on à 10 postes avec 2 applis Client/Serveur par poste, et un serveur oracle, et c'est super fluide. Donc partant de la, je vais pas perdre encore 1 semaine pour chercher une hypothétique solution...

Mais si quelqu'un l'à, qu'il nous en fasse part quand même...

Seb,

Contribution le : 12/09/2007 09:42
Créer un fichier PDF de la contribution Imprimer


Re: Hyper File Client/Serveur et composants
DSI WDF
Inscrit:
15/03/2005 14:22
Post(s): 238
Il y avait une autre solution :
Créer une analyse regroupant toutes les tables, puis partager la connexion du projet avec les composants.

N'est ce pas envisageable ?

Contribution le : 12/09/2007 11:17
Créer un fichier PDF de la contribution Imprimer


Re: Hyper File Client/Serveur et composants
DSI WDF
Inscrit:
06/04/2004 12:07
Post(s): 337
C'est une solution, mais j'ai pas trop envie d'avoir une analyse avec plein de fichiers inutilisés dans certains projets.

De plus, pour moi on perd l'intêret des composants, si tout est au final interdépendant...

Contribution le : 12/09/2007 12:54
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2