banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Tue 23 February 2010 11:18

Thierry21
Participant occasionnel
Date d'inscription: 10 Aug 2006
Messages: 45

MGE 2010 + Oracle : gros soucis sur l'ajout de jointures ?

Bonjour,
j'utilise MAPGUIDE Enterprise 2010 (Service pack 1 + 1 b appliqués) et une base Oracle 10g avec locator.
Je déclare une feature source sur la base Oracle : pas de problème, je peux cartographier les éléments de mes tables.
Je veux maintenant rajouter une jointure (menu "Add properties to classes using joins and calculations (optional) " de MGStudio).
Pas de problème pour la création : j'enregistre les modifs dans ma feature source.

Quand je veux créer un calque basé sur cette ressource Oracle j'ai le message suivant : (avant même d'accéder à ma jointure)

Code:

An exception occurred in FDO component.
'FdoPtr::operator->': Cannot execute function due to invalid value for the input parameter(s) 'p'.

et ma source est désormais déclarée invalide :

Code:

Resource ID does not refer to a valid feature source

quand je supprime ma jointure, la ressource redevient utilisable ...

Éditée en xml ma ressource à l'air correcte :

Code:

<?xml version="1.0" encoding="utf-8"?>
<FeatureSource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:noNamespaceSchemaLocation="FeatureSource-1.0.0.xsd">
  <Provider>Autodesk.Oracle</Provider>
  <Parameter>
    <Name>Username</Name>
    <Value>%MG_USERNAME%</Value>
  </Parameter>
  <Parameter>
    <Name>Password</Name>
    <Value>%MG_PASSWORD%</Value>
  </Parameter>
  <Parameter>
    <Name>Service</Name>
    <Value>BDDGMAO</Value>
  </Parameter>
  <Parameter>
    <Name>DataStore</Name>
    <Value>TEST</Value>
  </Parameter>
  <Extension>
    <AttributeRelate>
      <RelateProperty>
        <FeatureClassProperty>WONUM</FeatureClassProperty>
        <AttributeClassProperty>WONUM</AttributeClassProperty>
      </RelateProperty>
      <AttributeClass>FdoTEST:WOEQLIST</AttributeClass>
      <ResourceId>Library://GMAO/BDD_ORACLE/TM_R1.FeatureSource</ResourceId>
      <Name>MAJOINTURE_</Name>
      <AttributeNameDelimiter />
      <RelateType>Inner</RelateType>
      <ForceOneToOne>false</ForceOneToOne>
    </AttributeRelate>
    <Name>testjointure</Name>
    <FeatureClass>FdoTEST:WOE</FeatureClass>
  </Extension>
</FeatureSource>

Avez-vous des idées et/ou une méthode de contournement de ce pb ?

Hors ligne

 

#2 Tue 23 February 2010 13:40

Patrice
JeSuisCharlie
Date d'inscription: 16 Sep 2005
Messages: 4746

Re: MGE 2010 + Oracle : gros soucis sur l'ajout de jointures ?

Hello

Un petit conseil : tu fais une vue dans Oracle avec ta jointure et tu utilises cette nouvelle vue !

GeoBye, Pat


(Autodesk Expert Elite Team)

Hors ligne

 

#3 Tue 23 February 2010 15:38

Thierry21
Participant occasionnel
Date d'inscription: 10 Aug 2006
Messages: 45

Re: MGE 2010 + Oracle : gros soucis sur l'ajout de jointures ?

Merci pour cette réponse, le problème c'est que je n'arrive pas à faire afficher quoi que ce soit à partir d'une vue Oracle (?).
Exemple :
je crée une table TA avec un champ géométrique dans oracle
je renseigne la table des méta données (MDSYS.SDO_GEOM_METADATA_TABLE) pour TA
je crée un index spatial

tout va bien j'affiche des données dans un calque Mapguide.

je crée une vue VTA qui est un select * sur TA.
je crée une clef primaire sur la vue.
je renseigne la table des méta données (MDSYS.SDO_GEOM_METADATA_TABLE) pour VTA (idem TA)

Je crée un calque à partir de ma vue mais rien ne s'affiche dans Mapguide .
Pourtant les extensions du calque sont cohérentes avec ce qu'il y a dans la table des métadonnées et quand je crée un filtre sur les données, le bouton "Get values for properties" me donne bien des valeurs présentes dans ma vue. Par contre graphiquement : rien.

Hors ligne

 

#4 Tue 23 February 2010 16:25

Patrice
JeSuisCharlie
Date d'inscription: 16 Sep 2005
Messages: 4746

Re: MGE 2010 + Oracle : gros soucis sur l'ajout de jointures ?

Hello

Sur une vue Oracle avec MGES/MGOS, il peut s'averer necessaire de declarer une cle primaire
mais parfois il faut la devalider !

Par exemple (Merci Gwen) :
alter view defect954944.featureclass1 add constraint fc1_id primary key (featid) disable novalidate ;

Je ne suis pas sur qu'il soit necessaire de creer des metadata sur ta vue, etc ...
mais bon ce n'est pas ton probleme principal !

