Welcome Serena Central users! CLICK HERE
The migration of the Serena Central community is currently underway. Be sure to read THIS MESSAGE to get your new login set up to access your account.
gdrtx Absent Member.
Absent Member.
319 views

Dynamically Update GCV or Mapping Table entry


Using IDM 4, is there a way to dynamically update a value in a driver's
GCV or Mapping Table?

The scenario is:
I have 25 mailbox containers. The requirement is to place new
mailboxes into mailbox containers sequentially. The first user goes
into container 1, the second user goes into container 2, and so on until
all 25 mailbox containers have been used in order. Then for user 26 we
start back over in container 1 and go through the iteration again.

The issue I am having is I have no easy way to track the last mailbox
container used in the driver. The best solution I can determine is to
create a placeholder object in my directory and store the last used
container number in an unused attribute on that object. This process
works but seems sloppy and I'm looking to see if there is a better way.

Thanks in advance


--
gdrtx
------------------------------------------------------------------------
gdrtx's Profile: http://forums.novell.com/member.php?userid=114908
View this thread: http://forums.novell.com/showthread.php?t=452992

Labels (1)
0 Likes
9 Replies
Knowledge Partner
Knowledge Partner

Re: Dynamically Update GCV or Mapping Table entry

On 3/5/2012 4:06 PM, gdrtx wrote:
>
> The issue I am having is I have no easy way to track the last mailbox
> container used in the driver. The best solution I can determine is to
> create a placeholder object in my directory and store the last used
> container number in an unused attribute on that object. This process
> works but seems sloppy and I'm looking to see if there is a better way.


Driver scoped variable, will keep it alive for the driver duration.

Write it out to an attribute on the driver object every event, and load
it once, keep it in Driver scoped variable to use for future work.

0 Likes
gdrtx Absent Member.
Absent Member.

Re: Dynamically Update GCV or Mapping Table entry


Thanks for the quick response. This is an interesting solution that I
hadn't thought about but it makes me wonder what happens to the value if
the driver is restarted? Wouldn't the value be lost and therefore
require the cycle to start back at the beginning? If so then I'm not
too sure how viable of a solution this will be. I really need to find a
way to persist that data through driver/environment restarts so that the
cycle can continue unbroken. If there isn't a way to do this then it
may be deemed acceptable to restart the cycle in the event of a restart
of the driver or driver set but at this point I'm not sure what the
expectation is for subsequent driver mods and the frequency of potential
updates will be. Thanks again for the response. I will check out your
suggestion. If you have any additional thoughts I am all ears!


--
gdrtx
------------------------------------------------------------------------
gdrtx's Profile: http://forums.novell.com/member.php?userid=114908
View this thread: http://forums.novell.com/showthread.php?t=452992

0 Likes
Knowledge Partner
Knowledge Partner

Re: Dynamically Update GCV or Mapping Table entry

On Mon, 05 Mar 2012 21:06:01 +0000, gdrtx wrote:

> The issue I am having is I have no easy way to track the last mailbox
> container used in the driver. The best solution I can determine is to
> create a placeholder object in my directory and store the last used
> container number in an unused attribute on that object.


If you use the driver object itself, you don't need to create another
object. But, other than that, I think you've about got the right idea.
You can probably update a GCV on the driver, though I haven't tried to do
that myself.


--
--------------------------------------------------------------------------
David Gersic dgersic_@_niu.edu
Knowledge Partner http://forums.novell.com

Please post questions in the forums. No support provided via email.

0 Likes
tschloesser Super Contributor.
Super Contributor.

Re: Dynamically Update GCV or Mapping Table entry


Hi,

updating a GCV is possible, but it comes with two pitfalls:
1) The GCVs are stored as XML Object on either the driver or individual
gcv-ressource objects like this:
<?xml version="1.0" encoding="UTF-8"?>
<configuration-values>
<definitions>
<definition display-name="GCV Test" name="gcvTest" type="string">
<description>Just to test updating a GCV from a
driver</description>
<value>A new Test</value>
</definition>
</definitions>
</configuration-values>

This structure makes the update a little bit tricky.

2) the update will work, but will only be recognized by restarting the
driver.

The best option from my point of view would be to simply write the
value back to an given attribute of either the driver object or an
individual configuration object. I am using an Dirxml-Resource object in
such a case. It is offering a couple of attributes which could hold any
kind of data.

Thorsten


--
tschloesser
------------------------------------------------------------------------
tschloesser's Profile: http://forums.novell.com/member.php?userid=23213
View this thread: http://forums.novell.com/showthread.php?t=452992

0 Likes
jtl1 Absent Member.
Absent Member.

Re: Dynamically Update GCV or Mapping Table entry

Hello,

Yes, you can but you need to make sure that the xml structure of the attribute having the GCV is correct.
Problem is that once you have managed to update the right attribute on the right object you will also need to restart the driver
for the change to take effect. This can be done with a job or with an ecma script...


GVC objects: DirXML-DriverSet, DirXML-GlobalConfigSet, DirXML-Driver,
GCV attribute: DirXML-ConfigValues


The best solution, in my opinion, is to use a mapping table instead. A typical mapping table have one key and one or more values
for each key. A mapping table change doesn't require a driver restart. It is read when it is used.

You can use standard Policy Builder Actions like Set Source/Destination Attribute Value to update the mapping table.

Start with creatng the mapping table in Designer, add some rows and learn how to use in the policy builder. In the argument
builder the is a verb named Map that you should use.

Then have a look at the content from a directory browser (like iManager or Apache Directory Studio) and examine the value of
DirXML-Data for your mapping table. Once you start updating it from the policy builder make sure that the xml data is still valid!

