diff --git a/pom.xml b/pom.xml index b2b651d83..d82ec636d 100644 --- a/pom.xml +++ b/pom.xml @@ -20,7 +20,7 @@ 2.5.15 1.13.0 2.1.0 - 1.2.23 + 1.2.24 1.21 2.3.3 3.0.0 diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml index 29d594b95..83925f1c0 100644 --- a/ruoyi-admin/pom.xml +++ b/ruoyi-admin/pom.xml @@ -10,6 +10,7 @@ 4.0.0 jar ruoyi-admin-neuhisutools + 1.0.0 web服务入口 @@ -173,7 +174,7 @@ --> - ${project.artifactId} + ${project.artifactId}-${project.version} \ No newline at end of file diff --git a/ruoyi-admin/src/main/java/com/neuhis/his/domain/dto/DeadLockRac.java b/ruoyi-admin/src/main/java/com/neuhis/his/domain/dto/DeadLockRac.java index 1010745d9..227a7af51 100644 --- a/ruoyi-admin/src/main/java/com/neuhis/his/domain/dto/DeadLockRac.java +++ b/ruoyi-admin/src/main/java/com/neuhis/his/domain/dto/DeadLockRac.java @@ -50,9 +50,10 @@ public class DeadLockRac { public DeadLockRac() { } - public DeadLockRac(Integer 本进程号SID, String 阻塞SID) { + public DeadLockRac(Integer 本进程号SID, String 阻塞SID, String sessionStr) { this.本进程号SID = 本进程号SID; this.阻塞SID = 阻塞SID; + this.sessionStr = sessionStr; } } diff --git a/ruoyi-admin/src/main/java/com/neuhis/his/service/IOracleSysService.java b/ruoyi-admin/src/main/java/com/neuhis/his/service/IOracleSysService.java index 63b5e4c9b..b2e71d940 100644 --- a/ruoyi-admin/src/main/java/com/neuhis/his/service/IOracleSysService.java +++ b/ruoyi-admin/src/main/java/com/neuhis/his/service/IOracleSysService.java @@ -19,6 +19,8 @@ public interface IOracleSysService { * slow版本 */ List getDeadLockSessionV3Slow(); - + /** + * 杀进程 + */ void killSession(String sessionStr); } diff --git a/ruoyi-admin/src/main/java/com/neuhis/his/service/impl/OracleSysServiceImpl.java b/ruoyi-admin/src/main/java/com/neuhis/his/service/impl/OracleSysServiceImpl.java index 58ca2a12e..fd2b3626d 100644 --- a/ruoyi-admin/src/main/java/com/neuhis/his/service/impl/OracleSysServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/neuhis/his/service/impl/OracleSysServiceImpl.java @@ -10,6 +10,8 @@ import com.neuhis.his.service.IOracleSysService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.compress.utils.Lists; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -21,9 +23,10 @@ import java.util.Map; @Service @DataSource(value = DataSourceType.SLAVE) public class OracleSysServiceImpl implements IOracleSysService { - @Resource private OracleSysMapper oracleSysMapper; + @Autowired + private JdbcTemplate jdbcTemplate; @Override public List getDeadLockSessionV1() { @@ -33,6 +36,10 @@ public class OracleSysServiceImpl implements IOracleSysService { @Override public List getDeadLockSessionV2Rac() { List deadLockRacs = oracleSysMapper.getDeadLockSessionV2Rac(); + deadLockRacs.add(new DeadLockRac(1, "根锁为此会话杀我KILL ME or igore", "001")); + deadLockRacs.add(new DeadLockRac(5728, "<根锁会话>4903 【SID=4903】的SQL阻塞了本语句[5728]杀掉他", "5728")); + deadLockRacs.add(new DeadLockRac(2222, "<根锁会话>1111 【SID=1111】的SQL阻塞了本语句[2222]杀掉他", "5728")); + deadLockRacs.add(new DeadLockRac(3333, "<根锁会话>1 【SID=1】的SQL阻塞了本语句[3333]杀掉他", "5728")); return this.findV2DeadLockRacSessionId(deadLockRacs); } @@ -49,13 +56,10 @@ public class OracleSysServiceImpl implements IOracleSysService { oracleSysMapper.killSession(sessionStr); } }catch (Exception e){ - System.out.println("数据库啥死锁异常:"+e.getMessage()); + System.out.println("数据库杀死锁异常:"+e.getMessage()); } } - /** - * 从进程列表找到,死锁的进程 - */ private List findV2DeadLockRacSessionId(List deadLockRacs) { //找到有问题的进程 DeadLockRac problematicSession = DeadlockResolver.findProblematicSession(deadLockRacs); diff --git a/ruoyi-admin/src/main/java/com/neuhis/quartz/task/HisTask.java b/ruoyi-admin/src/main/java/com/neuhis/quartz/task/HisTask.java index 4ec79991b..20ab18b2c 100644 --- a/ruoyi-admin/src/main/java/com/neuhis/quartz/task/HisTask.java +++ b/ruoyi-admin/src/main/java/com/neuhis/quartz/task/HisTask.java @@ -29,6 +29,8 @@ public class HisTask { OracleSlaveDataAutoPushService oracleSlaveDataAutoPushService; @Autowired private IOracleSysService oracleSysService; + @Autowired + private RuoYiConfig ruoYiConfig; public void pushData() { @@ -38,7 +40,7 @@ public class HisTask { public void pushData(String apicode) { - if (RuoYiConfig.isQuzrtzTask() && jobService.isEnable(JobSwitchConstant.comPatientinfo)) { + if (ruoYiConfig.isQuzrtzTask() && jobService.isEnable(JobSwitchConstant.comPatientinfo)) { log.info("数据推送开始" + DateUtil.format(DateUtil.date(), "yyyy-MM-dd HH:mm:ss")); oracleSlaveDataAutoPushService.pushData(apicode); log.info("数据推送结束" + DateUtil.format(DateUtil.date(), "yyyy-MM-dd HH:mm:ss")); @@ -47,7 +49,7 @@ public class HisTask { public void pushDataByCompareId(String apicode) { - if (RuoYiConfig.isQuzrtzTask() && jobService.isEnable(JobSwitchConstant.comPatientinfo)) { + if (ruoYiConfig.isQuzrtzTask() && jobService.isEnable(JobSwitchConstant.comPatientinfo)) { log.info("数据推送开始" + DateUtil.format(DateUtil.date(), "yyyy-MM-dd HH:mm:ss")); oracleSlaveDataAutoPushService.pushDataByCompareId(apicode); log.info("数据推送结束" + DateUtil.format(DateUtil.date(), "yyyy-MM-dd HH:mm:ss")); @@ -58,10 +60,10 @@ public class HisTask { * 杀oracle死锁 */ public void killDeadLockSession() { - if (RuoYiConfig.isQuzrtzTask()) { + if (ruoYiConfig.isQuzrtzTask()) { log.info("杀oracle死锁开始" + DateUtil.format(DateUtil.date(), "yyyy-MM-dd HH:mm:ss")); ///List deadLocks = oracleSysService.getDeadLockSessionV1(); - ///deadLocks.forEach(deadLock -> HisTask.this.oracleSysService.killSession(deadLock.getSessionStr())); + ///deadLocks.forEach(deadLock -> HisTask.this.oracleSysService.killSessionJdbc(deadLock.getSessionStr())); List sessionV2Rac = oracleSysService.getDeadLockSessionV2Rac(); sessionV2Rac.forEach(deadLock -> HisTask.this.oracleSysService.killSession(deadLock.getSessionStr())); @@ -74,7 +76,7 @@ public class HisTask { * */ public void deleteLogData(String tableName,String colName,String days) { - if (RuoYiConfig.isQuzrtzTask()) { + if (ruoYiConfig.isQuzrtzTask()) { log.info("日志数据删除开始" + DateUtil.format(DateUtil.date(), "yyyy-MM-dd HH:mm:ss")); int num = oracleSlaveDataAutoPushService.LogsTimerDel(tableName,colName,days); log.info("日志数据删除结束,共删除 "+num+" 条日志。" + DateUtil.format(DateUtil.date(), "yyyy-MM-dd HH:mm:ss")); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java index 10da47fb4..7f40bc357 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java @@ -42,6 +42,8 @@ public class SysIndexController extends BaseController @Autowired private SysPasswordService passwordService; + @Autowired + private RuoYiConfig ruoYiConfig; // 系统首页 @GetMapping("/index") @@ -60,8 +62,8 @@ public class SysIndexController extends BaseController mmap.put("footer", footer); mmap.put("tagsView", tagsView); mmap.put("mainClass", contentMainClass(footer, tagsView)); - mmap.put("copyrightYear", RuoYiConfig.getCopyrightYear()); - mmap.put("demoEnabled", RuoYiConfig.isDemoEnabled()); + mmap.put("copyrightYear", ruoYiConfig.getCopyrightYear()); + mmap.put("demoEnabled", ruoYiConfig.isDemoEnabled()); mmap.put("isDefaultModifyPwd", initPasswordIsModify(user.getPwdUpdateDate())); mmap.put("isPasswordExpired", passwordIsExpiration(user.getPwdUpdateDate())); mmap.put("isMobile", ServletUtils.checkAgentIsMobile(ServletUtils.getRequest().getHeader("User-Agent"))); @@ -130,7 +132,7 @@ public class SysIndexController extends BaseController @GetMapping("/system/main") public String main(ModelMap mmap) { - mmap.put("version", RuoYiConfig.getVersion()); + mmap.put("version", ruoYiConfig.getVersion()); return "main"; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java index 0cfbfbadb..00807ff2e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java @@ -1,5 +1,6 @@ package com.ruoyi.web.core.config; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -21,6 +22,8 @@ import springfox.documentation.spring.web.plugins.Docket; @Configuration public class SwaggerConfig { + @Autowired + private RuoYiConfig ruoYiConfig; /** 是否开启swagger */ @Value("${swagger.enabled}") private boolean enabled; @@ -59,9 +62,9 @@ public class SwaggerConfig // 描述 .description("描述:用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块...") // 作者信息 - .contact(new Contact(RuoYiConfig.getName(), null, null)) + .contact(new Contact(ruoYiConfig.getName(), null, null)) // 版本 - .version("版本号:" + RuoYiConfig.getVersion()) + .version("版本号:" + ruoYiConfig.getVersion()) .build(); } } diff --git a/ruoyi-admin/src/main/resources/application-xyzxhis.yml b/ruoyi-admin/src/main/resources/application-xyzxhis.yml index 705a03930..e232b586b 100644 --- a/ruoyi-admin/src/main/resources/application-xyzxhis.yml +++ b/ruoyi-admin/src/main/resources/application-xyzxhis.yml @@ -104,7 +104,7 @@ spring: # 慢SQL记录 log-slow-sql: true slow-sql-millis: 1000 - merge-sql: true + merge-sql: false #关闭:SQL merge,否则:kill语句报错 wall: config: multi-statement-allow: true @@ -139,8 +139,6 @@ spring: jackson: time-zone: GMT+8 date-format: yyyy-MM-dd HH:mm:ss -# profiles: -# active: dev # 文件上传 servlet: multipart: diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/config/RuoYiConfig.java b/ruoyi-common/src/main/java/com/ruoyi/common/config/RuoYiConfig.java index bff315137..4d0030242 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/config/RuoYiConfig.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/config/RuoYiConfig.java @@ -13,13 +13,13 @@ import org.springframework.stereotype.Component; public class RuoYiConfig { /** 项目名称 */ - private static String name; + private String name; /** 版本 */ - private static String version; + private String version; /** 版权年份 */ - private static String copyrightYear; + private String copyrightYear; /** 实例演示开关 */ private static boolean demoEnabled; @@ -29,36 +29,36 @@ public class RuoYiConfig /** 获取地址开关 */ private static boolean addressEnabled; - private static boolean quzrtzTask; + private boolean quzrtzTask; - public static String getName() + public String getName() { return name; } public void setName(String name) { - RuoYiConfig.name = name; + this.name = name; } - public static String getVersion() + public String getVersion() { return version; } public void setVersion(String version) { - RuoYiConfig.version = version; + this.version = version; } - public static String getCopyrightYear() + public String getCopyrightYear() { return copyrightYear; } public void setCopyrightYear(String copyrightYear) { - RuoYiConfig.copyrightYear = copyrightYear; + this.copyrightYear = copyrightYear; } public static boolean isDemoEnabled() @@ -86,7 +86,7 @@ public class RuoYiConfig return addressEnabled; } - public void setAddressEnabled(boolean addressEnabled) + public static void setAddressEnabled(boolean addressEnabled) { RuoYiConfig.addressEnabled = addressEnabled; } @@ -123,11 +123,11 @@ public class RuoYiConfig return getProfile() + "/upload"; } - public static boolean isQuzrtzTask() { + public boolean isQuzrtzTask() { return quzrtzTask; } - public static void setQuzrtzTask(boolean quzrtzTask) { - RuoYiConfig.quzrtzTask = quzrtzTask; + public void setQuzrtzTask(boolean quzrtzTask) { + this.quzrtzTask = quzrtzTask; } } diff --git a/start_NeuHis_dev.sh b/start_NeuHis_dev.sh deleted file mode 100644 index 6b69c5433..000000000 --- a/start_NeuHis_dev.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash -APP_NAME=ruoyi-admin-neuhisutools.jar -PID=$(ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}') -JVM="-server -Xms1g -Xmx4g -Xmn1g -verbose:gc-XX:+UseConcMarkSweepGC -XX:MaxTenuringThreshold=5 -XX:+ExplicitGCInvokesConcurrent -XX:GCTimeRatio=19 -XX:CMSInitiatingOccupancyFraction=70 -XX:CMSFullGCsBeforeCompaction=0 -Xnoclassgc -XX:SoftRefLRUPolicyMSPerMB=0" - -if [ "$PID" != "" ]; then - echo '================>停止服务..........' - kill -9 $PID - sleep 3s -fi - -echo '================>nohup.out日志清空成功.........' -echo '' > nohup.out -echo '================>开始重启服务.........' - -nohup java $JVM -jar $APP_NAME 2>&1 & -tail -f nohup.out - - - - diff --git a/start_admin_dev.sh b/start_admin_dev.sh new file mode 100644 index 000000000..1ff8cd6d4 --- /dev/null +++ b/start_admin_dev.sh @@ -0,0 +1,25 @@ +#!/bin/bash +APP_NAME=ruoyi-admin-neuhisutools-1.0.0.jar +PID=$(ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}') + + +#JVM="-server -Xms2g -Xmx8g -Xmn4g -verbose:gc-XX:+UseConcMarkSweepGC -XX:MaxTenuringThreshold=5 -XX:+ExplicitGCInvokesConcurrent -XX:GCTimeRatio=19 -XX:CMSInitiatingOccupancyFraction=70 -XX:CMSFullGCsBeforeCompaction=0 -Xnoclassgc -XX:SoftRefLRUPolicyMSPerMB=0" +JVM="-server -Xms2g -Xmx8g -Xmn4g -XX:MetaspaceSize=512m -XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:+ParallelRefProcEnabled -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=java_heapdump.hprof -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:gc_trace.log -verbose:gc -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M" + + +if [ "$PID" != "" ]; then + echo '================>停止服务..........' + kill -9 $PID + sleep 3s +fi + +echo '================>nohup.out日志清空成功.........' +echo '' > nohup.out +echo '================>开始重启服务.........' + +nohup java $JVM -jar $APP_NAME --spring.config.location=file:/data/neuhisutools/application.yml 2>&1 & +tail -f nohup.out + + + + diff --git a/stop_NeuHis_dev.sh b/stop_admin_dev.sh similarity index 84% rename from stop_NeuHis_dev.sh rename to stop_admin_dev.sh index 8d68fd6cc..c19cf7f13 100644 --- a/stop_NeuHis_dev.sh +++ b/stop_admin_dev.sh @@ -1,6 +1,6 @@ #!/bin/bash echo '================>停止服务开始..........' -APP_NAME=ruoyi-admin-neuhisutools.jar +APP_NAME=ruoyi-admin-neuhisutools-1.0.0.jar PID=$(ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}') if [ "$PID" != "" ]; then echo '================>停止服务结束..........'