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