GeoBye, Pat


(Autodesk Expert Elite Team)

Hors ligne

 

#5 Tue 23 February 2010 17:01

Thierry21
Participant occasionnel
Date d'inscription: 10 Aug 2006
Messages: 45

Re: MGE 2010 + Oracle : gros soucis sur l'ajout de jointures ?

smile
c'est exactement comme ça que ma clef primaire est déclarée ... et ne pas mettre de metadata sur la vue ne change rien à l'affaire (ha si j'ai un message d'erreur quand je demande les valeurs disponibles pour un champ)
c'est pas gagné ...

Hors ligne

 

#6 Wed 24 February 2010 08:33

Patrice
JeSuisCharlie
Date d'inscription: 16 Sep 2005
Messages: 4746

Re: MGE 2010 + Oracle : gros soucis sur l'ajout de jointures ?

Hello

Ce n'est pas normal !

En principe MGES affiche correctement les vues Oracle depuis MGES 2008 et les drivers FDO 3.22

Si tu fais une Vue "basique" qui est un simple "create or replace view jolievue as select * from jolietable"
sachant que bien sur "jolietable" s'affiche et fonctionne normalement dans MGES, que se passe t-il quand tu utilises cette Vue dans ton MGES ?

GeoBye, Pat


(Autodesk Expert Elite Team)

Hors ligne

 

#7 Wed 24 February 2010 10:36

Thierry21
Participant occasionnel
Date d'inscription: 10 Aug 2006
Messages: 45

Re: MGE 2010 + Oracle : gros soucis sur l'ajout de jointures ?

Bonjour,

c'est le premier test que j'ai effectué (et que je décris dans mon 2eme post).

Affichage des données d'une table : ok
Affichage des données d'une vue qui est un simple select * de cette même table : rien ne s'affiche

testé avec et sans duplication des métadonnées de la table originale vers la vue.
testé en recréant la connection à oracle dans Studio après chaque modification.

Jusqu'ici je contournais le problème avec des triggers qui alimentaient des tables supplémentaires, dédiées à la cartographie, mais là j'ai absolument besoin d'une vue (trop de tables concernées)

Hors ligne

 

#8 Wed 24 February 2010 13:53

Gwenael Bachelot
Participant assidu
Lieu: Bureau Autodesk : Paris 12ème
Date d'inscription: 5 Sep 2005
Messages: 608
Site web

Re: MGE 2010 + Oracle : gros soucis sur l'ajout de jointures ?

Bonjour Thierry,
Peux tu nous dire quelle est ta configuration ?
Version d'Oracle, de client Oracle sur ton serveur MapGuide, OS Oracle et OS MapGuide ?

Cordialement,
Gwenael

Hors ligne

 

#9 Wed 24 February 2010 14:43

nath999
Participant actif
Date d'inscription: 24 May 2007
Messages: 56

Re: MGE 2010 + Oracle : gros soucis sur l'ajout de jointures ?

Bonjour

je viens de relire un pue le début de ce problème
une chose de façon générale vous lisez une source FDo spatiale avec un pilote Oracle /FDO
si vous réalisez une jointure vers une table de cette même base sous MapGuide je vous conseillerai de créer cette fois ci une connexion FD/ODBC vers cette même base et de réaliser la jointure en passant par la connexion FDO/ODBC et pas la FDO Oracle  . J'ai constaté que cela passait mieux. Mais je pense que la solution de la vue sous Oracle garanti de meilleures performances .

En ce qui concerne la vue , il faudrait vous assurer que la métadonnées de cette vue est bien présente dans la vue
user_sdo_geom_metadata_table .Une question bête sous Oracle simplement est ce que cette vue est opérationnelle ?
car en théorie : clé primaire sur la vue et métadonnées suffisent .c'est une vue elle peut s'appuyer sur l'index spatial de la table principale .

Cordialement
Nathalie

Hors ligne

 

#10 Wed 24 February 2010 18:48

Thierry21
Participant occasionnel
Date d'inscription: 10 Aug 2006
Messages: 45

Re: MGE 2010 + Oracle : gros soucis sur l'ajout de jointures ?

Bonsoir à tous,

@Gwenael :
oracle 10g (10.2.0.10)  + locator.
Client oracle du serveur maguide : 10g
Os oracle : WS 2003
Os mapguide  : WS 2003
(oracle et mapguide enterprise 2010 sur 2 serveurs séparés)

@Nathalie :
je vais faire un test en ODBC, je vous tiens au courant, vu les volumes des tables, j'ai un peu peur des perfs...
Au niveau oracle la vue est opérationnelle, les métadonnées sont bien présentes

car en théorie : clé primaire sur la vue et métadonnées suffisent


smile qui a dit "la théorie et la pratique ..." ?

Hors ligne

 

#11 Wed 24 February 2010 21:27

nath999
Participant actif
Date d'inscription: 24 May 2007
Messages: 56

Re: MGE 2010 + Oracle : gros soucis sur l'ajout de jointures ?

