Michael B Allen ioplex at gmail.com
Wed Feb 2 14:24:01 MST 2011

Hi Joe,

This is just another manifestation of the same issue you had a few
months ago. The getSecurity method is simply not designed to resolve
huge numbers of SIDs. As discussed previously, you need to implement
your own SID resolution code to serially resolve multiple SIDs in the
same RPC call and then cache them (actually you can probably just use
the JCIFS SID cache). The operative words here are *serially* and
*multiple*. Then you'll stop overloading the server trying to open LSA


Michael B Allen
Java Active Directory Integration

On Wed, Feb 2, 2011 at 3:56 PM, Joe Kramer <jkramer at vivisimo.com> wrote:
> We are experiencing a NT_STATUS_TOO_MANY_OPENED_FILES error when talking
> with an EMC NS-960 network storage server.
> When using SmbFile.getSecuirty(true) a jcifs.smb.SmbException:
> 0xC000011F is being thrown.  Has anyone else faced SmbException:
> 0xC000011F?  If so, how did you solve the problem?
> Details:
> Our connector is using the JCIFS library to crawl a file share that has
> a "homes" directory of 6800+ directories, each with up to 30
> sub-directories.  There are 6800+ users in the ACLs for each
> file/folder.  We are using JCIFS version 1.3.15.
> Stack trace:
> jcifs.smb.SmbException: 0xC000011F
> at jcifs.dcerpc.msrpc.LsaPolicyHandle.<init>(LsaPolicyHandle.java:36)
> at jcifs.smb.SID.resolveSids0(SID.java:137)
> at jcifs.smb.SID.resolveSids(SID.java:172)
> at jcifs.smb.SmbFile.processAces(SmbFile.java:2861)
> at jcifs.smb.SmbFile.getSecurity(SmbFile.java:2898)
> at
> com.vivisimo.connector.SMBConnector.retrieveACLForFile(SMBConnector.java:352)
> Code snippet:
> protected Set<String> retrieveACLForFile(SmbFile file)
> throws ConnectorException {
> ACE aces[];
> try {
> aces = file.getSecurity(true);   //line 352 that is throwing the error
> } catch (IOException ioe) {
> throw new ConnectorException("Could not get the ACL", ioe);
> }
> ...
> Thanks,
> Joe

More information about the jCIFS mailing list