In general, "pooling" is the storing of previously established resources that are no longer active. Pooling assists in performance optimization based on using collections of pre-allocated resources, such as objects or database connections. It is more efficient to draw an existing resource from the pool than to create a new resource.
"Connection Pooling" is the saving and reusing of a group of inactive initial connections from an application to a database. Using a pooled connection can result in significant performance gains, because applications can save the overhead involved in making a connection. This can be particularly significant for middle-tier applications that connect over a network, or for applications that repeatedly connect and disconnect, such as Internet applications. Connection pooling is implemented not by a driver, but rather by the driver manager. The driver manager attempts to find an existing pooled environment that matches the environment attributes set by the application. If it finds a pooled connection that matches the one requested by the application, that connection is given to the application.
DataDirect SequeLink products consider "connections" to be the connection from the SequeLink Client (ODBC, ADO, .NET, or JDBC) to the SequeLink Server (not to the actual database).
SequeLink Client for ODBC on Windows supports connection pooling as the Microsoft driver manager implements it.
SequeLink Client for ADO on Windows supports resource pooling as it is implemented by the Microsoft OLE DB core components
SequeLink Client for .NET supports Microsoft compatible connection pooling.
SequeLink Client for JDBC on all platforms supports connection pooling, which is implemented through a pool manager.
"Thread pooling" is the saving and reusing of a group of inactive threads on a connection from an application to a database. Applications can make multiple database requests on a single connection. In order to save the time it takes to initiate a new thread, connections can be set up to save previously created but currently idle threads for future use by database requests.
Server side database connection pooling has been added with DataDirect SequeLink, Release 5.5.
The min threads should be equal to the expected number of concurrently active users (add 5 for internal processing overhead) and the max threads should be equal to the maximum number of concurrently active users (add 5 for internal processing overhead).
For example, if you have an environment where there are 100 users connected, but due to the type of work they do, only 10 of them or concurrently processing SequeLink requests, you could set minthreads to 15 and maxthreads to 105.
In general, if the min/max thread numbers don't differ a whole lot, it's not a bad idea to set min=max. This will avoid the overhead of thread start/stop processing, while the actual overhead of having too many threads created is probably less important. In general, don't set the max threads too high. It certainly makes no sense to set max higher than the number of expected connections.
IPC is a set of programming interfaces that allow a programmer to create and manage individual program process that can run concurrently in an operating system. This allows a program to handle many user requests at the same time. Since a single user request may result in multiple processes running in the operating system on the user's behalf, the processes need to communicate. The IPC interfaces make this possible.
The IPC protocol is similar to the BEQ protocol in that it can only be used when the client program and the Oracle8i server reside on the same machine. The IPC protocol differs from the BEQ protocol in that it can be used with dedicated server and multi-threaded server configurations. The IPC protocol requires a listener for its operation. The IPC protocol is always installed and always linked to all client tools and to Oracle8i.
Although the default for SequeLink Oracle Server version is to use the Oracle Bequeath driver to communicate to the Oracle database engine, we strongly recommend that you configure the SequeLink Oracle service to use the Oracle IPC driver. You may experience performance or stability problems with multithreaded applications if you use the Oracle Bequeath driver. To use the Oracle IPC driver you configure the Oracle listener for IPC (refer to your Oracle documentation for instructions) and you configure the SequeLink Oracle service to use the Oracle IPC driver.
This is done using the SequeLink Manager where you add the SequeLink service attribute ServiceEnvironmentVariable to your SequeLink Oracle service and set it:
where IPCServiceName is the Oracle IPC service name you previously configured. If the attribute ServiceEnvironmentVariable=ORACLE_SID=OracleSid exists for this SequeLink service, delete it. Restart the SequeLink Oracle service.
The complete steps for a manual uninstall are in our Knowledgebase. Please see document 25263 on this topic.
Use the Sequelink Manager Command-Line Tool (swcla.sh) to perform the following steps:
Activate the offline config ({ActivateOfflineConfig | aoc} configuration_file):
aoc <install_dir>/cfg/swandm.ini
Stop running SequeLink Servers & Agents:
sst
Unregister all services
su
Delete all services
sd
Exit the swcla
exit
Remove the entire directory in which the product in installed
edit the /etc/services file and remove those lines referencing the TCP/IP ports used by SequeLink
All versions of SequeLink prior to version 5.4 do not support the installation of SequeLink Server through Windows Terminal Services, other Windows remote administration clients, or remote administration tools offered by other vendors. You can expect to experience a variety of undocumented problems attempting installation through one of these remote administration tools.
SequeLink v.5.4 or higher supports installation through Windows Terminal Services.
Connect to your application with enterprise level connectivity