Bonsoir

oups mauvaise expression alors

en théorie et en pratique cles clés et les métadonnées suffisent
croyez moi je manipule mapguide et les vues Oracle trrrrrrrrès souvent  :-)

question bête : votre clé dans la vue est elle la même que celle de la table principale de la jointure ?
sinon est ce que votre client Oracle sur le serveur MAPGUIDE est en 10G2 aussi ?


Cordialement

sinon je ne sais pas quel est votre volume de données mais effectivement la jointure "classique" et le pilote FDO/ODBC seront moins performants que la vue réalisant la jointure sous Oracle .


Cordialement

Hors ligne

 

#12 Thu 25 February 2010 09:16

Gwenael Bachelot
Participant assidu
Lieu: Bureau Autodesk : Paris 12ème
Date d'inscription: 5 Sep 2005
Messages: 608
Site web

Re: MGE 2010 + Oracle : gros soucis sur l'ajout de jointures ?

Bonjour,

Thierry21 a écrit:

@Gwenael :
oracle 10g (10.2.0.10)  + locator.
Client oracle du serveur maguide : 10g
Os oracle : WS 2003
Os mapguide  : WS 2003
(oracle et mapguide enterprise 2010 sur 2 serveurs séparés)


Thierry, est-ce que les clients et serveurs Oracle sont de la même version/build (10.2.0.10) ?
Ca peut se vérifier avec un sqlplus, qui va indiquer les deux versions.

En tout cas, je confirme que :
1- il faut privilégier une vue à une jointure
2- MapGuide sait accéder à une vue Oracle

Bref, ca DOIT marcher :-)

Cordialement,
Gwenael

Dernière modification par Gwenael Bachelot (Thu 25 February 2010 09:16)

Hors ligne

 

#13 Thu 25 February 2010 09:42

Thierry21
Participant occasionnel
Date d'inscription: 10 Aug 2006
Messages: 45

Re: MGE 2010 + Oracle : gros soucis sur l'ajout de jointures ?

Bonjour,

@Gwenael

Sur le serveur oracle :

Code:

SQL*Plus: Release 10.2.0.1.0 - Production on Thu Feb 25 09:29:45 2010

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL>

Sur le serveur MGE2010 :

Code:

Microsoft Windows [version 5.2.3790]
(C) Copyright 1985-2003 Microsoft Corp.

C:\Documents and Settings\adm-MGE2010>sqlplus

SQL*Plus: Release 10.2.0.1.0 - Production on Thu Feb 25 09:32:17 2010

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Enter user-name:

@Nathalie : les clefs sur la vue et la table initiale portent bien sur le même champ.

Hors ligne

 

#14 Fri 26 February 2010 16:10

Thierry21
Participant occasionnel
Date d'inscription: 10 Aug 2006
Messages: 45

Re: MGE 2010 + Oracle : gros soucis sur l'ajout de jointures ?

Re-Bonjour,
voila les résultats des test effectués avec ODBC dans MapguideStudio:


Tests avec OSGeo FDO Provider for ODBC:

1er test :

type of connection : Connect to a database
type of database : Oracle (Oracle Driver)

renseignement : nom de la base + user + mdp

Test connection :

An exception occurred in FDO component.
RDBMS: No current open database

Deuxième test

déclaration d'un DSN sur le serveur, avec la console d'administration ODBC  (pilote oracle)

type of connection : Connect via a Data Source Name (DSN) set up on this server
Data Source Name (DSN) : MONDSN

renseignement : user + mdp

Test connection : Successful

Creation de calque basé sur cette ressource : impossible.
Soit
les "Feature Class" sont visibles mais en fait seules les 6 premières de la liste exposent leurs champs)
les "Feature Class" ne s'affichent pas

Troisième test

déclaration d'un DSN sur le serveur, avec la console d'administration ODBC  (pilote Microsoft oracle)

type of connection : Connect via a Data Source Name (DSN) set up on this server
Data Source Name (DSN) : MONDSN2

renseignement : user + mdp

Test connection : Successful

Creation de calque basé sur cette ressource : impossible.
Soit
les "Feature Class" sont visibles mais n'exposent pas leurs champs
les "Feature Class" ne s'affichent pas


comme vous voyez, c'est pas brillant ... sad

Hors ligne

 

#15 Mon 15 March 2010 17:54

Thierry21
Participant occasionnel
Date d'inscription: 10 Aug 2006
Messages: 45

Re: MGE 2010 + Oracle : gros soucis sur l'ajout de jointures ?

C'est bon, c'est résolu : mea culpa : ça vient de mes scripts sql de création de tables et de vues.
Il y avait un espace qui trainait à la fin du nom de la vue.
Dans ce cas, lors d'une requête à la table mdsys.sdo_geom_metadata_table on voit bien la vue mais si on utilise all_sdo_geom_metadata on ne la voit plus.
Merci à ceux qui ont pris la peine d'essayer de m'aider.

Hors ligne

 

Pied de page des forums

Powered by FluxBB