What's the difference between the 2 network protocols..
Named Pipes and TCP/IP ?
I have installed Oracle 8.0.6 here on couple of machines. Whenever it comes to setting this I get confused. My boss told me that we should use TCP/IP. But sometimes that didn't work
giving errors like NO LISTNER and I wasn't able to connect to database. So I changed it to Named Pipes and it worked !
But today I tried to use Named pipes on the different machine connecting to same database and it gave me error TNS: Unable to connect...( I am sorry but I do not have exact error message right now).
I did do all basic checks like PATH, tnsnames.ora file, services etc.
I tried to read about this on Oracle website but no luck. Does any one know a book which explains this in detail ?
Can some one help me please ?
You can expect the TCP/IP to be installed on all the servers and it does a secured packet delivery. As a result most of the times your packets are safly deliverd. Unlike udp, tcp confirms delivery too. Named pipes are mostly used on the windows system. Since there had been a number of known hacks with IPC, for the safty, most of the Network Admin prefer to use TCP over IPC. Some places where they are paranoid about the security, use TCP with SSL (secured socket layer)
An interprocess control (IPC) protocol for exchanging information between two applications, possibly running on different computers in a network. Named Pipes are supported by a number of network operating systems (NOSs), including Netware and LAN Manager.
Abbreviation for Transmission Control Protocol/Internet Protocol, the suite of communications protocols used to connect hosts on the Internet. TCP/IP uses several protocols, the two main ones being TCP and IP. TCP/IP is built into the UNIX operating system and is used by the Internet, making it the de facto standard for transmitting data over networks. Even network operating systems that have their own protocols, such as Netware, also support TCP/IP.
Hope this would help you to undestand the concepts.
Below are the differences between named pipes and TCPIP (reference: saurabh sinha Hand book)
1. Named Pipes uses Inter-Process Communication (IPC) channels for efficient inter-server communication, as well as local area network (LAN) communication.
2. The Named Pipes protocol has some enhancements in SQL Server 2008 including support for encrypted traffic, but because of the excessive overhead of Named Pipes when connecting across networks or firewalls, and the additional port that Named Pipes requires to be opened (445),
3. It is generally a good idea to leave the Named Pipes protocol disabled.
4. There are many applications that take advantage of the Named Pipes protocol because they were designed for local network implementations.
5. Named Pipes provides easy access to Remote Procedure Calls (RPC) within a single security domain, and so is advantageous to these applications.
6. If you need to support one of applications need access to (RPC), and the SQL Server is not exposed to external traffic, the risk of enabling the Named Pipes protocol and corresponding endpoint is minimal.
7. Named Pipes protocol also offers high-performance benefits when used by client applications residing on the same box as the SQL Server database that's being accessed,
8. Named Pipes can also facilitate client connectivity to remote SQL Server databases or to SQL Server hosts on different machines
9. Named Pipes has two configurable properties
• Enabled: The Enabled property works the same as the Shared Memory protocol.
• Pipe Name: The Pipe Name specifies the inter-process pipe that SQL Server will listen on.
The default pipe is \\.\pipe\sql\query.
1. The TCP/IP protocol is the primary and preferred protocol for most SQL Server installations.
2. It allows communication across interconnected networks of computers with diverse hardware and operating systems.
3. TCP/IP is considered as the first choice after Shared Memory, because of its inherent network traffic routing standards and advanced security features.
4. It is configured on two separate tabs on the TCP/IP Properties window,
• The Protocol tab
• The IP Addresses tab
The Protocol tab has the following 3 configurable properties from sql2008 and 4th was in 2005:
• Enabled: This works the same as the other protocols.
• Keep Alive: This specifies how many milliseconds SQL Server waits to verify an idle connection is still valid by sending a KEEPALIVE packet. The default is 30,000 milliseconds.
• Listen All: This specifies whether SQL Server will listen on all IP addresses configured on the server.
• No Delay: This option specifies whether the TCP protocol queues small packets to send out larger packets. This queuing is typically undesirable in transaction-based systems, and so it should be left in its default configuration of No.
For forcing TCP/IP connections instead of Named Pipes connections is to use an IP address (instead of a host-name) as the data source within your connection strings, which forces the use of TCP/IP connectivity or pre-pend "tcp:" to the front of your host names in the data source section of your connection string.