Open aaronzi opened 7 months ago
Thanks a lot for pointing this out. We will take a look and come back with an update.
Hi @aaronzi,
I couldn't replicate the issue with the latest version of basyx-databridge. Could you please check if the issue is still present on your side?
Please find below two stress tests I created for analyzing the issue:
Hi @mateusmolina-iese,
I will retest this on my end. I hope the issue is solved by itself (maybe through a camel update). I will do a 30-minute run just to be sure. Thank you for providing the two stress tests. I will give you an answer by the end of the day.
I'm still encountering the same issue. I mapped every node of the OPC Server in my stress test. I also used the Docker Container (newest image version) of the DataBridge. Here is my DataBridge config and my AAS I tested it with:
aasserver.json opcuaconsumer.json routes.json opc2aas_demo.json
Hi @aaronzi,
thanks for testing the issue again. I'll try to reproduce the issue with your files and get back to you.
Hi @aaronzi,
I built another stress test [^1] with your latest configuration files. It asserts every specified interval if the received value of the dynamic nodes doesn't match the last received ones; a condition assumed not true when the route fails.
It seems like from your 7 routes, only one (DynamicFloat node) was being dynamically updated, the others remained static throughout the test time. That's why I made assertions only based on the dynamic one.
Unfortunately, I still couldn't reproduce the issue when running it twice for 6 minutes each.
Could you please provide more details about how you are getting the error or other methods to reproduce the issue?
Hi @mateusmolina-iese, thank you for revisiting this issue and creating another stress test.
Would it be possible to shedule a Teams meeting? You can write me to this mail for further communication: aaron@zielstorff.com
Hi @aaronzi,
of course. I'll contact you 👍
Just for documentation purposes: @aaronzi and I are discussing a way to better reproduce the issue he is having. I came up with a new test scenario, which tests the behavior for non-dynamic subscriptions:
However, I still couldn't reproduce the issue on my side.
I did some more intensive tests with the DataBridge for OPC UA. I encountered an issue where the DataBridge lost its subscription to configured nodes after a few minutes. This is what is displayed in the logs from the DataBridge:
As you can see in the last line it says that the subscription status changed. This issue is consistent over different OPC UA servers I was using. I tested this against servers and different PLCs (Wago, Schneider Electric, Siemens S7 1500) and an asyncua python OPC server.
For testing purposes, I have a demo OPC UA server. You can use it like this in docker-compose:
The server has a username and password configured. USERNAME="test"; PASWORD="test" You find a value that changes every 100ms under this nodeId: ns=2;i=10
Hope this helps reproduce the issue. The subscription ends around 4mins after the DataBridge started. The time it takes for the subscription to fail decreases with the number of nodes that are simultaneously read (with a high frequency).