We’re experiencing intermittent data loss with our OPC-UA integration between FactoryTalk MES quality management module and our ERP compliance system. Inspection results from final quality checks randomly disappear during synchronization.
Our OPC-UA subscription appears to drop messages during high-volume periods (50+ inspections/hour). We’ve noticed network bandwidth spikes correlating with the data loss events. The ERP endpoint sometimes rejects payloads, but we’re not getting clear validation errors.
Current subscription config:
subscription.publishingInterval=500
subscription.maxNotificationsPerPublish=100
subscription.queueSize=50
We need reliable delivery for compliance reporting. Has anyone tuned OPC-UA subscriptions for quality data flows? What message queue buffering strategies work best?
Good catch on the payload size issue. I found several HTTP 413 errors in the ERP logs from last week. We’re bundling up to 200 inspection records per sync, which can definitely exceed 2MB with all the measurement data and images attached. What’s the recommended approach for chunking these payloads while maintaining data integrity?
You need message queue buffering between OPC-UA and your ERP endpoint. Implement a staging queue that can batch intelligently based on payload size rather than record count. We use Apache Kafka as an intermediary buffer - OPC-UA publishes to Kafka topics, then a consumer service batches messages to stay under ERP limits. This also gives you retry logic and delivery guarantees. For your volumes, a simple RabbitMQ setup would work too.
Your publishing interval of 500ms combined with maxNotificationsPerPublish=100 means you’re trying to push up to 100 notifications every half second. During your 80 inspections/hour peak, that’s creating serious network congestion. I’d recommend increasing publishingInterval to 1000-2000ms to reduce burst frequency. This gives your network more breathing room while still maintaining near real-time delivery. Also verify your ERP endpoint can handle the payload sizes you’re sending.