+1 -> thank you Niels :-) Am Mo., 2. Jan. 2023 um 15:02 Uhr schrieb Niels Basjes <[email protected]>:
> Thanks for clarifying. > I've added this to the example (+ cleanups): > https://github.com/apache/plc4x/pull/724 > > On Mon, Jan 2, 2023 at 2:43 PM Christofer Dutz <[email protected]> > wrote: > > > Hi Niels, > > > > If you find the time to have a little bit deeper look and find a solution > > … we’re super happy about PRs ;-) > > This behavior is sort of know behavior and we never really got to > > addressing it. I would assume it’s generally because of some Netty-Crap > … I > > would so love to get rid of Netty. > > > > Chris > > > > > > > > From: Niels Basjes <[email protected]> > > Date: Monday, 2. January 2023 at 14:41 > > To: [email protected] <[email protected]> > > Subject: Re: Simple modbus application does not terminate > > I found a workaround by digging through the example code: > > End the application with an explicit System.exit(0); > > > > > > > https://github.com/apache/plc4x/blob/b784dedaa787e52e7907085bf096e8ea2e093f3b/plc4j/examples/hello-world-plc4x-read/src/main/java/org/apache/plc4x/java/examples/helloplc4x/read/HelloPlc4xRead.java#L93 > > > > Then it does terminate the application. > > > > Niels > > > > > > On Mon, Jan 2, 2023 at 12:30 PM Niels Basjes <[email protected]> wrote: > > > > > Hi, > > > > > > I'm trying out building some stuff using plc4j/modbus and I have some > > > questions about that. > > > > > > I created a very simple test that connects using modbus-tcp and > retrieves > > > some registers. > > > Essentially it is this example (using the latest snapshot) but with > > modbus > > > https://plc4x.apache.org/users/getting-started/plc4j.html > > > So I use this connect string "modbus-tcp:tcp://127.0.0.1:1502" and > > > request ModbusTag.of("3x00001:UINT[100]"). > > > > > > The problem I have is that after the data has been read and printed > > (which > > > works as expected) the application does not terminate. > > > > > > > > > In the console I see (among other things) at the start: > > > 12:17:11,811 [INFO ] PlcDriverManager : 48: > > > Instantiating new PLC Driver Manager with class loader > > > jdk.internal.loader.ClassLoaders$AppClassLoader@251a69d7 > > > 12:17:11,813 [INFO ] PlcDriverManager : 52: > > > Registering available drivers... > > > 12:17:11,818 [INFO ] PlcDriverManager : 59: > > > Registering driver for Protocol modbus-ascii (Modbus ASCII) > > > 12:17:11,819 [INFO ] PlcDriverManager : 59: > > > Registering driver for Protocol modbus-rtu (Modbus RTU) > > > 12:17:11,820 [INFO ] PlcDriverManager : 59: > > > Registering driver for Protocol modbus-tcp (Modbus TCP) > > > 12:17:11,921 [INFO ] TcpChannelFactory : 60: > > > Configuring Bootstrap with ModbusTcpConfiguration{requestTimeout=5000, > > > unitIdentifier=1} > > > > > > and after my application finished > > > > > > 12:17:18,022 [INFO ] NettyChannelFactory : 150: > > > Channel is closed, closing worker Group also > > > 12:17:20,025 [INFO ] NettyChannelFactory : 154: > > > Worker Group was closed successfully! > > > > > > and then it just waits... > > > > > > When using the debugger in IntelliJ I press pause and have a look at > the > > > threads it seems to me it is stuck in some kind of cleanup I do not > > > understand. > > > There is actually a thread called DestroyJavaVM so sounds like outside > of > > > my actual application. > > > > > > How do I fix this? > > > > > > -- > > > Best regards / Met vriendelijke groeten, > > > > > > Niels Basjes > > > > > > > > > -- > > Best regards / Met vriendelijke groeten, > > > > Niels Basjes > > > > > -- > Best regards / Met vriendelijke groeten, > > Niels Basjes >
