
        <html>
        <head>
        <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
        <title>Websh - Welcome</title>
        <script language="JavaScript" src="/websh/buttons.js"></script>
        <link href="websh.css" rel="styleSheet" type="text/css">
        <meta name="description" content="Websh - the rapid development environment to build powerful web applications.">
        <META NAME="keywords" CONTENT="websh, Websh, e-commerce, web application, apache, perl,  php, asp, cold fusion">
        </head>
    
        <body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0"
        bgcolor="#ffffff" link="#006699" alink="red" vlink="#006699">
    
        <map name="grafik_navi">
        <area href="mailto:websh-dev@tcl.apache.org" coords="94,2,154,26" shape="rect">
        <area href="/websh/" coords="4,2,64,26" shape="rect">
        <area href="/websh/contact.html" coords="184,2,244,26" shape="rect">
        </map>
        <table border="0" cellpadding="0" cellspacing="0" width="100%" height="76">
        <tr valign="top">
    
            <td width="500" bgcolor="#006699"><img height="50" width="300" src="/websh/images/grafik_navi_home.gif" alt="" border="0" usemap="#grafik_navi"><img height="50" width="200" src="/websh/images/grafik_index.gif" alt=""></td>
        
        <td><img height="50" width="270" src="/websh/images/logo.gif" alt="Websh"></td>
	<td width="5000" bgcolor="#000000">&nbsp;</td>
        </tr>
        <tr>
        <td width="500">
        <table border="0" cellpadding="0" cellspacing="0" width="500" height="40">
    
            <tr bgcolor="#006699">
            <td><a href="/websh/product.html"  onmouseover="swap('prod','b_prod_b')"  onmouseout="swap('prod','b_prod_a')"><img height="20"  width="120"  src="/websh/buttons/b_prod_a.gif"  name="prod" border="0" alt="product description"></a></td>
            <td><a href="/websh/docu.html"  onmouseover="swap('docu','b_docu_b')"  onmouseout="swap('docu','b_docu_a')"><img height="20"  width="100"  src="/websh/buttons/b_docu_a.gif"  name="docu" border="0" alt="documentation"></a></td>
            <td width="70"><br></td>
            <td><a href="/websh/resources.html"  onmouseover="swap('ress','b_ress_b')"  onmouseout="swap('ress','b_ress_a')"><img height="20"  width="110"  src="/websh/buttons/b_ress_a.gif"  name="ress" border="0" alt="resources and links"></a></td>
            <td><a href="/websh/download.html"  onmouseover="swap('down','b_down_b')"  onmouseout="swap('down','b_down_a')"><img height="20"  width="100"  src="/websh/buttons/b_down_a.gif"  name="down" border="0" alt="download"></a></td>
            </tr>
            <tr height="20">
            <td width="120" height="20"><img height="20" width="120" src="/websh/images/title.gif"></td>
            <td width="100" height="20"><img height="20" width="100" src="/websh/images/title.gif"></td>
            <td width="70" height="20"><img height="20" width="70" src="/websh/buttons/b_supp_c.gif"></td>
            <td width="110" height="20"><img height="20" width="110" src="/websh/images/title.gif"></td>
            <td width="100" height="20"><img height="20" width="100" src="/websh/images/title.gif"></td>
            </tr>
        
        </table>
        </td>
        <td><img height="40" width="270" src="/websh/images/logo_strich.gif"></td>
        </tr>
        </table>
    
    <table border="0" cellpadding="0" cellspacing="0" width="770">
    
        <tr height="30">
        <td width="10" valign="top"></td>
        <td width="150" height="30"></td>
        
                    <td width="455" height="30">
		    <h1>frequently asked questions</h1>
                    </td>
                    <td width="10" height="30"><br>
                    </td>
                    <td width="145" height="30">
		    &nbsp;
                    </td>
                
        </tr>
    
    <tr valign="top">
    
	<td width="10"><br></td>
        <td width="150">
        <table border="0" cellpadding="0" cellspacing="0" width="141">
        
        <tr valign="top">
        <td width="10"><img height="11" width="10" src="/websh/images/pfeil.gif"></td>
        <td class=nav>
        <a href="/websh/support.html"><b>support</b></a><br>
	
	<br></td></tr>
    
        
        <tr valign="top">
        <td width="10"><img height="11" width="10" src="/websh/images/pfeil.gif"></td>
        <td class=nav>
        <b>faq</b><br>
	
	    - <a href="/websh/faq.html#generic">generic questions</a><br>
	
	    - <a href="/websh/faq.html#technical">tech questions</a><br>
	
	<br></td></tr>
      
        <tr valign="top">
        <td width="10"><img height="11" width="10" src="/websh/images/pfeil.gif"></td>
        <td class=nav>
        <a href="/websh/subscribe.html"><b>mailing list</b></a><br>
	
	<br></td></tr>
    
        
        <tr valign="top">
        <td width="10"><img height="11" width="10" src="/websh/images/pfeil.gif"></td>
        <td class=nav>
        <a href="http://issues.apache.org/bugzilla/"><b>bug tracking system</b></a><br>
	
	<br></td></tr>
    
        </table>
        </td>
    
    <td width="455">
