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

Reply via email to