You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by ap...@apache.org on 2012/09/27 14:55:49 UTC

svn commit: r1390979 - in /mina/site/trunk/content: faq.mdtext index.mdtext

Author: apaliwal
Date: Thu Sep 27 12:55:48 2012
New Revision: 1390979

URL: http://svn.apache.org/viewvc?rev=1390979&view=rev
Log:
faq will need to be moved to markdown syntax, needs rework

Added:
    mina/site/trunk/content/faq.mdtext
Modified:
    mina/site/trunk/content/index.mdtext

Added: mina/site/trunk/content/faq.mdtext
URL: http://svn.apache.org/viewvc/mina/site/trunk/content/faq.mdtext?rev=1390979&view=auto
==============================================================================
--- mina/site/trunk/content/faq.mdtext (added)
+++ mina/site/trunk/content/faq.mdtext Thu Sep 27 12:55:48 2012
@@ -0,0 +1,303 @@
+Title: FAQ
+Notice:    Licensed to the Apache Software Foundation (ASF) under one
+           or more contributor license agreements.  See the NOTICE file
+           distributed with this work for additional information
+           regarding copyright ownership.  The ASF licenses this file
+           to you under the Apache License, Version 2.0 (the
+           "License"); you may not use this file except in compliance
+           with the License.  You may obtain a copy of the License at
+           .
+             http://www.apache.org/licenses/LICENSE-2.0
+           .
+           Unless required by applicable law or agreed to in writing,
+           software distributed under the License is distributed on an
+           "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+           KIND, either express or implied.  See the License for the
+           specific language governing permissions and limitations
+           under the License.
+
+<H2><A name="FAQ-TableofContents"></A>Table of Contents</H2>
+<DIV>
+<UL>
+    <LI><A href="#FAQ-TableofContents">Table of Contents</A></LI>
+    <LI><A href="#FAQ-General">General</A></LI>
+<UL>
+    <LI><A href="#FAQ-WhatdoesMINAmean%253F">What does MINA mean?</A></LI>
+    <LI><A href="#FAQ-WhattransportdoesMINAsupport%253F">What transport does MINA support?</A></LI>
+    <LI><A href="#FAQ-HowdoesMINAperform%253F">How does MINA perform?</A></LI>
+    <LI><A href="#FAQ-WhichversionofMINAshouldIuse%253F">Which version of MINA should I use?</A></LI>
+    <LI><A href="#FAQ-Whatisrequiredtobuild%252FrunMINA%253F">What is required to build/run MINA?</A></LI>
+    <LI><A href="#FAQ-HowcanIgethelp%253F">How can I get help?</A></LI>
+    <LI><A href="#FAQ-How%252FWhatcanIcontribute%253F">How / What can I contribute?</A></LI>
+</UL>
+    <LI><A href="#FAQ-CanMINA...%253F">Can MINA...?</A></LI>
+<UL>
+    <LI><A href="#FAQ-CanIuseMINAtocreateclient%2528orserver%2529applications%253F">Can I use MINA to create client (or server) applications?</A></LI>
+    <LI><A href="#FAQ-CanMINAhandletextprotocolssuchasHTTP%253F">Can MINA handle text protocols such as HTTP?</A></LI>
+    <LI><A href="#FAQ-CanMINAhandlecomplexbinaryprotocolssuchasLDAP%253F">Can MINA handle complex binary protocols such as LDAP?</A></LI>
+    <LI><A href="#FAQ-CanIimplementprotocolsthatkeepsconnectionalivewithMINA%253F">Can I implement protocols that keeps connection alive with MINA?</A></LI>
+    <LI><A href="#FAQ-DoesMINAsupportSSL%252FTLSandSASLoutofthebox%253F">Does MINA support SSL/TLS and SASL out-of-the-box?</A></LI>
+    <LI><A href="#FAQ-DoIneedtomakemyIoHandlerthreadsafe%253F">Do I need to make my IoHandler thread-safe?</A></LI>
+    <LI><A href="#FAQ-WhattransporttypescanMINAsupportexceptTCP%252FIPandUDP%252FIP%253F">What transport types can MINA support except TCP/IP and UDP/IP?</A></LI>
+    <LI><A href="#FAQ-DoesMINAsupportmulticast%253F">Does MINA support multicast?</A></LI>
+</UL>
+    <LI><A href="#FAQ-HowdoI...%253F">How do I...?</A></LI>
+<UL>
+    <LI><A href="#FAQ-HowcanIstoresessionspecificinformation%253F">How can I store session-specific information?</A></LI>
+    <LI><A href="#FAQ-HowcanIseparateaneventhandlerintomultiplehandlerswhenIimplementcomplexbusinesslogic%253F">How can I separate an event handler into multiple handlers when I implement complex business logic?</A></LI>
+    <LI><A href="#FAQ-HowdoIclosemysessionsanddisposemyConnector%253F">How do I close my sessions and dispose my Connector?</A></LI>
+    <LI><A href="#FAQ-HowcanIreconnecttoserveraftermyclientsessionisclosed%253F">How can I reconnect to server after my client session is closed?</A></LI>
+    <LI><A href="#FAQ-WhenshouldIimplementmyprotocolhandlerusingfilters%253F">When should I implement my protocol handler using filters?</A></LI>
+    <LI><A href="#FAQ-HowcanIdetectwhentheremotepeerdoesn%2527tsendaresponsemessageformyrequestmessage%253F">How can I detect when the remote peer doesn't send a response message for my request message?</A></LI>
+    <LI><A href="#FAQ-HowcanIletMINAlogmessagesusingmyfavoriteloggingframework%2528i.e.Log4J%2529%253F">How can I let MINA log messages using my favorite logging framework (i.e. Log4J)?</A></LI>
+</UL>
+    <LI><A href="#FAQ-Troubleshooting">Troubleshooting</A></LI>
+<UL>
+    <LI><A href="#FAQ-Iget%257B%257BOutOfMemoryError%257D%257Dorresponsetimeoutandconnectionresetunderheavyload.">I get <TT>OutOfMemoryError</TT> or response timeout and connection reset under heavy load.</A></LI>
+    <LI><A href="#FAQ-Nodataiswrittinouttothesessionevenifthebufferisnotempty.">No data is writtin out to the session even if the buffer is not empty.</A></LI>
+    <LI><A href="#FAQ-IcreatedanSSLclientwithMINA%252Cbutitdoesn%2527tinitiateanyhandshakeafterthesessionisopen.">I created an SSL client with MINA, but it doesn't initiate any handshake after the session is open.</A></LI>
+    <LI><A href="#FAQ-WhydoesSocketConnectorsendseveralmessagesasonemessage%253F">Why does SocketConnector send several messages as one message?</A></LI>
+    <LI><A href="#FAQ-Iget%257B%257BInvalidClassChangeError%257D%257D.">I get <TT>InvalidClassChangeError</TT>.</A></LI>
+    <LI><A href="#FAQ-Myserverfailswithjava.net.SocketException%253AToomanyfilesopen">My server fails with java.net.SocketException: Too many files open</A></LI>
+<UL>
+    <LI><A href="#FAQ-ChangethetimeoutinWindows">Change the timeout in Windows</A></LI>
+    <LI><A href="#FAQ-ChangethetimeoutinLinux">Change the timeout in Linux</A></LI>
+</UL>
+</UL>
+</UL></DIV>
+
+<H2><A name="FAQ-General"></A>General</H2>
+
+<H3><A name="FAQ-WhatdoesMINAmean%3F"></A>What does MINA mean?</H3>
+
+<P>MINA is:</P>
+<UL>
+	<LI>an acronym for 'Multipurpose Infrastructure for Network Applications'</LI>
+	<LI>A girl's name</LI>
+	<LI>'South' in Japanese</LI>
+	<LI>'Mine' (as in mineshaft) in Spanish and Portuguese</LI>
+	<LI>Look at <A href="http://en.wikipedia.org/wiki/Mina" class="external-link" rel="nofollow">here</A> for more meanings.</LI>
+</UL>
+
+
+<H3><A name="FAQ-WhattransportdoesMINAsupport%3F"></A>What transport does MINA support?</H3>
+
+<P>MINA currently supports TCP and UDP based on Java NIO API, provides support for serial port communication, and transports based on <A href="http://apr.apache.org/" class="external-link" rel="nofollow">Apache Portable Runtime</A>.</P>
+
+<H3><A name="FAQ-HowdoesMINAperform%3F"></A>How does MINA perform?</H3>
+
+<P>It is known to perform as good as C/C++ servers.  Please refer to the <A href="performance-test-reports.html" title="Performance Test Reports">Performance Test Reports</A> or the <A href="testimonials.html" title="Testimonials">Testimonials</A>.</P>
+
+<H3><A name="FAQ-WhichversionofMINAshouldIuse%3F"></A>Which version of MINA should I use?</H3>
+
+<P>Use the latest point-release of 1.0 (for Java 1.4) or 2.0 (for Java 5 or above). 1.0 and 1.1 aren't maintained anymore, unless someone propose some patches.</P>
+
+<H3><A name="FAQ-Whatisrequiredtobuild%2FrunMINA%3F"></A>What is required to build/run MINA?</H3>
+
+<P>JDK 1.5 or above is required to build MINA. But MINA runs perfect with JDK 1.4 only if you don't use SSLFilter which uses Java 5 SSLEngine. This means JDK 1.5 or above is required for you to use SSL with MINA.</P>
+
+<P>MINA core module depends on two libraries, SLF4J and backport-util-concurrent (for 1.0):</P>
+
+<P><A href="http://www.slf4j.org/" class="external-link" rel="nofollow">SLF4J (Simple Logging Facade for Java)</A>, a logging framework from the author of <A href="http://logging.apache.org/log4j/docs/index.html" class="external-link" rel="nofollow">Log4J</A>. SLF4J is very similar to <A href="http://jakarta.apache.org/commons/logging/" class="external-link" rel="nofollow">Commons-Logging</A>, but it doesn't cause any class loader issues at all. SLF4J provides bindings for Log4J, JDK 1.4 logging API, and NLog4J. Please put an appropriate SLF4J JAR file which corresponds to your favorite logging framework to the classpath as SLF4J documentation explains.</P>
+
+<P><A href="http://dcl.mathcs.emory.edu/util/backport-util-concurrent/" class="external-link" rel="nofollow">backport-util-concurrent</A> is a backport implementation of <TT>java.util.concurrent</TT> package which was introduced in JDK 1.5.  MINA 1.0 uses it to retain the runtime compatibility with JDK 1.4.   Please note that MINA 1.1 or above depends on <TT>java.util.concurrent</TT> package directly, and therefore doesn't depend on it anymore.</P>
+
+<P><A href="http://www.springframework.org/" class="external-link" rel="nofollow">Spring framework</A> and <A href="http://www.jcraft.com/jzlib/" class="external-link" rel="nofollow">JZlib</A> are also required to build <TT>integration-spring</TT> and <TT>filter-compression</TT> module.</P>
+
+<H3><A name="FAQ-HowcanIgethelp%3F"></A>How can I get help?</H3>
+
+<P>The primary source to get help is the <A href="documentation.html" title="Documentation">documentation</A>.  You can also contact us via <A href="contact.html" title="Contact">various channels</A> to ask questions on MINA or to contribute to it.</P>
+
+<H3><A name="FAQ-How%2FWhatcanIcontribute%3F"></A>How / What can I contribute?</H3>
+
+<P>You can contribute anything related with MINA; examples, useful codecs for existing protocols, tutorials, feature improvements, bug fixes, benchmarks, and whatever. Please <A href="contact.html" title="Contact">contact us</A> without hesitation.</P>
+
+<H2><A name="FAQ-CanMINA...%3F"></A>Can MINA...?</H2>
+
+<H3><A name="FAQ-CanIuseMINAtocreateclient%28orserver%29applications%3F"></A>Can I use MINA to create client (or server) applications?</H3>
+
+<P>Yes. You can create both client and server applications with MINA. Please take a look at <TT>IoConnector</TT> and <TT>IoAcceptor</TT>.</P>
+
+<H3><A name="FAQ-CanMINAhandletextprotocolssuchasHTTP%3F"></A>Can MINA handle text protocols such as HTTP?</H3>
+
+<P>Yes. Please take a look at <A href="documentation.html" title="Documentation">the Reversed and HTTP server examples</A>. <A href="http://asyncweb.safehaus.org/" class="external-link" rel="nofollow">AsyncWeb</A> is a HTTP server implementation based on MINA.</P>
+
+<H3><A name="FAQ-CanMINAhandlecomplexbinaryprotocolssuchasLDAP%3F"></A>Can MINA handle complex binary protocols such as LDAP?</H3>
+
+<P>Yes. Please take a look at <A href="documentation.html" title="Documentation">the SumUp example</A>. There is no full ASN.1 support yet, but we will implement it someday and you can contribute to make it available sooner.</P>
+
+<H3><A name="FAQ-CanIimplementprotocolsthatkeepsconnectionalivewithMINA%3F"></A>Can I implement protocols that keeps connection alive with MINA?</H3>
+
+<P>Yes. MINA doesn't close any connections unless you called <TT>IoSession.close()</TT> or connection is closed by the remote peer.</P>
+
+<H3><A name="FAQ-DoesMINAsupportSSL%2FTLSandSASLoutofthebox%3F"></A>Does MINA support SSL/TLS and SASL out-of-the-box?</H3>
+
+<P>We support SSL/TLS out-of-the-box.  Please refer to <TT>SSLFilter</TT>.  It also provides a way to implement <TT>StartTLS</TT>.  JDK 1.5 provides complete SASL support which works well with MINA.</P>
+
+<H3><A name="FAQ-DoIneedtomakemyIoHandlerthreadsafe%3F"></A>Do I need to make my IoHandler thread-safe?</H3>
+
+<P>It depends on your implementation. If you access the resource which is shared across multiple sessions, you have to make it thread-safe. If the resource is not shared at all and accessed by only one session (e.g. storing context information as a session attribute), then you don't need to make it thread-safe. It is because all events generated by MINA are transmitted to your handler in order (when using the Executor Filter), and the newer event is not processed if the event handler method for the older event for the same session hasn't returned yet.</P>
+
+<H3><A name="FAQ-WhattransporttypescanMINAsupportexceptTCP%2FIPandUDP%2FIP%3F"></A>What transport types can MINA support except TCP/IP and UDP/IP?</H3>
+
+<P>Virtually all kind of transport types. MINA API is designed to be transport-independent. You can implement any transport type support only if you can conform to MINA API. Support for Pre-1.4 I/O (aka BIO), reliable multicast, Java Communications API, and file I/O are planned.</P>
+
+<H3><A name="FAQ-DoesMINAsupportmulticast%3F"></A>Does MINA support multicast?</H3>
+
+<P>Not yet. Java NIO doesn't support multicast yet. Multicast for NIO will be available in Java SE 7, Dolphin. We are seriously considering to implement multicasts using pre-1.4 Java API.</P>
+
+<H2><A name="FAQ-HowdoI...%3F"></A>How do I...?</H2>
+
+<H3><A name="FAQ-HowcanIstoresessionspecificinformation%3F"></A>How can I store session-specific information?</H3>
+
+<P>Sessions are capable of custom attributes that you can add or remove at any time. These custom attributes are not shared between sessions; it is designed to store session specific information.</P>
+
+<H3><A name="FAQ-HowcanIseparateaneventhandlerintomultiplehandlerswhenIimplementcomplexbusinesslogic%3F"></A>How can I separate an event handler into multiple handlers when I implement complex business logic?</H3>
+
+<P>Please refer to <TT>DemuxingIoHandler</TT>.</P>
+
+<H3><A name="FAQ-HowdoIclosemysessionsanddisposemyConnector%3F"></A>How do I close my sessions and dispose my Connector?</H3>
+<P>You have to do it in two steps : first close your sessions, then dispose the connector. Of course, if you dispose your Connector first, then all the sessions will be closed. Here is the code :</P>
+
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+    ConnectFuture cf = connector.connect(<SPAN class="code-keyword">new</SPAN> InetSocketAddress(<SPAN class="code-quote">&quot;localhost&quot;</SPAN>, 8080));
+
+    <SPAN class="code-comment">// Get the close <SPAN class="code-keyword">future</SPAN> <SPAN class="code-keyword">for</SPAN> <SPAN class="code-keyword">this</SPAN> session
+</SPAN>    CloseFuture closeFuture = cf.getSession().getCloseFuture();
+
+    <SPAN class="code-comment">// Adding a listener to <SPAN class="code-keyword">this</SPAN> close event
+</SPAN>    closeFuture.addListener((IoFutureListener&lt;?&gt;) <SPAN class="code-keyword">new</SPAN> IoFutureListener&lt;IoFuture&gt;() {
+            @Override
+            <SPAN class="code-keyword">public</SPAN> void operationComplete(IoFuture <SPAN class="code-keyword">future</SPAN>) {
+                <SPAN class="code-object">System</SPAN>.out.println(<SPAN class="code-quote">&quot;The session is now closed&quot;</SPAN>);
+            }
+    });
+
+    <SPAN class="code-comment">// Do the close requesting that the pending messages are sent before
+</SPAN>    <SPAN class="code-comment">// the session is closed
+</SPAN>    closeFuture.getSession().close(<SPAN class="code-keyword">false</SPAN>);
+
+    <SPAN class="code-comment">// Now wait <SPAN class="code-keyword">for</SPAN> the close to be completed
+</SPAN>    closeFuture.awaitUninterruptibly();
+
+    <SPAN class="code-comment">// We can now dispose the connector
+</SPAN>    connector.dispose();
+
+</PRE>
+</DIV></DIV>
+
+
+<H3><A name="FAQ-HowcanIreconnecttoserveraftermyclientsessionisclosed%3F"></A>How can I reconnect to server after my client session is closed?</H3>
+
+<P>Here is an example code:</P>
+
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+<SPAN class="code-keyword">public</SPAN> void sessionClosed( IoSession session ) <SPAN class="code-keyword">throws</SPAN> Exception {
+    <SPAN class="code-comment">// Wait <SPAN class="code-keyword">for</SPAN> five seconds before reconnecting.
+</SPAN>    <SPAN class="code-object">Thread</SPAN>.sleep( 5000 );
+
+    <SPAN class="code-comment">// Reconnect.
+</SPAN>    connector.connect( session.getRemoteAddress(), <SPAN class="code-keyword">this</SPAN> );
+}
+</PRE>
+</DIV></DIV>
+
+<P>Possibly it would be better to extract this code to a method like 'reconnect()' so that it can reusable in more than one place.</P>
+
+<H3><A name="FAQ-WhenshouldIimplementmyprotocolhandlerusingfilters%3F"></A>When should I implement my protocol handler using filters?</H3>
+
+<P><TT>IoFilter</TT> is usually considered reusable just like we think about Servlet filters. Please implement commonly used business logic such as authorization and logging as a filter. In case you implement just complex multi-layer protocols like Kerberos, you could consider using <TT>org.apache.mina.handler.chain</TT> package.</P>
+
+<H3><A name="FAQ-HowcanIdetectwhentheremotepeerdoesn%27tsendaresponsemessageformyrequestmessage%3F"></A>How can I detect when the remote peer doesn't send a response message for my request message?</H3>
+
+<P>You can't use <TT>sessionIdle event</TT> simply here. You'll have to use <TT>java.util.concurrent.ScheduledExecutor</TT> (or <A href="http://www.opensymphony.com/quartz/" class="external-link" rel="nofollow">OpenSymphony Quartz</A> as an alternative). Schedule a timeout task to be executed on timeout situation for each request message, and cancel it when you receive the corresponding response message.</P>
+
+<H3><A name="FAQ-HowcanIletMINAlogmessagesusingmyfavoriteloggingframework%28i.e.Log4J%29%3F"></A>How can I let MINA log messages using my favorite logging framework (i.e. Log4J)?</H3>
+
+<P>Please refer to 'Swapping implementations at deployment time' section in <A href="http://www.slf4j.org/manual.html" class="external-link" rel="nofollow">the SLF4J Manual</A>.</P>
+
+<H2><A name="FAQ-Troubleshooting"></A>Troubleshooting</H2>
+
+
+<H3><A name="FAQ-Iget%7B%7BOutOfMemoryError%7D%7Dorresponsetimeoutandconnectionresetunderheavyload."></A>I get <TT>OutOfMemoryError</TT> or response timeout and connection reset under heavy load.</H3>
+
+<P>We recommend to switch the default buffer type to 'heap' by inserting the following code before you start a server:</P>
+
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+ByteBuffer.setUseDirectBuffers(<SPAN class="code-keyword">false</SPAN>);
+ByteBuffer.setAllocator(<SPAN class="code-keyword">new</SPAN> SimpleByteBufferAllocator());
+</PRE>
+</DIV></DIV>
+
+<P>If you prefer direct buffers to heap buffers, JVM might have ran out of direct memory. Please try increasing maximum direct memory size using <TT>&#45;XX:MaxDirectMemorySize</TT> option (e.g. <TT>&#45;XX:MaxDirectMemorySize=128M</TT>)</P>
+
+<H3><A name="FAQ-Nodataiswrittinouttothesessionevenifthebufferisnotempty."></A>No data is writtin out to the session even if the buffer is not empty.</H3>
+
+<P>Please make sure if you called <TT>ByteBuffer.flip()</TT> to flip the buffer before writing the buffer out. It is a common mistake NIO beginners make.</P>
+
+<H3><A name="FAQ-IcreatedanSSLclientwithMINA%2Cbutitdoesn%27tinitiateanyhandshakeafterthesessionisopen."></A>I created an SSL client with MINA, but it doesn't initiate any handshake after the session is open.</H3>
+
+<P>Please make sure you called <TT>SSLFilter.setUseClientMode(true)</TT> before you initiate a connection. Server developers will also have to disconnect users who doesn't initiate SSL handshake by setting <TT>IoSession.readerIdleTime</TT> and closing the session in <TT>IoHandler.sessionIdle()</TT>.</P>
+
+<H3><A name="FAQ-WhydoesSocketConnectorsendseveralmessagesasonemessage%3F"></A>Why does SocketConnector send several messages as one message?</H3>
+
+<P><EM>For example, I tried using SocketConnector to send &quot;abc&quot; and &quot;def&quot;, but it sent &quot;abcdef&quot;. Is it a MINA bug?</EM></P>
+
+<P>No, this is due to your OS trying to send packets more efficiently (see <A href="http://en.wikipedia.org/wiki/Nagle_algorithm" class="external-link" rel="nofollow">http://en.wikipedia.org/wiki/Nagle_algorithm</A>). You can enable/disable Nagle's algorithm by a call to SocketSessionConfig.setTcpNoDelay(), e.g.:</P>
+
+<P>((SocketSessionConfig) connector.getSessionConfig()).setTcpNoDelay(false)</P>
+
+<P>However, even if you do this you cannot expect one session.write(bytes) in MINA to correspond to one TCP packet on your network. You should probably implement your own MINA ProtocolDecoder to handle the assembly of incoming bytes into message objects. The TextLineCodec is a good start if the protocol you're implementing is based on text lines. For a more advanced example have a look at the SumUp example in the MINA distribution.</P>
+
+<H3><A name="FAQ-Iget%7B%7BInvalidClassChangeError%7D%7D."></A>I get <TT>InvalidClassChangeError</TT>.</H3>
+
+<P>Please make sure if you are using the appropriate SLF4J version.  You will get <TT>InvalidClassChangeError</TT> if you are using outdated SLF4J release.</P>
+
+<H3><A name="FAQ-Myserverfailswithjava.net.SocketException%3AToomanyfilesopen"></A>My server fails with java.net.SocketException: Too many files open</H3>
+
+<P>Network sockets are treated like files and your operating system has a limit to the number of file handles it can manage. Running out of file handles is usually due to a large number of clients connecting and disconnecting frequently. As specified by TCP, after being closed sockets remain in the TIME_WAIT state for some additional time. The reason is to ensure that delayed packets arrive on the correct socket. In Windows, the default TIME_WAIT timeout is 4 minutes, in Linux it is 60 seconds.</P>
+
+<H4><A name="FAQ-ChangethetimeoutinWindows"></A>Change the timeout in Windows</H4>
+
+<OL>
+	<LI>Run regedit to start the Registry Editor</LI>
+	<LI>Locate the following key: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Parameters</LI>
+	<LI>Add a new value named TcpTimedWaitDelay asa decimal and set the desired timeout in seconds (30-300)</LI>
+	<LI>Reboot</LI>
+</OL>
+
+
+<H4><A name="FAQ-ChangethetimeoutinLinux"></A>Change the timeout in Linux</H4>
+
+<OL>
+	<LI>Update the configuration value by running (30 seconds used in the example)</LI>
+</OL>
+
+
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+   echo 30 &gt; /proc/sys/net/ipv4/tcp_fin_timeout
+</PRE>
+</DIV></DIV>
+
+<OL>
+	<LI>Restart the networking component, for example by running</LI>
+</OL>
+
+
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+  /etc/init.d/networking restart
+</PRE>
+</DIV></DIV>
+
+<P>      or</P>
+
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+  service network restart
+</PRE>
+</DIV></DIV>

Modified: mina/site/trunk/content/index.mdtext
URL: http://svn.apache.org/viewvc/mina/site/trunk/content/index.mdtext?rev=1390979&r1=1390978&r2=1390979&view=diff
==============================================================================
--- mina/site/trunk/content/index.mdtext (original)
+++ mina/site/trunk/content/index.mdtext Thu Sep 27 12:55:48 2012
@@ -16,4 +16,10 @@ Notice:    Licensed to the Apache Softwa
            specific language governing permissions and limitations
            under the License.
 
-Apache MINA is a network application framework which helps users develop high performance and high scalability network applications easily. It provides an abstract ·event-driven · asynchronous API over various transports such as TCP/IP and UDP/IP via Java NIO.
+Apache MINA is a network application framework which helps users develop high performance and high scalability network applications easily. It provides an abstract event-driven asynchronous API over various transports such as TCP/IP and UDP/IP via Java NIO.
+
+Apache MINA is often called:
+
+* NIO framework library,
+* client server framework library, or
+* a networking socket library,