Mapping table objects: DirXML-Resource
Mapping table attribute: DirXML-Data ( & DirXML-ContentType)

Best regards,
Tobias

On 2012-03-05 22:06, gdrtx wrote:
>
> Using IDM 4, is there a way to dynamically update a value in a driver's
> GCV or Mapping Table?
>
> The scenario is:
> I have 25 mailbox containers. The requirement is to place new
> mailboxes into mailbox containers sequentially. The first user goes
> into container 1, the second user goes into container 2, and so on until
> all 25 mailbox containers have been used in order. Then for user 26 we
> start back over in container 1 and go through the iteration again.
>
> The issue I am having is I have no easy way to track the last mailbox
> container used in the driver. The best solution I can determine is to
> create a placeholder object in my directory and store the last used
> container number in an unused attribute on that object. This process
> works but seems sloppy and I'm looking to see if there is a better way.
>
> Thanks in advance
>
>


0 Likes
jtl1 Absent Member.
Absent Member.

Re: Dynamically Update GCV or Mapping Table entry

Should have read your question more carefully and not answered on GCV vs Mapping Table. Sorry for that...

I would do as you say; create a dummy object that keeps track of the last container used. I usually use list objects and use the
Description attribute.

Gary's suggestion looks interesting!

Best regards,
Tobias


On 2012-03-06 13:38, Tobias Ljunggren wrote:
> Hello,
>
> Yes, you can but you need to make sure that the xml structure of the attribute having the GCV is correct.
> Problem is that once you have managed to update the right attribute on the right object you will also need to restart the driver
> for the change to take effect. This can be done with a job or with an ecma script...
>
>
> GVC objects: DirXML-DriverSet, DirXML-GlobalConfigSet, DirXML-Driver,
> GCV attribute: DirXML-ConfigValues
>
>
> The best solution, in my opinion, is to use a mapping table instead. A typical mapping table have one key and one or more values
> for each key. A mapping table change doesn't require a driver restart. It is read when it is used.
>
> You can use standard Policy Builder Actions like Set Source/Destination Attribute Value to update the mapping table.
>
> Start with creatng the mapping table in Designer, add some rows and learn how to use in the policy builder. In the argument
> builder the is a verb named Map that you should use.
>
> Then have a look at the content from a directory browser (like iManager or Apache Directory Studio) and examine the value of
> DirXML-Data for your mapping table. Once you start updating it from the policy builder make sure that the xml data is still valid!
>
> Mapping table objects: DirXML-Resource
> Mapping table attribute: DirXML-Data ( & DirXML-ContentType)
>
> Best regards,
> Tobias
>
> On 2012-03-05 22:06, gdrtx wrote:
>>
>> Using IDM 4, is there a way to dynamically update a value in a driver's
>> GCV or Mapping Table?
>>
>> The scenario is:
>> I have 25 mailbox containers. The requirement is to place new
>> mailboxes into mailbox containers sequentially. The first user goes
>> into container 1, the second user goes into container 2, and so on until
>> all 25 mailbox containers have been used in order. Then for user 26 we
>> start back over in container 1 and go through the iteration again.
>>
>> The issue I am having is I have no easy way to track the last mailbox
>> container used in the driver. The best solution I can determine is to
>> create a placeholder object in my directory and store the last used
>> container number in an unused attribute on that object. This process
>> works but seems sloppy and I'm looking to see if there is a better way.
>>
>> Thanks in advance
>>
>>

>


0 Likes
gholdefe Absent Member.
Absent Member.

Re: Dynamically Update GCV or Mapping Table entry


This may help.

We have a GCV that will select the smallest database (mailbox
containers) on the Exchange server. Not the exact algorithm you request
but it serves the same purpose. Ensures that X Mailbox containers in a
storage group are the same size or balanced...

We have a GCV called SmallestMessageStore:


((((Get-Mailbox -server ExchangeServerName -ResultSize:Unlimited |
Group-Object -Property:Database | Select-Object Name,Count | Sort-Object
-Property:Count)[0].Name).Split(\".\"))[0])


Then select the GCV for your script as:

-DATABASE: Global Configuration Value("SmallestMessageStore")

Gary


--
gholdefe
------------------------------------------------------------------------
gholdefe's Profile: http://forums.novell.com/member.php?userid=35453
View this thread: http://forums.novell.com/showthread.php?t=452992

0 Likes
IDM12 Absent Member.
Absent Member.

Re: Dynamically Update GCV or Mapping Table entry


gholdefe,

Question: In the above query is the only value that needs to be changed
ExchangeServerName?

Thanks,


--
IDM12
------------------------------------------------------------------------
IDM12's Profile: http://forums.novell.com/member.php?userid=124237
View this thread: http://forums.novell.com/showthread.php?t=452992

0 Likes
gholdefe Absent Member.
Absent Member.

Re: Dynamically Update GCV or Mapping Table entry


yes. that should do it


--
gholdefe
------------------------------------------------------------------------
gholdefe's Profile: http://forums.novell.com/member.php?userid=35453
View this thread: http://forums.novell.com/showthread.php?t=452992

0 Likes
The opinions expressed above are the personal opinions of the authors, not of Micro Focus. By using this site, you accept the Terms of Use and Rules of Participation. Certain versions of content ("Material") accessible here may contain branding from Hewlett-Packard Company (now HP Inc.) and Hewlett Packard Enterprise Company. As of September 1, 2017, the Material is now offered by Micro Focus, a separately owned and operated company. Any reference to the HP and Hewlett Packard Enterprise/HPE marks is historical in nature, and the HP and Hewlett Packard Enterprise/HPE marks are the property of their respective owners.