Index by: file name | procedure name | procedure call | annotation
installJDBCDriver_proc.tcl (annotations | original source)

####################################################################
# proc createJDBCDriver.
####################################################################
proc installJDBCDriver { propertiesFile } {

   global AdminConfig 

   # display procedure arguments.

   set procName [ lindex [ info level 0 ] 0 ]

   putsLog "## proc - $procName"

   foreach i [ info args $procName ]  {

      upvar 0 $i ilocal

      set propertiesArray($i) $ilocal 

   }

   putsLog "procedure arguments are................."

   foreach { a b } [ array get propertiesArray ] {

       putsLog [ format "%-35s %s" "$a" "$b" ]

   }

   putsLog "JDBC Driver properties are: ............" 

   if { [ catch { hashMapList $propertiesFile } r ] == 0 } {
     
       set propertiesList $r 

       foreach a $propertiesList {

           putsLog [ format "%-5s %-20s %-s" " " [ lindex $a 0 ] [ lindex $a 1 ] ] 

       }

   } else {

       return -code error $r 

   }

   # call the hashMap proc which returns a Property object populated with property file values.  

   if { [ catch { hashMap $propertiesFile } r ] == 0 } {
     
       set PropertyI $r 

   } else {

       return -code error $r 

   }

   # list the current JDBC drivers 

   set j [ $AdminConfig list JDBCProvider ]

   putsLog "Installed JDBC drivers are................"

   showList $j

   putsLog [ string repeat . [ string length "Installed JDBC drivers are................" ] ]

   #get attribute name of each JDBC driver and add to a list. 

   foreach i $j { lappend nameList [ $AdminConfig showAttribute $i name ] }

   set providerName [ $PropertyI getProperty jdbcProvider.name ]

   catch { lsearch $nameList $providerName } r 

   ## delete the driver if it exists.

   if { $r != -1 } {

       putsLog "JDBC driver already exists.  Deleting driver ..............."

       if { [ catch { deleteJDBCDriver $providerName } r  ] == 0 } {

           putsLog $r

       } else {

          putsLog $r
          return -code error $r

       }

   }

   # create the jdbc driver at the cell level.  This is the most common config. 

   set cellId [ lindex [ $AdminConfig list Cell ] 0 ]

   # create the JDBC driver.

   putsLog "Creating JDBC driver"

   set classpath               [ list classpath               [ $PropertyI getProperty jdbcProvider.classpath ] ]
   set implementationClassName [ list implementationClassName [ $PropertyI getProperty jdbcProvider.implementationClassName ] ]
   set description             [ list description             [ $PropertyI getProperty jdbcProvider.description ] ]
   set name                    [ list name                    $providerName ] 
   set xa                      [ list xa                      true ]

   set attrList                [ list $classpath $implementationClassName $name $xa $description  ]

   # get the template id for the JDBC provider.

   set template [ $PropertyI getProperty jdbcProvider.template ]

   if { [ catch { $AdminConfig listTemplates JDBCProvider $template } r ] == 0 } {

       if { $r == {} } {

	   putsLog "ERROR: $template template does not exist" 
	   putsLog " Checking existing templates using \"$AdminConfig listTemplates JDBCProvider\" from the command line" 
	   return -code error 

       } else {

	   set templateId $r 

       }

   }

   if { [ catch { $AdminConfig createUsingTemplate JDBCProvider $cellId $attrList $templateId  } r ] == 0 } {

        putsLog  "$providerName JDBC driver created successfully."

   } else {

           putsLog "ERROR: failed to create $providerName JDBC driver "

           return -code error "$r"
   }

}

Index by: file name | procedure name | procedure call | annotation
File generated 2007-08-07 at 13:42.