Thanks for the help. I am running my script on a Windows2003 server in a
mixed-mode Active Directory domain. Following your advice, it looks like the
DC gets slammed and starts rejecting LDAP request. I added the following
piece of code but with no luck.

while ( ! ($dnParent = Win32::OLE ->
GetObject("LDAP://$DCONTROLLERS[$DC_ELE]/$STUDENTDN")) ) {
       print "$DCONTROLLERS[$DC_ELE] failed!\n";
       $DC_ELE++;
} 

I set $Win32::OLE::Warn = 1, which I bieleve will cause any errors to return
undef. Does anybody know
of a better way to handle this?

Thanks,

David


-----Original Message-----
From: Steven Manross [mailto:[EMAIL PROTECTED] 
Sent: Thursday, September 08, 2005 4:29 PM
To: David Nickel; perl-win32-admin@listserv.ActiveState.com
Subject: RE: [OLE] Server not reponding

If it's NT4, ADSI 2.5 in NT4 was always a bit flaky I moved away from ADSI
on NT4 years ago...  Moving the script to a W2K box would be your best bet
(but I'm guessing that you aren't running it on NT4, so we'll move on).

Is there any way that you're hitting it at heavy load periods (or creating
heavy loads?)?  I've seen Perl bring a DC to it's knees (but that was with
repetitive LanManager calls, but similar in number to the amount of calls
you are doing.

The 0x8007203a truly means it can't connect via LDAP.  Whether the ADSI
provider is freaking out, or you've killed the server with the amount of
requests, or just pushed it over the edge because it was already at high
load..  The result is still the same.

No LDAP queries are successful because it's not responding correctly.
For lack of a better analogy..  It's like a SQL Server connection timeout...
"It didn't respond in the specified time, so I think it's not there."

I'd probably start by running performance monitor on the server, to capture
network interface, CPU and memory counters.  That would, at least, give you
a yay or nay on my thoughts.

Another way to get around this..  Or at least to distribute your load more
evenly, would be to touch your DCs in a round-robin approach.. In each
repetitive call.
user1=dc1,user2=dc2,user3=dc3,user4=dc1,user5=dc2,user6=dc3, etc.

Or, if you get an 8007203a error while trying to touch one user, you could
code it so that it goes to the next server in the list, and try the failed
getobject with another DC to see if this is a client issue, or just that DC.

Anyway, that's how I would troubleshoot/work-around it.

Steven

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of
David Nickel
Sent: Thursday, September 08, 2005 9:20 AM
To: perl-win32-admin@listserv.ActiveState.com
Subject: [OLE] Server not reponding

I have an account creation script that parses through a text file (755KB and
6336 lines of user information). The script enables users that are currently
disabled in our AD Domain and creates new users account for users that do
not exist. The script will run fine sometimes and other times I get the
following error when entering the subroutine to create new user: 

Win32::OLE(0.1701) error 0x8007203a: "The server is not operational"
    after character 0 in "LDAP://DC/ou=Users,ou=Domain Users,dc=foo,dc=com"
at C:\Scripts\Addenable\addenable.pl line 214
        eval {...} called at C:\Scripts\Addenable\addenable.pl line 214
        main::createJagNet('SCALAR(0x1ae138c)', 'SCALAR(0x1ae13a4) ae13bc)',
'SCALAR(0x1ae13d4)', 'SCALAR(0x1ae13ec)', 'SCALAR(0x1afa
(0x1afa9c0)') called at C:\Scripts\Addenable\addenable.pl line 76

It seems to be caused by the following piece of code.
my $dnParent = Win32::OLE ->
GetObject("LDAP://$DCONTROLLER/$STUDENTDN");

Any help or advice would be much appreciated.
Thanks,

David

_______________________________________________
Perl-Win32-Admin mailing list
Perl-Win32-Admin@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


_______________________________________________
Perl-Win32-Admin mailing list
Perl-Win32-Admin@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to