php-doc-en/reference/sesam/ini.xml
Friedhelm Betz 07968b860b finished the ini-settings integration, maybe
config.xml: integrated parts removed. restructering, documentation of ini-settings fitting not into an extension
safe-mode
errorfunc
filesystem
info
misc
outcontrol added implicit_flush to ini-settings
sesam new structure, ini-settings
sybase added magic_quotes_sybase to ini-settings
var
rsusi: reflect changes


git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@97414 c90b9560-bf6c-de11-be94-00142212c4b1
2002-09-30 00:09:47 +00:00

268 lines
8.4 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<section id="sesam.configuration">
&reftitle.runtime;
&extension.runtime;
<variablelist>
<varlistentry id="ini.sesam-oml">
<term>
<parameter>sesam_oml</parameter>
<type>string</type>
</term>
<listitem>
<para>
Name of BS2000 PLAM library containing the loadable SESAM
driver modules. Required for using SESAM functions. The
BS2000 PLAM library must be set ACCESS=READ,SHARE=YES
because it must be readable by the apache server's user id.
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.sesam-configfile">
<term>
<parameter>sesam_configfile</parameter>
<type>string</type>
</term>
<listitem>
<para>
Name of SESAM application configuration file. Required for
using SESAM functions. The BS2000 file must be readable by
the apache server's user id.
</para>
<para>
The application configuration file will usually contain a
configuration like (see SESAM
reference manual):
<informalexample>
<programlisting role="bs2000">
<![CDATA[
CNF=B
NAM=K
NOTYPE
]]>
</programlisting>
</informalexample>
</para>
</listitem>
</varlistentry>
<varlistentry id="ini.sesam-messagecatalog">
<term>
<parameter>sesam_messagecatalog</parameter>
<type>string</type>
</term>
<listitem>
<para>
Name of SESAM message catalog file. In most cases, this
directive is not neccessary. Only if the SESAM message file
is not installed in the system's BS2000 message file table,
it can be set with this directive.
</para>
<para>
The message catalog must be set ACCESS=READ,SHARE=YES because
it must be readable by the apache server's user id.
</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<section id="sesam.config-notes">
<title>Configuration notes</title>
<para>
There is no standalone support for the PHP SESAM interface, it
works only as an integrated Apache module. In the Apache PHP
module, this <link linkend="sesam.configuration">SESAM interface is
configured</link> using Apache directives.
<table>
<title>SESAM Configuration directives</title>
<tgroup cols="2">
<thead>
<row>
<entry>Directive</entry>
<entry>Meaning</entry>
</row>
</thead>
<tbody>
<row>
<entry><literal>php3_sesam_oml</literal></entry>
<entry>
Name of BS2000 PLAM library containing the loadable SESAM
driver modules. Required for using SESAM functions.
<para>
Example:
<informalexample>
<programlisting role="apache">
<![CDATA[
php3_sesam_oml $.SYSLNK.SESAM-SQL.030
]]>
</programlisting>
</informalexample>
</para>
</entry>
</row>
<row>
<entry><literal>php3_sesam_configfile</literal></entry>
<entry>
Name of SESAM application configuration file. Required for
using SESAM functions.
<para>
Example:
<informalexample>
<programlisting role="apache">
<![CDATA[
php3_sesam_configfile $SESAM.SESAM.CONF.AW
]]>
</programlisting>
</informalexample>
It will usually contain a configuration like (see SESAM
reference manual):
<informalexample>
<programlisting role="bs2000">
<![CDATA[
CNF=B
NAM=K
NOTYPE
]]>
</programlisting>
</informalexample>
</para>
</entry>
</row>
<row>
<entry><literal>php3_sesam_messagecatalog</literal></entry>
<entry>
Name of SESAM message catalog file. In most cases, this
directive is not neccessary. Only if the SESAM message file
is not installed in the system's BS2000 message file table,
it can be set with this directive.
<para>
Example:
<informalexample>
<programlisting role="apache">
<![CDATA[
php3_sesam_messagecatalog $.SYSMES.SESAM-SQL.030
]]>
</programlisting>
</informalexample>
</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
<para>
In addition to the configuration of the PHP/SESAM interface, you
have to configure the SESAM-Database server itself on your
mainframe as usual. That means:
<itemizedlist>
<listitem>
<simpara>
starting the SESAM database handler (DBH), and
</simpara>
</listitem>
<listitem>
<simpara>
connecting the databases with the SESAM database handler
</simpara>
</listitem>
</itemizedlist>
</para>
<para>
To get a connection between a PHP script and the database
handler, the <literal>CNF</literal> and <literal>NAM</literal>
parameters of the selected SESAM configuration file must match
the id of the started database handler.
</para>
<para>
In case of distributed databases you have to start a
SESAM/SQL-DCN agent with the distribution table including the
host and database names.
</para>
<para>
The communication between PHP (running in the POSIX subsystem)
and the database handler (running outside the POSIX subsystem) is
realized by a special driver module called SQLSCI and SESAM
connection modules using common memory. Because of the common
memory access, and because PHP is a static part of the web
server, database accesses are very fast, as they do not require
remote accesses via ODBC, JDBC or UTM.
</para>
<para>
Only a small stub loader (SESMOD) is linked with PHP, and the
SESAM connection modules are pulled in from SESAM's OML PLAM
library. In the <link
linkend="sesam.configuration">configuration</link>, you must tell PHP
the name of this PLAM library, and the file link to use for the
SESAM configuration file (As of SESAM V3.0, SQLSCI is available
in the SESAM Tool Library, which is part of the standard
distribution).
</para>
<para>
Because the SQL command quoting for single quotes uses duplicated
single quotes (as opposed to a single quote preceded by a
backslash, used in some other databases), it is advisable to set
the PHP configuration directives <link
linkend="ini.magic-quotes-gpc"><literal>php3_magic_quotes_gpc</literal></link>
and <link
linkend="ini.magic-quotes-sybase"><literal>php3_magic_quotes_sybase</literal></link>
to <literal>On</literal> for all PHP scripts using the SESAM
interface.
</para>
</section>
<section id="sesam.runtime">
<title>Runtime considerations</title>
<para>
Because of limitations of the BS2000 process model, the driver
can be loaded only after the Apache server has forked off its
server child processes. This will slightly slow down the initial
SESAM request of each child, but subsequent accesses will respond
at full speed.
</para>
<para>
When explicitly defining a Message Catalog for SESAM, that
catalog will be loaded each time the driver is loaded (i.e., at
the initial SESAM request). The BS2000 operating system prints a
message after successful load of the message catalog, which will
be sent to Apache's error_log file. BS2000 currently does not
allow suppression of this message, it will slowly fill up the
log.
</para>
<para>
Make sure that the SESAM OML PLAM library and SESAM configuration
file are readable by the user id running the web server.
Otherwise, the server will be unable to load the driver, and will
not allow to call any SESAM functions. Also, access to the
database must be granted to the user id under which the Apache
server is running. Otherwise, connections to the SESAM database
handler will fail.
</para>
</section>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->