<a name="toc"></a><a name="generic"><h1>Contents</h1>

<p>
<a href="#generic"><b>1 Generic Questions</b></a><br>
<a href="#whatis">1.1 What is Websh?</a><br>
<a href="#version">1.2 What is the current version?</a><br>
<a href="#price">1.3 What does Websh cost?</a><br>
<a href="#download">1.4 Where can I download Websh?</a><br>
<a href="#why">1.5 Why should I use Websh?</a><br>
<a href="#mailinglist">1.6 Is there a mailing list?</a><br>
</p>
<p>
<a href="#technical"><b>2 Technical Questions</b></a><br>
<a href="#logging">2.1 How do I use the logging facility?</a><br>
<a href="#mod_websh">2.2 How do I setup mod_websh?</a><br>
<a href="#apache">2.3 How do I configure mod_websh for Apache 1 or Apache 2 repectively?</a>
</p>

<a name="generic"></a><a href="#toc"><h1>1 Generic Questions</h1></a>

<a name="whatis"></a><a href="#toc"><h2>1.1 What is Websh?</h2></a>

Websh is a rapid development environment for building powerful and
reliable web applications. It is a standard Tcl extension and is
released as Open Source Software. Websh is versatile and handles
everything from HTML generation to data-base driven one-to-one page
customization. Netcetera has been using it for years in many customer
projects, which typically are E-commerce shops or even electronic banking 
applications.
<p>
In addition, Websh provides mod_websh, an Apache module for the Apache 1.3
and Apache 2 web server.

<a name="version"></a><a href="#toc"><h2>1.2 What is the current version?</h2></a>

Currently, version 3.6 of Websh has been released as Beta (but fully working
version). Check the <a href="download.html">download area</a> to get the
latest version.

<a name="price"></a><a href="#toc"><h2>1.3 What does Websh cost?</h2></a>

Nothing. It's free. Websh is released as Open Source.

<a name="download"></a><a href="#toc"><h2>1.4 Where can I download Websh?</h2></a>

The latest release of Websh is available for download in the
<a href="download.html">download area</a> of this site.

<a name="why"></a><a href="#toc"><h2>1.5 Why should I use Websh?</h2></a>

In today's E-commerce environment, flexibility and short
time-to-market are key characteristics for successful
business. E-commerce, in other words, calls for a solid basis on which
applications can be built. For exactly this purpose we have designed
Websh.
<p>
Websh helps you to create high-quality web applications with light
time constraints. It is fast, versatile, scalable, and easy to learn.
With Websh, you have a win-win situation for developers and
customers.

<a name="mailinglist"></a><a href="#toc"><h2>1.6 Is there a mailing list?</h2></a>

Sure. Visit the <a href="subscribe.html">subscribe</a> page on this site to get more information.

<a name="technical"></a><a href="#toc"><h1>2 Technical Questions</h1></a>

