An updated version of Peter Lambrechtsen's dxqueue library

2 Likes

A while ago I was looking for a way to send an XDS document to another driver's cache for processing.

I already knew how to call DXCommand to inject an event for immediate asynchronous processing or send a command for synchronous processing to another driver but could not find an option to queue an event into cache in that class, which seemed a bit odd, since that's an obvious third option that would make sense to offer.

Luckily Peter Lambrechtsen wrote and published a library to fill that gap a while a go on Cool Solutions, now available here. So I gave that a try and while it looked overall promising I soon ran into a known bug that needed fixing. And while I was at it, I added tracing support and an example Designer project for easy evaluation as well.

Downloads and source code are available at GitHub.

Comment List
Anonymous
Parents
  • Tested few more things:

     

     

    <do-set-local-variable name="local.sub.etp.Schedule" scope="policy"> <arg-string> <token-xpath expression="es:sendQueueEvent($DriverDN, $local.sub.etp.EventtoXds)"/> </arg-string> </do-set-local-variable>

     

    1) Xds should be Nodeset ($local.sub.etp.EventtoXds)

    2) Driver DN is in slashed format   (\DRVSET\M\Services\IDM\DriverSet\RecievingDrvier)

     

    I took old processed event from another IDM server within same driver set and submitted the event to a receiving driver running on server where the sender is running, I could see event was cached  and seen in event cached on the receiving driver only where sender was running   (seen while i stopped  the receiving driver), but as soon i start driver, i see in trace 3 level and  only  <input> empty node came in trace 3 level, and rest of the event was probably discarded by engine. 

    So prob. engine optimized event and discarded old event or something with where (server) the event was generate!

    my event i submitted was:

     

    <modify cached-time="20201225021127.744Z" class-name="User" event-id="SERVER1#20201225021127#1#1:c200ce83-3d19-499a-a117-83ce00c2193d" qualified-src-dn="O=TREE\OU=E\OU=S\CN=jamesdean" src-dn="\T\TREE\E\S\jamesdean" src-entry-id="1714285" timestamp="1608862287#99"> <modify-attr attr-name="Full Name"> <add-value> <value timestamp="1608862287#83" type="string">James Dean</value> </add-value> </modify-attr> <modify-attr attr-name="Surname"> <add-value> <value timestamp="1608862287#85" type="string">Dean</value> </add-value> </modify-attr> </modify>

     

     

Comment
  • Tested few more things:

     

     

    <do-set-local-variable name="local.sub.etp.Schedule" scope="policy"> <arg-string> <token-xpath expression="es:sendQueueEvent($DriverDN, $local.sub.etp.EventtoXds)"/> </arg-string> </do-set-local-variable>

     

    1) Xds should be Nodeset ($local.sub.etp.EventtoXds)

    2) Driver DN is in slashed format   (\DRVSET\M\Services\IDM\DriverSet\RecievingDrvier)

     

    I took old processed event from another IDM server within same driver set and submitted the event to a receiving driver running on server where the sender is running, I could see event was cached  and seen in event cached on the receiving driver only where sender was running   (seen while i stopped  the receiving driver), but as soon i start driver, i see in trace 3 level and  only  <input> empty node came in trace 3 level, and rest of the event was probably discarded by engine. 

    So prob. engine optimized event and discarded old event or something with where (server) the event was generate!

    my event i submitted was:

     

    <modify cached-time="20201225021127.744Z" class-name="User" event-id="SERVER1#20201225021127#1#1:c200ce83-3d19-499a-a117-83ce00c2193d" qualified-src-dn="O=TREE\OU=E\OU=S\CN=jamesdean" src-dn="\T\TREE\E\S\jamesdean" src-entry-id="1714285" timestamp="1608862287#99"> <modify-attr attr-name="Full Name"> <add-value> <value timestamp="1608862287#83" type="string">James Dean</value> </add-value> </modify-attr> <modify-attr attr-name="Surname"> <add-value> <value timestamp="1608862287#85" type="string">Dean</value> </add-value> </modify-attr> </modify>

     

     

Children
No Data
Related Discussions
Recommended