[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[milo-dev] UnknownHostException for a host not used in connect
|
Hi,
We're (still) using Milo 0.5.4 and sometimes have an issue when
connecting to certain servers where an attempt lead to an exception
with the following (huge) stacktrace:
mypackage.services.ServiceException: an error occurred while trying to connect client
at mypackage.services.iot.opcua.OpcUaSessionProvider.createClient(OpcUaSessionProvider.java:131)
at mypackage.services.iot.opcua.OpcUaSessionProvider.createClient(OpcUaSessionProvider.java:79)
at mypackage.services.iot.opcua.OpcUaSessionProvider.connect(OpcUaSessionProvider.java:66)
at mypackage.services.iot.opcua.OpcUaSessionProvider.connect(OpcUaSessionProvider.java:1)
[...]
Caused by: java.util.concurrent.ExecutionException: java.net.UnknownHostException: company_data
at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357)
at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1908)
at mypackage.services.iot.opcua.OpcUaSessionProvider.createClient(OpcUaSessionProvider.java:125)
... 36 more
Caused by: java.net.UnknownHostException: company_data
at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:929)
at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1324)
at java.net.InetAddress.getAllByName0(InetAddress.java:1277)
at java.net.InetAddress.getAllByName(InetAddress.java:1193)
at java.net.InetAddress.getAllByName(InetAddress.java:1127)
at java.net.InetAddress.getByName(InetAddress.java:1077)
at io.netty.util.internal.SocketUtils$8.run(SocketUtils.java:146)
[...]
at io.netty.channel.AbstractChannel$AbstractUnsafe$1.run(AbstractChannel.java:486)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:474)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:909)
... 1 more
The host "company_data" is not the host configured to connect to; there we've
used something like opc:tcp://123.456.789.012:4840. When connecting to
that server using a different opc-client, it seems that this value comes from
the property NamespaceArray or ServerArray, where this appears in some of the URNs,
e.g. for an entry in the NamespaceArray: urn:company_data/BR/UA/EmbeddedServer or
the ServerArray's entry (there is only one): urn:company_data/BR/UA/EmbeddedServer.
Why is Milo trying to connect to an URN (as it seems to)? URNs aren't
providing a location so connecting to it seems wrong to me. In past
occasions it was possible to work around this by adding an entry to
the host-file to resolve this "server name" but in one particular case
this is not an option due to OSI 8/9 limitations. Is this fixed in
0.6 (and is this version "compatible" to implementations using 0.5)
or should I open an issue about this on GitHub?
Thanks and cheers, Lothar