ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Help
  • Sign Out
ArcGIS Desktop

ArcGIS Online

The mapping platform for your organization

ArcGIS Desktop

A complete professional GIS

ArcGIS Enterprise

GIS in your enterprise

ArcGIS Developers

Tools to build location-aware apps

ArcGIS Solutions

Free template maps and apps for your industry

ArcGIS Marketplace

Get apps and data for your organization

  • Documentation
  • Support
Esri
  • Sign In
user
  • My Profile
  • Sign Out

ArcMap

  • Home
  • Get Started
  • Map
  • Analyze
  • Manage Data
  • Tools
  • Extensions

Create a geodatabase in Informix

Available with Standard or Advanced license.

  • Prerequisites
  • Install and configure Informix
  • Configure clients
  • Create a geodatabase

Use the Enable Enterprise Geodatabase geoprocessing tool or a Python script to create a geodatabase in an IBM Informix database. The process to accomplish this is described in the following sections.

Prerequisites

Before you create a geodatabase in Informix, you need to do the following:

  • Confirm that the ArcGIS software version and Informix versions you want to use are compatible.
  • Obtain the Informix client required to connect to the version of Informix you'll use to store your geodatabase.
  • Obtain an ArcGIS Server keycodes file and place it in a location you can access from the ArcGIS client you'll use to create the geodatabase.
  • Install and configure Informix.

Install and configure Informix

Before you can run the Enable Enterprise Geodatabase tool or script to create a geodatabase in Informix, you (or your IT department or database administrator) must first install and configure the Informix database management system. Check the ArcGIS system requirements before you set up a geodatabase to be sure the database, ArcGIS, and hardware combinations you want to use are supported.

You should follow the instructions provided by IBM to install and configure your Informix instance. Then follow these steps to configure a database and login to use for your geodatabase.

  1. Create an operating system login named sde on the Informix server.

    You will connect to the database with the sde login to create a geodatabase.

  2. Make the following changes to the Informix ONCONFIG file:
    1. Uncomment the VPCLASS jvp,num=1 parameter.

      This allows the sde.retrieve_guid() function to be created in the geodatabase, which is required for replication, off-line map use, and SQL edits of tables containing global ID or GUID columns. This setting is also needed for nonversioned archiving workflows.

    2. Set the USEOSTIME parameter to 1 to use subsecond precision for time values.

      Setting this parameter allows you to implement editing workflows that require editing nonversioned data while disconnected from the network.

    3. Restart Informix to implement the changes you made to the ONCONFIG file.
  3. Create a database in the Informix instance and configure storage spaces.

    The Informix database you use for your geodatabase must have the following:

    • At least 100 MB of free space available to store geodatabase system objects
    • Logging or buffered logging enabled on the database

      ArcGIS sets transactions, and you cannot insert data unless the database has been created as either logged or buffered logged. You can establish this during creation of the database through dbaccess, or use the ontape command.

      ontape -s -B <database name>

    • Logging enabled for smart large object spaces

      All smart large object spaces (sbspaces) used for spatial data must also be logged. Logging is not the default for smart large objects when created. However, to ensure transaction logging to enable rollbacks and protect all spatial data, you must turn logging on for all smart blobs. Run the following command as the informix user to turn on logging for a smart large object sbspace:

      onspaces -ch SBLOBspace -DF LOGGING=ON

  4. Grant the sde login the EXTEND role and RESOURCE permissions in the database.

Next, set up an ArcGIS client from which you will connect and create a geodatabase in the Informix database.

Configure clients

You can run a Python script from ArcGIS Desktop (Desktop Standard or Desktop Advanced), ArcGIS Engine Runtime with the Geodatabase Update extension, or ArcGIS Server (Standard or Advanced) to create a geodatabase. If you want to run the Enable Enterprise Geodatabase geoprocessing tool instead of a script, use ArcGIS Desktop.

Note:

