Differences between current version and predecessor to the previous major change of HowToTangoHOWTO.
Other diffs: Previous Revision, Previous Author, or view the Annotated Edit History
Newer page: | version 3 | Last edited on Monday, October 25, 2004 5:07:52 am | by AristotlePagaltzis | |
Older page: | version 2 | Last edited on Friday, June 7, 2002 1:07:39 am | by perry | Revert |
@@ -1,1417 +1 @@
-
-
-
-Tango 2000 HOWTO
-
-
-
-----
-
-!!!Tango 2000 HOWTO
-
-!!Shayne !LebrunJuly 2000
-
-
-----
-''This document describes the installation, configuration, and basic troubleshooting
-of Pervasive Software's Tango Application Server on Sun Solaris and various
-flavours of Linux.''
-----
-
-
-
-
-!!1. Introduction
-
-
-****1.1 Contributors and Contacts
-
-****1.2 Acknowledgements
-
-****1.3 Revision History
-
-****1.4 New Versions
-
-****1.5 Copyrights and Trademarks
-
-****1.6 Feedback
-
-
-
-
-
-!!2. The Basics
-
-
-****2.1 Tango Application Sever
-
-****2.2 TAS, Web Server and Web Client
-
-****2.3 TAS Life Cycle
-
-
-
-
-
-!!3. System Configuration / Requirements
-
-
-****3.1 Solaris
-
-****3.2 Linux
-
-
-
-
-
-!!4. Tango Installation and Configuration
-
-
-****4.1 Installation - Tango 3.x
-
-****4.2 Tango 2000
-
-****4.3 Tango 2000 Service Pack 1
-
-****4.4 tXserver.ini - TAS Settings
-
-
-
-
-
-!!5. TAS and Web Servers
-
-
-****5.1 Netscape Server Configuration
-
-****5.2 Apache Server Configuration
-
-****5.3 tXclient.ini - CGI/Plugin configuration
-
-****5.4 Load Splitting/Load Balancing
-
-
-
-
-
-!!6. TAS and Oracle
-
-
-****6.1 Oracle Support
-
-
-
-
-
-!!7. TAS and ODBC
-
-
-****7.1 Solaris
-
-****7.2 Linux
-
-****7.3 The odbc.ini Configuration File
-
-****7.4 Solaris, ODBC and Oracle
-
-
-
-
-
-!!8. Handy TAF Files
-
-
-****8.1 CGI_OR_PLUGIN.taf
-
-----
-
-!!1. Introduction
-
-
-
-
-
-This is the Tango for Linux and Solaris HOWTO, designed to be a quick reference
-to the installation and configuration of various versions of Tango on supported
-UNIX and UNIX-like platforms. This guide is valid for Solaris 2.6 and 7 on
-the SPARC architecture, and for Red Hat 5.2 and 6, S.U.S.E 6.2+ and Caldera
-!OpenLinux 2.2+, all running on Intel.
-
-!!1.1 Contributors and Contacts
-
-
-
-
-
-
-This HOWTO was created by
-Shayne Lebrun and is currently
-maintained by the same. Pervasive Software technical support can be reached
-at 1-800-287-4383 or
-techsupport@pervasive.com
-!!1.2 Acknowledgements
-
-
-
-
-
-
-Many thanks to the fine HOWTO HOWTO by Mark F. Komarinski. You should be
-able to find it at the LDP homepage at
-http://www.linuxdoc.org
-
-The Tango Documentation Team makes a damn fine set of manuals; don't let
-your MTCV book out of sight!
-
-!!1.3 Revision History
-
-
-
-
-
-
-This is the first attempt at laying this all down.
-
-!!1.4 New Versions
-
-
-
-
-
-
-The latest version is always available at
-http://www.members.home.net/slebrun/howto/TangoHOWTO.html
-!!1.5 Copyrights and Trademarks
-
-
-
-
-
-
-(c) 2000 Shayne Lebrun
-
-
-This manual may be reproduced in whole or in part, without fee, subject
-to the following restrictions:
-
-
-****The copyright notice above and this permission notice, and the trademark
-notice below, must be preserved complete on all complete or partial copies
-****
-
-****Any translation or derived work must be approved by the author in writing
-before distribution
-****
-
-****If you distribute this work in part, instructions for obtaining the complete
-version of this manual must be included, and a means for obtaining a complete
-version provided
-****
-
-****Small portions may be reproduced as illustrations for reviews or quotes
-in other works without this permission notice if proper citation is given
-****
-
-
-
-Exceptions to these rules may be granted for academic purposes: Write to
-the author and ask. These restrictions are here to protect us as authors, not
-to restrict you as learners and educators.
-
-!!1.6 Feedback
-
-
-
-
-
-
-Suggestions, flames, corrections, requests for a dinner date, etc etc,
-should be sent to
-slebrun@home.com with a subject of 'HOWTO' and
-they'll be looked at. Remember, it's you who knows what needs to be in that
-document that currently isn't. And it won't get there if you don't tell me
-about it.
-----
-
-!!2. The Basics
-
-
-
-
-!!2.1 Tango Application Sever
-
-
-
-
-
-
-Tango Application Server, aka TAS, runs as a daemon process. Tango 3.x
-is 'tangod' and Tango 2000 is 'tango4d'. Tango 2000 also runs a seperate Server
-Watcher process. Tango is a 'green threaded' application; it spawns a series
-of threads, but manages the threads itself. This means that a single TAS will
-not take advantage of multiple processors. However, Tango 3.6 and Tango 2000
-include load splitting capabilities which allow you to run multiple TAS daemons
-on one box.
-
-!!2.2 TAS, Web Server and Web Client
-
-
-
-
-
-
-The Tango Application Server is never contacted directly by the web browser;
-nor does it ever send information directly to the web browser. The browser
-only ever makes requests of the web server, which then forwards the request
-to the TAS through either a CGI or a web-server specific plugin. There are
-several advantages to this scheme. First, nothing on the browser side needs
-to be updated; no plugins, Active-X objects, client side Java, or anything
-are required. Second, the CGI/Plugin allows the Tango Server to be on a machine
-other than the web server, or indeed on several machines other than the webserver.
-
-!!2.3 TAS Life Cycle
-
-
-
-
-
-; __Born__:
-
-Tango Server is instanced, and loads it's configuration files
-and what not. No user requests are accepted.
-; __Startup__:
-
-Tango Server first looks for a StartupURL. If one is specified,
-a request is generated. A successful return will allow Tango to move to the
-next stage. If the request cannot be sent, or if there is no URL specified,
-Tango Server moves on to the 'Running' stage.
-; __StartupURL-Response__:
-
-Tango Server stays in this stage until a response
-is received from the StartupURL, or until the request times out.
-; __Running__:
-
-This is the normal operating state for Tango Server; user
-requests are accepted, Tango Cron jobs are run, and so on.
-; __Shutdown__:
-
-When a shutdown request is received, or generated by Tango
-itself on a fatal exception, a ShutdownURL is looked for, and run if it exists.
-Otherwise, it moves on to the Waiting for Running Threads stage.
-; __ShutdownURL-Response__:
-
-Tango stays in this stage until either a response
-is received from the URL requested, or it times out.
-; __Waiting__:
-
-Tango Server waits for threads already running to finish,
-but no longer than the specified waiting period.
-; __Dead__:
-
-Tango Server kills all still running threads, cleans up, and
-exits.
-
-----
-
-!!3. System Configuration / Requirements
-
-
-
-
-!!3.1 Solaris
-
-
-
-
-
-!System Requirements
-
-
-
-
-
-Tango for Solaris requires Solaris 2.6 or Solaris 7, SPARC architecture,
-approximately 30 megabytes of disk space, and approximately 2 megabytes of
-memory per user, given what Pervasive considers to be 'average' memory use.
-
-
-Tango 2000 requires Solaris system patches. 105591 for Solaris 2.6. 106300
-and 106327 on Solaris 7. Note that 105591 revision 08 causes Tango to core
-dump, as does 106327 revision 07. Not all the crashes are Tango's fault. :-)
-Solaris patches are available at
-http://access1.sun.com
-!System Configuration
-
-
-
-
-
-There are a series of changes which can be made to your /etc/system file
-to increase various resources. These changes will often increase Tango performance,
-as well as preventing resource related crashes. The changes will require a
-reboot. Be very careful when making such changes.
-
-
-These are generic values which are nevertheless better than defaults.
-
-*** New Settings
-set shmsys:shminfo_shmmax=4294967295
-set shmsys:shminfo_shmmin=1
-set
-shmsys:shminfo_shmmni=100
-set shmsys:shminfo_shmseg=10
-set semsys:seminfo_semmni=100
-set
-semsys:seminfo_semmsl=100
-set semsys:seminfo_semmns=200
-set semsys:seminfo_semopm=100
-set
-semsys:seminfo_semvmx=32767
-*** New Settings End
-
-
-
-Take a look at your Solaris documentation, or
-http://docs.sun.com for further information.
-
-
-Also, add the following line to the login script of the Tango user after
-installation:
-
-ulimit -n 1024
-
-
-
-
-
-
-
-
-!!3.2 Linux
-
-
-
-
-
-
-Tango for Linux requires the appropriate flavour for the version you downloaded
-or purchased. Pervasive will NOT support running a version of Tango for Linux
-on a different Linux flavour; Tango for Red Hat Linux might not run on Caldera
-2.2, let alone on Debian.
-
-
-Tango for Linux currently only supports the x86 architecture.
-
-
-If you're using Red Hat 5.2, you'll need to upgrade your kernel. The Tango
-for Linux documentation has the details.
-----
-
-!!4. Tango Installation and Configuration
-
-
-
-
-!!4.1 Installation - Tango 3.x
-
-
-
-
-
-!Solaris
-
-
-
-
-!Installing the Files
-
-
-
-
-
-The current version of Tango 3.x for Solaris is Tango 3.62. There is not
-expected to be any further updates to the 3.x codebase. The installation path
-is designed for incremental upgrades, so is a bit tricky.
-
-
-First, you'll need the
-Tango 3.6 version.
-This is a compressed tarball, and will untar itself into /var/opt/EDI/. You'll
-need to be superuser to install this.
-----
-
-$su -
-Password: ********
-# uncompress tango36sol.tar.Z
-# tar -xvf tango36sol.tar
-
-----
-
-
-Next, you'll need to grab the
-Tango 3.62 patch file.
-This too is a compressed tarball. This one will uncompress to whatever directory
-it's in, so make a temp directory somewhere and use that.
-----
-
-$su -
-Password: ********
-# mkdir Tango362
-# cp ./tangoSol362.tar.Z ./Tango362/
-# cd Tango362
-# uncompress tangoSol362.tar.Z
-# tar -xvf tangoSol362.tar
-
-----
-
-
-What you'll wind up with are three binary files, a Readme.txt, and an 'odbc'
-directory. Move the TangoNS_ep3.so to /var/opt/EDI/lib and the t3.cgi and tangod
-files to /var/opt/EDI/bin. Finally, remove your /var/opt/EDI/odbc directory
-and replace it with this one.
-----
-
-# mv./TangoNS_ep3.so /var/opt/EDI/lib/TangoNS_ep3.so
-#mv ./t3.cgi /var/opt/EDI/bin/t3.cgi
-#mv ./tangod /var/opt/EDI/bin/tangod
-# rm -rf /var/opt/EDI/odbc
-#mv ./odbc /var/opt/EDI/
-
-----
-
-!Setting up the Tango user account
-
-
-
-
-
-Next, you'll need to use your favourite method to create a user account
-to run Tango. You can use the graphical 'admintool' program, or command line
-programs such as 'adduser' or 'useradd' depending on your installation.
-
-
-Generally, you'll want to call the account 'tango' and also perhaps make
-a group called 'pvsw'. The user should be given ownership of everything in
-the /var/opt/EDI directory tree. If deploying in a production environment,
-especially on something outside of a firewall or the like, set the account
-to have no password, no login capabilities.
-
-!Linux
-
-
-
-
-
-There is no version of Tango 3.x for Linux. Had you going, though.
-
-!!4.2 Tango 2000
-
-
-
-
-
-!Solaris
-
-
-
-
-
-Tango 2000 is shipped in the form of a Solaris Package Archive. You'll
-need to login as root, and using either the 'admintool' graphical utility,
-or run the pkgadd command. If you have a CD-ROM copy,mount the CD. The automounter
-will generally mount it in /cdrom. Copy the /cdrom/tango_as-2000/tango2000/T2000Install.tar
-file to a temporary directory. If you downloaded Tango 2000, it will be a compressed
-tar file, and you'll need to uncompress it first. If it's already uncompressed,
-skip the first step below.
-----
-
-# uncompress T2000Install.tar.Z
-# tar -xvf T2000Install.tar
-# cd T2000Install
-# pkgadd -d. PVSWtango
-
-----
-
-
-and follow the prompts.
-
-Warning: the shipping Tango 2000 installer sometimes rejects valid CD-keys
-as being invalid. If this occurs, leave the CD-Key blank, and manually add
-your key later (see section x.x).
-
-
-!Linux
-
-
-
-
-
-Tango 2000 for Linux is distributed as an RPM. On a distribution CD, you'll
-find the file in the tango2000 directory. Copy the appropriate file to a temp
-directory; Tango2000-server-4-Linux_i386.rpm if you're using Red Hat 6, Caldera
-2.2 or S.U.S.E 6.2 or later. Tango2000-server-4-RedHat52_i386.rpm if you're
-using Red Hat 5.2. Either way, you'll need to be root.
-
-Note that to use Red Hat 5.2, you'll need to manually upgrade your kernel
-to version 2.2 or higher.
-
-----
-
-#rpm -Uvh Tango2000-server-4-Linux_i386.rpm
-
-----
-
-!!4.3 Tango 2000 Service Pack 1
-
-
-
-
-
-!Solaris
-
-
-
-
-
-Tango 2000 SP1 for Solaris is a Solaris Package Archive, designed to replace/update
-the existing installation. It is, however, a full install, so if you don't
-have Tango installed already, you'll get a working install. Otherwise, the
-procedure to install is the same as Tango 2000, only the archive is T2000InstallSP1.tar.Z
-
-
-You'll probably want to back up your t4client.ini and t4server.ini files,
-as well as your web server configuration files.
-
-!Linux
-
-
-
-
-
-Tango 2000 SP1 for Linux is an RPM designed to replace/update the existing
-installation. It is, however, a full install, so if you don't have Tango installed
-already, you'll get a working install. Otherwise, the procedure to install
-is the same as Tango 2000, only the RPM is Tango2000-server-4.05.i386.rpm,
-or Tango2000-server-4.05.RedHat52.i386.rpm if you're using Red Hat 5.2.
-
-!!4.4 tXserver.ini - TAS Settings
-
-
-
-
-
-
-Tango uses a file called 't3server.ini' or 't4server.ini' to control many
-of it's behaviors and functions. For Tango 3.x, this file is /var/opt/EDI/t3server.ini
-and for Tango 2000, it's $TANGO_HOME/configuration/t4server.ini. You
-can find a complete description of all entries in your Metatags and Configuration
-Variables book, but the most important/commonly used ones are listed here.
-
-!Cache
-
-
-
-
-
-Possible entries: TRUE, FALSE
-
-
-This controls weather or not Tango caches TAF files. Caching will reduce
-disk access, speeding up TAF execution.
-
-!!CacheIncludeFiles
-
-
-
-
-
-Possible entries: TRUE, FALSE
-
-
-This controls weather or not Tango caches included files. Caching will
-prevent repeated disk access, speeding up TAF execution.
-
-!!CacheSize
-
-
-
-
-
-Possible entries: Numeric, measured in bytes
-
-
-This measures the size of the cache for TAFs and included files. If cache
-grows to near this size, older documents will be flushed.
-
-!!ConfigPasswd
-
-
-
-
-
-Possible entries: text
-
-
-This is the password of the config.taf online configuration application.
-
-!!DataSourceLife
-
-
-
-
-
-Possible entries: numeric, measured in minutes.
-
-
-This controls how long an unused datasource connection will live. A setting
-of 0 will cause a datasource connection to be closed as soon as it's query
-is finished.
-
-!!DebugMode
-
-
-
-
-
-Possible entries: !ForceOn, !ForceOff, appFileSetting
-
-
-This controls how the TAS handles placing debug information on the bottom
-of each page created; always, never, or per file settings.
-
-!DSConfigFile
-
-
-
-
-
-Possible entries: path to file
-
-
-This points to the Data Source configuration file, which gives you some
-finer control over how Tango uses data sources. See the Data Sources section
-for more details.
-
-!!ItemBufferSize
-
-
-
-
-
-Possible entires: numeric, measured in bytes
-
-
-This is the maximum size of any given field that can be returned in a database
-action. It's main function is to prevent Tango from becoming bogged down while
-downloading an unusually large piece of data from a database.
-
-!License
-
-
-
-
-
-Possible entries: alphanumeric CD-Key
-
-
-This is the Tango license. The CD-Key contains the licensing information
-which tells Tango how to configure itself in terms of licenses and behavior.
-
-!!ListenerPort
-
-
-
-
-
-Possible entries: TCP/IP Port number
-
-
-This tells Tango what port to monitor for incoming connections from the
-Tango CGI or Plugins. Ports cannot be shared between server software, so multiple
-servers running on one machine will need their own ports.
-
-!!LoggingLevel
-
-
-
-
-
-Possible entries: !NoLogging, LogLevel1, LogLevel2, LogLevel3, LogLevel4
-
-
-This controls how much logging Tango does. The log, "Tango.log", is written
-to the location specified in the LOGDIR config variable. !LogLevel 3 is the
-best to use if you're trying to debug a Tango problem, but will slow Tango
-down, and will eat disk space.
-
-!!MaxActions
-
-
-
-
-
-Possible entires: numeric, 0 for no limit
-
-
-This controls how many actions Tango will allow in a TAF file. This guards
-against things like infinite loops and overly large programs; most often used
-in development environments.
-
-!!MaxHeapSize
-
-
-
-
-
-Possible entries: numeric, measured in bytes
-
-
-This controls how much memory the Tango Daemon process will allow itself
-to consume. Memory is consumed by variables, datasource connections, and cache.
-If Tango exceeds this number, it will shut itself down with a 'process size
-exceeded' message and attempt to restart itself normally. This number should
-be changed to provide 20% more than what you record Tango as generally
-using during peak use.
-
-!!QueryTimeOut
-
-
-
-
-
-Possible entries: numeric, measured in seconds
-
-
-This controls how long Tango will wait for a response from a database call
-before timing out. Note that not all databases and drivers support this functionality.
-
-!!RequestQueueLimit
-
-
-
-
-
-Possible entries: numeric
-
-
-This controls how many requests from a CGI Tango will allow to 'queue'.
-A very busy site can sometimes have so many CGIs stacked, waiting for Tango
-to service them, that some will get lost and orphaned. This helps prevent that
-situation.
-
-!!ThreadPoolSize
-
-
-
-
-
-Possible entries: numeric
-
-
-This controls how many simultaneous threads Tango will run with. On Solaris,
-it is generally better to have several Tango servers running a few threads
-apiece than to have one Tango server running the same number of threads.
-
-!!ValidHosts
-
-
-
-
-
-Possible entries: TCP/IP addresses, colon delimited.
-
-
-This is a list of what IP addresses Tango will allow incoming requests
-from. On a machine where the web server and Tango server are both running,
-this should be set to 127...1, the localhost.
-----
-
-!!5. TAS and Web Servers
-
-
-
-
-
-The Tango Application Server runs as it's own process, where it services
-requests from a web server. This allows for some functionality such as load
-splitting and direction, as well as freedom of choice in web server and platform.
-The TAS need not be on the same machine as the web server, nor is it limited
-to being even on one machine.
-
-
-The preferred way of having a web server talk to Tango is through a plugin.
-The plugin is written in the web server's API, or Application Programming Interface,
-to take advantage of specific features of that web server, as well as the advantage
-of having the code execute as part of the web server, instead of as a separate
-CGI process. On Solaris, Tango has a plugin for Netscape Server and for Apache
-in later versions of Tango 2000. Tango for Linux has a plugin for Apache.
-
-!!5.1 Netscape Server Configuration
-
-
-
-
-
-!Tango 3.x
-
-
-
-
-
-Locate your Netscape configuration files in /whatever/netscape/suitespot/https-MYSERVER/config
-generally. To the mime.types file, add this line:
-
-type=magnus-internal/taf exts=taf
-
-
-
-Add these two lines to the top of the obj.conf file (no line breaks; each
-line which starts with 'init' is a full line. Thus, there are two lines total)
-
-Init fn=load-modules shlib=/var/opt/EDI/lib/TangoNS_ep3.so funcs="Tango_main,Tango_main_init"
-
-
-Init fn=Tango_main_init stanza="TangoNS_ep3.so"
-
-
-
-Add this line to the obj.conf file inside of the <Object name=default>
-area, with the other services.
-
-Service fn="Tango_main" method="(GET|HEAD|POST)" type="magnus-internal/taf"
-
-
-
-You'll then need to use your Netscape Administration Server to restart
-the server, telling it to load the configuration files when it informs you
-that they've been hand-edited. Then, try hitting a TAF file. If it works, great!
-If not, go through your configuration file again. Most of the time, a misconfiguration
-is the reason for it not working. One space or quotation mark out of place
-will destroy the entire setup.
-
-!Tango 2000
-
-
-
-
-
-Locate your Netscape configuration files in /whatever/netscape/suitespot/https-MYSERVER/config,
-generally. To the mime.types file, add this line:
-
-type=magnus-internal/taf exts=taf,tcf
-
-
-
-Then, add these two lines to the beginning of the obj.conf file. Note that
-there are no line breaks in each line.
-
-Init fn=load-modules shlib=/opt/PVSWtango/lib/libtango4ns.so funcs="Tango_main,Tango_main_init"
-
-
-Init fn=Tango_main_init stanza="libtango4ap.so" tangoconfigpath=/opt/PVSWtango/configuration
-
-
-
-Add this line to the obj.conf file inside of the <Object name=default>
-area, with the other services.
-
-Service fn="Tango_main" method="(GET|HEAD|POST)" type="magnus-internal/taf"
-
-
-
-You'll then need to use your Netscape Administration Server to restart
-the server, telling it to load the configuration files when it informs you
-that they've been hand-edited. Then, try hitting a TAF file. If it works, great!
-If not, go through your configuration file again. Most of the time, a misconfiguration
-is the reason for it not working. One space or quotation mark out of place
-will destroy the entire setup.
-
-!Tango 2000 Service Pack 1
-
-
-
-
-
-Installation is the same as for Tango 2000, but with this extra line added
-to the services in the <Object name=default> area of the obj.conf file:
-
-Service fn="Tango_main" method="(GET|HEAD|POST)" type="magnus-internal/tml"
-
-
-
-Also, the mime.types file should have this line used instead of the one
-for Tango 2000:
-----
-
-type=magnus-internal/taf exts=taf,tcf,tml
-
-----
-
-!!5.2 Apache Server Configuration
-
-
-
-
-
-
-Tango 2000 for Linux, and Tango 2000 Service Pack 1 for Solaris both support
-the Apache webserver through an Apache plugin. Apache will require mod_so support
-for all of these. The documentation states that you must custom build your
-Apache; this is misleading. You must build your Apache only if the pre-built
-version you're using doesn't have mod_so support. There are two places to check
-for this:
-
-
-First, try running your Apache server with a '-l' argument. If mod_so is
-listed, you're fine.
-----
-
-# httpd -l
-Compiled-in modules:
-http-core.c
-mod_so.c
-
-----
-
-
-Second, try looking in your httpd.conf file for an '!AddModule mod_so.o'
-line. If you don't have mod_so support (also known as DSO support) in some
-way, you'll need to compile a version that does.
-
-!Tango 2000
-
-
-
-
-
-At the end of your httpd.conf file, add these lines:
-
-!LoadModule t4_module /usr/local/tango/lib/libtango4ap.so
-!TangoModule t4_module
-/usr/local/tango/configuration/t4client.ini
-
-
-
-Modify the paths to the .so and .ini files as appropriate on your setup.
-
-
-Your t4client.ini will then need a stanza for t4_module. See the t4client.ini
-section for examples.
-
-!Tango 2000 Service Pack 1
-
-
-
-
-
-At the end of your httpd.conf file, add these lines:
-
-!LoadModule t4_apache /usr/local/tango/lib/libtango4ap.so
-!TangoModule t4_apache
-/usr/local/tango/configuration/t4client.ini
-
-
-
-Modify the paths to the files as appropriate; Solaris defaults to /opt/PVSWtango/
-for the Tango home.
-
-
-Your t4client.ini will then need a stanza for t4_apache. See the t4client.ini
-section for examples.
-
-!!5.3 tXclient.ini - CGI/Plugin configuration
-
-
-
-
-
-
-Tango uses a client configuration file to tell the CGI or Plugins where
-to send Tango requests. The file consists of two sections; a declaration section
-and an information section. Here is an example for a file controlling a CGI:
-
-
[[Tango Client Definitions
]
-t4.cgi=Put A Description Here
-
-
-[[t4.cgi]
-TANGO_SERVER=127...1,18100
-
-
-
-And an example of a file with both a CGI and an Apache plugin:
-
-[[Tango Client Definitions]
-t4.cgi=My Tango CGI
-t4_apache=My Apache
-Plugin
-
-
-[[t4.cgi]
-TANGO_SERVER=127...1,18100
-
-
-[[t4_apache]
-TANGO_SERVER=127...1,18100
-
-
-
-Further entries can be made as appropriate. Use this list to find what
-'keyword' to use to reference a CGI/Plugin:
-
-; __CGI__:
-
-Use the name of the CGI. For example, you could have two CGIs,
-t4.cgi and t4private.cgi, each pointing to a different Tango server.
-; __Netscape Plugin (Tango 2000)__:
-
-Use 'libtango4ns.so' as the name. You
-shouldn't try to load multiple plugins.
-; __Netscape Plugin (Tango 3.x)__:
-
-Use 'TangoNS_ep3.so'
-; __Apache Plugin__:
-
-Use 't4_module' for Tango 2000 and 't4_apache' for
-Tango 2000 Service Pack 1. You shouldn't try to load multiple modules.
-
-
-
-Tango 3 versions earlier than 3.6 use a slightly different format. TANGO_SERVER
-is broken into two lines; TANGO_HOST and TANGO_PORT. Here's an example:
-
-[[Tango Client Definitions]
-t3.cgi
-
-
-[[t3.cgi]
-TANGO_HOST=127...1
-TANGO_PORT=18000
-
-
-!!5.4 Load Splitting/Load Balancing
-
-
-
-
-
-
-All versions of Tango starting with 3.6 have allowed Load Splitting. You
-can define a series of Tango servers that a plugin can use, and it will distribute
-new requests between the servers. Users who make subsequent requests are directed
-back to the server they were at previously via the !UserReference search argument
-or cookie. Users cannot move between servers without losing their variables
-and what not. Also, what Tango currently does is not load balancing; that is
-expected for a future release of Tango.
-
-
-Tango does not need to be running on the same machine as the web server
-in any event. You need only run configure Tango's VALIDHOST configuration variable
-to include the IP address of the web server machine. Then, in the web server
-machine's t4client.ini file, put in the IP address and port number as usual.
-
-!Tango Load Splitting
-
-
-
-
-
-To add multiple Tango servers, add an entry to the t4server.ini file with
-the new name of the server, and add a new stanza for it, generally by copying
-an existing stanza. Then, change all directory names to be unique, such as
-LOGDIR. Make sure that it's running on a unique port. Tango defaults to port
-18100. Here is an abbreviated example of a t4server.ini file with two Tango
-Application Server instances:
-
-[[Tango Definitions]
-TAS_1=!MyFirstServer
-TAS_2=!MySecondServer
-
-
-[[TAS_1]
-...
-LISTENERPORT=18100
-...
-LOGDIR=/usr/local/tango/log.TAS_1
-...
-
-
-[[TAS_2]
-...
-LISTENERPORT=18101
-...
-LOGDIR=/usr/local/tango/log.TAS_2
-...
-
-
-
-All other configuration variables would be filled in as appropriate.
-
-
-To run Tango with a specific configuration definition, use the -c switch.
-----
-
-$ ./tango4d -c TAS_1
-$ ./tango4d -c TAS_2
-
-----
-
-
-The -c switch can be used in conjunction with the -k switch to kill servers
-as well.
-
-
-Note that you'll need the appropriate licenses, either one Corporate or
-Professional license, or as many Standard licenses as you want Tango servers.
-
-
-In the t4client.ini file, simply add the IP address and port of each server
-to the TANGO_SERVER line of the appropriate CGI or Plugin, colon delimited.
-Here is an example t4client.ini file, using the CGI, pointing to three separate
-Tango servers running on the same machine, on ports 18100, 18101 and 18102.
-
-[[Tango Client Definitions]
-t4.cgi=My CGI
-
-
-[[t4.cgi]
-TANGO_SERVER=127...1,18100:127...1,18101:127..,1,18102
-
-
-!Load Balancing - Hardware Load Balancers
-
-
-
-
-
-You can use a hardware load balancing device with Tango so long as your
-webserver farm is behind the load splitting device, and each webserver is using
-an exact copy of the same t4client.ini file. The t4client.ini file should be
-configured to use every Tango machine you want available. The !UserReference
-based Tango redirection should function normally.
-----
-
-!!6. TAS and Oracle
-
-
-
-
-!!6.1 Oracle Support
-
-
-
-
-
-
-Tango 3.x for Solaris does not have native Oracle support. Tango 2000 for
-Solaris supports Oracle 8 and 8i, and generally works with Oracle 7.3.4 and
-above. Tango 2000 Service Pack 1 was not tested with Oracle 7.x however, and
-there have been reports of problems. The Oracle 8 client can connect quite
-happily to the Oracle 7 server, however, so that is an option.
-
-
-To use Oracle with Tango, first you require the Oracle Client to be correctly
-installed on the machine. Generally, a good way to check for this is to:
-
-
-****check to see if there is an 'oracle' account on the machine
-****
-
-****try to run the Oracle program 'sqlplus'
-****
-
-
-
-If you can successfully run sqlplus, you should be fine. If not, well,
-go install Oracle.
-
-
-Next, you need to make sure that the client has the appropriate entries
-for the datasource in question to your TNS service; generally a tnsnames.ora
-file. You accomplish this with your Oracle software; there are programs such
-as net8config and what not that do it for you. The thing to remember
here is
-that the name of the datasource needs to be the same as the name of the datasource
-you're using in Tango.
-
-
-Finally, to allow Tango to use the Oracle software, you need to add this
-path to the LD_LIBRARY_PATH environment variable of the tango user account.
-----
-
-$ORACLE_HOME/lib
-
-----
-
-
-You'll also need to define what $ORACLE_HOME is; this, of course,
-is the root directory of Oracle, and will be some forboding path such as, for
-example, /u01/software/products/8.1.5/oracle or something similar.
-
-
-If you're using Oracle 7.x or 8..x you'll probably need to create a new
-client library. Instructions for this are in $TANGO_HOME/odbc/src/oracle
-in the readme.ora file. You can check to see if you require this patch by attempting
-to load the Oracle ODBC driver (see section 6). If it fails with an 'unresolved
-symbol' error, then you need the patch.
-
-
-As the readme file says, this newly created library must appear in your
-LD_LIBRARY_PATH before the reference to $ORACLE_HOME/lib does. If there
-are no other programs running, it's generally easiest to replace the old library
-with the new.
-
-
-Some shells seem to have trouble with the LD_LIBRARY_PATH ordering; I've
-seen ksh fail to correctly load the new library, and switching to sh or bash
-solve it.
-----
-
-!!7. TAS and ODBC
-
-
-
-
-!!7.1 Solaris
-
-
-
-
-
-
-Tango for Solaris includes the Merant ODBC driver pack, which Tango can
-use to connect to a wide array of databases, such as Informix, Sybase, Oracle,
-and now Microsoft SQL Server.
-
-
-The .odbc.ini file (see below) should be located in the home directory
-of the Tango user account. It can be stored elsewhere, for centralization or
-what not, and located using an environment variable called ODBCINI.
-
-!!7.2 Linux
-
-
-
-
-
-
-Tango 2000 for Linux includes the iODBC driver manager, and a Pervasive.SQL
-driver is included with Pervasive.SQL for Linux. It will also work with Postgres
-SQL and MySQL drivers. Other drivers are available at
-http://www.unixodbc.com and
-http://www.iodbc.org
-
-The .odbc.ini file (see below) should be located in /usr/local/tango/etc/odbc.ini
-which can be symlinked to /usr/local/psql/etc/odbc.ini if both are installed.
-
-!!7.3 The odbc.ini Configuration File
-
-
-
-
-
-
-The drivers are controlled by an ini file called .odbc.ini (note the leading
-period; it's a hidden file on Solaris.)
-
-
-The file contains a list of Data Source Names followed by a definition
-section. It is a standard INI file format. So long as the DSN name used by
-a TAF is listed in this file, and the database schema is the same as the one
-on the development machine, the database access will work transparently.
-
-
-Here is an example of a .odbc.ini file containing a single DSN called !MyOracleDatabase,
-which is pointing to an Oracle database with a TNS name of '!LocalOracleDatabase'.
-
-[[ODBC Data Sources]
-!MyOracleDatabase=
-
-
-[[!MyOracleDatabase]
-Driver=/opt/PVSWtango/odbc/lib/VQor815.so
-!ServerName=!LocalOracleDatabase
-
-
-
-All entries will have, at minimum, a Driver line; this points to a .so
-shared object which is the actual ODBC driver. There will be other lines dependant
-on the driver itself; server configuration, special flags, that sort of thing.
-Refer to the readmes and to the odbchelp.pdf file (on Solaris) or to specific
-driver documentation for those settings, as well as any environment settings
-required.
-
-
-Note that ODBC drivers still often require database specific Client software;
-for example, the ODBC Oracle drivers require the same Oracle OCI client software
-that Tango requires for a native Oracle connection. Sybase client software
-must be installed for the Sybase ODBC driver to function, and so on. Again,
-see the odbchelp.pdf file, or driver documentation for specifics.
-
-
-Anybody who would like to write small crib notes on configuring specific
-databases to work with Tango for Solaris or Linux through ODBC, feel free and
-send them to me and they'll be included in this HOWTO, with full credit of
-course.
-
-!!7.4 Solaris, ODBC and Oracle
-
-
-
-
-
-
-Certain versions of the Oracle client are missing key functionality that
-the Oracle ODBC drivers require, as well as the Tango native Oracle drivers.
-
-
-The easiest way to check for this condition is to use the 'ivtestlib' program
-to attempt to load the Oracle ODBC driver. Become the Tango user, and move
-to $TANGO_HOME/lib. Look for a driver with 'or7' for Oracle 7, or 'or8'
-for Oracle 8. Depending on your version of Tango, the full name might be 'IVor714.so'
-or 'VQor714.so'. The last number before the .so is the ODBC version.
-
-
-Once you have this file name, move one directory up, and then go into the
-'bin' directory. There, execute the 'ivtestlib' program with the file name
-as an argument.
-----
-
-$ cd $TANGO_HOME/odbc/lib
-$ ls *or8*
-VQor814.so
-$ cd ../bin
-$ ./ivtestlib ../lib/VQor814.so
-Load of ../lib/VQor814.so successful, qehandle is 0xFF24120
-
-----
-
-
-If the Oracle drivers need to be patched, you'll see a long message ending
-in the fact that there is an 'undefined symbol slpmprodstab'. This will prevent
-Tango Oracle Native connections from working as well as ODBC. In the $TANGO_HOME/odbc/src/oracle
-directory is a readme.ora file and two scripts, one for Oracle 7 and the other
-for Oracle 8. The readme file details the creation of a new 'libclntsh.so'
-file, which is the main Oracle client library. In a nutshell, make sure you
-have ORACLE_HOME defined, and run the appropriate script for your version of
-Oracle. This will create the .so file and place it, by default, into $TANGO_HOME/odbc/lib.
-Then, make sure that that path appears in your LD_LIBRARY_PATH before any references
-to $ORACLE_HOME/lib does. You can also move the libclntsh.so file to
-your $ORACLE_HOME/lib directory, or create a link between $ORACLE_HOME/lib/libclntsh.so
-and the one you just created; the preexisting libclntsh.so is a link to another
-library anyway.
-----
-
-!!8. Handy TAF Files
-
-
-
-
-!!8.1 CGI_OR_PLUGIN
.taf
-
-
-
-
-
-
-
-----
+Describe
[HowToTangoHOWTO
] here.