Disponible avec une licence Standard ou Advanced.
Utilisez l'outil de géotraitement Activer une géodatabase d'entreprise ou un script Python pour créer une géodatabase dans une base de données IBM Informix.
Les sections suivantes expliquent comment :
- Configurer Informix pour le stockage d'une géodatabase
- Configurer un client ArcGIS pour une connexion à Informix
- Créer une géodatabase dans une base de données Informix
Installer et configurer Informix
Avant de pouvoir exécuter l'outil Activer une géodatabase d’entreprise ou un script permettant de créer une géodatabase dans Informix, vous devez d'abord installer et configurer le système de gestion de base de données Informix. Vérifiez la configuration système requise d'ArcGIS avant de configurer une géodatabase pour vous assurer que la base de données, ArcGIS et le matériel que vous souhaitez utiliser sont bien pris en charge.
Suivez les instructions fournies par IBM pour installer et configurer l'instance Informix. Suivez ensuite les étapes ci-dessous pour configurer une base de données et un identifiant de connexion à utiliser avec votre géodatabase.
-
Créez une ouverture de session de système d'exploitation nommée sde sur le serveur Informix.
Vous allez vous connecter à la base de données avec l'identifiant de connexion sde pour créer une géodatabase.
- Apportez les modifications suivantes au fichier ONCONFIG Informix :
- Supprimez les marques de commentaire du paramètre VPCLASS jvp,num=1.
Cela permet de créer la fonction sde.retrieve_guid() dans la géodatabase, qui est nécessaire pour la réplication, l'utilisation de cartes hors connexion et les modifications SQL dans les tables contenant des colonnes ID global ou GUID. Ce paramètre est également nécessaire pour les workflows d'archivage non versionnés.
- Définissez le paramètre USEOSTIME sur 1 pour utiliser la précision en fraction de seconde pour les valeurs temporelles.
La définition de ce paramètre permet d'implémenter des workflows de mise à jour qui nécessitent la modification des données non versionnées en cas de déconnexion du réseau.
- Redémarrez Informix pour que les modifications soient prises en compte dans le fichier ONCONFIG.
- Supprimez les marques de commentaire du paramètre VPCLASS jvp,num=1.
- Créez une base de données dans l'instance Informix et configurez des espaces de stockage.
La base de données Informix que vous utilisez pour votre géodatabase doit satisfaire les conditions suivantes :
- Au moins 100 Mo d'espace libre disponible pour stocker les objets système de la géodatabase
- Activation sur la base de données de l'enregistrement dans des journaux ou dans des journaux bufférisés
ArcGIS définit des transactions et vous ne pouvez pas insérer de données tant que la base de données n'a pas été créée avec enregistrement dans des journaux ou dans des journaux bufférisés. Vous pouvez effectuer cette opération lors de la création de la base de données via dbaccess ou à l'aide de la commande ontape.
ontape -s -B <database name>
- Activation de la consignation des espaces de stockage d'objets SLOB
Tous les espaces de stockage d'objets SLOB (sous-espaces) utilisés pour les données spatiales doivent également être consignés. La consignation ne constitue pas la valeur par défaut pour les objets SLOB lors de leur création. Toutefois, pour permettre la consignation de transactions afin d'autoriser les restaurations et protéger l'ensemble des données spatiales, vous devez activer la consignation pour tous les objets BLOB intelligents. Exécutez la commande suivante en tant qu'utilisateur informix pour activer la consignation pour un sous-espace d'objets SLOB :
onspaces -ch SBLOBspace -DF LOGGING=ON
- Accordez à l'identifiant de connexion sde le rôle EXTEND et les autorisations RESOURCE sur la base de données.
Configurez ensuite un client ArcGIS à partir duquel vous pourrez vous connecter et créer une géodatabase dans la base de données Informix.
Configurer les clients
Vous pouvez exécuter un script Python à partir d'ArcGIS Desktop (Desktop Standard ou Desktop Advanced), ArcGIS Engine Runtime avec l'extension Geodatabase Update ou ArcGIS Server (Standard ou Advanced) pour créer une géodatabase. Pour exécuter l'outil de géotraitement Activer une géodatabase d'entreprise plutôt qu'un script, utilisez ArcGIS Desktop.
- Installez le client ArcGIS à utiliser pour créer la géodatabase.
Suivez les instructions des guides d'installation du logiciel.
- Dans la plupart des cas, votre client ArcGIS sera installé sur un ordinateur autre que le serveur Informix. Par conséquent, installez et configurez un client Informix sur l'ordinateur client ArcGIS.
Vous pouvez télécharger le client Informix Connect (IConnect) à partir de My Esri. Consultez la documentation Informix pour savoir comment installer le client. Si vous installez le client Informix pour l'exécuter avec un client ArcGIS 32 bits, installez le client Informix IConnect 32 bits. Si vous installez le client Informix pour l'exécuter avec ArcGIS Server, installez le client IConnect 64 bits.
- Si votre client ArcGIS est installé sur un ordinateur Windows, enregistrez le serveur Informix via SetNet32.
- Vous pouvez vous connecter à une base de données Informix à partir d'ArcGIS à l'aide d'une chaîne de connexion DSNless. Toutefois, pour vous connecter à l'aide d'un nom de source de données ODBC, vous devez configurer le nom de la source de données. Reportez-vous à la rubrique Configurer une source de données ODBC pour Informix pour plus d'informations.
Vous pouvez maintenant créer une géodatabase.
Créer une géodatabase
Utilisez une des méthodes suivantes pour créer une géodatabase dans votre base de données Informix :
Utilisez l'outil Activer une géodatabase d'entreprise.
Si vous avez installé et configuré ArcGIS Desktop pour vous connecter à votre base de données Informix, vous pouvez exécuter l'outil Activer une géodatabase d'entreprise.
- Démarrez ArcMap ou ArcCatalog.
- Connectez-vous à la base de données Informix à partir de l'arborescence du Catalogue. Connectez-vous avec l'identifiant de connexion sde.
N'oubliez pas d'enregistrer le mot de passe de l'utilisateur sde dans la boîte de dialogue Connexion à la base de données.
- Cliquez sur la connexion avec le bouton droit de la souris, puis sélectionnez Activer une géodatabase.
L'outil Activer une géodatabase d'entreprise s'ouvre.
- Ajoutez le fichier de connexion à une base de données pour votre base de données Informix dans la zone de texte Base de données en entrée.
- Accédez au fichier de codes clés ArcGIS Server que vous avez créé lorsque vous avez autorisé ArcGIS Server et ajoutez-le à la zone de texte Fichier d'autorisation.
Lorsque vous utilisez l'assistant d'autorisation d'ArcGIS Server, un fichier de codes clés est écrit sur le serveur où le logiciel est installé. Si vous avez autorisé ArcGIS Server sur un système Linux, le fichier a été créé dans /arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License<release>/sysgen. Si vous l'avez autorisé sur un serveur Windows, le fichier a été créé dans Program Files\ESRI\License<release>\sysgen. Copiez ce fichier dans un emplacement accessible avec l'outil Activer une géodatabase d'entreprise. Si vous ne l'avez pas déjà fait, autorisez ArcGIS Server à créer ce fichier.
- Cliquez sur OK pour exécuter l'outil.
Le fichier sde_setup.log contient des messages relatifs à la création de la géodatabase, qui est créé dans le répertoire spécifié pour votre variable %TEMP% sur l'ordinateur sur lequel l'outil est exécuté. Si vous rencontrez un problème lors de la création d'une géodatabase, consultez ce fichier pour le résoudre.
Une géodatabase est créée dans votre base de données Informix.
Créez ensuite des utilisateurs pour charger les données dans la géodatabase. Pour savoir comment créer des utilisateurs, consultez la documentation du centre d'information Informix d'IBM.
Utiliser un script Python
Vous pouvez exécuter un script Python à partir d'un ordinateur client ArcGIS Desktop (Desktop Standard ou Desktop Advanced), ArcGIS Server ou ArcGIS Engine (avec l'extension Geodatabase Update) pour créer une géodatabase dans une base de données Informix.
Pour exécuter un script Python pour créer une géodatabase dans une base de données Informix, procédez comme suit :
- Créez un fichier texte sur l'ordinateur du client ArcGIS, puis copiez-y le script suivant.
""" Name: enable_enterprise_gdb.py Description: Provide connection information to an enterprise database and enable enterprise geodatabase. Type enable_enterprise_gdb.py -h or enable_enterprise_gdb.py --help for usage """ # Import system modules import arcpy, os, optparse, sys # Define usage and version parser = optparse.OptionParser(usage = "usage: %prog [Options]", version="%prog 1.0 for " + arcpy.GetInstallInfo()['Version'] ) #Define help and options parser.add_option ("--DBMS", dest="Database_type", type="choice", choices=['SQLSERVER', 'ORACLE', 'POSTGRESQL', 'DB2','INFORMIX','DB2ZOS', ''], default="", help="Type of enterprise DBMS: SQLSERVER, ORACLE, POSTGRESQL, DB2, INFORMIX, or DB2ZOS.") parser.add_option ("-i", dest="Instance", type="string", default="", help="DBMS instance name") parser.add_option ("--auth", dest="account_authentication", type ="choice", choices=['DATABASE_AUTH', 'OPERATING_SYSTEM_AUTH'], default='DATABASE_AUTH', help="Authentication type options (case-sensitive): DATABASE_AUTH, OPERATING_SYSTEM_AUTH. Default=DATABASE_AUTH") parser.add_option ("-u", dest="User", type="string", default="", help="Geodatabase administrator user name") parser.add_option ("-p", dest="Password", type="string", default="", help="Geodatabase administrator password") parser.add_option ("-D", dest="Database", type="string", default="none", help="Database name: Not required for Oracle") parser.add_option ("-l", dest="Authorization_file", type="string", default="", help="Full path and name of authorization file") # Check if value entered for option try: (options, args) = parser.parse_args() #Check if no system arguments (options) entered if len(sys.argv) == 1: print "%s: error: %s\n" % (sys.argv[0], "No command options given") parser.print_help() sys.exit(3) #Usage parameters for spatial database connection database_type = options.Database_type.upper() instance = options.Instance account_authentication = options.account_authentication.upper() username = options.User.lower() password = options.Password database = options.Database.lower() license = options.Authorization_file if( database_type ==""): print " \n%s: error: \n%s\n" % (sys.argv[0], "DBMS type (--DBMS) must be specified.") parser.print_help() sys.exit(3) if (license == ""): print " \n%s: error: \n%s\n" % (sys.argv[0], "Authorization file (-l) must be specified.") parser.print_help() sys.exit(3) if (database_type == "SQLSERVER"): database_type = "SQL_SERVER" # Get the current product license product_license=arcpy.ProductInfo() if (license == ""): print " \n%s: error: %s\n" % (sys.argv[0], "Authorization file (-l) must be specified.") parser.print_help() sys.exit(3) # Checks required license level if product_license.upper() == "ARCVIEW" or product_license.upper() == 'ENGINE': print "\n" + product_license + " license found!" + " Enabling enterprise geodatabase functionality requires an ArcGIS Desktop Standard or Advanced, ArcGIS Engine with the Geodatabase Update extension, or ArcGIS Server license." sys.exit("Re-authorize ArcGIS before enabling an enterprise geodatabase.") else: print "\n" + product_license + " license available! Continuing to enable..." arcpy.AddMessage("+++++++++") # Local variables instance_temp = instance.replace("\\","_") instance_temp = instance_temp.replace("/","_") instance_temp = instance_temp.replace(":","_") Conn_File_NameT = instance_temp + "_" + database + "_" + username if os.environ.get("TEMP") == None: temp = "c:\\temp" else: temp = os.environ.get("TEMP") if os.environ.get("TMP") == None: temp = "/usr/tmp" else: temp = os.environ.get("TMP") Connection_File_Name = Conn_File_NameT + ".sde" Connection_File_Name_full_path = temp + os.sep + Conn_File_NameT + ".sde" # Check for the .sde file and delete it if present arcpy.env.overwriteOutput=True if os.path.exists(Connection_File_Name_full_path): os.remove(Connection_File_Name_full_path) print "\nCreating Database Connection File...\n" # Process: Create Database Connection File... # Usage: out_file_location, out_file_name, DBMS_TYPE, instnace, database, account_authentication, username, password, save_username_password(must be true) arcpy.CreateDatabaseConnection_management(out_folder_path=temp, out_name=Connection_File_Name, database_platform=database_type, instance=instance, database=database, account_authentication=account_authentication, username=username, password=password, save_user_pass="TRUE") for i in range(arcpy.GetMessageCount()): if "000565" in arcpy.GetMessage(i): #Check if database connection was successful arcpy.AddReturnMessage(i) arcpy.AddMessage("\n+++++++++") arcpy.AddMessage("Exiting!!") arcpy.AddMessage("+++++++++\n") sys.exit(3) else: arcpy.AddReturnMessage(i) arcpy.AddMessage("+++++++++\n") # Process: Enable geodatabase... try: print "Enabling Enterprise Geodatabase...\n" arcpy.EnableEnterpriseGeodatabase_management(input_database=Connection_File_Name_full_path, authorization_file=license) for i in range(arcpy.GetMessageCount()): arcpy.AddReturnMessage(i) arcpy.AddMessage("+++++++++\n") except: for i in range(arcpy.GetMessageCount()): arcpy.AddReturnMessage(i) if os.path.exists(Connection_File_Name_full_path): os.remove(Connection_File_Name_full_path) #Check if no value entered for option except SystemExit as e: if e.code == 2: parser.usage = "" print "\n" parser.print_help() parser.exit(2)
- Enregistrez le fichier avec l'extension .py.
- Exécutez le script en indiquant les options et informations propres à votre site.
Dans l'exemple suivant, exécuté sur un ordinateur Windows, le fichier enable_gdb.py est exécuté pour la base de données spdata sur l'instance idsprod. La connexion est établie avec l'identifiant de connexion sde et le mot de passe Tgdbst@rtsh3r3. Un fichier de codes clés se trouvant dans l'emplacement par défaut d'ArcGIS Server permet d'autoriser la géodatabase.
enable_gdb.py --DBMS INFORMIX -i idsprod --auth DATABASE_AUTH -u sde -p Tgdbst@rtsh3r3 -D spdata -l \\Program Files\ESRI\License\sysgen\keycodes
Voici un exemple d'exécution du script sur un ordinateur Linux :
/enable_gdb.py --DBMS INFORMIX -i idsprod --auth DATABASE_AUTH -u sde -p Tgdbst@rtsh3r3 -D spdata -l /usr/arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License/sysgen/keycodes
Le fichier sde_setup.log contient les messages associés à la création de la géodatabase, qui est créé dans le répertoire spécifié pour votre variable TEMP ou TMP sur l'ordinateur sur lequel le script Python est exécuté. Si vous rencontrez un problème lors de la création d'une géodatabase, consultez ce fichier pour le résoudre.
Une géodatabase est créée dans votre base de données Informix.
Créez ensuite des utilisateurs pour charger les données dans la géodatabase. Pour savoir comment créer des utilisateurs, consultez la documentation du centre d'information Informix d'IBM.