Test for schemaUpdateNow

Anatoliy Atanasov anatoliy.atanasov at postpath.com
Thu Jul 16 10:15:17 MDT 2009


Hi Metze, Andrew,

I dug some more in schemaUpdateNow against Active Directory and I think I have found an explanation why it doesn't need explicit call to update the schema cache. 
According to: http://technet.microsoft.com/en-us/library/cc961572.aspx

..."When the computer is started, the schema cache is loaded from the underlying database and updated automatically whenever the on-disk version is updated. When changes are made to the schema, the schema cache is automatically updated within five minutes after the first change was applied."
..."There is also a mechanism for updating the schema cache on demand. You can use this when you modify the schema. You can add the schemaUpdateNow attribute to the rootDSE with a value of 1. The value is not used; it acts as a trigger or operational attribute. Writing this attribute starts a cache reload."

This _automatic_ schema cache update is the reason we can't have the same test for schemaUpdateNow against Windows.

Regards,
Anatoliy


> -----Original Message-----
> From: Anatoliy Atanasov
> Sent: Wednesday, July 08, 2009 11:57
> To: 'Stefan (metze) Metzmacher'
> Cc: samba-technical at samba.org
> Subject: RE: Test for schemaUpdateNow
> 
> Hi Metze,
> 
> I edited the test so each LDAP call is on different connection and I am
> not sending schemaUpdateNow command.
> I run it against Windows 2003 and Samba4 not in "-M single" mode.
> The result is that the test failed against Samba and passed against
> Windows 2003.
> 
> Regards,
> Anatoliy
> 
> > -----Original Message-----
> > From: Stefan (metze) Metzmacher [mailto:metze at samba.org]
> > Sent: Tuesday, July 07, 2009 18:07
> > To: Anatoliy Atanasov
> > Cc: samba-technical at samba.org
> > Subject: Re: Test for schemaUpdateNow
> >
> > Hi Anatoliy,
> >
> > > What did you run to verify that schemaUpdateNow works only in single
> > process model, I use make test TESTS=ldap to run the test.
> >
> > I didn't run anything. dsdb_make_schema_global() operates on a global
> > variable and can't work with the fork model.
> >
> > > I also tried:
> > > self.ldb = Ldb(host, credentials=creds, session_info=system_session(),
> > lp=lp)
> > >
> > > After each self.ldb.add_ldif(ldif) to get a new Ldb connection and it
> > worked just the same
> >
> > Also against Windows?
> >
> > metze



More information about the samba-technical mailing list