Archiv der Kategorie: Computers

mod-fastcgi und FastCGIExternalServer

Beim Einrichten eines Webservers habe ich mir Gedanken gemacht zur Direktive ‚FastCGIExternalServer‘. Auf hunderten von Seiten wird sie referenziert und verwendet, aber nirgendwo die Funktion oder die Parameter erklärt.

Hier ist die fehlende Dokumentation nun:

 

 

FastCgiExternalServer

Syntax: FastCgiExternalServer filename -host hostname:port
[option ...]
FastCgiExternalServer filename -socket filename [option ...]
Context: server config

The FastCgiExternalServer directive defines filename as an external FastCGI application.  If filename does not begin with a slash (/) then it is assumed to be relative to the ServerRoot.  The filename does not have to exist in the local filesystem.  URIs that Apache resolves to this filename will be handled by this external FastCGI application..

External FastCGI applications are not started by the process manager, they are presumed to be started and managed „external“ to Apache and mod_fastcgi.  The FastCGI devkit provides a simple tool, cgi-fcgi,  for starting FastCGI applications independent of the server (applications can also be self-starting, see the devkit).

-appConnTimeout n (0 seconds)Unix: The number of seconds to wait for a connection to the FastCGI application to complete or 0 to indicate a blocking connect() should be used.  Blocking connect()s have an OS dependent internal timeoutIf the timeout expires, a  SERVER_ERROR results.  For non-zero values, this is the amount of time used in a select() to write to the file descriptor returned by a non-blocking connect().  Non-blocking connect()s are troublesome on many platforms.  See also -idle-timeout, it produces similar results but in a more portable manner.
Windows NT: TCP based applications work as above.  Named pipe based applications (static applications configured without the -port option and dynamic applications) use this value successfully to limit the amount of time to wait for a connection (i.e. its not „troublesome“).  By default, this is 90 seconds (FCGI_NAMED_PIPE_CONNECT_TIMEOUT in mod_fastcgi.h).-idle-timeout n (30 seconds)The number of seconds of FastCGI application inactivity allowed before the request is aborted and the event is logged (at the error LogLevel).  The inactivity timer applies only as long as a connection is pending with the FastCGI application.  If a request is queued to an application, but the application doesn’t respond (by writing and flushing) within this period, the request will be aborted.  If communication is complete with the application but incomplete with the client (the response is buffered), the timeout does not apply.-flush noneForce a write to the client as data is received from the application.  By default, mod_fastcgi buffers data in order to free the application as quickly as possible.-host hostname:port
none
The hostname or IP address and TCP port number (1-65535) the application uses for communication with the web server. The -socket and -host options are mutually exclusive.-pass-header header noneThe name of an HTTP Request Header to be passed in the request environment.  This option makes available the contents of headers which are normally not available (e.g. Authorization) to a CGI environment.-socket filename noneUnix: The filename of the Unix domain socket the application uses for communication with the web server.  The filename is relative to the FastCgiIpcDir.  The -socket and -port options are mutually exclusive.Windows NT:  The name of the named pipe the application uses for communicating with the web server. the name is relative to the FastCgiIpcDir.  The –socket and  -port options are mutually exclusive.

 

Oracle PARALLEL_MAX_SERVERS

If you need to fiddle around with PARALLEL_MAX_SERVERS you will find millions of pages, describing its use and how to set it but you won’t find the hint on how to read it…until now:


select name, value, isdefault, isses_modifiable, issys_modifiable,isinstance_modifiable, isdeprecated, description from v$parameter where upper(name) = 'PARALLEL_MAX_SERVERS';

Changing 32 bit and 64 bit mode on AIX

Recently I’ve been asked to boot an AIX system into 32 bit mode. Switching back and forth between 32 and 64 bit is quite easy with AIX. You need to create a link to the corresponding kernel. Officially IBM advises to boot into service mode first but it’s also possible without that step.

First check which kernel is currently running:
bootinfo -K

To boot from 64 bit into 32 bit:
ln -sf /usr/lib/boot/unix_mp /unix
ln -sf /usr/lib/boot/unix_mp /usr/lib/boot/unix
bosboot -ad /dev/ipldevice
shutdown -r

To boot from 64 bit into 32 bit:
ln -sf /usr/lib/boot/unix_64 /unix
ln -sf /usr/lib/boot/unix_64 /usr/lib/boot/unix
bosboot -ad /dev/ipldevice
shutdown -r
Weiterlesen

WebSphere 5.1 on SuSE Enterprise Server 9 SP4

In case you want to install WebSphere 5.1 on a fresh SLES9 and the installation routine hangs with a

Searching for Java(tm) Virtual Machine...
.

in the console, then try the following before executing the installation routine:

export LD_ASSUME_KERNEL=2.2.5

Installing Oracle 9i on OpenSuSE 10.3

Recently I had a hard time installing Oracle 9i on a SuSE 10.3 system. Oracle 9i is rather old and doesn’t play well with recent Java runtimes, glibcs, changed threading models etc.

I collected a lot of information and finally have been able to get Oracle installed and running.

Prerequesites

Before starting installation please make sure that you have the following packages installed:

  • gcc
  • gcc-devel
  • libaio
  • libaio-devel

Installation procedure

  1. Novell provides a nice package named ‚orarun‘ which installs the needed user, group and sets a couple of kernel parameters you otherwise had to set manually. While you might get away without installing this package, it does a lot of work for you. Although it has been packaged for SuSE Linux Enterprise Server, it works nicely on your OpenSuSE: http://ftp.novell.com/partners/oracle/sles-10/
  2. Install an old Java SDK or runtime. The one you might find on your SuSE installation medium doesn’t work. I used a Java 1.3 SDK for this purpose. Anything newer will the Oracle installation cause to fail. As it is difficult to find these old products at Suns website, here is a link for your convenience:
    http://java.sun.com/products/archive/j2se/1.3.1_14/index.html
  3. Unpack/extract your Oracle 9i installation archive. As i never use cpio for archiving anything I constantly forget the right parameters. It’s „cpio -idmv < filename„.
  4. Use your favourite editor to edit Disk1/install/linux/oraparam.ini. Find the JRE_LOCATION entry there and change it according to your Java installation from step 2.
  5. Start the Oracle 9i installation by executing runInstaller as user oracle (do a „su – oracle“ before).
    1. Note that during installation the tools „Oracle Net Configuration Assistant“ and „Oracle Database Configuration Assistant“ will fail. Ignore that for now.
  6. Change to your $JAVA_HOME/jre/bin (beeing $JAVA_HOME the directory where you have Java installed during step 2). Create a symlink with „ln -s .java_wrapper jre“
  7. Change to your $JAVA_HOME/jre/bin/i386/native_threads.
    Create a symlink with „ln -s java jre“
  8. Change to your $ORACLE_HOME. Remove the JRE link found there and create a new one: „ln -s  JAVA_HOME/jre/ JRE“

You are done. Both tools failing during installation (dbca and netca) should also work now.