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
  • Blog
  • Questions
  • Learning
    • E-learning Courses
    • 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
    • Tutorials
    • Video Library
    • Books We Like
    • >> Go to DataMiner Docs
  • Expert Center
    • Solutions & Use Cases
      • Solutions
      • Use Case Library
    • Markets & Industries
      • Media production
      • Government & defense
      • Content distribution
      • Service providers
      • Partners
      • OSS/BSS
    • DataMiner Insights
      • Security
      • Integration Studio
      • System Architecture
      • DataMiner Releases & Updates
      • DataMiner Apps
    • 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)
    • DataMiner DevOps Professional Program
  • Downloads
  • More
    • Feature Suggestions
    • Climb the leaderboard!
    • Swag Shop
    • Contact
      • General Inquiries
      • DataMiner DevOps Support
      • Commercial Requests
    • Global Feedback Survey
  • PARTNERS
    • All Partners
    • Technology Partners
    • Strategic Partner Program
    • Deal Registration
  • >> Go to dataminer.services

Life cycle of objects in scripts

Solved425 views30th December 2024#automationscript Automation object life cycle
1
Edib Šupić [SLC] [DevOps Catalyst]2.06K 29th December 2024 0 Comments

Hello Dojo,

I know that when we use static objects in connectors they are shared between all elements running that connector, and if we use non-static objects, each element gets it's own instance of the object that lives until element is stopped/restarted.

I'm wondering about this life cycle of objects in automation scripts context.

  • When are objects created and destroyed in automation script? If I run same script 10 times, with static properties, do I have to initialise them each time?
  • If I do have to initialise them each time, is there a way to share objects across multiple runs of the same script?
  • Is there a difference between static and non-static objects in AS context, from DataMiner perspective(not including differences that come from .NET itself)?
  • Is there a difference between scripts defined as libraries and those that aren't?

Thank you,
Cheers

Thomas Ghysbrecht [SLC] [DevOps Enabler] Answered question 30th December 2024

2 Answers

  • Active
  • Voted
  • Newest
  • Oldest
5
Thomas Ghysbrecht [SLC] [DevOps Enabler]4.80K Posted 30th December 2024 1 Comment

Hi Edib,

Thanks for your question! Here's a detailed explanation of how objects are created and destroyed in the context of SLAutomation scripts:

  1. Lifecycle of Automation Script Objects:
    • In SLAutomation, each Automation script is compiled into a unique DLL and loaded into the .NET runtime.
    • When you run a script, the method is executed on a 'Script' class specific to that version of the script. If you change even one character in the script, a new DLL is generated, and .NET treats it as a completely new class.
  2. Behavior of Static Properties:
    • Static properties in your script (or any class used within it) are shared across multiple runs of the same script version. This means you can re-use static values across runs without reinitializing them.
    • However, DataMiner does not add any custom logic to manage these static properties. Their lifecycle is controlled by the .NET runtime, and you need to handle potential memory leaks or resource management issues.
  3. Updating the Script:
    • When you update an Automation script, a new DLL is created, and the previous script's statics are no longer accessible. This effectively resets any shared data stored in static properties.
  4. Script Libraries:
    • Script libraries follow the same principle: they are compiled into unique DLLs for each version. If you modify the library script, all static references will be lost, as a new DLL is generated.
  5. SLAutomation Process Restart:
    • Keep in mind that static values are stored in memory as long as the SLAutomation process is running. If SLAutomation restarts, all static data will be lost.

To answer your specific questions directly:

  • Do you need to initialize static properties each time? No, static properties persist across script runs for the same script version. However, if the SLAutomation process restarts or you update the script, the statics will need to be reinitialized.
  • Can you share objects across multiple runs of the same script? Yes, you can use static properties to share data across runs of the same script version. Just be cautious about resource management and memory leaks.
  • Difference between static and non-static objects in Automation scripts: Static objects persist across runs of the same script version, while non-static objects are instantiated fresh for each script run and are destroyed when the script finishes execution.
  • Difference between libraries and non-library scripts: Libraries behave the same as regular scripts when it comes to static properties. Each version of a library script is compiled into its own unique DLL, so updating a library script results in loss of static data.

Let me know if this clears things up or if you have further questions!

Thomas Ghysbrecht [SLC] [DevOps Enabler] Posted new comment 30th December 2024
Thomas Ghysbrecht [SLC] [DevOps Enabler] commented 30th December 2024

Seems like João was quicker than me. I guess that my reply also can confirm that the script libraries work pretty much the same as the scripts.

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

Recent questions

Web Applications exception in Cube due to invalid certificate 0 Answers | 0 Votes
Redundancy Groups and Alarming – Duplicate Alarms 0 Answers | 0 Votes
Correlation Engine: “Test rule” doesn’t result in a hit, despite functional rule 1 Answer | 3 Votes

Question Tags

adl2099 (115) alarm (62) Alarm Console (82) alarms (100) alarm template (83) Automation (223) automation scipt (111) Automation script (167) backup (71) Cassandra (180) Connector (109) Correlation (69) Correlation rule (52) Cube (151) Dashboard (194) Dashboards (188) database (83) DataMiner Cube (57) DIS (81) DMS (71) DOM (140) driver (65) DVE (56) Elastic (83) Elasticsearch (115) elements (80) Failover (104) GQI (159) HTTP (76) IDP (74) LCA (152) low code app (166) low code apps (93) lowcodeapps (75) MySQL (53) protocol (203) QAction (83) security (88) SNMP (86) SRM (337) table (54) trending (87) upgrade (62) Visio (539) Visual Overview (345)
Privacy Policy • Terms & Conditions • Contact

© 2025 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