[389-users] nsDirectoryServerTask objectClass

Rich Megginson rmeggins at redhat.com
Tue Aug 18 14:00:36 UTC 2009


Juan Asensio Sánchez wrote:
> Well
>
> I have found the errors. When I execute the script db2index.pl, i was
> using the server instance instead the database instance for the -n
> parameter.With the LDAP file i forgot to include the nsInstance
> attribue, as Rich said.
>
> Now the tasks for reindexing are created OK, but i use a script that
> creates lots of tasks to update the indexes of the database, so the
> first task for the database runs ok, but the others don't run because
> of this error. The attributes of the tasks are for nstasklog and
> nstaskstatus "Index failed (error -1)", and in the error log i get
> "ldbm: 'userRoot' is already in the middle of another task and cannot
> be disturbed.". Is there any way to run the tasks in order, starting
> one when other finishes?
>   
Yes.  Using the task interface, you simply do a search of the index task 
entry.  When the entry has the nsTaskExitCode, the task is completed.  
The value of that attribute will be 0 if the task was successful, or 
some error code if not.
The server will remove the entry automatically after a certain period of 
time, so if the entry does not exist (err=32) then the task is 
completed, but you will not be able to get the exit code.
> Regards.
>
> 2009/8/17 Rich Megginson <rmeggins at redhat.com>:
>   
>> Juan Asensio Sánchez wrote:
>>     
>>> Hi
>>>
>>> I can't get this to work. Even with the script db2index.pl, i get an
>>> error:
>>>
>>>
>>> ===============================================================================
>>> [root at server11 slapd-center1]# ./db2index.pl  -D "cn=Directory
>>> Manager" -w - -v -n center1 -t cn:eq
>>> Bind Password:
>>>
>>> ldapmodify: started Mon Aug 17 11:49:52 2009
>>>
>>> ldap_init( server11.center1.xxxxxxxx.local, 389 )
>>> add objectclass:
>>>        top
>>>        extensibleObject
>>> add cn:
>>>        db2index_2009_8_17_11_49_52
>>> add nsInstance:
>>>        center1
>>> add nsIndexAttribute:
>>>        cn:eq
>>> adding new entry cn=db2index_2009_8_17_11_49_52, cn=index, cn=tasks,
>>> cn=config
>>> ldap_add: No such object
>>>
>>>       
>> look in /var/log/dirsrv/slapd-instance/access - find the ADD operation
>> corresponding to this - which entry does it complain about?
>>     
>>> ===============================================================================
>>>
>>>
>>> With an LDIF file:
>>>
>>>
>>> ===============================================================================
>>> [root at server11 ~]# cat index_cn.ldif
>>> dn : cn=cn_index_task, cn=index, cn=tasks, cn=config
>>> objectClass: top
>>> objectClass: extensibleObject
>>> cn: cn_index_task
>>> nsIndexAttribute: eq:pres
>>> [root at server11 ~]# ldapadd -H ldap://localhost -D "cn=Directory
>>> Manager" -W -x -f index_cn.ldif
>>> Enter LDAP Password:
>>> adding new entry "cn=cn_index_task, cn=index, cn=tasks, cn=config"
>>> ldapadd: Object class violation (65)
>>>
>>>       
>> You are missing
>> nsInstance: center1
>>     
>>> ===============================================================================
>>>
>>> Any idea?
>>>
>>> Thanks in advance.
>>>
>>>
>>> 2009/8/14 Rich Megginson <rmeggins at redhat.com>:
>>>
>>>       
>>>> Juan Asensio Sánchez wrote:
>>>>
>>>>         
>>>>> Hi
>>>>>
>>>>> I am trying to create a task to update the index database, according
>>>>> to the instructions described here:
>>>>>
>>>>> -
>>>>>
>>>>> http://www.redhat.com/docs/manuals/dir-server/8.1/admin/applying-indexes.html
>>>>> -
>>>>> http://directory.fedoraproject.org/wiki/Task_Invocation_Via_LDAP_Design
>>>>>
>>>>> But when I create the task from a Perl script, i get an error about
>>>>> unknown object class:
>>>>>
>>>>> my $entry = Net::LDAP::Entry->new();
>>>>> $tmp_index_name = 'cn';
>>>>> my $cn = "$tmp_index_name index task";
>>>>> $entry->dn("cn=$cn, cn=index, cn=tasks, cn=config");
>>>>> $entry->add('objectClass' => ['nsDirectoryServerTask']);
>>>>> $entry->add('cn' => $cn);
>>>>> $entry->add('nsindexattribute' => "\"eq:pres\"");
>>>>> my $res = $entry->update($ldap_conn);
>>>>>
>>>>> The error is 'unknown object class "nsDirectoryServerTask"'. Where is
>>>>> that objectClass defined?
>>>>>
>>>>>
>>>>>           
>>>> It is not defined.  The documentation is wrong.  Just use
>>>> extensibleObject
>>>> as the objectclass.  For more information and examples, see the various
>>>> perl
>>>> scripts created for each instance in /usr/lib/dirsrv/slapd-instance -
>>>> db2ldif.pl, ldif2db.pl, db2index.pl, etc.
>>>>
>>>> And please file a bug to correct that documentation.
>>>>
>>>>         
>>>>> # rpm -qa | grep -i fedora
>>>>> fedora-ds-admin-1.1.1-1.fc6
>>>>> fedora-ds-1.1.0-3.fc6
>>>>> fedora-ds-base-1.1.0-3.fc6
>>>>> fedora-admin-console-1.1.0-4.fc6
>>>>> fedora-idm-console-1.1.0-5.fc6
>>>>> fedora-ds-console-1.1.0-5.fc6
>>>>> # uname -a
>>>>> Linux grsgscbulp0301.sacyl.es 2.6.18-128.1.10.el5.centos.plusPAE #1
>>>>> SMP Mon May 11 07:51:33 EDT 2009 i686 i686 i386 GNU/Linux
>>>>>
>>>>> Regards and thanks in advance.
>>>>>
>>>>> --
>>>>> 389 users mailing list
>>>>> 389-users at redhat.com
>>>>> https://www.redhat.com/mailman/listinfo/fedora-directory-users
>>>>>
>>>>>
>>>>>           
>>>> --
>>>> 389 users mailing list
>>>> 389-users at redhat.com
>>>> https://www.redhat.com/mailman/listinfo/fedora-directory-users
>>>>
>>>>
>>>>
>>>>         
>>> --
>>> 389 users mailing list
>>> 389-users at redhat.com
>>> https://www.redhat.com/mailman/listinfo/fedora-directory-users
>>>
>>>       
>>
>> --
>> 389 users mailing list
>> 389-users at redhat.com
>> https://www.redhat.com/mailman/listinfo/fedora-directory-users
>>
>>
>>     
>
> --
> 389 users mailing list
> 389-users at redhat.com
> https://www.redhat.com/mailman/listinfo/fedora-directory-users
>   


-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3258 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://listman.redhat.com/archives/fedora-directory-users/attachments/20090818/2645d8c1/attachment.bin>


More information about the Fedora-directory-users mailing list