IDM 4.7 VB scripting driver doesn't send info to eDirectory
I have a working driver for 1C HR system that is written in VB. It is running as a proccess in Windows Server (remote loader).
I need to create a new driver that would connect to a separate HR database instance. Basically, I created a driver from scratch in iManager and also created new proccess instance with same VB script.
I see in log files that all policies are initialized and information is saved into localdb file as it should be. After that script should publish values that were received from DB to eDirectory. This should do a function from IDMlib - IDMPublishValue.
However info doesn't go to eDirectory (seems that IDMPublishValue VB function doesn't work) and in log files I see repeating mesages that are sort of keep-alive packets (see below):
[08/20/19 16:25:56.396]:1C_RS_scratch :Remote Interface Driver: Connection monitor thread going to sleep.
[08/20/19 16:26:26.396]:1C_RS_scratch :Remote Interface Driver: Connection monitor thread waking up.
[08/20/19 16:26:26.397]:1C_RS_scratch :Remote Interface Driver: Connection monitor thread going to sleep.
And that is it. Nothing happens afterwards.
VB script is a 100% working since I copied it from a working driver. I also tried to connect to an already working remote loader and received the very same log from above.
What can I possibly do to fix this?
Thanks in advance,
Please send trace files to email@example.com. I'll be able to take a look at this in the evening (US Eastern Time).
NetIQ IDM Drivers (Third-Party)
> I created a driver from scratch in iManager and also created new proccess instance with same VB script.
Did you create a driver in iManager? Why do not use Designer?
Could you provide your trace (level 3)?
My suspicious that you missed definitions in your driver filter.
One important note is after you call IDMPublishValue for all values you need, you must call IDMPublish.
The Script Driver has a script log-- it's ...\WSDriver\logs\script-trace.log (e.g. C:\Program Files\NetIQ\WSDriver\logs\script-trace.log). If a script has an error you'll see the result there. You can also send your own messages to it using the IDMTrace function.
Those are just some ideas to start looking at the problem.
Info from your trace:
<init-params src-dn="\MGS_IDM_TREE\system\Driver Set\1C_RS_scratch">
<allow-attr attr-name="CN" />
<allow-attr attr-name="Member" />
<allow-attr attr-name="CN" />
Driver supposed to pickup updates for 2 Group attributes (CN, Member) and CN update for user.
All other attributes changes will be skipped.
Driver execute your script:
cscript //nologo "scripts\Poll.wsf" "C:\windows\TEMP\WSD4046.tmp"
No events (changes for CN/member) detected
ChangeLog_rescan: ending with 0 events
2019-08-21 10:27:41 (trace): --->DriverShim publisher channel: polling...
2019-08-21 10:27:41 (trace): --->DriverShim publisher channel: executing poll
2019-08-21 10:27:41 (trace): --->WindowsScript Driver Publisher channel: executing polling script
2019-08-21 10:27:41 (trace): WindowsScript_executeCommand: Executing command cscript //nologo "scripts\Poll.wsf" "C:\windows\TEMP\WSD4046.tmp"
2019-08-21 10:27:41 (drv_loopback): LoopBack_writeTimeStampFile: removing timestamp file (if present)
2019-08-21 10:27:42 (trace): WindowsScript_executeCommand: command exited with code 0
2019-08-21 10:27:42 (trace): --->DriverShim publisher channel: checking change log
2019-08-21 10:27:42 (drv_changelog): ChangeLog_rescan: starting
2019-08-21 10:27:42 (drv_changelog): ChangeLog_rescan: ending with 0 events
Try to validate, if your "custom" script generate required events (updates)
Currently, I have multiple instances of the Windows Scripting Driver on the same system created according to guide https://www.netiq.com/documentation/identity-manager-47-drivers/bi_impl_scripting/data/bi_impl_scripting.html#brh2jbf.
As it says in the guide I need to copy driver folder and just create new proccess instance.
Apparently, when I call poll.wsf from ...\WSDriver_RS_scratch driver changelog goes into original driver folder that I copied it from (which is ...\WSDriver). Therefore, there is nothing in my new driver’s changelog folder.
When I manually copy events from one changelog to new driver folder I receive Message: Code(-9064) No DN generated by object placement policy. However, placement policy is the copy from original driver. I noticed that when I copy events from changelog event doesn’t get CLASS_NAME value assigned and therefore DN couldn’t be generated.
Is there a way to fix this and make new driver to use its folders and not original driver folders? Also loopback folder is always empty and so on. Only log files are saved in the right place.
I tried to play with filter and it doesn’t seem to have effect. I think the main problem now is to make driver use its folder changelog and not to copy it manually.
Thank you for the explanation, Alexey.
I don't have scripting driver to validate the configuration.
Sam offered help in his reply.
Try to send your trace logs to firstname.lastname@example.org and I hope, Sam can advise you about the right direction.