cancel
Showing results for 
Search instead for 
Did you mean: 

Preventing memory issue

IshanMahajan
Level 7
Hi,

We are using HTTP object to call some SOAP web-services(this services can not be configured to System -> Settings due to some technical feasibility, and that is not a concern). In order to promote re-usability we  created some objects(around 10) that will call web-services and provide results, now we are calling HTTP VBO from multiple objects(those 10 object which we created).

We are still in development but i want to ensure that there won't be any memory issue since HTTP object being called multiple times from different objects from a single process.

Any comments on this ? should i make HTTP object as shareable object then utilize it or i can go ahead without making it shareable ? i am also using XML object inside the object.


Now we can not use this HTTP object and XML object as there would be no re usability. 

Thanks in advance !

------------------------------
Ishan Mahajan
India
------------------------------
4 REPLIES 4

TetsujiJunicho
Level 9
Hi,

An  object is reserved in memory by parent unlike sub process, so don't worry about it.
Beside, you might want to minimize the size of the object.
Look into Solution Design Overview: https://portal.blueprism.com/documents/standard?title=solution+design+overview&category=All&lang=1382

Hope this helps.

------------------------------
Tetsuji Junicho
Manager of RPA Practice Grp.
Accenture Japan
Asia/Tokyo
------------------------------

Thanks Tetsuji for your response, 

I understand that object is preserved in memory but if same object is being called by multiple objects(since my object size is small so i have obj1, obj2,.... obj10) calling HTTP VBO call from each object might create an instance in memory and that is what i am worried about.


22251.png


------------------------------
Ishan Mahajan
India
------------------------------

Blueprism only creates one instance of the object within a process. If you have a process that calls a subprocess that calls an object, vbo will do clean up when subprocess exits. Calling object from other different objects only creates one instance of it within a process scope.

You can test it. Create a simple vbo with get/set actions and one shared data item, then try calling it from different objects within a process - you can set value from one and get it back from another.

Only issue you might need to take care with this model is if your object recieves/returns huge collections, you better make that collection shared internally within VBO and have a separate action to clean it up and run GC or it stays in memory within VBO and also copied from/back to a caller. This should not be an issue with HTTP VBO, unless you get hundreds of megabytes of data in response.

------------------------------
Andrey Kudinov
Project Manager
MobileTelesystems PJSC
Europe/Moscow
------------------------------

Thanks, i will test for sure, just wanted to check if anyone has experience doing that, i will update the thread after testing and go-live.

------------------------------
Ishan Mahajan
India
------------------------------