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

# 
# Create Datasource Proc.
#
####################################################################
# Patrick Finnegan 11/01/2005.  V1. 
####################################################################
proc createDataSource { serverName dataSourceName dbDescription portNumber driverType authDataAlias jndiName dbDriver        } { 
    
   global AdminConfig 

   putsLog "proc - [info level 0 ]"

   set 	propertiesArray(serverName)     $serverName     
   set  propertiesArray(dataSourceName) $dataSourceName   
   set  propertiesArray(dbDescription)  $dbDescription  
   set  propertiesArray(portNumber)     $portNumber     
   set  propertiesArray(driverType)     $driverType     
   set  propertiesArray(authDataAlias)  $authDataAlias  
   set  propertiesArray(jndiName)       $jndiName       
   set  propertiesArray(dbDriver)       $dbDriver       

   putsLog "properties are.................."

   foreach { a b } [ array get propertiesArray ] {

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

   }

   set dataSources [ $AdminConfig list DataSource ]

   putsLog "Installed datasources are................"

   showList $dataSources

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

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

   catch { lsearch $nameList $dataSourceName } r 

   if { $r == -1 } {

       set continue true 

   } else {

       putsLog "datasource $dataSourceName already exists" 

       if { [ catch { deleteDataSource $dataSourceName } r  ] == 0 } {

            putsLog "datasource $dataSourceName deleted successfully" 

       } else {

            return -code error $r

       }

   } 

   if { [ catch { setProperties $authDataAlias $dbDescription $dataSourceName $jndiName } r ] == 0 } {

       set dataSourceAttributes $r 

   } else {

       return -code error $r

   }

   #  install the datasource under the database driver id with general properties. 

   if { [ catch { $AdminConfig getid /JDBCProvider:$dbDriver/ } r ] == 0 } {

        putsLog "db2 driver is $r"
        set jdbcDriverId $r

   } else {

       return -code error $r 

   }

   #puts "$AdminConfig create DataSource $jdbcDriverId $dataSourceAttributes"

   if { [ catch { $AdminConfig create DataSource $jdbcDriverId $dataSourceAttributes } r ] == 0 } {

       putsLog "datasource $dataSourceName created successfully" 

   } else {

       putsLog "ERROR: failed to create $dataSourceName" 

       return -code error $r 

   }

   #  get the id of the newly created datasource

   if { [ catch { $AdminConfig getid /DataSource:$dataSourceName/ } r ] == 0 } {

        putsLog "dataSource id is $r"
        set dataSourceId $r

   } else {

       return -code error $r 

   }

   #  create the propertySetId for the datasource. 

   set propertySetId [ $AdminConfig create J2EEResourcePropertySet $dataSourceId {} ]

   #  create the properties for the property set.
   #  setCustomProps returns a list.

   foreach e [ setCustomProps $dataSourceName $portNumber $dbDescription ] {

       $AdminConfig create J2EEResourceProperty $propertySetId $e

   }
   
   putsLog "*** The End ***" 

}
####################################################################
# Set general properties for DataSource.
####################################################################
proc setProperties { authDataAlias dbDescription dataSourceName jndiName } {

   global alias 

   putsLog "proc - [info level 0 ]"

   set 	propertiesArray(authDataAlias)	$authDataAlias
   set  propertiesArray(dataSourceName) $dataSourceName  
   set  propertiesArray(dbDescription) 	$dbDescription 
   set  propertiesArray(jndiName)      	$jndiName      

   putsLog "properties are.................."

   foreach { a b } [ array get propertiesArray ] {

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

   }

   set statementCacheSize         [ list statementCacheSize        100          ]
   set datasourceHelperClassname  [ list datasourceHelperClassname "com.ibm.websphere.rsadapter.OracleDataStoreHelper" ]
   set relationalResourceAdapter  [ list relationalResourceAdapter "WebSphere Relational Resource Adapter" ]
   set authDataAlias              [ list authDataAlias             $authDataAlias                       ]
   set name                       [ list name                      $dataSourceName ]
   set jndiName                   [ list jndiName                  $jndiName     ]
   set description                [ list description               $dbDescription]

   set agedTimeout                 [ list agedTimeout               0        ]
   set connectionTimeout           [ list connectionTimeout         1800    ]
   set maxConnections              [ list maxConnections            20     ]
   set minConnections              [ list minConnections            1     ]
   set purgePolicy                 [ list purgePolicy               "FailingConnectionOnly"]
   set reapTime                    [ list reapTime                  180                ]
   set unusedTimeout               [ list unusedTimeout             1800              ]

    set connectionPoolList [list  $agedTimeout       \
                                  $connectionTimeout \
                                  $maxConnections    \
                                  $minConnections    \
                                  $purgePolicy       \
                                  $reapTime          \
                                  $unusedTimeout     ]

   set attributesList [ list  $statementCacheSize        \
                              $name                      \
                              $authDataAlias             \
                              $jndiName                  \
                              $datasourceHelperClassname \
                              $description               \
                              [ list connectionPool $connectionPoolList ] ]

   return $attributesList

}
####################################################################
# Set custom properties. 
####################################################################
proc setCustomProps {dataSourceName portNumber dbDescription} {

   putsLog "proc - [info level 0 ]"

   set name                     [ list name       databaseName        ]
   set required                 [ list required   true                ]
   set type                     [ list type       "java.lang.String"  ]
   set value                    [ list value      $dataSourceName     ]

   set custom1                  [ list $name $required $type $value   ]
   
   set name                     [ list name       enableSQLJ          ]
   set required                 [ list required   false               ]
   set type                     [ list type       java.lang.Boolean   ]
   set value                    [ list value      false               ]

   set custom2                  [ list $name $required $type $value   ]

   set name                     [ list name           description      ]
   set required                 [ list required       false            ]
   set type                     [ list type           java.lang.String ]
   set value                    [ list value          $dbDescription   ] 

   set custom3                  [ list $name $required $type $value   ]

   set name                     [ list name          portNumber         ] 
   set required                 [ list required      false              ] 
   set type                     [ list type          java.lang.Integer  ] 
   set value                    [ list value         $portNumber         ] 

   set custom4                  [ list $name $required $type $value   ]

   set name                     [ list name          connectionAttribute ]
   set required                 [ list required      false               ]
   set type                     [ list type          java.lang.String    ]
   set value                    [ list value         cursorhold=0        ]

   set custom5                  [ list $name $required $type $value   ]

   set name                     [ list name          loginTimeout        ]
   set required                 [ list required      false               ]
   set type                     [ list type          java.lang.Integer   ]
   set value                    [ list value         0                   ]

   set custom6                  [ list $name $required $type $value   ]

   set name                     [ list name          enableMultithreadedAccessDetection]
   set required                 [ list required      false                             ]
   set type                     [ list type          java.lang.Boolean                 ]
   set value                    [ list value         false                             ]

   set custom7                  [ list $name $required $type $value   ]

   set name                     [ list name          preTestSQLString    ]
   set required                 [ list required      false               ]
   set type                     [ list type          java.lang.String    ]
   set value                    [ list value         " "                   ]

   set custom8                  [ list $name $required $type $value ]
 
   set customPropsList [ list $custom1 $custom2 $custom3 $custom4 $custom5 $custom6 $custom7 $custom8 ]
 
   return $customPropsList
}

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