<a name="logging"></a><a href="#toc"><h2>2.1 How do I use the logging facility?</h2></a>

Before Websh sends a message to a log destination, the message
needs to pass two filters. That's why you need to specify a level when
you issue a log message. First, Websh decides whether or not to
handle the log message. Then, it scrolls through the list of
registered log destinations and compares the log message level against
the filter of each log destination. The message is sent to the log
destination only if the message passes the second filter.

<br><br>
A log level consists of a tag and a level, separated by a dot.
Possible levels are
<ul>
<li>alert</li>
<li>error</li>
<li>warning</li>
<li>info</li>
<li>debug</li>
</ul>
The tag is free text. Typically, it is the name of the application, 
say &quot;foo&quot;.

<br><br>
Before log messages can reach their destination, you have to
&quot;open up&quot; the log destination, in two steps:
<pre>
web::loglevel add foo.warning-debug
web::logdest add foo.warning-info file foo_warn.log
web::logdest add foo.debug file foo_dbg.log
</pre>

This sequence of commands tells Websh to handle all messages
in the range &quot;warning&quot; to &quot;debug&quot;, if the level string is
&quot;foo&quot;, and to discard any other messages. Messages of level
&quot;debug&quot; are then written to file &quot;foo_dbg.log&quot;, while
the other messages end up in file &quot;foo_warn.log&quot;.

<br><br>
Issuing a message is easy:
<pre>
web::log foo.info &quot;Hello, world !&quot;
</pre>

<p>
A sample logging setup for a script in mod_websh looks like this:

<pre>
web::initializer {
    web::logdest add user.-debug file -unbuffered /tmp/test.log
    web::logfilter add *.-debug
    web::log info &quot;initializing interp&quot;
}

web::command default {
    web::log info &quot;command default call number [web::interpcfg  numreq]&quot;
    web::putx &quot;file /tmp/dummypage.html&quot;
}

web::finalizer {
    web::log info &quot;shutting down interp&quot;
}

web::dispatch
</pre>

This will setup logging when the interpreter is created (during the
first request it handles) and later, this logs can be used during the 
requests. Note that only log levels and log destinations created in the
initializer code are accessible in the finalizer. Configurations created
during a request is discared when the rquest ends.

<a name="mod_websh"></a><a href="#toc"><h2>2.2 How do I setup mod_websh?</h2></a>

If you compile and install mod_websh, a sample setup for mod_websh is 
also installed. Please refer to the README file in your installation directory.


<a name="apache"></a><a href="#toc"><h2>2.3 How do I configure mod_websh for Apache 1 or Apache 2 repectively?</h2></a>

Websh will automatically detect whether the header files of Apache 1 or 
Apache 2 are present and compile accordingly. There is no manual change
needed to compile with a specific version. (However a compiled version will
only run with the Apache version it was compiled with.)
    </td>
  </tr>
  </table>

        <table border="0" cellpadding="0" cellspacing="0" width="770" height="45">
        <tr valign="top">
        <td colspan="2">
        <hr noshade size="1">
        </td>
        </tr>
        <tr valign="top">
        <td width="10"></td>
        <td width="760">
	<a href="/websh/product.html">description</a>&nbsp;|&nbsp;<a href="/websh/docu.html">documentation</a>&nbsp;|&nbsp;<span class="blue">support</span>&nbsp;|&nbsp;<a href="/websh/resources.html">resources</a>&nbsp;|&nbsp;<a href="/websh/download.html">download</a>&nbsp;|&nbsp;<a href="/websh/credits.html">credits</a>&nbsp;|&nbsp;<a href="/websh/copyright.html">copyright</a>
	</td></tr>
        <tr valign="top">
        <td colspan="2">
        <hr noshade size="1">
        </td>
        </tr>
        <tr valign="top">
        <td width="10"></td>
        <td width="760">
        <span class="klein"><b>&copy; Websh - an <a href="http://tcl.apache.org">Apache Tcl</a> project - part of the <a href="http://www.apache.org/">Apache Software Foundation</a></b></span></td>
        </tr>
        </table>
        </body>
        </html>
    