ProcedureExecutor.java
4.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
package com.sitech.ismp.check.mbean;
import java.util.Date;
import java.util.HashMap;
import com.sitech.ismp.check.util.SqlCollThread;
import com.sitech.ismp.messageObject.cc.CommandParameters;
import com.sitech.ismp.messageObject.cc.CommandResults;
public class ProcedureExecutor implements ProcedureExecutorMBean {
public static String Exec_Flag_Success = "1";
public static String Exec_Flag_Failure = "-1";
public CommandResults executeProcedures(CommandParameters cps) {
HashMap _customProp = null;
String _taskid = "";
int _type = 0;
String _dburl = "";
Date _begintime = null;
Date _endtime = null;
String _execresult = "";
String _execlog = "";
String _execflag = "";
String _failurereasion = "";
SqlCollThread sct = null;
_execlog = "指令执行器准备开始执行PROCEDURE\n";
CommandResults crs = new CommandResults();
// init(cps);
_customProp = cps.getCUSTOMPROP();
_taskid = cps.getTASK_ID();
_type = cps.getTYPE();
_dburl = cps.getDB_URL();
_execlog += "准备连接数据库" + _dburl + ",并执行SQL语句\n";
sct = new SqlCollThread(cps);
try {
_begintime = new Date();
_execresult = sct.execute();
_endtime = new Date();
_execlog += "执行PROCEDURE结束\n";
_execflag = Exec_Flag_Success;
} catch (Exception e) {
_endtime = new Date();
e.printStackTrace();
_execlog += "执行PROCEDURE结束\n";
_execflag = Exec_Flag_Failure;
_failurereasion = e.getMessage();
_execresult = e.getMessage();
} finally {
crs.setTASK_ID(_taskid);
crs.setTYPE(_type);
crs.setBEGIN_TIME(_begintime);
crs.setEND_TIME(_endtime);
crs.setEXEC_RESULT(_execresult);
crs.setEXEC_LOG(_execlog);
crs.setEXEC_FLAG(_execflag);
crs.setFAILURE_REASION(_failurereasion);
crs.setCUSTOMPROP(_customProp);
}
return crs;
}
public CommandResults createProcedure(CommandParameters cps) {
HashMap _customProp = null;
String _taskid = "";
int _type = 0;
String _dburl = "";
Date _begintime = null;
Date _endtime = null;
String _execresult = "";
String _execlog = "";
String _execflag = "";
String _failurereasion = "";
SqlCollThread sct = null;
_execlog = "指令执行器准备开始创建PROCEDURE\n";
CommandResults crs = new CommandResults();
// init(cps);
_customProp = cps.getCUSTOMPROP();
_taskid = cps.getTASK_ID();
_type = cps.getTYPE();
_dburl = cps.getDB_URL();
_execlog += "准备连接数据库" + _dburl + ",并执行SQL语句\n";
sct = new SqlCollThread(cps);
try {
_begintime = new Date();
_execresult = sct.createProc();
_endtime = new Date();
_execlog += "创建PROCEDURE成功结束\n";
_execflag = Exec_Flag_Success;
} catch (Exception e) {
_endtime = new Date();
e.printStackTrace();
_execlog += "创建PROCEDURE失败结束\n";
_execflag = Exec_Flag_Failure;
_failurereasion = e.getMessage();
_execresult = e.getMessage();
} finally {
crs.setTASK_ID(_taskid);
crs.setTYPE(_type);
crs.setBEGIN_TIME(_begintime);
crs.setEND_TIME(_endtime);
crs.setEXEC_RESULT(_execresult);
crs.setEXEC_LOG(_execlog);
crs.setEXEC_FLAG(_execflag);
crs.setFAILURE_REASION(_failurereasion);
crs.setCUSTOMPROP(_customProp);
}
return crs;
}
// public String init(CommandParameters cps) {
// _customProp = cps.getCUSTOMPROP();
// _taskid = cps.getTASK_ID();
// _type = cps.getTYPE();
// _content = cps.getCONTENT();
// _dburl = cps.getDB_URL();
// if (String.valueOf(_type) != null && _type == 1) {
// // SHELL指令方式,此类处理的是SQL/存储过程指令方式
// } else if (String.valueOf(_type) != null && (_type == 2 || _type == 3)) {
// // SQL/存储过程指令方
// _execlog += "准备连接数据库" + _dburl + ",并执行SQL语句\n";
// sct = new SqlCollThread(cps);
// }
// return "SUCCESS";
// }
/**
* @param args
*/
public static void main(String[] args) {
ProcedureExecutor pe = new ProcedureExecutor();
CommandParameters cps = new CommandParameters();
cps.setTASK_ID("TaskID-mooker");
cps.setTYPE(2);
cps.setCONTENT("{call #proc_name#()}");
// cps.setCONTENT("create or replace procedure insert_abcd is begin insert into abcd(id, NOWDATETIME) values (trunc(dbms_random.value(100, 10000)), sysdate); commit; end insert_abcd;");
cps.setDB_DRIVER("oracle.jdbc.driver.OracleDriver");
cps.setDB_URL("jdbc:oracle:thin:@172.21.1.9:1533:bnms");
cps.setDB_USERNAME("bnms1");
cps.setDB_PASSWORD("bnms1");
// CommandResults cr = pe.executeProcedures(cps);
CommandResults cr = pe.createProcedure(cps);
System.out.println(cr.getEXEC_RESULT());
}
}