Understanding SQL*Net
Types of SQL*Net Installations
With respect to compatibility with SQL*Net version 1, there are four significant types of SQL*Net version 2 networks:
- a single community with only SQL*Net version 2.x nodes
- a single community with both SQL*Net version 1 and SQL*Net version 2.x nodes
- two or more interconnected communities with only SQL*Net version 2.x nodes
- two or more interconnected communities with both SQL*Net version 1 and SQL*Net version 2.x nodes
Each of these is discussed in the following sections.
Single Community with Version 2.x Nodes
The simplest possible type of SQL*Net version 2.x installation is a single TNS community where all clients and servers use SQL*Net version 2.x for communication. Figure 4 - 1 shows a TNS community based on Novell's SPX/IPX where all of the clients and servers are using SQL*Net version 2.x for SPX/IPX.
Figure 4 - 1. Community with Only V2.x Nodes
In this example, because SQL*Net version 2.x is installed on both the clients and servers, any client can talk to any server in the community. For all connections, the version 2 syntax on the client and the listener on the server is used.
If SQL*Net version 2.x is available for all of the platforms in your client-server network, and all nodes run the same protocol, this is the layout you would choose.
Single Community with Version 1 and Version 2.x Nodes
During the initial release of SQL*Net version 2.x, there will be platforms on which SQL*Net version 2.x is available, and platforms on which SQL*Net version 1 is still the latest release. This is simply because the porting process on some platforms takes longer than on others.
As a result you may have a network in which both SQL*Net version 1 and SQL*Net version 2.x coexist. Figure 4 - 2 shows a network of TCP/IP hosts, some of which have SQL*Net version 2.x available, and some of which still run only SQL*Net version 1.
Figure 4 - 2. Single Community with V1 and V2.x Nodes
Each of the nodes in this community may require connectivity with any of the other nodes. Therefore, the nodes running SQL*Net version 2.x also have SQL*Net version 1 installed so that they can communicate with the SQL*Net version 1 nodes.
On nodes that can run only one SQL*Net driver at a time, such as MS-DOS, the lowest common denominator theory applies. If that node connects only to version 2.x servers, it should use SQL*Net version 2.x. If there are still SQL*Net version 1 servers it must communicate with, it should use SQL*Net version 1. However, it will be unable to connect to servers that have only version 2.x running.
Multiple Communities with Version 2.x Nodes
The third noteworthy type of network is a multi-community network running only SQL*Net version 2.x. This is a TNS network of at least two communities in which all of the members use SQL*Net version 2.x. Figure 4 - 3 shows a sample network of clients and servers based on the SPX/IPX and TCP/IP protocols.
Figure 4 - 3. Multiple Communities with V2.x Nodes
In the network shown, any of the clients can communicate with any of the servers:
- The SPX/IPX clients can connect to the SPX/IPX server. In this case, the Interchange is not used; this connection is similar to the connections in Figure 4 - 1.
- The TCP/IP clients can connect to the TCP/IP server. Once again, the Interchange is not used; this is similar to the connections in Figure 4 - 1.
- The SPX/IPX clients can connect to the TCP/IP server. These connections go from the client over SPX/IPX to the Interchange and from the Interchange over TCP/IP to the server.
- The TCP/IP clients can connect to the SPX/IPX server. These connections go from the client over TCP/IP to the Interchange and from the Interchange over SPX/IPX to the server.
For more information on the MultiProtocol Interchange, see the Oracle MultiProtocol Interchange Administrator's Guide.
Multiple Communities with Version 1 and Version 2.x Nodes
The last type of network to consider is a network with multiple communities in which not all of the nodes have SQL*Net version 2.x.
Figure 4 - 4 shows a sample network in which a TCP/IP community and an SPX/IPX community are joined by an Interchange.
Figure 4 - 4. Multiple Communities with V1 and V2.x Nodes
In the sample network shown, all of the nodes in the SPX/IPX community use SQL*Net version 2.x, but some of the nodes in the TCP/IP community only have SQL*Net version 1 available. All version 2.x servers have version 1 installed as well. In the picture shown, the nodes can communicate as follows:
- The SPX/IPX nodes communicate through SQL*Net version 2.x and the Interchange to the TCP/IP server.
- The TCP/IP nodes communicate among themselves using SQL*Net version 2.x where available; where it is not, they use SQL*Net version 1.
Note: Using the Interchange for cross-protocol connectivity requires SQL*Net version 2.x on both the client and the server. For example, if there were a server in the TCP/IP community that ran only SQL*Net version 1, the SPX/IPX clients could not access it through the Interchange. Similarly, if there were a server running SQL*Net version 2.x in the SPX/IPX community, the SQL*Net version 1 clients in the TCP/IP community could not access it.
The ability of SQL*Net version 2.x to connect clients and servers in different networks using the MultiProtocol Interchange is a feature unavailable on SQL*Net version 1. However, even in a single-protocol network, where both SQL*Net version 1 and version 2.x are available, there are many good reasons to move toward SQL*Net version 2.x. These reasons include:
- Increased manageability. SQL*Net version 2.x connect descriptor syntax is consistent over all protocols and easily understood by anyone familiar with the syntax. Also, the method of assigning a service name to a connect descriptor is the same on all platforms. Use Oracle Network Manager to generate configuration files. If you define the databases in the network once through Network Manager, any platform can connect to the databases so identified.
- Long-term support. SQL*Net version 1 will not be supported after June 30, 1996, so it is recommended that you complete migration to SQL*Net version 2 before this date. SQL*Net version 1 is no longer being shipped with Oracle7.
- Support for database features. SQL*Net version 2 is a requirement for some of the new features of the Oracle7 Server, such as the multi-threaded server. To fully use the features of Oracle7, you must migrate to the latest Oracle7 release, and to fully use the features of SQL*Net you must migrate to the latest SQL*Net release.
- Future enhancements. Future Oracle network products will be designed to enhance the functionality of SQL*Net version 2.x only. For example, Secure Network Services works only with SQL*Net release 2.1 or later.