Keeping named pipe with udev
We use a named pipe /dev/compress_pipe to gzip our export dump files while they are being written.
However, we recently started running on RH4 using udev, and now whenever we reboot the machine, our named pipe disappears.
One solution is to create the named pipe in a different directory. Another would be to add the mknod command to our init scripts.
But I'm wondering if there is a way to instruct udev not to remove our named pipe from the directory?
Oracle has made a document about udev (in fact for ASM) which can be found: http://www.oracle.com/technology/products/database/asm/pdf/device-mapper-udev-crs-asm%20rh4.pdf
another document about multipathing and udev:
http://dims.ncsa.uiuc.edu/set/san/src/linux-mpio.pdf
Both papers are limited to the function they specifically need and describe.
I haven't found the definitive paper on udev.
But both will give you some idea about how udev roughly works.
Similar Messages
-
Named pipes Windows (OpenG implementation)
Greetings,
I've run into a few issues with the OpenG Named Pipes implementation (by rolfk). I am unsure how much of this is due to my inexperience with pipes and how much is caused by the aging OpenG (beta) implementation.
Usage:
I want to pick up existing named pipes with LabVIEW to read data from them. Basic test case (simple example .vi from OpenG library) works (attached screenie 1).
Problem:
If I try to pick up pipe opened in separate .vi (or external to LabVIEW by third party software) I get error 42 when attempting to read it (screenie 2)
Questions:
Is there a resource to determine what the error codes cover? (I've also seen error 8, screenie 3, but only found description for error 6)
Is there reason to believe that the named pipe implementation no longer functions in Win7/LV8?
Am I butchering proper named pipe procedure and use?
Thank you in advance for your consideration!
Nicolai
Solved!
Go to Solution.
Attachments:
Screenie 1.jpg 92 KB
Screenie 2.jpg 96 KB
Screenie 3.jpg 93 KBPipes are point to point communication endpoints. That means you get undefined behaviour if you try to read the same pipe from multiple locations. In fact already the opening of a pipe for the same direction more than once might fail although it seems to work here (at least in screenie2), but if it wouldn't fail the Read that happens first will see the data that was sent and the rest won't see anything. You should definitely try to disable the ENTIRE Read pipe handling in your first VI in order to allow for the second VI to have any chances of working.
Error 42 is the LabVIEW error "generic error" used by the shared library when an error occurred that it doesn't specifically recognize. So that is not so helpfull when one can't go into the shared library itself to see what Windows API error happened.
Error code 8 is the LabVIEW errro code "file not found". The code tries to detect if a pipe with the name does already exist and if so it tries to connect to it. This could fail if the path to the pipe was invalid or if the pipe was opened with higher privileges than what you currently have or if it was opened by the other process for that direction already. This will generailly result in the error 8.
The OpenG Pipe library is indeed not a fully stable product. And it interfaces to a Windows part that is somewhat unknown and not so often used, and Microsoft is continously changing small parts of its implementation so that the library may indeed stumble over subtle changes in Windows over the time. Principially there shouldn't be any reason that it couldn't work in even Windows 8 since Pipes are a mechanisme that is used by many Windows components quite extensively it's just a little known feature for non-Microsoft applications and its semantics (details of operation) look a bit weird to the casual programmer. It originally (Windows NT) was trying to mimic the Posix standard but having been always different enough to what the normal Unix way of how pipes work is.
Rolf Kalbermatter
CIT Engineering Netherlands
a division of Test & Measurement Solutions -
Hey all, i need help
I have a job which was running quite peacefully for the last EVER, but since last Saturday it keeps failing and then run successfully and then fails. . . . .and gives me the below error.
Executed as user: Sx\xxx. Microsoft (R) SQL Server Execute Package Utility Version 10.0.5500.0 for 64-bit Copyright (C) Microsoft Corp 1984-2005. All rights reserved. Started: 9:00:00 PM Progress: 2014-03-11
21:00:02.16 Source: {122F32F1-F99F-4A5A-BA70-F5426B2747DA} Executing query "DECLARE @Guid UNIQUEIDENTIFIER EXECUTE msdb..sp...".: 100% complete End Progress Progress: 2014-03-11 21:00:02.19
Source: Manually replicate tables Executing query " USE DBNAME ".: 50% complete End Progress Error: 2014-03-11 21:00:22.35 Code: 0xC002F210 Source: Manually replicate
tables Execute SQL Task Description: Executing the query " exec usp_ReplicateEsourceTable 'Ebase'; ..." failed with the following error: "Named Pipes Provider: Could not open a connection to SQL
Server [53]. OLE DB provider "SQLNCLI10" for linked server "ServerName" returned message "Login timeout expired". OLE DB provider "SQLNCLI10" for linked server "ServerName" returned message "A
network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information
see SQL Server Books Online.".". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly. End Error Progress: 2014-03-11
21:00:22.45 Source: Notify on failure Executing query "exec msdb.dbo.sp_notify_operator @profile_name =...".: 100% complete End Progress DTExec: The package execution returned DTSER_FAILURE (1).
Started: 9:00:00 PM Finished: 9:00:23 PM Elapsed: 22.25 seconds. The package execution failed. The step failed.
I have already tested the linked server connection between those servers and its fine. And what is weird is that when i run the job manually it runs successfully.
Any ideas?Hi,
How often does the job run? Does the query fail intermittently?
I suggest you check the following configuration on both servers:
1. In SQL Server Configuration Manager, expand SQL Server Native Client Configuration, right-click
Client Protocols, and then click Properties. What’s the order of protocol?
2. Check if the default port of TCP/IP is set to 1433.
By default, the top protocol is to use TCP/IP and then Named Pipes. There are two possible situations:
1. Connection fails and client protocol is using TCP/IP 1433.
When server A remotes to server B, it will use TCP/IP connection. If it encounters some issue during connecting (such as network issues), it will use Named Pipes instead. If the Name Pipes 445 still fails, thus the above error message will
be thrown out. It will use Name Pipes afterwards until the SQL Server service is restarted.
2. The port number is not 1433.
However, the remote machine is listening 1433. Then, the linked server will trying to use TCP/IP first. Because of the port error, it will change to Name Pipes.
Thanks.
Tracy Cai
TechNet Community Support -
I'm trying to export from bcp to a Windows Named Pipe. Is this supported?
I'm getting the error below when running this export...
"bcp" [SQL_Class].[dbo].[Customer_table] out "\\.\pipe\testpipe" -S 12.12.122.12,12121 -U sa -e "err.txt" -o "out.txt" -w
I'm able to log on to SQL Server, but I'm getting this error...
SQLState = S1000, NativeError = 0
Error = [Microsoft][ODBC Driver 11 for SQL Server]Unable to open BCP host data-file
DimpipeServer
AsNewNamedPipeServerStream("testpipe",
PipeDirection.InOut, 4,
PipeTransmissionMode.Byte,
PipeOptions.Asynchronous, 131072,
131072)
pipeServer.WaitForConnection()
I've been able to start a reader which is Teradata Fastload and it is able to open the pipe and is waiting for the read from bcp, but I keep getting this error. Is it looking for the pipe on the server instead of locally? Is this a permission
error. I haven't found too much with regards to using bcp and a Windows Named Pipe so I'm just wondering if this is possible? Thanks.Hi coffingdw,
I agree with you. There should not be an issue with BCP. You can use following command to export the data to a txt file.
BCP MyAdventureWorks.Person.Person out "c:\out.txt" -S servername -T -c
As the description, I know you are using Teradata FastLoad. You can refer to the following thread regarding sending data to Windows Named Pipe in the Teradata website forum.
http://forums.teradata.com/forum/tools/sending-data-to-windows-named-pipe
Best Regards,
Tracy
Tracy Cai
TechNet Community Support -
I have a program which uses named pipes to communicate with a (third party) named pipe server. I call CreateFile to open the pipe, then Readfile and Writefile to read and write data. If I get an error, e.g. due to a network fault, I call CancelIo, then
CloseHandle to close the pipe, then Createfile to re-open it. I have tested this by unplugging/replugging the network cable. However, on site in a 'real' environment, I have had a couple of occasions where I have received a 'ERROR_NETNAME_DELETED' from the
pipe I/O, and when I close the handle and call CreateFile to try and recover, I get the error 'ERROR_SEM_TIMEOUT' from the CreateFile call. Can anyone think why this might be? I guess a difference between my testing and what is happening 'for real' might be
that my testing involved disconnecting the network cable, whereas the 'live' incident may have been just a temporary glitch on the network.Yes, unpluggin a network cable is entirely different from communication glitches, lost packets and firewall issues.
One of the big reasons is that unplugged network cables are detected by windows, and the port is shut down. In network management in control panel you'll see the red cross. resources associated with that port will be freed, and communications will be aborted.
However, if the network port stays up, Windows will not know that anything went wrong. It still sees an active port, so it will just keep waiting for data to arrive. Communications that were in process may still be waiting when you retry them, so you have
to be careful with the error handling, and verify that a) you handle all problems, and b) you cancel all necessary things.
If you want to test such scenarios, you could play with the firewall on the target computer to simulate lost packets and timeouts. -
Named Pipes Provider: Could not open a connection to SQL Server
We are running into an error on a SQL request from SQL-IDA to the SQL-IDB server. Both servers are on Windows 2005 with MS SQL Server 2003 SP3.
OLE DB provider "SQL-IDA" for linked server "SQL-IDB" returned message "Login timeout
expired".
OLE DB provider "SQL-IDA" for linked server "SQL-IDB" returned message "An error has
occurred while establishing a connection to the server. When connecting to SQL Server 2005,
this failure may be caused by the fact that under the default settings SQL Server does not
allow remote connections.".
Msg 53, Level 16, State 1, Line 0
Named Pipes Provider: Could not open a connection to SQL Server [53].
It seems to suggest that SQL-IDA cannot find the network path to SQL-IDB. We've followed the steps in this article http://support.microsoft.com/default.aspx?scid=kb;EN-US;914277 but it did not resolve our issue. Is it possible that the MSDTC dynamic port range
should be set to a specific range on both servers?
Any help is greatly appreciated.
AlbertHi Albert,
Can you try to use the SQL Server Management Studio on server ‘SQL-IDA’ to connect to the instance on server ‘SQL-IDB’ to see if it works or not?
There are possible reasons to error 53:
a) typo in the server name, or using "/" rather than "\" between server name and instance name, e.g. "myserver/myinst" is not correct.
b) name resolution to the server name is not correct, "ping -a yourserver" would tell if that's the case
c) The server machine is firewall'ed and file sharing is not in the exception list. You need put "File and Printer Sharing" in exception.
For more information:
Named Pipes Provider, error: 40 - Could not open a connection to SQL Server (Microsoft SQL Server, Error: XXX).
TechNet Subscriber Support
If you are
TechNet Subscription user and have any feedback on our support quality, please send your feedback
here.
Stephanie Lv
TechNet Community Support -
when testing a datasource connection I get the following error.
Named Pipes provider, error:40 could not open a connection to sql server.
I've read all the posts on this and nothing works. This is a scale out deployment and the connection
works from the other server I have setup with SRS that is connected to the same backend SRS databases. It just doesn't work from one of the SRS front ends. I'm at a loss.. please helpEnable both named pipe and TCP communications.
Make sure client is using the same (named) pipe name as server for connection.
Kalman Toth Database & OLAP Architect
Free T-SQL Scripts
New Book / Kindle: Exam 70-461 Bootcamp: Querying Microsoft SQL Server 2012 -
Export and Import using Named Pipes
Hai,
I need an clarification in export, import and compress of dumps using named pipes.I am using Oracle 9i RAC 9.2.0.4 in AIX 5.3. Every month i have to move list of tables from one database to another database after taking export dumps. The list of activities done by me at present are given below.
1. Taking export and gziping the dump file at the same time using named pipes.
2. Doing uncompress and import in the second database using named pipes.
We are doing compress for space constraints. Now my doubt is whether using named pipes, we can do both operation of import and compress of dump file at the same time. i.e, at the time of export itself , using named pipes, i need both import in the another database and compress the zip file. Is it possible?mknod exp.out p
exp dbadmin/admindb file=exp.out owner=scott log=export.log statistics=none &
imp dbadmin/admindb file=exp.out fromuser=scott touser=foobar log=import.log
rm exp.out
cat import.log
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Export file created by EXPORT:V10.02.01 via conventional path
import done in US7ASCII character set and UTF8 NCHAR character set
import server uses AL32UTF8 character set (possible charset conversion)
. importing SCOTT's objects into FOOBAR
. . importing table "BONUS" 0 rows imported
. . importing table "DEPT" 4 rows imported
. . importing table "EMP" 14 rows imported
. . importing table "SALGRADE" 5 rows imported
About to enable constraints...
Import terminated successfully without warnings.Edited by: sb92075 on Jan 1, 2010 1:42 PM -
Re: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server
Hi,
I'm encountering an issue with "Named Pipes Provider, error: 40 windows" and am having problems determining how to fix it due to the environment I'm using. I have two SQL Servers installed on two separate Win2K3 Server boxes, one is SQL Server 2000 and the other is SQL Server 2005. The SQL Server 2000 contains the actual application data. The 2005 database is used only for Reporting Services. I've set up the reports on SSRS such that their datasources hit the 2000 server. This is using SQL Server authentication.
When testing the reports via SSRS (in Visual Studio 2005), the connection to the data works and the reports are generated fine. When I deploy them to the reporting server and launch IE to test locally (still on the 2005 box), I get this "Named Pipes Provider, error 40" issue. I made sure that Named Pipes and TCP were enabled and the port set at 1433 (to match that on the 2000 box).
Now I changed the datasource's authentication from SQL Server to Windows authentication. I tested this in SSRS and this works too. When I redeployed the reports with this authentication change, testing the reports via IE locally (on the 2005 box) worked. Great. Now when I open IE on an external box, i.e. on the 2000 box, and try to test the reports, I get this same error 40 issue. I've been through a few threads describing the error 40, fiddling around with the SQL Server configuration as well as SSRS, to no avail. I have a feeling this error 40 issue has to due with permissions/authentication between the SQL Server boxes but I can't really be sure. Anyone have any ideas on how to troubleshoot my situation. Thanks.
larryNamed Pipes Provider, error: 40 - Could not open a connection to SQL Server :
I. Incorrect connection string, such as using SqlExpress.
Check out: http://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=558456&SiteID=17
https://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1245564&SiteID=1
The typical error when dealing with Express includes:
a. User is not aware of SqlExpress was installed as a named instance, consequently, in his/her connection string, he/she only specify ".","localhost" etc instead of ".\SqlExpress" or "<machinename>\Sqlexpress".
b. Np was disabld by default after installing SqlExpress.
c. If Sqlexpress was installed on the remote box, you need to enable remote connection for Express.
Please read the following blog for best practice of connecting to SqlExpress.
http://blogs.msdn.com/sql_protocols/archive/2006/03/23/558651.aspx
II. Named Pipes(NP) was not enabled on the SQL instance.
Check out: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=136253&SiteID=1
Oppose to SQL 2000 which turn on all protocols, SQL 2005 SKUs turn off NP by default. So, when you see this error, please check:
1) Go to SQL Server Configuration Manager, See Server has NP enabled.
2) %windir%\program files\microsoft sql server\mssql.1\mssql\log, notepad ERRORLOG, see whether Server is listening on NP. You should see "Server named pipe provider is ready to accept connection on [ \\.\pipe\sql\query ] or [\\.\pipe\mssql$<InstanceName>\sql\query]"
3) Notice that "sql\query" is the default pipe name, so you need to know server is listening on which pipe name. eg: if you specify server pipe name is "sql\query1", then you would see in the errorlog that server listening on [ \\.\pipe\sql\query1 ], and go to SQL Server Configuration Manager, click client Named Pipe properties, see whether the pipe name is same with the one server listening on.
4) If you are using SQL Native Client ODBC/OLEDB provider({SQL Native Client} or SQLNCLI), go to SQL Configuration Manager, click client protocols, make sure NP and TCP are both enabled. Right click properties of NP, make sure client is using the same pipe name as server for connection.
5) If you are using MDAC ODBC/OLEDB({SQL Server} or SQLOLEDB) provider, in command line, launch "cliconfg.exe" and make sure NP enabled and right pipe name specified.
III. Remote connection was not enabled.
Check out: when you right click on the Server in SQL Server Management Studio, in Connections, the Remote server connections part, you have enabled the "Allow remote connections to this server" check box
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=322792&SiteID=1
https://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=763875&SiteID=1
If you are making a remote connection, namely, your target SQL Server is on the different box as client application, you might need to check whether:
a. "File and Printer Sharing" was opened in Firewall exception list.
b. Please see the blog for enabling remote connection for express and troubleshooting tips of remote connection.
http://blogs.msdn.com/sql_protocols/archive/2005/11/14/492616.aspx
http://blogs.msdn.com/sql_protocols/archive/2006/09/30/SQL-Server-2005-Remote-Connectivity-Issue-TroubleShooting.aspx
IV. Server not started, or point to not a real server in your connection string.
Check out: Open SQL Server Surface Area Configuration and ensure all the required services are started, Remote Connections are configured.
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=348662&SiteID=1
a. use "sc query mssqlserver" for default instance or "sc query mssql$<instancename>" to make sure SQL Server was started. Sometimes, reseason behind the broken of your client application w/ this error:40 might be SQL server restarted and failed, so, it'd better for you to double check.
b. User specified wrong server in their connection string, as described in the forum discussion, "MSSQLSERVER" is an invalid instance name. Remember, when you connect to default instance, <machinename> could be best representitive for the instance, when you connect to a named instance such as sqlexpress, you should specify <machinename>\<instancename> as data source in your connection string.
V. Other reasons such as incorrect security context.
Check out: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=192622&SiteID=1
Such error also occured during user operation such as moving database or db mirroring or cluster, any DB OP that might invovle different sql instances, namely, the destination database is located in another sql instance and user is not aware of the state of the destination. I recommend you first isolate whether this fail is during connection stage or data operation stage.
a. During data operation, you are normally asked to type in the destination server name whether it is default to "(local)" or another server "<remotemachinename>". So, remember the exact string that represent the target instance, then when the error repros, open command line, use "sqlcmd -S<representitive> -E" ,see what happens, if the connection fail, please follow up above I - IV troubleshooting lists. otherwise continue.
b. If you can make basic conection, but still face the error, then there must be something that server reject the connection or client close the connection for some reason.
VI. Please try basic connectivity tests between the two mahcines you are working on. One simple way to verifty connectivity is to use command line tools, such as osql.exe. For example, osql -E -Stcpervername\instancename. If it connects cross-machine successfully, please also verify that your connection string in your scenario is correct.
Here are some blogs which could be helpful: just follow the basic connectivity troubleshooting guidelines on the SQL Protocols blog, see:
SQL Server 2005 Connectivity Issue Troubleshoot - Part I
http://blogs.msdn.com/sql_protocols/archive/2005/10/22/483684.aspx
and
SQL Server 2005 Connectivity Issue Troubleshoot - Part II
http://blogs.msdn.com/sql_protocols/archive/2005/10/29/486861.aspx
Hope this helps. -
Connecting to sqlserver using named pipe
I would like to connect to mssql (running on same PC as SQL Developer) using named pipes.
The host is listed in the Windows Service Manager as \\SX3102971\SIMSLOCAL
I have gone to the 'Oracle' tab, selected 'Advanced' and in the 'Custom JDBC URL'
entered
jdbc:jtds:sqlserver:\\SX3102971\SIMSLOCAL;namedPipe=true;user=<username>;password=<password>
where <username> and <password> are the true values.
I receive a message
Staus : Failure -Invalid connection information specified. Verify the URL format for the specified driver.
Can anyone advise on what may be wrong?
Also, can SQLDeveloper handle blank passwords?
The database is installed as part of a third party application, which sets the default dba logon with no password. SQL Developer states that a password is required. For the example above I have created my own log on.Hi,
I managed to solve the problem. So don't worry about it.
For others who are looking for the solution...
- I have referred to the http://www.qint.de/joria/doc/jdbc/jtds.html.
- I have changed the URL element in IDEConnections.xml file located under where SQLDEVELOPER software is installed.
- The URL must look like the following ...
<URL>jdbc:jtds:sqlserver://\\.\;namedPipe=true;instance=<name of the database - without the server name>;</URL>
Hope this helps.
Regards
Raja
Message was edited by:
rajaram_r -
I copied my Visual Studio 2008 projects to a new computer and am having trouble getting the database to attach to my website to continue with it.
I uninstalled SQL 2005 express and installed SQL 2008 R2 Express.
When I looked in the SQL Server configuration manager, I wasn't sure what should be running and what should be stopped and what protocols should be enabled, etc so I started everything and enabled everything.
However, the SQL Server Agent will not start. Maybe I did something wrong by enabling everything. I have everything to start automatically, and all enabled:
SQL Native Client: I right clicked and opened and under client protocols, have enabled all: Shared memory, TCP/IP , named pipes, VIA
and under SQL Server Network Configuration, I opened that and under there is listed protocols for SQLEXPRESS AND I enabled same things: Shared memory, TCP/IP , named pipes, VIA
When I could not start the SQL Server Agent before from the SQL Server configuration mgr. I went into services and started it that way and it did start. But since I have rebooted, it will not start that way either and I now get this message: Windows could
not start the SQL Server Agent(SQLEXPRESS) Service on local computer. Error 1067
I'm just trying to get my visual studio project working again. Would appreciate any help. Maybe I should uninstall SQL and reinstall 2005??Windows could not start the SQL Server Agent(SQLEXPRESS) Service on local computer.
As the others already wrote, with SQL Server Express in Version 2008 the "SQL Server Agent" will be installed, but it's not a Feature of the Express Edition and therefore you can't start & use it.
In SQL Server 2005 Express the Agent was completly missing (not installed), therefore you haven't this "issue" before.
Olaf Helper
[ Blog] [ Xing] [ MVP] -
SQL*Loader Named Pipe Load Thread goes to 0
Hi,
Running SQL*Loader 10.2.0.1.0 on XP pro against 10g EE 10.2.0.2.0 Production, RAC.
Control file:
OPTIONS ( MULTITHREADING=TRUE, DIRECT=TRUE, ROWS=5000000, COLUMNARRAYROWS = 200000 )
UNRECOVERABLE
LOAD DATA
--INFILE 'C:\Program Files\Delta Data Software, Inc\DDS Twenty Two C\SQL_LOADER\LDR.DAT' "fix 427"
INFILE '\\.\pipe\testpipe' "fix 427"
BADFILE 'C:\Program Files\Delta Data Software, Inc\DDS Twenty Two C\DataGen\S-INTERSP-DL.bad'
DISCARDFILE 'C:\Program Files\Delta Data Software, Inc\DDS Twenty Two C\DataGen\S-INTERSP-DL.dsc'
INSERT
INTO TABLE "TDW999999"
Data File is 1 million row text file, 427 byte per line
Problem:
When calling SqlLdr directly against the data file, the import runs in 1:47(min\secs).
Total stream buffers loaded by SQL*Loader main thread: 408
Total stream buffers loaded by SQL*Loader load thread: 2036
However, when I pipe the same data to SqlLdr via a simple c# application with a named pipe, it takes 5:56(mins\secs).
Pipe Base Load:
Total stream buffers loaded by SQL*Loader main thread: 104249
Total stream buffers loaded by SQL*Loader load thread: 0
It looks like SqlLdr can not go parallel when input is from a named pipe.
Any Ideas on how I can get my load thread count back up when using pipes ?
ThanksHi,
According to http://www.mcse.ms/archive27-2006-1-2068094.html you can do the following (substitute your c# program for 'type load.dat'):
>
type load.dat|sqlldr control=load.ctl userid=user/password data=\"-\"
Alternative (for both , unix and windows)- infile syntax:
load data
infile "-"
into table...
Metalink note 191043.1 may be interesting for you as well.
Does the performance then improve?
Cheers,
Colin -
Hi,
I keep receiving the error below in the SQL Server Agent Error Log;
[165] ODBC Error: 0, Named Pipes Provider: Could not open a connection to SQL Server [2]. [SQLSTATE 08001]
It is occurring approximately 20 times an hour and i cannot link it to any job failures. All jobs on the same SQL instance are working.
The server is a clustered server and there are no errors occuring in the SQL Server error log at the same time. I have attempted to trace using profiler looking for errors and warnings but anything that does occur doesn't seem to correspond to the reported
times of the errors within the sql agent error log.
Please could someone point me where to look next?
Many thanks.Please may I add that this is on a SQL Server 2008 R2 Enterprise edition patched to 10.50.1600.
Nah, that server is not patched at all, because 10.50.1600 is the RTM version. Find Service Pack 2 and install at the next maintenance window, after having performed tests according to your local policy.
It is not going to resolve your particular problem though.
It seems like you have a job that attempts to a connect to s server that is down or non-existing. The job may be configured to return success also on failures. I would check if there are jobs that target other servers.
Erland Sommarskog, SQL Server MVP, [email protected] -
Named Pipes Provider, error: 40 on workgroup workstations
I am having issues with a vendor supplied application. It generates an error when run from workstations that are not part of an Active Directory domain. The error is “provider: Named Pipes Provider, error: 40 –
Could not open a connection to SQL Server)”. It runs as expected when ran from a workstation that is a member of the domain. Obviously adding the workstation to the domain is a solution. However, because of concern of what might break this is not our preferred
solution.
The database is SQL Server 2008 on a 2008R2 system that is a member server of a domain. The systems that are having the error are workgroup systems running Windows 7. Except for the final step, I have pretty much
eliminated the other possibilities in Steps to troubleshoot SQL connectivity issues.
That, and the fact that the application successfully runs from a workstation that is a member of the domain lead me to believe it is an account/authentication issue on the workstation.
From what I have determined SQL authentication is required in this scenario and I have confirmed that the database server is configured for Windows and SQL Server authentication. I have also examined
the configuration file the application uses. It contains the user name and password for the account. Are these credentials not used to establish a connection?
The only thing I can think of, which I haven’t tested because 1) it is a production system and 2) it is a vendor supplied application, is the application needs to be run under a local workstation
account with the same credentials as the SQL Server account.
Could this be the case or is there something else I should be look at?
Thanks in advance.Thanks for your response. I had posted a reply earlier but for some reason it doesn't appear to have uploaded.
The server name in the connection string is ntsrv12.xxx.yyy.edu. I am able to ping that name and ntsrv12 as well from workstations where the application fails.
I have some information from some additional testing I have done. Using my workstation, which is a domain member, I can successfully run the application when logged on with my domain user account.
However, if I logon with a local account the application fails with the error described above.
I have also been able to match Audit Failures in the SQL Server event log with failed attempts to run the application. There is a two error sequence that appears several times for 15 seconds until the application times out and displays the error message.
I have listed the errors below but certainly the application appears to see the server. Any ideas on what to check next?
Thank you.
The first error in the sequence is this:
Log Name: Security
Source: Microsoft-Windows-Security-Auditing
Date:
5/6/2014 1:50:05 PM
Event ID: 4776
Task Category: Credential Validation
Level: Information
Keywords: Audit Failure
User:
N/A
Computer: Ntsrv12.xxx.yyy.edu
Description:
The computer attempted to validate the credentials for an account.
Authentication Package:
MICROSOFT_AUTHENTICATION_PACKAGE_V1_0
Logon Account: <MyLocalAccount>
Source Workstation:
<LocalSystemName>
Error Code:
0xc0000064
This error is followed by this one:
Log Name: Security
Source: Microsoft-Windows-Security-Auditing
Date:
5/6/2014 1:50:05 PM
Event ID: 4625
Task Category: Logon
Level: Information
Keywords: Audit Failure
User:
N/A
Computer: Ntsrv12.xxx.yyy.edu
Description:
An account failed to log on.
Subject:
Security ID:
NULL SID
Account Name:
Account Domain:
Logon ID:
0x0
Logon Type:
3
Account For Which Logon Failed:
Security ID:
NULL SID
Account Name:
<MyLocalAccount>
Account Domain:
<LocalSystemName>
Failure Information:
Failure Reason:
Unknown user name or bad password.
Status:
0xc000006d
Sub Status:
0xc0000064
Process Information:
Caller Process ID:
0x0
Caller Process Name: -
Network Information:
Workstation Name: <LocalSystemName>
Source Network Address:
10.1.36.70
Source Port:
50145
Detailed Authentication Information:
Logon Process:
NtLmSsp
Authentication Package:
NTLM
Transited Services:
Package Name (NTLM only):
Key Length:
0
This event is generated when a logon request fails. It is generated on the computer where access was attempted.
The Subject fields indicate the account on the local system which requested the logon. This is most commonly a service such as the Server service, or a local process such as Winlogon.exe or Services.exe.
The Logon Type field indicates the kind of logon that was requested. The most common types are 2 (interactive) and 3 (network).
The Process Information fields indicate which account and process on the system requested the logon.
The Network Information fields indicate where a remote logon request originated. Workstation name is not always available and may be left blank in some cases.
The authentication information fields provide detailed information about this specific logon request.
- Transited services indicate which intermediate services have participated in this logon request.
- Package name indicates which sub-protocol was used among the NTLM protocols.
- Key length indicates the length of the generated session key. This will be 0 if no session key was requested. -
An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: Named Pipes Provider,
error: 40 - Could not open a connection to SQL Server)An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: Named
Pipes Provider, error: 40 - Could not open a connection to SQL Server)
Hello,
Make sure your SQL Server service is started.
Make sure TCP\IP and names pipes protocol is enabled
Make sure you have made an exception in firewall for SQL Server connection
Make sure SQL Server browser service is enabled
Make sure you connect with correct name hostname\instance name for named instance,MSSQLSERVER for default instance and Hotname\SQLEXPRESS for express edition.
Please make sure you use port no when connecting to SQL server listeing on different port (hostname\instance ,portno)
http://blogs.msdn.com/sql_protocols/archive/2006/09/30/SQL-Server-2005-Remote-Connectivity-Issue-TroubleShooting.aspx
Hope this helps
Please mark this reply as the answer or vote as helpful, as appropriate, to make it useful for other readers
Maybe you are looking for
-
How do I separate my contacts from my husband's list of contacts?
I have a Galaxy S5 and my husband has an Apple iPhone 5S - how do I separate the contact lists - we DO ONT want to share the same ones but I cannot figure out how to separate them???
-
Always when I close FF 4.0 on my desktop running XP it says it failed to close correctly and is still running ? Same thing happened in another version of FF I believe.
-
Finding text in a PDF using preview has stopped working (correctly)
Finding text in a PDF using preview has stopped working (correctly). When I search for certain words in a PDF using preview, it correctly finds all the pages in the document with that word. However, it no longer highlights the word being searched fo
-
I need help in finding all the new fontsin iPad 2 using iOS 5
I need help in finding all the new fonts in ipad 2 using ios 5
-
HI gentlemen, When trying to install basicDemo, I got in a mesh. - Installing xdbUtility it does not create resource /sys/databaseSummary.xml because it already exists (from a first trial). - On trying to delete it from Enterprise Manager I receive O