Skip to content
DataMiner Dojo

More results...

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
Search in posts
Search in pages
Search in posts
Search in pages
Log in
Menu
  • Updates & Insights
  • Questions
  • Learning
    • E-learning Courses
    • Tutorials
    • Open Classroom Training
    • Certification
      • DataMiner Fundamentals
      • DataMiner Configurator
      • DataMiner Automation
      • Scripts & Connectors Developer: HTTP Basics
      • Scripts & Connectors Developer: SNMP Basics
      • Visual Overview – Level 1
      • Verify a certificate
    • YouTube Videos
    • Solutions & Use Cases
      • Solutions
      • Use Case Library
    • Agility
      • Learn more about Agile
        • Agile Webspace
        • Everything Agile
          • The Agile Manifesto
          • Best Practices
          • Retro Recipes
        • Methodologies
          • The Scrum Framework
          • Kanban
          • Extreme Programming
        • Roles
          • The Product Owner
          • The Agile Coach
          • The Quality & UX Coach (QX)
      • Book your Agile Fundamentals training
      • Book your Kanban workshop
    • >> Go to DataMiner Docs
  • DevOps
    • About the DevOps Program
    • Sign up for the DevOps Program
    • DataMiner DevOps Support
    • Feature Suggestions
  • Downloads
  • Swag Shop
  • PARTNERS
    • Business Partners
    • Technology Partners
  • Contact
    • Sales, Training & Certification
    • DataMiner Support
    • Global Feedback Survey
  • >> Go to dataminer.services

SLNet to gRPC – migration path hints

127 views3 hours agoadl2099 grpc SLNet
3
Alberto De Luca [DevOps Enabler]5.60K 4 days ago 0 Comments

Hi Dojo - evaluating evolutions from the legacy SLNet towards gRPC and I'd like to check if the following could be a viable transition to get started:

  • Cube → DMA = gRPC (for any server in the cluster)
  • DMA ↔ DMA = existing SLNet communication

    From this page, I understand that

    so I'm wondering if gRPC is used for auto-forwarding events from the server to the client or if the client is still expected to request updates (e.g. as in SLNet polling mode).

    In a big cluster environment where storm modes can be expected, I'd like to avoid the overhead of "polling" that slows down the client considerably - .NET Remoting with eventing would be the preferred mode pre-gRPC migrations, but any steer will be helpful.

    Thanks

Bert Buysschaert [SLC] [DevOps Advocate] Answered question 3 hours ago

2 Answers

  • Active
  • Voted
  • Newest
  • Oldest
0
Bert Buysschaert [SLC] [DevOps Advocate]5.07K Posted 3 hours ago 0 Comments

Hi Alberto,

Here is a comparsion of .NET Remoting and gRPC:

  • .NET Remoting with eventing can deliver subscription messages instantly, but requires setting up a TCP connection from DMA to client, which is often not possible due to firewalls or NAT.
  • .NET Remoting with polling uses "short polling", where the waiting happens on the clientside and the server answers immediately (either with some messages that were waiting to be delivered, or with an empty response). It is basically a tradeoff on how frequently the client will spam the server and how much extra delay you can tolerate for messages to be delivered. By default we have a slow polling cycle of 1000ms and a fast polling cycle of 100ms if the previous cycle received messages.
  • In gRPC streaming the client performs a single HTTP request with an infinite response: the server uses "Transfer-Encoding: chunking" and delivers messages as soon as they occur, each in another chunk. However, this does not always work if there is a (reverse) proxy, gateway or deep-packet-inspecting firewall inbetween. These may either transform the random chunk sizes into fixed-length chunks, or buffer the chunking to try and convert it into a Content-Length response, or it may abort requests that take longer than x seconds. We have a detection mechanism for this, and if chunking is not working as expected, we fall back to polling (see next).
  • gRPC with polling uses "long polling", where the waiting happens on the serverside. The client has an infinite loop of HTTP requests, and the server will wait up to 20 seconds until it has messages ready to be delivered. The advantage here is that there is no extra delay introduced as with "short polling", and that it does not rely on special HTTP features such as chunking or infinite responses. All subscription requests are typically pipelined on the same TCP connection, although that is not guaranteed (depends on the .NET HTTP connection pooling logic). Long polling is also used for Remote Cube access through *.on.dataminer.services.

Important to note is that we are using gRPC-web over HTTP/1.1 as opposed to "native" gRPC over HTTP/2 (where all traffic can be multiplexed over a single TCP connection) because we cannot yet guarantee support on all systems. (see https://learn.microsoft.com/en-us/aspnet/core/grpc/supported-platforms?view=aspnetcore-10.0 - mainly support for Windows Sever 2016/2019 and .NET Framework 4.x for clients such as Cube prevent the use of HTTP/2).

Let me know if you have any further questions.

Bert Buysschaert [SLC] [DevOps Advocate] Answered question 3 hours ago
You are viewing 1 out of 2 answers, click here to view all answers.
Please login to be able to comment or post an answer.

My DevOps rank

DevOps Members get more insights on their profile page.

My user earnings

0 Dojo credits

Spend your credits in our swag shop.

0 Reputation points

Boost your reputation, climb the leaderboard.

Promo banner DataMiner DevOps Professiona Program
DataMiner Integration Studio (DIS)
Empower Katas
Privacy Policy • Terms & Conditions • Contact

© 2026 Skyline Communications. All rights reserved.

DOJO Q&A widget

Can't find what you need?

? Explore the Q&A DataMiner Docs

[ Placeholder content for popup link ] WordPress Download Manager - Best Download Management Plugin