Share Data Across MTS Objects

Share Data Across MTS Objects

One of the resource dispensers that come with MTS is Shared Property Manager (SPM). SPM provides a mechanism by which you can share global memory among all the objects that are running inside the same MTS process (or package or application). Using SPM, you can store a typical Name/Value dictionary. But before you can use SPM, you need to reference the Shared Property Manager Type Library (mtxspm.dll) in your MTS DLL project.

Here is a sample code:(The way this thing works is you first have to create SharedProperty Group Manager, which you use to create a SharedProperty Group. Using SharedProperty Group pointer you try to create SharedProperty. Both CreatePropertyGroup() and CreateProperty() take a boolean flag which gets set to true if the SharedProperty Group or SharedProperty existed previously.)

 Dim objContext As MTxAS.ObjectContextDim objSPGManager As MTxSpm.SharedPropertyGroupManagerDim objSPGroup As MTxSpm.SharedPropertyGroupDim objSharedProperty As MTxSpm.SharedPropertyDim blnGroupExists As BooleanDim blnPropExists As Boolean' Get hold of object contextSet objContext = GetObjectContext()' Create Shared property group managerSet objSPGManager = objContext.CreateInstance("MTxSpm.SharedPropertyGroupManager.1")' Try creating a new property group for storing propertiesSet objSPGroup = objSPGManager.CreatePropertyGroup("MyGroup",
LockMethod, Process, blnGroupExists)' If blnGroupExists is True then MyGroup already exists' Try add property into the property groupSet objSharedProperty = objSPGroup.CreateProperty("MyProperty",
blnExists)' If blnExists is True then MyProperty already exists.If (blnExists) Then' get value from the propertyvntPropertyValue = objSharedProperty.ValueElse' this is first time we are using property so' get the value from registry or database and ' then store it in this property so that ' subsequent access is more efficientobjSharedProperty.Value = vntPropertyValueEnd If


Share the Post: