-
R Ralf
Hi cwangv,
sorry, I don't check the docu v4...
I have installed on a WIN10PRO PC AdoptOpenJDK 11.0.8.10 x64 - not Oracle! - install the service via cmd as Admin switch to the mango folder "boot" and run "java -jar ma-windows-service.jar install" and Mango 4.0 beta 3 is runing via service.
No problems, all works fine! -
R Ralf
@wingnut2-0 said in Installing Windows Service:
javaws.jar is not included in AdoptOpenJDK which is required for YAJSW to work.
I think that's the reason.
My last productive 4.0 installation runs with this solution:
https://forum.mango-os.com/topic/4632/windows-10-services-for-mango/3
-
R Ralf
Hi Mango-Team,
Mango 4.0.0 beta 3 needs a mangoUI update like version 3.7.8 to fix bug where sub-menu would not open in Chrome 87...
We have a productive system running and can't update the client-browser.
Thanks,
Ralf -
R Ralf
Hi,
we have a new project that is to be developed with mango 4.0-beta. Are there any restrictions when updating to Mango 4.x if this is available?
-
R Ralf
Hi,
I do this with the Mango Internal Data Source and create points with "mydatasource-last poll duration" or "poll success percentage" or "previous sequential successful polls" and watch them with a meta-data-point.
-
R Ralf
But you get the values? If you increase your timeout to 5-10 seconds, it's the same?
Usually I deactivate the events and do it with watchdogs -> create slave monitor points.
-
R Ralf
Hi Nurr,
all my windows installations work with this configuration:
https://forum.infiniteautomation.com/topic/4632/windows-10-services-for-mango
-
R Ralf
Hi Cristian,
you can make a configuration backup
and import this file in a new Mango installation without the history-values,
If you want the history-values, make a backup from the noSQL-dbTo import this backup in the new system check the help via ?
If you have a new system and want only import a few data-sources, you can export this inside the old ui-system via xml:
-
-
R Ralf
Select menu Administration/Modules
Mark the module for deletion and restart Mango.
As MattFox said: "Just take caution as to which modules it is you want to remove." -
R Ralf
Hi realmooseman,
if you write to an Object type "Analog value" select Data type "Numeric".
In your example you select "Alphanumeric". -
R Ralf
Hi cwangv,
I agree with you but our Mango-PC on side is only a data collector and gateway via Persistent TCP Publisher to the cloudserver. The Mango-PC has no webpages to serve for end-users. This is the job for the cloud-server.
Our 268 data sources are 50% BACnet and 40% SNMP and 10% Modbus TCP/IP.
All BACnet-Devices are BACnet Building Controllers (TCP/IP), propper setup with COV etc, minimum network traffic.The installation is running since 9 years with an other software as data collector and gateway, and now with Mango.
If I want to serve the webpages on side, then I have to install a much larger system as server and data-collector, I know.
MattFox has 127 users to serve, a complete other situation. A web server process with this size needs a lot of RAM and core-power.The new experience with Mango was there are a lot of adjustment screws and you can watch and tune the system very fine, and you have to do it :)
-
R Ralf
Hi MattFox,
I also had problems with our gateway to the server. Look at the story
https://forum.infiniteautomation.com/topic/4668/persistent-tcp-publishers-stop-transfer/3
It is very helpful if you activate all internal data points in the data source "Mango Internal" and make a dashboard to watch them. Only then you have an overview of what leads to which problem.
The cron-job function can also help to distribute the load evenly. Not all updates (data source and ptp) at the same minute of the hour ...
So, for our 32000 data points, 268 data sources and 10 ptps, syncing history every 5 to 15 minutes, setting max 5 GB RAM I think this hardware is the minimum:
If you add some webclients you can overload the system very quick, but it's only a gateway.
The ideal computer is still to be developed. You enter your problems and they never come out.
-
R Ralf
Ok, I found a solution!
The old thread pool settings:
Settings now:
The setup with more than 120 BACnet-Devices needs a lot of threads, so the ptp-sync hasn't enough and failed.
Now it needs more CPU (20-45%) but it is working, that is fine.
-
R Ralf
Ok, I invest some time, deactivate all percistent TCP publishers (ptp), start again at 10:00 with only 3 and found this after one hour:
One ptp sync all the data, finished and then it is repeating that message in the log-file and stop the history-sync. The real time sync is working.
The next ptp stop at 11:00, the last stop at 11:30, same message in the log-file.Another thing I found:
One ptp is starting and sync more than 1 Million records in 3m20s, all ok:
The next sync, same ptp, 8650 records and 4m15s?:
Thanks for the help!
-
R Ralf
Hi,
I have a few publishers via TCP sync history and real time data to one server (different ports and crons).
Both systems same core 3.7.4 and modules, openjdk-8.0.232.09.Since the last 24 hours the history-sync stop and after restart the publisher it is working a few hours and stop again:
The real time data is syncing, client and server are working normal.
Any help?
Runtime status:
Log file from one publisher gateway:
WARN 2020-01-10 14:15:53,000 (com.serotonin.m2m2.persistent.pub.PersistentSendThread.startSync:912) - A data synchronization run was not started because a previous one is still running WARN 2020-01-10 14:15:54,000 (com.serotonin.m2m2.persistent.pub.PersistentSendThread.startSync:912) - A data synchronization run was not started because a previous one is still running WARN 2020-01-10 14:15:55,001 (com.serotonin.m2m2.persistent.pub.PersistentSendThread.startSync:912) - A data synchronization run was not started because a previous one is still running WARN 2020-01-10 14:15:56,001 (com.serotonin.m2m2.persistent.pub.PersistentSendThread.startSync:912) - A data synchronization run was not started because a previous one is still running WARN 2020-01-10 14:15:57,002 (com.serotonin.m2m2.persistent.pub.PersistentSendThread.startSync:912) - A data synchronization run was not started because a previous one is still running WARN 2020-01-10 14:15:58,001 (com.serotonin.m2m2.persistent.pub.PersistentSendThread.startSync:912) - A data synchronization run was not started because a previous one is still running WARN 2020-01-10 14:15:59,001 (com.serotonin.m2m2.persistent.pub.PersistentSendThread.startSync:912) - A data synchronization run was not started because a previous one is still running
Ma log file gateway:
ERROR 2020-01-10T14:01:14,266 (com.serotonin.m2m2.db.dao.AbstractBasicDao$1.extractData:1063) - Internal Server Error � org.eclipse.jetty.io.EofException: Closed com.infiniteautomation.mango.rest.v2.exception.GenericRestException: Internal Server Error � org.eclipse.jetty.io.EofException: Closed at com.infiniteautomation.mango.rest.v2.model.StreamedVOQueryWithTotal$StreamedVOArray.lambda$writeArrayValues$0(StreamedVOQueryWithTotal.java:70) ~[?:?] at com.serotonin.m2m2.db.dao.AbstractBasicDao$1.extractData(AbstractBasicDao.java:1058) ~[mango-3.7.4.jar:?] at com.serotonin.m2m2.db.dao.AbstractBasicDao$1.extractData(AbstractBasicDao.java:1050) ~[mango-3.7.4.jar:?] at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:678) ~[spring-jdbc-5.1.7.RELEASE.jar:5.1.7.RELEASE] at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:616) ~[spring-jdbc-5.1.7.RELEASE.jar:5.1.7.RELEASE] at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:668) ~[spring-jdbc-5.1.7.RELEASE.jar:5.1.7.RELEASE] at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:699) ~[spring-jdbc-5.1.7.RELEASE.jar:5.1.7.RELEASE] at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:711) ~[spring-jdbc-5.1.7.RELEASE.jar:5.1.7.RELEASE] at com.serotonin.db.DaoUtils.query(DaoUtils.java:258) ~[mango-3.7.4.jar:?] at com.serotonin.m2m2.db.dao.AbstractBasicDao.customizedQuery(AbstractBasicDao.java:1050) ~[mango-3.7.4.jar:?] at com.serotonin.m2m2.db.dao.AbstractBasicDao.customizedQuery(AbstractBasicDao.java:1024) ~[mango-3.7.4.jar:?] at com.infiniteautomation.mango.rest.v2.model.StreamedVOQueryWithTotal$StreamedVOArray.writeArrayValues(StreamedVOQueryWithTotal.java:65) ~[?:?] at com.serotonin.m2m2.web.mvc.rest.v1.mapping.JSONStreamedArraySerializer.serialize(JSONStreamedArraySerializer.java:24) ~[?:?] at com.serotonin.m2m2.web.mvc.rest.v1.mapping.JSONStreamedArraySerializer.serialize(JSONStreamedArraySerializer.java:17) ~[?:?] at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:727) ~[jackson-databind-2.9.10.jar:2.9.10] at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:719) ~[jackson-databind-2.9.10.jar:2.9.10] at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:155) ~[jackson-databind-2.9.10.jar:2.9.10] at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480) ~[jackson-databind-2.9.10.jar:2.9.10] at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319) ~[jackson-databind-2.9.10.jar:2.9.10] at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1396) ~[jackson-databind-2.9.10.jar:2.9.10] at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:913) ~[jackson-databind-2.9.10.jar:2.9.10] at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:287) ~[spring-web-5.1.7.RELEASE.jar:5.1.7.RELEASE] at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:103) ~[spring-web-5.1.7.RELEASE.jar:5.1.7.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:290) ~[spring-webmvc-5.1.7.RELEASE.jar:5.1.7.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:180) ~[spring-webmvc-5.1.7.RELEASE.jar:5.1.7.RELEASE] at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:82) ~[spring-web-5.1.7.RELEASE.jar:5.1.7.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:122) ~[spring-webmvc-5.1.7.RELEASE.jar:5.1.7.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:892) ~[spring-webmvc-5.1.7.RELEASE.jar:5.1.7.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797) ~[spring-webmvc-5.1.7.RELEASE.jar:5.1.7.RELEASE] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.1.7.RELEASE.jar:5.1.7.RELEASE] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1039) ~[spring-webmvc-5.1.7.RELEASE.jar:5.1.7.RELEASE] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942) ~[spring-webmvc-5.1.7.RELEASE.jar:5.1.7.RELEASE] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005) ~[spring-webmvc-5.1.7.RELEASE.jar:5.1.7.RELEASE] at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:908) ~[spring-webmvc-5.1.7.RELEASE.jar:5.1.7.RELEASE] at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) ~[javax.servlet-api-3.1.0.jar:3.1.0] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882) ~[spring-webmvc-5.1.7.RELEASE.jar:5.1.7.RELEASE] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) ~[javax.servlet-api-3.1.0.jar:3.1.0] at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:760) ~[jetty-servlet-9.4.23.v20191118.jar:9.4.23.v20191118] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1617) ~[jetty-servlet-9.4.23.v20191118.jar:9.4.23.v20191118] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200) ~[spring-web-5.1.7.RELEASE.jar:5.1.7.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.1.7.RELEASE.jar:5.1.7.RELEASE] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604) ~[jetty-servlet-9.4.23.v20191118.jar:9.4.23.v20191118] at com.infiniteautomation.mango.webapp.filters.MangoCacheControlHeaderFilter.doFilter(MangoCacheControlHeaderFilter.java:155) ~[mango-3.7.4.jar:?] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604) ~[jetty-servlet-9.4.23.v20191118.jar:9.4.23.v20191118] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.springframework.security.web.authentication.switchuser.SwitchUserFilter.doFilter(SwitchUserFilter.java:200) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE] at com.serotonin.m2m2.web.mvc.spring.security.RateLimitingFilter.doFilterInternal(RateLimitingFilter.java:91) ~[mango-3.7.4.jar:?] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.1.7.RELEASE.jar:5.1.7.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE] at com.serotonin.m2m2.web.mvc.spring.security.PermissionExceptionFilter.doFilter(PermissionExceptionFilter.java:34) ~[mango-3.7.4.jar:?] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:155) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.springframework.security.web.csrf.CsrfFilter.doFilterInternal(CsrfFilter.java:124) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.1.7.RELEASE.jar:5.1.7.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:74) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.1.7.RELEASE.jar:5.1.7.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.1.7.RELEASE.jar:5.1.7.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357) ~[spring-web-5.1.7.RELEASE.jar:5.1.7.RELEASE] at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270) ~[spring-web-5.1.7.RELEASE.jar:5.1.7.RELEASE] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604) ~[jetty-servlet-9.4.23.v20191118.jar:9.4.23.v20191118] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545) ~[jetty-servlet-9.4.23.v20191118.jar:9.4.23.v20191118] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) ~[jetty-server-9.4.23.v20191118.jar:9.4.23.v20191118] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:590) ~[jetty-security-9.4.23.v20191118.jar:9.4.23.v20191118] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[jetty-server-9.4.23.v20191118.jar:9.4.23.v20191118] at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) ~[jetty-server-9.4.23.v20191118.jar:9.4.23.v20191118] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1607) ~[jetty-server-9.4.23.v20191118.jar:9.4.23.v20191118] at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~[jetty-server-9.4.23.v20191118.jar:9.4.23.v20191118] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1297) ~[jetty-server-9.4.23.v20191118.jar:9.4.23.v20191118] at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) ~[jetty-server-9.4.23.v20191118.jar:9.4.23.v20191118] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485) ~[jetty-servlet-9.4.23.v20191118.jar:9.4.23.v20191118] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1577) ~[jetty-server-9.4.23.v20191118.jar:9.4.23.v20191118] at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) ~[jetty-server-9.4.23.v20191118.jar:9.4.23.v20191118] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1212) ~[jetty-server-9.4.23.v20191118.jar:9.4.23.v20191118] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) ~[jetty-server-9.4.23.v20191118.jar:9.4.23.v20191118] at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:221) ~[jetty-server-9.4.23.v20191118.jar:9.4.23.v20191118] at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:767) ~[jetty-server-9.4.23.v20191118.jar:9.4.23.v20191118] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[jetty-server-9.4.23.v20191118.jar:9.4.23.v20191118] at org.eclipse.jetty.server.Server.handle(Server.java:500) ~[jetty-server-9.4.23.v20191118.jar:9.4.23.v20191118] at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383) ~[jetty-server-9.4.23.v20191118.jar:9.4.23.v20191118] at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:547) ~[jetty-server-9.4.23.v20191118.jar:9.4.23.v20191118] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375) ~[jetty-server-9.4.23.v20191118.jar:9.4.23.v20191118] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:270) ~[jetty-server-9.4.23.v20191118.jar:9.4.23.v20191118] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) ~[jetty-io-9.4.23.v20191118.jar:9.4.23.v20191118] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) ~[jetty-io-9.4.23.v20191118.jar:9.4.23.v20191118] at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117) ~[jetty-io-9.4.23.v20191118.jar:9.4.23.v20191118] at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336) ~[jetty-util-9.4.23.v20191118.jar:9.4.23.v20191118] at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313) ~[jetty-util-9.4.23.v20191118.jar:9.4.23.v20191118] at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171) ~[jetty-util-9.4.23.v20191118.jar:9.4.23.v20191118] at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129) ~[jetty-util-9.4.23.v20191118.jar:9.4.23.v20191118] at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:388) ~[jetty-util-9.4.23.v20191118.jar:9.4.23.v20191118] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806) ~[jetty-util-9.4.23.v20191118.jar:9.4.23.v20191118] at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938) ~[jetty-util-9.4.23.v20191118.jar:9.4.23.v20191118] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_232] Caused by: org.eclipse.jetty.io.EofException: Closed at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:575) ~[jetty-server-9.4.23.v20191118.jar:9.4.23.v20191118] at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:639) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE] at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:639) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE] at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2085) ~[jackson-core-2.9.10.jar:2.9.10] at com.fasterxml.jackson.core.json.UTF8JsonGenerator.flush(UTF8JsonGenerator.java:1097) ~[jackson-core-2.9.10.jar:2.9.10] at com.fasterxml.jackson.databind.ObjectMapper.writeValue(ObjectMapper.java:2658) ~[jackson-databind-2.9.10.jar:2.9.10] at com.fasterxml.jackson.core.base.GeneratorBase.writeObject(GeneratorBase.java:381) ~[jackson-core-2.9.10.jar:2.9.10] at com.infiniteautomation.mango.rest.v2.model.StreamedVOQueryWithTotal$StreamedVOArray.lambda$writeArrayValues$0(StreamedVOQueryWithTotal.java:68) ~[?:?] ... 119 more
-
-
R Ralf
@cwangv
The first steps are done :)Here are the specs On-Side:
- Hardware Gateway Lenovo M710q, Intel Core i5-7400T, 8GB RAM, 256 GB SSD, WIN10PRO
- Exept OpenOffice 4.1.7 and Mango no other SW installed,
- Mango Enterprise 3.7.4, all Modules up to date, H2 797 MB, NoSQL 4.2 GB
- OpenJDK 8.0.232.09
- Data Sources Sum 268, Points 32309:
-- 141 x SNMP Data Sources a 103 points polling every 5 Minutes,
-- 4 x Meta-Data-Sources with Sum 165 points,
-- 17 x Modbus I/P Data-Sources with Sum 1649 points polling every 10 Sec,
-- 99 x BACnet/IP Data Sources with Sum 16572 Points, COV, 35% Analog Values, 10% Multistate, 55% Binary, - 10 x Publishers Persistent TCP to one Server, Sum 29360 Points (29 - 14199), real time data active and history sync all 5-15 Min per Cron, all Publishers using encryption and CRC.
We have for every BACnet-PLC one BACnet-DS. This gives us more information about poll times, durations and setups, cron, quantize.
We have five PLC-Manufacturers on side, and every one is different. And yes, we have one PLC-Type that we can't connect via BACnet-IP with Mango, our Keepware-BACnet-to-OPC-Connector has no problem?! Yes, we have to check this.Why WIN10PRO? It was installed :) Ja, our last gateway on side is running without any big problems since 2013 with WIN7PRO, not with Mango but we hope the new one will run just as long. We have some smaller Mango installations running on Linux, maybe next time we switch to Linux.
Before we make a major-update in Mango (examp. 3.5 -> 3.6) we test it with a second PC, if it works then the upgrade will be finish. The same with the OS updates.
The System is running 24/7 since more than a year with 5k points starting, growing up and with all the 32k points the last 14 days without big problems.
The startup-process needs a bit time, ca. 15 Minutes, if Mango is running the PC needs 15% CPU and 60% RAM. A good step was to change the Java from Oracle to OpenJDK. Since then, Mango handles the RAM better.
I think it would be nice to have a startup-setup in Mango for the DSs and Publishers. Some DS have a lot of points but can startup later and an event-blocker...Next steps: add 5k points to setup and on server side the dashboards, reports, alarming...
-
R Ralf
Hi,
if I want to insert new values or update values in a mySQL table it works for me with single values (=?), set via Meta Data Source point:
INSERT INTO table_xz ( IDNr, ValveNr, LineNr, StartTime) VALUES (?,'KS0717','B',NOW())
But if I want insert more then one ?:
INSERT INTO table_xz ( IDNr, StartSum, StartTemp, ValveNr, LineNr, StartTime) VALUES (?,?,?,'KS0717','B',NOW())
How can I set the second or third ? via script or meta data point?
My solution with an alphanumeric mds-point doesn't work:var myVar = myIDNr.value + ',' + myStartSum.value + ',' + myStartTemp.value; var myString = myVar.toString(); print(myString) if ( myStart.value == true ) mySQL.set ( myString.value );
What is the best solution?
Thanks for your help.