Problem with running out of named pipe instances

In the process of running and debugging an application that makes named pipe requests to a named pipe server, I was getting an error indicating that the pipe was busy.  It appears that all of the named pipe instances were in use.  Is there any way to see what is using all of the instances.  Also, is there any way to increase the number of instances that NT allows (i.e. registry value).
dhomanAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

kuk010998Commented:
From Resource Kit Message Reference:
"All pipe instances are busy.
[Kernel32]
The pipe cannot be accessed because another process is using it.
Try the operation again later
"

Sounds like your message. So your app has opened the pipe, and has not closed it. Either you caused this by forgetting close calls, by skipping the close, or by stopping the app. You´d need to end the *process* that holds these opened pipes - possibly with restarting the debugger. Also, think about opening the pipe with different share options.

Some misc stuff:
Registry entries for workstation service described in Q102981 - timeouts for nonblocking requests where there is no data available.
"Limit of 49 Named Pipe Connections from a Single Workstation" = KB Q141709.

Other than Server Manager, I know of no way to " see what is using all of the (pipe) instances" but perhaps the www.ntinternals.com guys have something.

Good luck.

0
kuk010998Commented:
You should *definitely* check http://www.ntinternals.com/nthandlex.htm.
0
dhomanAuthor Commented:
What determines how many pipes are available.  Does the pipe server controller this.  Does NT control how many pipes are available per process.  If it is controlled by the pipe server, how do you set it progammatically.  If its controlled by NT is there any way to set it via the registry
0
Rowby Goren Makes an Impact on Screen and Online

Learn about longtime user Rowby Goren and his great contributions to the site. We explore his method for posing questions that are likely to yield a solution, and take a look at how his career transformed from a Hollywood writer to a website entrepreneur.

kuk010998Commented:
I do not think there is an inherent limit to the number of pipes per se. The server does limit the number of pipe connections *per client*, that´s what Q141709 says. You can push this limit by setting HKLM\System\ccs\Services\LanmanServer\Parameters\MaxMpxCt REG_DWORD on the pipe server (thought you´d get this out of Q141709 yourself, never hurts to read KB articles in full detail), but the range for this value is only 1 to 100, so you won´t gain too much. As pipes are implemented as pseudo-filesystem (npfs - just like msfs are the mailslots) you should experience more or less the same limits as with open file handles....

Nevertheless, I still think your program should not need more than one instance per pipe, and that you should check your debugging habits, Close calls, and sharing approach...
0
kuk010998Commented:
I do not think there is an inherent limit to the number of pipes per se. The server does limit the number of pipe connections *per client*, that´s what Q141709 says. You can push this limit by setting HKLM\System\ccs\Services\LanmanServer\Parameters\MaxMpxCt REG_DWORD on the pipe server (thought you´d get this out of Q141709 yourself, never hurts to read KB articles in full detail), but the range for this value is only 1 to 100, so you won´t gain too much. As pipes are implemented as pseudo-filesystem (npfs - just like msfs are the mailslots) you should experience more or less the same limits as with open file handles....

Nevertheless, I still think your program should not need more than one instance per pipe, and that you should check your debugging habits, Close calls, and sharing approach...
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
dhomanAuthor Commented:
Thanks for the help.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Windows Networking

From novice to tech pro — start learning today.