Index: /trunk/ippToPsps/config/settings.xml
===================================================================
--- /trunk/ippToPsps/config/settings.xml	(revision 35176)
+++ /trunk/ippToPsps/config/settings.xml	(revision 35177)
@@ -10,8 +10,22 @@
   <!-- local scratch Db section (REAL version) -->
   <localdatabase>
-    <name>ipptopsps_scratch</name>
-    <host>ipp006</host>
-    <user>dvo</user>
-    <password>dvo</password>
+    <loader mach="ipp006">
+      <name>ipptopsps_scratch1</name>
+      <host>ipp006</host>
+      <user>dvo</user>
+      <password>dvo</password>
+    </loader>
+    <loader mach="ipp007">
+      <name>ipptopsps_scratch1</name>
+      <host>ipp007</host>
+      <user>dvo</user>
+      <password>dvo</password>
+    </loader>
+    <loader mach="generic">
+      <name>ipptopsps_scratch1</name>
+      <host>localhost</host>
+      <user>dvo</user>
+      <password>dvo</password>
+    </loader>
   </localdatabase>
 
@@ -34,8 +48,22 @@
   <!-- local scratch Db section (TEST VERSION) -->
   <localdatabase_test>
-    <name>ipptopsps_test_scratch</name>
-    <host>localhost</host>
-    <user>dvo</user>
-    <password>dvo</password>
+    <loader mach="ipp006">
+      <name>ipptopsps_test_scratch1</name>
+      <host>ipp006</host>
+      <user>dvo</user>
+      <password>dvo</password>
+    </loader>
+    <loader mach="pikake">
+      <name>ipptopsps_test_scratch1</name>
+      <host>pikake</host>
+      <user>dvo</user>
+      <password>dvo</password>
+    </loader>
+    <loader mach="generic">
+      <name>ipptopsps_test_scratch1</name>
+      <host>localhost</host>
+      <user>dvo</user>
+      <password>dvo</password>
+    </loader>
   </localdatabase_test>
 
Index: /trunk/ippToPsps/jython/config.py
===================================================================
--- /trunk/ippToPsps/jython/config.py	(revision 35176)
+++ /trunk/ippToPsps/jython/config.py	(revision 35177)
@@ -64,4 +64,13 @@
         print "config.test: ", self.test
 
+        root = self.settingsDoc.getroot()
+        localdb = root.find('localdatabase')
+        for loaderhost in localdb.findall('loaderhost'):
+          name = loaderhost.get('name')
+          dbname = loaderhost.find('dbname').text
+          dbhost = loaderhost.find('host').text
+          print "loaderhost / dbhost : ", name, dbname, dbhost
+
+
     '''
     Creates a logger object and returns it
@@ -85,6 +94,49 @@
     Various db metadata getters
     '''
