Hello, after managing to do some read/write with camel, I tried to start fetching at specific interval. My goal was being able to fetch at regular pace (like every 500ms) to monitor some data. After running some tests, I came across an error:
java.lang.OutOfMemoryError: Java heap space after rerunning some tests, I saw that the JVM will tak up to 4Gb before the crash. After check netstat in Powershell, I realized I was having 50k+ different ports occupied on my localhost! I don't know if this has been lokked into yet or was never intended to be used like that, but after adding some Logs, I can tell that with my route, the app creates a Polling Consumer every tick that makes a plcCOnnection.close() when he's done. But after shutting down the context, a Plc4xConsumer class will also shutdown a connection. But still, in netsat I can see all these open connections for a bit of time. If anyone has an idea, that will be great! Here the route: <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" default-activation="lazy"> <camelContext id="S7-PLC-Context" xmlns="http://camel.apache.org/schema/blueprint" streamCache="true" > <route> <from uri="timer://foo?fixedRate=true&period=1000" /> <pollEnrich> <constant>plc4x:s7:tcp://192.168.178.10?address=%25DB1.DBW0:WORD</constant> </pollEnrich> <setHeader headerName="fieldName"> <constant>default</constant> </setHeader> <setHeader headerName="fieldQuery"> <constant>%MW10:WORD</constant> </setHeader> <convertBodyTo type="java.lang.Short"/> <to uri="plc4x:s7:tcp://192.168.178.10" /> <log message=" Response code: ${body.getResponseCode(default)} at ${date:now:HH:mm:ss}" loggingLevel="INFO" /> </route> </camelContext> </blueprint> and the LOGGER : 17:04:55.883 INFO [pipe-bundle:start 67] Blueprint bundle s7-camel/0.1.0.SNAPSHOT has been started 17:04:55.884 INFO [Blueprint Event Dispatcher: 1] Attempting to start CamelContext: S7-PLC-Context 17:04:55.885 INFO [Blueprint Event Dispatcher: 1] Apache Camel 2.24.2 (CamelContext: S7-PLC-Context) is starting 17:04:55.886 INFO [Blueprint Event Dispatcher: 1] StreamCaching is enabled on CamelContext: S7-PLC-Context 17:04:55.886 INFO [Blueprint Event Dispatcher: 1] JMX is enabled 17:04:55.912 INFO [Blueprint Event Dispatcher: 1] Instantiating new PLC Driver Manager with class loader BundleDelegatingClassLoader(s7-camel [67]) 17:04:55.913 INFO [Blueprint Event Dispatcher: 1] Registering available drivers... 17:04:55.916 INFO [Blueprint Event Dispatcher: 1] Registering driver for Protocol s7 (Siemens S7 (Basic)) 17:04:55.925 INFO [Blueprint Event Dispatcher: 1] StreamCaching in use with spool directory: C:\karaf\data\tmp\camel\camel-tmp-e0de8e4a-1313-44d0-a309-e211b894bd4d and rules: [Spool > 128K body size] 17:04:55.958 INFO [Blueprint Event Dispatcher: 1] Can read true can write true can subscribe true 17:04:56.018 INFO [Blueprint Event Dispatcher: 1] Route: route10 started and consuming from: timer://foo?fixedRate=true&period=1000 17:04:56.019 INFO [Blueprint Event Dispatcher: 1] Total 1 routes, of which 1 are started 17:04:56.020 INFO [Blueprint Event Dispatcher: 1] Apache Camel 2.24.2 (CamelContext: S7-PLC-Context) started in 0.136 seconds 17:04:57.020 INFO [Camel (S7-PLC-Context) thread #17 - timer://foo] Instantiating new PLC Driver Manager with class loader BundleDelegatingClassLoader(s7-camel [67]) 17:04:57.021 INFO [Camel (S7-PLC-Context) thread #17 - timer://foo] Registering available drivers... 17:04:57.021 INFO [Camel (S7-PLC-Context) thread #17 - timer://foo] Registering driver for Protocol s7 (Siemens S7 (Basic)) 17:04:57.021 INFO [Camel (S7-PLC-Context) thread #17 - timer://foo] Creating POLLING CONSUMER 17:04:57.038 INFO [Camel (S7-PLC-Context) thread #17 - timer://foo] Can read true can write true can subscribe true 17:04:57.055 INFO [Camel (S7-PLC-Context) thread #17 - timer://foo] doStart POLLING Consumer 17:04:57.055 INFO [Camel (S7-PLC-Context) thread #17 - timer://foo] Creating read request 17:04:57.070 INFO [Camel (S7-PLC-Context) thread #17 - timer://foo] POLLING Consumer closed is false 17:04:57.070 INFO [nioEventLoopGroup-519-1] CHANNEL CLOSED : true 17:04:57.075 INFO [Camel (S7-PLC-Context) thread #17 - timer://foo] Value obtained java.lang.Short 17:04:57.077 INFO [Camel (S7-PLC-Context) thread #17 - timer://foo] Has optimizer : true 17:04:57.078 INFO [Camel (S7-PLC-Context) thread #17 - timer://foo] Writing data [0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 17:04:57.087 INFO [Camel (S7-PLC-Context) thread #17 - timer://foo] Response code: OK at 17:04:57 17:04:58.021 INFO [Camel (S7-PLC-Context) thread #17 - timer://foo] Creating POLLING CONSUMER 17:04:58.022 INFO [Camel (S7-PLC-Context) thread #17 - timer://foo] Can read true can write true can subscribe true 17:04:58.038 INFO [Camel (S7-PLC-Context) thread #17 - timer://foo] doStart POLLING Consumer 17:04:58.038 INFO [Camel (S7-PLC-Context) thread #17 - timer://foo] Creating read request 17:04:58.041 INFO [Camel (S7-PLC-Context) thread #17 - timer://foo] POLLING Consumer closed is false 17:04:58.041 INFO [nioEventLoopGroup-520-1] CHANNEL CLOSED : true 17:04:58.042 INFO [Camel (S7-PLC-Context) thread #17 - timer://foo] Value obtained java.lang.Short 17:04:58.042 INFO [Camel (S7-PLC-Context) thread #17 - timer://foo] Has optimizer : true 17:04:58.043 INFO [Camel (S7-PLC-Context) thread #17 - timer://foo] Writing data [0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 17:04:58.047 INFO [Camel (S7-PLC-Context) thread #17 - timer://foo] Response code: OK at 17:04:58 17:04:58.256 INFO [pipe-bundle:stop 67] Destroying container for blueprint bundle s7-camel/0.1.0.SNAPSHOT 17:04:58.257 INFO [Blueprint Event Dispatcher: 1] Stopping CamelContext: S7-PLC-Context 17:04:58.257 INFO [Blueprint Event Dispatcher: 1] Apache Camel 2.24.2 (CamelContext: S7-PLC-Context) is shutting down 17:04:58.258 INFO [Blueprint Event Dispatcher: 1] Starting to graceful shutdown 1 routes (timeout 300 seconds) 17:04:58.259 INFO [Camel (S7-PLC-Context) thread #18 - ShutdownTask] Closed connection false 17:04:58.260 INFO [nioEventLoopGroup-518-1] CHANNEL CLOSED : true 17:04:58.260 INFO [Camel (S7-PLC-Context) thread #18 - ShutdownTask] Route: route10 shutdown complete, was consuming from: timer://foo?fixedRate=true&period=1000 17:04:58.260 INFO [Blueprint Event Dispatcher: 1] Graceful shutdown of 1 routes completed in 0 seconds Etienne