You need an ArcGIS Server keycodes file to authorize your geodatabase in the next section. Even if you do not run a Python script from an ArcGIS Server machine to create the geodatabase, you must install and authorize ArcGIS Server to get the keycodes file.

  1. Install the ArcGIS client you want to use for geodatabase creation.

    Follow the instructions provided in the software installation guides.

  2. In most cases, your ArcGIS client will be installed on a different computer than the Informix server; therefore, install and configure an Informix client on the ArcGIS client computer.

    The Informix Connect (IConnect) client can be downloaded from My Esri. See the Informix documentation for instructions to install the client. If you are installing the Informix client to run with a 32-bit ArcGIS client, install the 32-bit IConnect client. If you are installing to run with ArcGIS Server, install the 64-bit IConnect client.

  3. If your ArcGIS client is installed on a Microsoft Windows computer, register the Informix server via SetNet32.
  4. You can connect from ArcGIS to an Informix database using a DSNless connection string. However, if you want to use an ODBC data source name to connect instead, you must configure the data source name. See Set up an ODBC data source for Informix for instructions.

Now you can create a geodatabase.

Create a geodatabase

Use one of the following methods to create a geodatabase in your Informix database:

Use the Enable Enterprise Geodatabase tool

If you installed and configured ArcGIS Desktop to connect to your Informix database, you can run the Enable Enterprise Geodatabase tool.

  1. Start ArcMap or ArcCatalog.
  2. Connect to the Informix database from the Catalog tree. Connect with the sde login.

    Be sure to save the sde user's password on the Database Connection dialog box.

  3. Right-click the database connection and click Enable Geodatabase.

    The Enable Enterprise Geodatabase tool opens.

  4. Add the database connection file for your Informix database to the Input Database text box.
  5. Browse to the ArcGIS Server keycodes file that was created when you authorized ArcGIS Server and add it to the Authorization File text box.

    When you use the wizard to authorize ArcGIS Server, a keycodes file is written to the server where the software is installed. If you authorized ArcGIS Server on a Linux box, the file was created in /arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License<release>/sysgen. If you authorized on a Windows server, the file was created in Program Files\ESRI\License<release>\sysgen. Copy this file to a location you can access from the Enable Enterprise Geodatabase tool. If you have not already done so, authorize ArcGIS Server to create this file.

  6. Click OK to run the tool.

    You can find messages related to geodatabase creation in the sde_setup.log file, which is created in the directory specified for your %TEMP% variable on the computer where the tool is run. If you have problems creating a geodatabase, check this file to troubleshoot the problem.

A geodatabase is created in your Informix database.

Next, create users to load data into the geodatabase. For instructions on creating users, see the IBM Informix Information Center documentation.

Use a Python script

You can run a Python script from an ArcGIS Desktop (Desktop Standard or Desktop Advanced), ArcGIS Server, or ArcGIS Engine (with the Geodatabase Update extension) client machine to create a geodatabase in an Informix database.

Follow these steps to run a Python script for geodatabase creation in an Informix database:

  1. Create a text file on the ArcGIS client machine and copy the following script into the file.

    """
    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=['SQL_SERVER', 'ORACLE', 'POSTGRESQL', 'DB2','INFORMIX','DB2ZOS', ''], default="", help="Type of enterprise DBMS:  SQL_SERVER, 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)
    
    		
    	# 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)
    

  2. Save the file with a .py extension.
  3. Run the script, providing options and information specific to your site.

    In the following example run from a Windows machine, the file enable_gdb.py is run for database spdata on instance idsprod. The connection is made as the sde login with password Tgdbst@rtsh3r3. A keycodes file in the default ArcGIS Server location is specified to authorize the geodatabase.

    enable_gdb.py --DBMS INFORMIX -i idsprod --auth DATABASE_AUTH 
    -u sde -p Tgdbst@rtsh3r3 -D spdata -l '\\Program Files\ESRI\License\sysgen\keycodes'
    

    This is an example of running the script on a Linux machine:

    /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'
    
    Tip:

    Type -h or --help at the command prompt to get syntax help.

    You can find messages related to geodatabase creation in the sde_setup.log file, which is created in the directory specified for your TEMP or TMP variable on the computer where the Python script is run. If you have any problems creating a geodatabase, check this file to troubleshoot the problem.

A geodatabase is created in your Informix database.

Next, create users to load data into the geodatabase. For instructions on creating users, see the IBM Informix Information Center documentation.

ArcGIS Desktop

  • Home
  • Documentation
  • Support

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

About Esri

  • About Us
  • Careers
  • Esri Blog
  • User Conference
  • Developer Summit
Esri
Tell us what you think.
Copyright © 2021 Esri. | Privacy | Legal