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 KB

Pipes 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

Similar Messages

  • Disable Shared memory & Named Pipes protocols - Post implementation issues

    Hi,
     As per security guidelines, we disabled Shared memory & Named Pipes protocols and enabled "TCP/IP" only. Also, we changed the port# from 1433 to 1533 and after that, in management studio, SQL Server Error logs is not openning up and SQL
    Agent Service doesn't start.
     Error while opening SQL Server Error Logs in SSMS:
    The description for Event ID 17052 from source MSSQLSERVER cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.
    If the event originated on another computer, the display information had to be saved with the event.
    The following information was included with the event:
    Severity: 16 Error:10061, OS: 10061 [Microsoft][SQL Server Native Client 11.0]TCP Provider: No connection could be made because the target machine actively refused it. 
    the message resource is present but the message is not found in the string/message table
    Error while trying to start SQL Agent Service from the configuration manager:
    SQLServerAgent could not be started (reason: Unable to connect to server '(local)'; SQLServerAgent cannot start).
     We changed the Server host in the registry by entering <ServerName>,<Port#>. This resolved SQL Agent Service startup issue. After startup, we tried to run jobs but they all are failing with the below error.
    Job runtime Error:
    Could not load package "Maintenance Plans\Daily DB Backups" because of error 0xC0014062.  Description: The LoadFromSQLServer method has encountered OLE DB error code 0x80004005 (Login timeout expired).  The SQL statement that was issued
    has failed.  Source:   Started:  4:40:45 PM  Finished: 4:41:00 PM  Elapsed:  15.547 seconds.  The package could not be loaded.  The step failed.
     Resolution: If I create an alias name then all problems are solved.
     Question: Alias name is the only one solution or is there any other turn around? For some reason, I’m not at all comfortable with alias name. I feel like cheating. :-) .
     PLEASE COMMENT
    If you feel that I have answered your question then please "Mark as Answer".

    Hi,
     Shared memory is a security threat reported by several security audit tools. In our company, we are using "DBProtect" and "FortiDB" tools. Both checks for "Shared memory" & "Named Pipes" protocols. In case,
    our server is compromised then the last step is to get into the SQL Server to steal the data and we are trying to restrict this from being happening. So, we are disabling both protocols.
     Finally, we got it worked.
     "Cliconfig" in run command and enable "TCP/IP" protocols and it worked like a charm. This is a fluke resolution and I don't know the technical reason why we need to do this in "Client Configuration" on the server when
    we have "Configuration Manager".
     We successfully configured by disabling "Shared memory/Named Pipes" protocols. SQL Browser is also disabled & no aliases are configured.
    Thanks.
    If you feel that I have answered your question then please "Mark as Answer".

  • Bcp out to windows named pipe

    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

  • Windows Named Pipe (sun.plugin2.ipc.windows)

    Hi,
    I'd like to use a Windows named pipe to communicate between my Java app and another Windows app.
    I've found references to the IPC plugin that provides a WindowsNamedPipe class and was wondering if there are examples out there, and if some of you have successfully used it in a stand-alone application!?
    Also: Where can I download the plugin's jar?
    Thanks,
    Wolf
    Edited by: user11180540 on Dec 19, 2011 3:08 AM

    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

  • Does LabView support the Named Pipe function for interprocess communications

    I have searched around ni.com enough to know that LabView for Unix supports this feature but don't know about for the PC running Win 2000 Pro.
    I am trying to have a LabView program that collects data and displays it using another program (non-LabView) running concurrently. The non-LabView program would display the data in a PPI window. We would like to use a Named Pipe method to transfer the data from the LabView program to the non-LabView program. Can that be done using LabView?
    Thanks.
    SonarRob

    There is a project on OpenG I have started which does implement pipes
    access under Windows in a similar way as has been available for Unix
    already in LabVIEW.
    The library is still to be considered Beta and there is no OpenG
    Commander package yet. I actually intend to also port it over to Linux
    but that could take a while. If you want to get the library for the
    time being, you will probably have to learn how to use CVS to access
    that library on the CVS servers on sourceforge. Alternatively you can
    access the repository over the web based CVS interface under
    http://cvs.sourceforge.net/viewcvs.py/opengtoolkit/pipe/. Here you will
    have to download everything in the "source" directory and if you want
    to see some examples for their use also the "test" directory.
    Rolf Kalbermatter
    Message Edited by rolfk on 07-07-2005 04:41 PM

  • Named pipes?

    Hi everyone,
    Anyone knows how to implement a full named pipe using java?
    i am wondering if it is possible to implement a named pipe in windows xp using .net which could "communicate" with a java app.
    Many thanks,

    Hi everyone,
    here is where i am stuck in:
    after reading the article i have a couple of questions:
    how can the command mkfifo in java be implemented?
    Besides, what i have done is as follows:
    i have an app which is using the runtime to create another process in order to receive all the messages from some libraries. For the moment it is receiving all the messages and copying them into a file (this part works perfectly)
    <Master Code>
    FileOutputStream fos = new FileOutputStream("text.txt");//args[0]);
    Runtime rt = Runtime.getRuntime();
    //Process pipe = rt.exec("mkfifo pipe");
    Process proc = rt.exec("java MainInterface");
    StreamGobbler outputGobbler = new
    StreamGobbler(proc.getInputStream(), "OUTPUT", fos);
    // kick them off
    outputGobbler.start();
    <end Master Code>
    <Thread which copyes into a file>
    class StreamGobbler extends Thread
    InputStream is;
    String type;
    OutputStream os;
    StreamGobbler(InputStream is, String type, OutputStream redirect)
    this.is = is;
    this.type = type;
    this.os = redirect;
    public void run()
    try
    PrintWriter pw = null;
    if (os != null)
    pw = new PrintWriter(os);
    InputStreamReader isr = new InputStreamReader(is);
    BufferedReader br = new BufferedReader(isr);
    String line=null;
    while ( (line = br.readLine()) != null)
    if (pw != null)
    pw.println(line);
    System.out.println(type + ">" + line);
    pw.flush();
    if (pw != null)
    pw.flush();
    } catch (IOException ioe)
    ioe.printStackTrace();
    <End Thread which copyes into a file>
    And the app called by this master program, which should show the messages incoming in the pip in a text area:
    <mainInterface>
    public static void main(String[] args) throws IOException{
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
    //Here should be the pipe called
    public void run() {
    createAndShowGUI();
    <End mainInterface>
    Now the point is how can be done to write instead in a file, into a pipe which the mainInterface could access
    Many thanks

  • Named pipes in java

    I need to use named pipes in my java application to communicate with a .net application.
    As named pipes is OS dependent and not included in java it would probably have to be included through JNI. Anyone have any idea how to do this? or if there already exist a library with this function?
    Some information on named pipes:
    http://msdn2.microsoft.com/en-us/library/aa365590(VS.85).aspx

    Zept wrote:
    Opening it like a file you mean? Haven't tried if that works from java, but would simplify things if it does. Just open open \\.\pipe\PipeName then?You can open devices in Windows that way, I don't see why a pipe would be any different. After all, a pipe is made to be treated like a filestream.
    I would also need to create a named pipe from my application. Any tips on how to do that? in .net one can call the CreateNamedPipe function, but to my knowledge that's not implemented in java (at least not by default). I though I might have to wrap it in JNI to use named pipes.AFAIK, that would need JNI since it's pretty OS-specific. IIRC, under Linux, a named pipe can be created anywhere in the filesystem, whereas under Windows, they're accessed from \\.\pipe\. You might look around and see if there's already a JNI library to do so.

  • 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.
    Albert

    Hi 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

  • 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.
    larry

    Named 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.

  • Getting FMS to broadcast a media file being read via a named pipe.

    I know you can broadcast partial AVI videos due to it's format. What I want to do, is feed an avi file to fms which is being generated by software on the local machine. If I create a named-pipe(on windows), will I be able to feed an avi file to fms while it's being read?

    Thanks Balusc!!
    I have made use of your code to display PDF files in an IFRAME tag too!!! I just dint believe that this would be possible. Please just take a look at my JSP page.
    <h:form id="CaseLookUp">
         <%
         String path = request.getContextPath()+"";
         out.print(path);
         %>
    <iframe scrolling="auto" src="<%=path%>/imageServlet?file=D:\70-229 V5.pdf" width="80%" height="600" ></iframe>
         </h:form>

  • 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

  • What should be started and enabled in SQL express 2008 R2? Shared memory, TCP/IP , named pipes, VIA

    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 ?
    Thanks

    Hi,
    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

  • SQL Server Agent - [165] ODBC Error: 0, Named Pipes Provider: Could not open a connection to SQL Server [2]. [SQLSTATE 08001]

    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.

Maybe you are looking for

  • Moving stuff from one JList to an other

    Hi, I'm trying to develop a JPanel with two JLists and two arrow JButtons to be able to move (!) stuff from the left JList to the Right and backwards. Both JLists have a ListCellRenderer that extend JLabel. Managed to do a 'copy' of selected values t

  • Logging CRS configuration changes

    Hallo, in a 10.1 RAC environment, is there a file which logs CRS configuration changes, like issuing a oifcfg -setif command? Thx

  • How to adjust the image captured when using Shift Ctrl Command 4 shortcut

    After installing Mavericks on my macbook pro I now have issues when I use shift ctrl command 4.  When pasting the image into an email it is very large and I am unable to edit it.  It used to copy in much smaller. 

  • Sony Bridge Crash - Updating Sony Xperia Active

    Hy! Im trying to update my Sony Xperia Active. The Update process starts and goes on. On the point where i have to put my phone off the bridge software crashes. Here the text my mac shows: Process: Sony Ericsson Bridge for Mac [629] Path: /Applicatio

  • How do u write a LEFT JOIN in Oracle Developer Forms 6i?

    I have 2 tables:PERSDET and EMP_MEDICAL_LTA PERSDET has EMP_ID,EMP_NAME n some other fields. EMP_MEDICAL_LTA has EMP_ID,FIELD1,FIELD2 n some other fields EMP_ID is the common field between these 2 tables. My requirement is to display all the EMP_NAME