DHANABALAN DURAIRAJASIVAM created PLC4X-326:
-----------------------------------------------

             Summary: 
org.apache.plc4x.java.api.exceptions.PlcConnectionException: Error creating 
channel
                 Key: PLC4X-326
                 URL: https://issues.apache.org/jira/browse/PLC4X-326
             Project: Apache PLC4X
          Issue Type: Bug
          Components: Driver-Modbus
    Affects Versions: 0.9.0
            Reporter: DHANABALAN DURAIRAJASIVAM


Hello All,

                 I have used to poll the Modbus Registers every 10 Seconds and 
for modbus connection, I have used the connection Code from example given. (see 
below).

_try (PlcConnection plcConnection = new 
PlcDriverManager().getConnection(connectionString)) \{ ... do something with 
the connection here ... }_

 

_Above code  created in a bean and bean has been called by camel producer every 
10 sec._

*The Question is ,does this above code close the connection itself when 
repeatedly called by new instance? or we need to handle connection close?*

*Exception.*

org.apache.plc4x.java.api.exceptions.PlcConnectionException: Error creating 
channel.
    at 
org.apache.plc4x.java.spi.connection.NettyChannelFactory.createChannel(NettyChannelFactory.java:130)
    at 
org.apache.plc4x.java.spi.connection.DefaultNettyPlcConnection.connect(DefaultNettyPlcConnection.java:121)
    at 
org.apache.plc4x.java.PlcDriverManager.getConnection(PlcDriverManager.java:74)
    at com.jtc.evcharger.bean.ModbusScan.GetEvChargerData(ModbusScan.java:82)
    at jdk.internal.reflect.GeneratedMethodAccessor47.invoke(Unknown Source)
    at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown 
Source)
    at java.base/java.lang.reflect.Method.invoke(Unknown Source)
    at 
org.apache.camel.support.ObjectHelper.invokeMethodSafe(ObjectHelper.java:382)
    at org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:494)
    at 
org.apache.camel.component.bean.MethodInfo$1.doProceed(MethodInfo.java:316)
    at org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:286)
    at 
org.apache.camel.component.bean.AbstractBeanProcessor.process(AbstractBeanProcessor.java:146)
    at 
org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:81)
    at 
org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$SimpleTask.run(RedeliveryErrorHandler.java:463)
    at 
org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:179)
    at 
org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:64)
    at org.apache.camel.processor.Pipeline.process(Pipeline.java:184)
    at 
org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:398)
    at 
org.apache.camel.component.timer.TimerConsumer.sendTimerExchange(TimerConsumer.java:210)
    at 
org.apache.camel.component.timer.TimerConsumer$1.run(TimerConsumer.java:76)
    at java.base/java.util.TimerThread.mainLoop(Unknown Source)
    at java.base/java.util.TimerThread.run(Unknown Source)
Caused by: java.lang.IllegalStateException: failed to create a child event loop
    at 
io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:88)
    at 
io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:60)
    at 
io.netty.channel.MultithreadEventLoopGroup.<init>(MultithreadEventLoopGroup.java:52)
    at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:97)
    at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:92)
    at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:73)
    at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:53)
    at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:45)
    at 
org.apache.plc4x.java.spi.connection.NettyChannelFactory.getEventLoopGroup(NettyChannelFactory.java:86)
    at 
org.apache.plc4x.java.spi.connection.NettyChannelFactory.createChannel(NettyChannelFactory.java:94)
    ... 21 more
Caused by: io.netty.channel.ChannelException: failed to open a new selector
    at io.netty.channel.nio.NioEventLoop.openSelector(NioEventLoop.java:175)
    at io.netty.channel.nio.NioEventLoop.<init>(NioEventLoop.java:142)
    at 
io.netty.channel.nio.NioEventLoopGroup.newChild(NioEventLoopGroup.java:183)
    at 
io.netty.channel.nio.NioEventLoopGroup.newChild(NioEventLoopGroup.java:38)
    at 
io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:84)
    ... 30 more
Caused by: java.io.IOException: Too many open files
    at java.base/sun.nio.ch.EPoll.create(Native Method)
    at java.base/sun.nio.ch.EPollSelectorImpl.<init>(Unknown Source)
    at java.base/sun.nio.ch.EPollSelectorProvider.openSelector(Unknown Source)
    at io.netty.channel.nio.NioEventLoop.openSelector(NioEventLoop.java:173)

 



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to