Hi all,
I just made an example of how to create a DB instance in java using the sapdb jdbc 
powertools.
I give here the full example in case other also look for, as previous answers in the 
mailling list was incomplete:

import java.util.Properties;
import com.sap.dbtech.powertoys.*;

/**
 *
 * @author  Cedric
 */
public class TestCreateInstance {
    
    public TestCreateInstance() {
        Properties pt = new Properties();
        pt.setProperty("host", "localhost");
        pt.setProperty("dbname", "TestJ1");
        String dbuser = "dbm";
        String dbpasswd = "dbm";
        String sysdba_user = "dba";
        String sysdba_user_pwd = "dba";
        String domain_password = "domain";
        String result = null;
        
        //Drop the database if it exists
        try{
            DBM mydbm = new DBM(pt);
            result = mydbm.cmd("user_logon " + dbuser +","+dbpasswd);
            result = mydbm.cmd("db_offline");
            result = mydbm.cmd("db_drop");
            mydbm.release();
        }
        catch(Exception e){
            System.out.println(e.getMessage());
        }
        
        try{
            // DBM.dbDBM works only for an existing database
            // make sure that backslashes are properly escaped
            DBM dbSession = DBM.dbrootDBM("localhost", "c:\\program 
files\\sapdb\\depend");
            // my_new_db is the name of the new database
            // dbm,dbm is username and password of the dbm user
            // windowsuser,windowspassword is username and password of your Windows 
user
            // this is necessary bcause the Java interface connects through TCP/IP and
            // thus appears like a remote user
            result = dbSession.cmd("db_create TestJ1 dbm,dbm cedric,mywinpass");
            
            
            DBM mydbm = new DBM(pt);
            result = mydbm.cmd("user_logon "+dbuser+","+dbpasswd);
            result = mydbm.cmd("param_rmfile");
            result = mydbm.cmd("param_startsession");
            result = mydbm.cmd("param_init OLTP");
            result = mydbm.cmd("param_put CAT_CACHE_SUPPLY 300");
            result = mydbm.cmd("param_put CACHE_SIZE 3000");
            result = mydbm.cmd("param_put MAXDATADEVSPACES 5");
            result = mydbm.cmd("param_put MAXUSERTASKS 5");
            result = mydbm.cmd("param_put RESTART_SHUTDOWN AUTO");
            result = mydbm.cmd("param_checkall");
            result = mydbm.cmd("param_commitsession");
            result = mydbm.cmd("param_addvolume 1 LOG LOG_001 F 2000");
            result = mydbm.cmd("param_addvolume 1 DATA DAT_001 F 10000");
            result = mydbm.cmd("db_admin");
            result = mydbm.cmd("db_start");
            
            result = mydbm.cmd("util_connect "+dbuser+","+dbpasswd);
            result = mydbm.cmd("util_execute init config");
            result = mydbm.cmd("util_activate "+sysdba_user+","+sysdba_user_pwd);
            result = mydbm.cmd("load_systab -ud "+domain_password);
            
            result = mydbm.cmd("sql_connect "+sysdba_user+","+sysdba_user_pwd);
            result = mydbm.cmd("sql_execute CREATE USER test PASSWORD test DBA NOT 
EXCLUSIVE");
            
            result = mydbm.cmd("medium_put data c:\\temp\\backup\\datasave FILE DATA 0 
8 YES");
            result = mydbm.cmd("medium_put auto c:\\temp\\backup\\autosave FILE AUTO");
            result = mydbm.cmd("util_connect dbm,dbm");
            result = mydbm.cmd("backup_save data");
            result = mydbm.cmd("autosave_on");
            
            mydbm.release();
        }
        catch(Exception e){
            System.out.println(e.getMessage());
        }
        
    }
    
    public static void main(String[] args) {
        TestCreateInstance test = new TestCreateInstance();
    }
    
}


Cedric Cuche

Reply via email to