I want to connect a NI OPC-UA server via add the 3rd server,I have trusted the ignition client at the server. but the connection always is faulted. How do I slove this issue?
And the faulted information as follow:
UaServiceFaultException: status=Bad_OutOfMemory, message=Not enough memory to complete the operation.
_ at org.eclipse.milo.opcua.stack.client.UaTcpStackClient.receiveResponse(UaTcpStackClient.java:294)_
_ at org.eclipse.milo.opcua.stack.client.UaTcpStackClient.lambda$sendRequest$3(UaTcpStackClient.java:147)_
_ at java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:760)_
_ at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:736)_
_ at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474)_
_ at java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:1962)_
_ at org.eclipse.milo.opcua.stack.client.handlers.UaTcpClientMessageHandler.lambda$null$19(UaTcpClientMessageHandler.java:539)_
_ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)_
_ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)_
_ at java.lang.Thread.run(Thread.java:748)_
7.9.2 (b2017041315) Oracle Corporation 1.8.0_161
The Ignition setting as follow:
Name: maves
Read-only:false
Enabled:True
others setting is default
Can you upgrade Ignition to 7.9.8 and see if anything changes? I vaguely recall some kind of interoperability issue between Ignition and the NI server but I can’t remember when it happened. In any case, Bad_OutOfMemory status is being returned by the server here… usually an issue on the server side.
We are having the same issue, with 7.9.10, is there anything I can check from the server side? I added the “Server Log Diagnostics”, and in the NI OPC server I see a log when the connection is opened and then it logged the following
Date Time Level Source Event
3/6/2019 3:31:08 PM Information UA Server UaServer_EndpointCallback: SecureChannel 18242561 opened!
3/6/2019 3:31:08 PM Information UA Server Security Mode 1 Security Policy http://opcfoundation.org/UA/SecurityPolicy#None
3/6/2019 3:31:08 PM Information UA Server UaServer_EndpointCallback: SecureChannel 18242561 closed! [status=0x0]
In IGN side I get.
UaServiceFaultException: status=Bad_OutOfMemory, message=Not enough memory to complete the operation.
at org.eclipse.milo.opcua.stack.client.UaTcpStackClient.lambda$receiveResponse$14(UaTcpStackClient.java:358)
at org.eclipse.milo.opcua.stack.core.util.ExecutionQueue$PollAndExecute.run(ExecutionQueue.java:107)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
7.9.10 (b2018112821)
Oracle Corporation 1.8.0_152
I changed the OPCUA logs to DEBUG and get this, not sure if related, but I have reissued certificates a few times and still doesn’t work. (of course I trusted the client in the NI OPC).
org.eclipse.milo.opcua.stack.core.UaException: status=Bad_CertificateUriInvalid, description=The URI specified in the ApplicationDescription does not match the URI in the Certificate.
at org.eclipse.milo.opcua.stack.core.util.CertificateValidationUtil.validateApplicationUri(CertificateValidationUtil.java:222)
at com.inductiveautomation.xopc2.client.ClientManager.lambda$connect$9(ClientManager.java:172)
at java.util.concurrent.CompletableFuture.uniWhenComplete(Unknown Source)
at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(Unknown Source)
at java.util.concurrent.CompletableFuture.postComplete(Unknown Source)
at java.util.concurrent.CompletableFuture.complete(Unknown Source)
at org.eclipse.milo.opcua.stack.client.UaTcpStackClient.lambda$receiveResponse$14(UaTcpStackClient.java:343)
at
org.eclipse.milo.opcua.stack.core.util.ExecutionQueue$PollAndExecute.run(ExecutionQueue.java:107)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
These are 2 different errors and both are problems with the server.
In the first one, the server is returning Bad_OutOfMemory in response to some operation.
In the second, the server is misconfigured in a way surprisingly accurately described by the error message: “The URI specified in the ApplicationDescription does not match the URI in the Certificate.”
This is an interoperability issue that you probably need to get in touch with NI to fix - it means they are putting the wrong information into their certificate when they generate it.