diff --git a/scouter.agent.java/src/scouter/agent/Configure.java b/scouter.agent.java/src/scouter/agent/Configure.java
index 5d63f3fde..dafcd3c37 100644
--- a/scouter.agent.java/src/scouter/agent/Configure.java
+++ b/scouter.agent.java/src/scouter/agent/Configure.java
@@ -258,7 +258,7 @@ public final static synchronized Configure getInstance() {
public int heap_perm_warning_pct = 90;
public long heap_perm_alert_interval = 30000;
- public boolean enable_spring_request_mapping = true;
+ public boolean hook_spring_request_mapping = false;
public boolean debug_sql_call = false;
public int socket_open_fullstack_port = 0;
@@ -546,7 +546,7 @@ private void apply() {
this.heap_perm_alert_interval = getLong("heap_perm_alert_interval", 30000);
this.heap_perm_warning_pct = getInt("heap_perm_warning_pct", 90);
- this.enable_spring_request_mapping = getBoolean("enable_spring_request_mapping", true);
+ this.hook_spring_request_mapping = getBoolean("hook_spring_request_mapping", false);
this.alert_message_length = getInt("alert_message_length", 3000);
this.alert_send_interval = getInt("alert_send_interval", 3000);
diff --git a/scouter.agent.java/src/scouter/agent/asm/SpringReqMapASM.java b/scouter.agent.java/src/scouter/agent/asm/SpringReqMapASM.java
index c41fc5bde..289d9b064 100644
--- a/scouter.agent.java/src/scouter/agent/asm/SpringReqMapASM.java
+++ b/scouter.agent.java/src/scouter/agent/asm/SpringReqMapASM.java
@@ -42,7 +42,7 @@ public boolean isTarget(String className) {
Configure conf = Configure.getInstance();
public ClassVisitor transform(ClassVisitor cv, String className, ClassDesc classDesc) {
- if (conf.enable_spring_request_mapping == false)
+ if (conf.hook_spring_request_mapping == false)
return cv;
if (classDesc.anotation != null) {
diff --git a/scouter.client/splash.bmp b/scouter.client/splash.bmp
index 873d555b7..922f8ecb0 100644
Binary files a/scouter.client/splash.bmp and b/scouter.client/splash.bmp differ
diff --git a/scouter.deploy/build.xml b/scouter.deploy/build.xml
index cb4b66128..c264f351d 100644
--- a/scouter.deploy/build.xml
+++ b/scouter.deploy/build.xml
@@ -4,7 +4,7 @@
-
+
diff --git a/scouter.server/src/scouter/server/db/TextPermWR.scala b/scouter.server/src/scouter/server/db/TextPermWR.scala
index 5c1c1f549..d8df9fbcf 100644
--- a/scouter.server/src/scouter/server/db/TextPermWR.scala
+++ b/scouter.server/src/scouter/server/db/TextPermWR.scala
@@ -41,18 +41,20 @@ object TextPermWR {
val queue = new RequestQueue[Data](DBCtr.LARGE_MAX_QUE_SIZE);
- val common = new IntSet();
- common.add(HashUtil.hash(TextTypes.METHOD));
- common.add(HashUtil.hash(TextTypes.GROUP));
- common.add(HashUtil.hash(TextTypes.CITY));
- //move to perm db
- common.add(HashUtil.hash(TextTypes.LOGIN));
- common.add(HashUtil.hash(TextTypes.DESC));
- common.add(HashUtil.hash(TextTypes.GROUP));
- common.add(HashUtil.hash(TextTypes.USER_AGENT));
-
+// val common = new IntSet();
+// common.add(HashUtil.hash(TextTypes.METHOD));
+// common.add(HashUtil.hash(TextTypes.GROUP));
+// common.add(HashUtil.hash(TextTypes.CITY));
+// //move to perm db
+// common.add(HashUtil.hash(TextTypes.LOGIN));
+// common.add(HashUtil.hash(TextTypes.DESC));
+// common.add(HashUtil.hash(TextTypes.GROUP));
+// common.add(HashUtil.hash(TextTypes.USER_AGENT));
+
+ //에러만 날짜별로 저장한다.-20151110
+ val errorHash = HashUtil.hash(TextTypes.ERROR);
def isA(divs: Int): Boolean = {
- return common.contains(divs);
+ return divs != errorHash;
}
ThreadScala.start("scouter.server.db.TextPermWR") {
diff --git a/scouter.server/src/scouter/server/plugin/PlugInLoader.java b/scouter.server/src/scouter/server/plugin/PlugInLoader.java
index 95c8fb251..b36b2aa6a 100644
--- a/scouter.server/src/scouter/server/plugin/PlugInLoader.java
+++ b/scouter.server/src/scouter/server/plugin/PlugInLoader.java
@@ -167,7 +167,8 @@ private IPlugIn create(File file, String className, Class superClass, Class para
method = CtNewMethod.make("public void " + methodName + "(" + parameter + " p){}", impl);
impl.addMethod(method);
}
- method.setBody("{" + parameter + " $p=$1;" + body + "}");
+
+ method.setBody("{" + parameter + " $pack=$1;" + body + "}");
c = impl.toClass(new URLClassLoader(new URL[0], this.getClass().getClassLoader()), null);
IPlugIn plugin = (IPlugIn) c.newInstance();
diff --git a/scouter.server/src/scouter/server/plugin/alert/AlertRuleLoader.java b/scouter.server/src/scouter/server/plugin/alert/AlertRuleLoader.java
index 3ca478a21..3af15c48a 100644
--- a/scouter.server/src/scouter/server/plugin/alert/AlertRuleLoader.java
+++ b/scouter.server/src/scouter/server/plugin/alert/AlertRuleLoader.java
@@ -49,7 +49,7 @@ public synchronized static AlertRuleLoader getInstance() {
if (instance == null) {
instance = new AlertRuleLoader();
instance.setDaemon(true);
- instance.setName("FxAlertRuleLoader");
+ instance.setName("AlertRuleLoader");
instance.start();
}
return instance;
@@ -125,6 +125,7 @@ private void checkModified(File root) {
if (conf.lastModified != ruleConf.lastModified()) {
conf = createConf(name, ruleConf);
alertConfTable.put(name, conf);
+
}
}
}
@@ -144,20 +145,22 @@ private File getConfFile(String f) {
return null;
}
- //각 룰에 대한 기본 설정을 로딩한다.
+ // 각 룰에 대한 기본 설정을 로딩한다.
// 각 설정은 스크립트에서 변경할 수 있다.
private AlertConf createConf(String name, File confFile) {
AlertConf conf = new AlertConf();
- if (confFile != null) {
+ if (confFile != null && confFile.canRead()) {
conf.lastModified = confFile.lastModified();
byte[] body = FileUtil.readAll(confFile);
- Properties p = new Properties();
- try {
- p.load(new ByteArrayInputStream(body));
- } catch (IOException e) {
+ if (body != null) {
+ Properties p = new Properties();
+ try {
+ p.load(new ByteArrayInputStream(body));
+ } catch (Exception e) {
+ }
+ conf.history_size = getInt(p, "history_size", 0);
+ conf.silent_time = getInt(p, "silent_time", 0);
}
- conf.history_size = getInt(p, "history_size", 0);
- conf.silent_time = getInt(p, "silent_time", 0);
}
return conf;
}
@@ -182,19 +185,18 @@ private AlertRule createRule(String name, File ruleFile) {
Class c = null;
CtClass cc = cp.get(AlertRule.class.getName());
CtClass impl = null;
+ CtMethod method = null;
try {
impl = cp.get(name);
impl.defrost();
- CtMethod method = impl.getMethod("process", "(" + nativeName(RealCounter.class) + ")V");
- method.setBody("{" + RealCounter.class.getName() + " $c=$1;" + body + "}");
- c = impl.toClass(new URLClassLoader(new URL[0], this.getClass().getClassLoader()), null);
+ method = impl.getMethod("process", "(" + nativeName(RealCounter.class) + ")V");
} catch (javassist.NotFoundException e) {
impl = cp.makeClass(name, cc);
- CtMethod method = CtNewMethod.make("public void process(" + RealCounter.class.getName() + " c){}", impl);
+ method = CtNewMethod.make("public void process(" + RealCounter.class.getName() + " c){}", impl);
impl.addMethod(method);
- method.setBody("{" + RealCounter.class.getName() + " $c=$1;" + body + "}");
- c = impl.toClass(new URLClassLoader(new URL[0], this.getClass().getClassLoader()), null);
}
+ method.setBody("{" + RealCounter.class.getName() + " $counter=$1;" + body + "}");
+ c = impl.toClass(new URLClassLoader(new URL[0], this.getClass().getClassLoader()), null);
AlertRule rule = (AlertRule) c.newInstance();
rule.lastModified = ruleFile.lastModified();