Thursday, May 20, 2010

Sharing Policies between Drivers in Novell IDM

Working with Novell IDM to integrate an HMS Payroll System hosted on an AS400 system in a DB2 database.  The customer has approximately 120 of these databases that need to be interfaced.  In order to accomplish this, I need to create 120 separate JDBC drivers.

I was able to architect and implement the drivers in such a way that all of the policies are identical.  The only differences between them are the connection parameters and some GCV's.  With all of the policies identical, I wanted to deploy them in such a way that updates to the drivers are easier than duplicating the modification 120 times.

By creating a new Library container within the driverset, I was able to reference the policies within the drivers from the shared Library.  This allows all of the drivers to subscribe to the same policy and XSL objects.  When an update needs to occur for the 120 drivers, the policy in question is updated in the library, then all of the drivers are restarted. 

To expedite the process of restarting all of the drivers, I simply restart DirXML on the servers hosting the drivers.  This will force a restart of these drivers, so long as they are set to automatic startup.

Please note that the Filter cannot be shared as it must exist on the driver object, so changes to filter will still require changing all 120 drivers individually.

2 comments:

  1. Hi Robert,

    I hope my idea works for you, but you can deploy an aux Java class and call it into the driver to send/receive/build data as you need; I think that you can create one driver and in the definition of it you can build the connections and parameters for the 120 data bases calling the aux class instead creating 120 drivers... The maintenance of it will be so hard.

    Kind regards,
    Daniel

    ReplyDelete
  2. We have done that for subscriber based drivers (from edir to application), these drivers are actually all publisher channel with polling, so we did the drivers native and copied them out.

    ReplyDelete