From 013c7212b8e667c7616f0b04bcd99213b08421bd Mon Sep 17 00:00:00 2001 From: zhourui Date: Thu, 21 May 2020 10:36:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B6=88=E6=81=AF=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- o2server/start_windows_debug.bat | 2 +- .../core/container/FactorDistributionPolicy.java | 8 ++++---- .../src/main/java/com/x/server/console/Main.java | 1 - .../java/com/x/server/console/action/DumpData.java | 11 +++++++---- .../com/x/server/console/action/RestoreData.java | 3 +-- .../x/server/console/server/JettySeverTools.java | 14 ++++++-------- .../communicate/jaxrs/connector/ActionCreate.java | 2 -- .../communicate/jaxrs/connector/ActionCreate.java | 2 -- .../java/com/x/message/core/entity/Instant.java | 2 +- .../java/com/x/message/core/entity/Message.java | 2 +- .../element/ApplicationDictItemFactory.java | 8 +++++++- .../assemble/surface/jaxrs/work/ActionCreate.java | 11 +---------- .../surface/jaxrs/work/ActionCreateForce.java | 2 +- .../work/ActionCreateWithApplicationProcess.java | 2 +- 14 files changed, 31 insertions(+), 39 deletions(-) diff --git a/o2server/start_windows_debug.bat b/o2server/start_windows_debug.bat index 337eade430..918ed89c81 100644 --- a/o2server/start_windows_debug.bat +++ b/o2server/start_windows_debug.bat @@ -144,5 +144,5 @@ if exist "%~dp0local\update" ( ) ) @echo on -"%~dp0jvm\windows\bin\java" -server Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.authenticate=false -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=20000 -Xms2g -Xmx8g -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -jar "%~dp0console.jar" +"%~dp0jvm\windows\bin\java" -server -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.authenticate=false -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=20000 -Xms2g -Xmx8g -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -jar "%~dp0console.jar" pause \ No newline at end of file diff --git a/o2server/x_base_core_project/src/main/java/com/x/base/core/container/FactorDistributionPolicy.java b/o2server/x_base_core_project/src/main/java/com/x/base/core/container/FactorDistributionPolicy.java index 95582e011e..7e82a60ea6 100644 --- a/o2server/x_base_core_project/src/main/java/com/x/base/core/container/FactorDistributionPolicy.java +++ b/o2server/x_base_core_project/src/main/java/com/x/base/core/container/FactorDistributionPolicy.java @@ -3,22 +3,22 @@ package com.x.base.core.container; import java.util.List; import java.util.Random; +import com.x.base.core.entity.JpaObject; + import org.apache.commons.beanutils.PropertyUtils; import org.apache.openjpa.slice.DistributionPolicy; -import com.x.base.core.entity.SliceJpaObject; - public class FactorDistributionPolicy implements DistributionPolicy { private Random random = new Random(); public String distribute(Object pc, List slices, Object context) { try { - Object o = PropertyUtils.getProperty(pc, SliceJpaObject.distributeFactor_FIELDNAME); + Object o = PropertyUtils.getProperty(pc,JpaObject.distributeFactor_FIELDNAME); Integer factor = null; if (null == o) { factor = random.nextInt(1000); - PropertyUtils.setProperty(pc, SliceJpaObject.distributeFactor_FIELDNAME, factor); + PropertyUtils.setProperty(pc, JpaObject.distributeFactor_FIELDNAME, factor); } else { factor = (Integer) o; } diff --git a/o2server/x_console/src/main/java/com/x/server/console/Main.java b/o2server/x_console/src/main/java/com/x/server/console/Main.java index b385f0eef2..af4697229f 100644 --- a/o2server/x_console/src/main/java/com/x/server/console/Main.java +++ b/o2server/x_console/src/main/java/com/x/server/console/Main.java @@ -64,7 +64,6 @@ public class Main { slf4jOtherImplOn = true; } org.slf4j.impl.StaticLoggerBinder.getSingleton(); - System.out.println("logger:" + org.slf4j.LoggerFactory.getLogger(Main.class)); SystemOutErrorSideCopyBuilder.start(); ResourceFactory.bind(); CommandFactory.printStartHelp(); diff --git a/o2server/x_console/src/main/java/com/x/server/console/action/DumpData.java b/o2server/x_console/src/main/java/com/x/server/console/action/DumpData.java index 637acfcd1a..03a588e390 100644 --- a/o2server/x_console/src/main/java/com/x/server/console/action/DumpData.java +++ b/o2server/x_console/src/main/java/com/x/server/console/action/DumpData.java @@ -77,9 +77,9 @@ public class DumpData { persistence.getName(), PersistenceXmlHelper.properties(cls.getName(), Config.slice().getEnable())); EntityManager em = emf.createEntityManager(); try { - logger.print("dump data({}/{}): {}, count: {}.", (i + 1), classNames.size(), cls.getName(), - this.estimateCount(em, cls)); - this.dump(cls, em); + long estimateCount = this.estimateCount(em, cls); + logger.print("dump data({}/{}): {}, count: {}.", (i + 1), classNames.size(), cls.getName(), estimateCount); + this.dump(cls, em, estimateCount); } finally { em.close(); emf.close(); @@ -104,7 +104,7 @@ public class DumpData { return this.catalog.values().stream().mapToInt(Integer::intValue).sum(); } - private void dump(Class cls, EntityManager em) + private void dump(Class cls, EntityManager em, long total) throws IOException, IllegalAccessException, InvocationTargetException, NoSuchMethodException { /** 创建最终存储文件的目录 */ File directory = new File(dir, cls.getName()); @@ -114,6 +114,8 @@ public class DumpData { String id = ""; List list = null; int count = 0; + int loop = 1; + int btach = (int) ((total + 0.0) / containerEntity.dumpSize()); do { list = this.list(em, cls, id, containerEntity.dumpSize()); if (ListTools.isNotEmpty(list)) { @@ -121,6 +123,7 @@ public class DumpData { id = BeanUtils.getProperty(list.get(list.size() - 1), JpaObject.id_FIELDNAME); File file = new File(directory, count + ".json"); FileUtils.write(file, pureGsonDateFormated.toJson(list), DefaultCharset.charset); + logger.print("dumping {}/{} part of data:{}.", loop, btach, cls.getName()); } em.clear(); } while (ListTools.isNotEmpty(list)); diff --git a/o2server/x_console/src/main/java/com/x/server/console/action/RestoreData.java b/o2server/x_console/src/main/java/com/x/server/console/action/RestoreData.java index f09a38f545..a1ee5539c2 100644 --- a/o2server/x_console/src/main/java/com/x/server/console/action/RestoreData.java +++ b/o2server/x_console/src/main/java/com/x/server/console/action/RestoreData.java @@ -133,7 +133,7 @@ public class RestoreData { File file = null; for (int i = 0; i < files.size(); i++) { file = files.get(i); - System.out.println("restoring " + (i + 1) + "/" + files.size() + " part of data: " + cls.getName() + "."); + logger.print("restoring {}/{} part of data:{}.", (i + 1), files.size(), cls.getName()); JsonArray raws = this.convert(file); em.getTransaction().begin(); for (JsonElement o : raws) { @@ -143,7 +143,6 @@ public class RestoreData { } em.getTransaction().commit(); em.clear(); - Runtime.getRuntime().gc(); } System.out.println("restore data: " + cls.getName() + " completed, count: " + count + "."); return count; diff --git a/o2server/x_console/src/main/java/com/x/server/console/server/JettySeverTools.java b/o2server/x_console/src/main/java/com/x/server/console/server/JettySeverTools.java index 68690b1bce..f5b962cacd 100644 --- a/o2server/x_console/src/main/java/com/x/server/console/server/JettySeverTools.java +++ b/o2server/x_console/src/main/java/com/x/server/console/server/JettySeverTools.java @@ -37,14 +37,13 @@ public abstract class JettySeverTools { config.setSendServerVersion(true); config.setSendDateHeader(false); - ServerConnector sslConnector = new ServerConnector(server, + ServerConnector https = new ServerConnector(server, new SslConnectionFactory(sslContextFactory, HttpVersion.HTTP_1_1.asString()), new HttpConnectionFactory(config)); - /* 添加到32,压力测试 */ - sslConnector.setAcceptQueueSize(32); - sslConnector.setIdleTimeout(30000); - sslConnector.setPort(port); - server.addConnector(sslConnector); + https.setAcceptQueueSize(-1); + https.setIdleTimeout(30000); + https.setPort(port); + server.addConnector(https); } protected static void addHttpConnector(Server server, Integer port) throws Exception { @@ -55,8 +54,7 @@ public abstract class JettySeverTools { config.setSendServerVersion(true); config.setSendDateHeader(false); ServerConnector http = new ServerConnector(server, new HttpConnectionFactory(config)); - /* 添加到32,压力测试 */ - http.setAcceptQueueSize(32); + http.setAcceptQueueSize(-1); http.setIdleTimeout(30000); http.setPort(port); server.addConnector(http); diff --git a/o2server/x_message_assemble_communicate/src/main/java/com/x/message/assemble/communicate/jaxrs/connector/ActionCreate.java b/o2server/x_message_assemble_communicate/src/main/java/com/x/message/assemble/communicate/jaxrs/connector/ActionCreate.java index 679a3ddfc7..038984f125 100644 --- a/o2server/x_message_assemble_communicate/src/main/java/com/x/message/assemble/communicate/jaxrs/connector/ActionCreate.java +++ b/o2server/x_message_assemble_communicate/src/main/java/com/x/message/assemble/communicate/jaxrs/connector/ActionCreate.java @@ -50,7 +50,6 @@ class ActionCreate extends BaseAction { } } Instant instant = this.instant(effectivePerson, business, wi, new ArrayList<>(consumersV2.keySet())); - logger.info("生成消息。,,,consumersV2 "+ consumersV2.size()); if (!consumersV2.isEmpty()) { for (String consumer : consumersV2.keySet()) { Wi cpwi = wi; @@ -88,7 +87,6 @@ class ActionCreate extends BaseAction { logger.warn("执行消息发送脚本[{}]方法异常:{}", func, e.getMessage()); } Message message = null; - logger.info("这里是生成消息对象,consumer:"+consumer); switch (Objects.toString(consumer, "")) { case MessageConnector.CONSUME_WS: message = this.wsMessage(effectivePerson, business, cpwi, instant); diff --git a/o2server/x_message_assemble_communicate/src/main/webapp/describe/sources/com/x/message/assemble/communicate/jaxrs/connector/ActionCreate.java b/o2server/x_message_assemble_communicate/src/main/webapp/describe/sources/com/x/message/assemble/communicate/jaxrs/connector/ActionCreate.java index 679a3ddfc7..038984f125 100644 --- a/o2server/x_message_assemble_communicate/src/main/webapp/describe/sources/com/x/message/assemble/communicate/jaxrs/connector/ActionCreate.java +++ b/o2server/x_message_assemble_communicate/src/main/webapp/describe/sources/com/x/message/assemble/communicate/jaxrs/connector/ActionCreate.java @@ -50,7 +50,6 @@ class ActionCreate extends BaseAction { } } Instant instant = this.instant(effectivePerson, business, wi, new ArrayList<>(consumersV2.keySet())); - logger.info("生成消息。,,,consumersV2 "+ consumersV2.size()); if (!consumersV2.isEmpty()) { for (String consumer : consumersV2.keySet()) { Wi cpwi = wi; @@ -88,7 +87,6 @@ class ActionCreate extends BaseAction { logger.warn("执行消息发送脚本[{}]方法异常:{}", func, e.getMessage()); } Message message = null; - logger.info("这里是生成消息对象,consumer:"+consumer); switch (Objects.toString(consumer, "")) { case MessageConnector.CONSUME_WS: message = this.wsMessage(effectivePerson, business, cpwi, instant); diff --git a/o2server/x_message_core_entity/src/main/java/com/x/message/core/entity/Instant.java b/o2server/x_message_core_entity/src/main/java/com/x/message/core/entity/Instant.java index afdba95b0a..07fb15ec2f 100644 --- a/o2server/x_message_core_entity/src/main/java/com/x/message/core/entity/Instant.java +++ b/o2server/x_message_core_entity/src/main/java/com/x/message/core/entity/Instant.java @@ -27,7 +27,7 @@ import com.x.base.core.entity.annotation.ContainerEntity; import com.x.base.core.project.annotation.FieldDescribe; @Entity -@ContainerEntity(dumpSize = 1000, type = ContainerEntity.Type.content, reference = ContainerEntity.Reference.strong) +@ContainerEntity(dumpSize = 1000, type = ContainerEntity.Type.log, reference = ContainerEntity.Reference.soft) @Table(name = PersistenceProperties.Instant.table, uniqueConstraints = { @UniqueConstraint(name = PersistenceProperties.Instant.table + JpaObject.IndexNameMiddle + JpaObject.DefaultUniqueConstraintSuffix, columnNames = { JpaObject.IDCOLUMN, diff --git a/o2server/x_message_core_entity/src/main/java/com/x/message/core/entity/Message.java b/o2server/x_message_core_entity/src/main/java/com/x/message/core/entity/Message.java index 8690a7da33..5e81dc7995 100644 --- a/o2server/x_message_core_entity/src/main/java/com/x/message/core/entity/Message.java +++ b/o2server/x_message_core_entity/src/main/java/com/x/message/core/entity/Message.java @@ -20,7 +20,7 @@ import com.x.base.core.entity.annotation.ContainerEntity; import com.x.base.core.project.annotation.FieldDescribe; @Entity -@ContainerEntity(dumpSize = 1000, type = ContainerEntity.Type.content, reference = ContainerEntity.Reference.strong) +@ContainerEntity(dumpSize = 1000, type = ContainerEntity.Type.log, reference = ContainerEntity.Reference.soft) @Table(name = PersistenceProperties.Message.table, uniqueConstraints = { @UniqueConstraint(name = PersistenceProperties.Message.table + JpaObject.IndexNameMiddle + JpaObject.DefaultUniqueConstraintSuffix, columnNames = { JpaObject.IDCOLUMN, diff --git a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/factory/element/ApplicationDictItemFactory.java b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/factory/element/ApplicationDictItemFactory.java index cc4b0538c9..c0a498f348 100644 --- a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/factory/element/ApplicationDictItemFactory.java +++ b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/factory/element/ApplicationDictItemFactory.java @@ -14,6 +14,8 @@ import com.x.processplatform.assemble.surface.Business; import com.x.processplatform.core.entity.element.ApplicationDictItem; import com.x.processplatform.core.entity.element.ApplicationDictItem_; +import org.apache.commons.lang3.StringUtils; + public class ApplicationDictItemFactory extends AbstractFactory { public ApplicationDictItemFactory(Business abstractBusiness) throws Exception { @@ -52,7 +54,11 @@ public class ApplicationDictItemFactory extends AbstractFactory { CriteriaQuery cq = cb.createQuery(ApplicationDictItem.class); Root root = cq.from(ApplicationDictItem.class); Predicate p = cb.equal(root.get(ApplicationDictItem_.bundle), applicationDict); - p = cb.and(p, cb.equal(root.get("path0"), path0)); + if (StringUtils.isEmpty(path0)) { + p = cb.and(p, cb.or(cb.equal(root.get(ApplicationDictItem_.path0), path0), cb.isNull(root.get(ApplicationDictItem_.path0)))); + } else { + p = cb.and(p, cb.equal(root.get(ApplicationDictItem_.path0), path0)); + } p = cb.and(p, cb.equal(root.get("path1"), path1)); p = cb.and(p, cb.equal(root.get("path2"), path2)); p = cb.and(p, cb.equal(root.get("path3"), path3)); diff --git a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/work/ActionCreate.java b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/work/ActionCreate.java index d3167299d4..da23e76d21 100644 --- a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/work/ActionCreate.java +++ b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/work/ActionCreate.java @@ -111,7 +111,7 @@ class ActionCreate extends BaseAction { } /* 驱动工作,使用非队列方式 */ ThisApplication.context().applications().putQuery(x_processplatform_service_processing.class, - Applications.joinQueryUri("work", workId, "prcocssing", "nonblocking"), null, processFlag); + Applications.joinQueryUri("work", workId, "processing", "nonblocking"), null); } else { /* 如果是草稿,准备后面的直接打开 */ workId = lastestWorkId; @@ -196,15 +196,6 @@ class ActionCreate extends BaseAction { private static final long serialVersionUID = 1307569946729101786L; - // private static List Includes = ListTools.toList("createTime", - // "updateTime", "completed", "fromActivity", - // "fromActivityType", "fromActivityName", "fromActivityToken", - // "fromTime", "arrivedActivity", - // "arrivedActivityType", "arrivedActivityName", "arrivedActivityToken", - // "arrivedTime", "route", - // "routeName", "work", "workCompleted", "connected", "splitting", - // "splitTokenList", "processingType"); - static WrapCopier copier = WrapCopierFactory.wo(WorkLog.class, Wo.class, null, JpaObject.FieldsInvisible); diff --git a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/work/ActionCreateForce.java b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/work/ActionCreateForce.java index 2010b1add9..ecc221f6f0 100644 --- a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/work/ActionCreateForce.java +++ b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/work/ActionCreateForce.java @@ -103,7 +103,7 @@ class ActionCreateForce extends BaseAction { } /* 驱动工作,使用非队列方式 */ ThisApplication.context().applications().putQuery(x_processplatform_service_processing.class, - Applications.joinQueryUri("work", workId, "prcocssing", "nonblocking"), null, processFlag); + Applications.joinQueryUri("work", workId, "processing", "nonblocking"), null, processFlag); } else { /* 如果是草稿,准备后面的直接打开 */ workId = lastestWorkId; diff --git a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/work/ActionCreateWithApplicationProcess.java b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/work/ActionCreateWithApplicationProcess.java index 1522d71b00..41d6103a98 100644 --- a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/work/ActionCreateWithApplicationProcess.java +++ b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/work/ActionCreateWithApplicationProcess.java @@ -117,7 +117,7 @@ class ActionCreateWithApplicationProcess extends BaseAction { } /* 驱动工作,使用非队列方式 */ ThisApplication.context().applications().putQuery(x_processplatform_service_processing.class, - Applications.joinQueryUri("work", workId, "prcocssing", "nonblocking"), null,processFlag); + Applications.joinQueryUri("work", workId, "processing", "nonblocking"), null,processFlag); } else { /* 如果是草稿,准备后面的直接打开 */ workId = lastestWorkId; -- GitLab