-    def getDbName(self, dbType): return self.settingsDoc.find(dbType +"/name").text
-    def getDbHost(self, dbType): return self.settingsDoc.find(dbType +"/host").text
-    def getDbUser(self, dbType): return self.settingsDoc.find(dbType +"/user").text
-    def getDbPassword(self, dbType): return self.settingsDoc.find(dbType +"/password").text
+    def getDbName(self, dbType): 
+        if dbType == 'localdatabase' or dbType == 'localdatabase_test':
+            return self.scratchDbLeaf.find('name').text
+        else:
+            return self.settingsDoc.find(dbType +"/name").text
+
+    def getDbHost(self, dbType): 
+        if dbType == 'localdatabase' or dbType == 'localdatabase_test':
+            return self.scratchDbLeaf.find('host').text
+        else:
+            return self.settingsDoc.find(dbType +"/host").text
+
+    def getDbUser(self, dbType): 
+        if dbType == 'localdatabase' or dbType == 'localdatabase_test':
+            return self.scratchDbLeaf.find('user').text
+        else:
+            return self.settingsDoc.find(dbType +"/user").text
+
+    def getDbPassword(self, dbType): 
+        if dbType == 'localdatabase' or dbType == 'localdatabase_test':
+            return self.scratchDbLeaf.find('password').text
+        else:
+            return self.settingsDoc.find(dbType +"/password").text
+
+    def setScratchDbLeaf(self, myhost):
+        root = self.settingsDoc.getroot()
+        if (self.test):
+            localdb = root.find('localdatabase_test')
+        else:
+            localdb = root.find('localdatabase')
+
+        for loaderhost in localdb.findall('loader'):
+          name = loaderhost.get('mach')
+          print "name, myhost: ", name, myhost
+          if name == myhost:
+              self.scratchDbLeaf = loaderhost
+              return 1
+
+        for loaderhost in localdb.findall('loader'):
+          name = loaderhost.get('mach')
+          print "name, myhost: ", name, myhost
+          if name == 'generic':
+              self.scratchDbLeaf = loaderhost
+              return 1
+
+        print "Config Error: cannot find valid scratch db matching ", myhost, "or generic"
+        raise
Index: /trunk/ippToPsps/jython/dvo.py
===================================================================
--- /trunk/ippToPsps/jython/dvo.py	(revision 35176)
+++ /trunk/ippToPsps/jython/dvo.py	(revision 35177)
@@ -50,5 +50,5 @@
         # connect to the specified scratch database, if a name is given, otherwise use the first version
         try:
-            self.scratchDb = ScratchDb(self.logger, self.config, '1', scratchDbName)
+            self.scratchDb = ScratchDb(self.logger, self.config)
         except: raise
 
Index: /trunk/ippToPsps/jython/ipptopsps.py
===================================================================
--- /trunk/ippToPsps/jython/ipptopsps.py	(revision 35176)
+++ /trunk/ippToPsps/jython/ipptopsps.py	(revision 35177)
@@ -40,4 +40,6 @@
         self.MINUTES = None
         self.SECONDS = None
+
+        self.config.setScratchDbLeaf(self.HOST)
 
         self.logger = self.config.getLogger(self.HOST, self.PID, logToStdout, logToFile)
Index: /trunk/ippToPsps/jython/loader.py
===================================================================
--- /trunk/ippToPsps/jython/loader.py	(revision 35176)
+++ /trunk/ippToPsps/jython/loader.py	(revision 35177)
@@ -43,14 +43,8 @@
 
         # connect to scratch database
-        scratchDbs = ['1', '2', '3']
-        for dbVersion in scratchDbs:
-            self.scratchDb = ScratchDb(self.logger, self.config, dbVersion)
-            if not self.config.test and self.scratchDb.anyOtherConnections():
-                self.logger.errorPair("This scratch Db is already in use", self.scratchDb.dbName)
-                self.scratchDb.disconnect()
-                continue
-            break
-
-        if not self.scratchDb.connected:
+        self.scratchDb = ScratchDb(self.logger, self.config)
+        if not self.config.test and self.scratchDb.anyOtherConnections():
+            self.logger.errorPair("This scratch Db is already in use", self.scratchDb.dbName)
+            self.scratchDb.disconnect()
             self.exitProgram("Cannot connect to a scratch database")
             raise
Index: /trunk/ippToPsps/jython/scratchdb.py
===================================================================
--- /trunk/ippToPsps/jython/scratchdb.py	(revision 35176)
+++ /trunk/ippToPsps/jython/scratchdb.py	(revision 35177)
@@ -19,7 +19,9 @@
     Constructor
     '''
-    def __init__(self, logger, config, dbVersion, dbName=None):
+    def __init__(self, logger, config):
 
         # create gpc1 database objects
+        # XXX the test option is probably not needed since
+        # the scratchDb config infor is set up specially
         if (config.test): 
             dbType = "localdatabase_test"
@@ -27,7 +29,5 @@
             dbType = "localdatabase"
 
-        if not dbName:
-            dbName = config.getDbName(dbType)
-            dbName += dbVersion
+        dbName = config.getDbName(dbType)
 
         super(ScratchDb, self).__init__(logger, config, dbType, dbName)
