You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by ar...@apache.org on 2006/05/24 12:23:19 UTC

svn commit: r409111 - /db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/faq.xml

Author: arminw
Date: Wed May 24 03:23:18 2006
New Revision: 409111

URL: http://svn.apache.org/viewvc?rev=409111&view=rev
Log:
add beginner error messages faq

Modified:
    db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/faq.xml

Modified: db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/faq.xml
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/faq.xml?rev=409111&r1=409110&r2=409111&view=diff
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/faq.xml (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/faq.xml Wed May 24 03:23:18 2006
@@ -348,7 +348,7 @@
                     database.
                 </p>
                 <p>
-                    First thing to do is to build the cvs's with the default database HSQL,
+                    First thing to do is to build the SVN with the default database HSQL,
                     because you know it will work. If you get past this point you should have a
                     working OJB compiled. Now if your using JDK 1.4 you will need to set in
                     build.properties JDBC=+JDBC30 and do a
@@ -380,7 +380,8 @@
                 </p>
                 <p>
                     The final thing to do is to make sure the OJB core tables are in your
-                    database. Look on this page for <a href="site:platform">the core tables</a>. These core tables are used by
+                    database. Look on this page for <a href="site:platform">the core tables</a>.
+                    These core tables are used by
                     OJB to store internal data while it's running. It needs these. Then there's
                     the tables you define. The ones you mapped in the repository_user.xml file.
                 </p>
@@ -435,36 +436,113 @@
 
         <faq id="internalTables">
             <question>
-                What are the OJB internal tables for?
+                Does OJB need internal tables to run?
             </question>
             <answer>
                 <p>
-                    <a href="site:platform">Please refer to this document</a>.
+                    <strong>No</strong>, internal tables only needed for specific services/fetures.
+                    For more detailed information about OJB's internal used tables
+                    <a href="site:platform">please refer to this document</a>.
                 </p>
             </answer>
         </faq>
 
-        <faq id="couldNotBorrow">
+        <faq id="anyTools">
             <question>
-                What does the exception <em>Could not borrow connection from pool</em> mean?
+                Any tools help to generate the metadata files?
             </question>
             <answer>
                 <p>
-                    There can be several reasons
+                    <a href="site:large-metadata">Please refer to this document</a>.
                 </p>
             </answer>
         </faq>
 
-        <faq id="anyTools">
+
+
+        <faqsection id="mistakes">
+            <title>Beginner's mistakes: Frequently error logs</title>
+
+            <faq id="generalRecommendations">
+                <question>
+                    General recommendations for all errors
+                </question>
+                <answer>
+                    <p>
+                        Please search the whole stack trace and all logging output to find
+                        the reason of the error.
+                    </p>
+                    <note>
+                        General recommendations:
+                        <br/>
+                        - Search for error and warn messages in logged before exception stack trace.
+                        <br/>
+                        - Try to find the <em>root exception</em> causing the error (OJB normally wraps
+                        exceptions).
+                    </note>
+                </answer>
+            </faq>
+
+            <faq id="couldNotBorrowConnection">
             <question>
-                Any tools help to generate the metadata files?
+                Error message: <em>Could not borrow connection from pool</em>
+            </question>
+            <answer>
+                <ul>
+                    <li>
+                        Connection pool is exhausted, because pool size is too low or the database
+                        maximum connection limit is reached.
+                    </li>
+                    <li>
+                        Jdbc-Driver issues (wrong arguments, classpath issues, missing driver jar, ...).
+                    </li>
+                    <li>
+                        Specified <em>validation query</em> (in
+                        <a href="site:repository/jdbc-connection-descriptor">jdbc-connection-descriptor</a>)
+                        cause an error.
+                    </li>
+                    <li>
+                        Too many concurrent threads exhaust connection pool.
+                    </li>
+                    <li>
+                        Persistence broker <a href="site:pb-guide/detect-leak">leak</a>.
+                    </li>
+                </ul>
+            </answer>
+            </faq>
+
+            <faq id="couldNotBorrowBroker">
+            <question>
+                Error message: <em>Borrow broker from pool failed,...</em>.
+            </question>
+            <answer>
+                <ul>
+                    <li>
+                        <code>PersistenceBroker</code> instance pool is exhausted, because pool size is too
+                        low or too many concurrent threads exhaust connection pool.
+                    </li>
+                    <li>
+                        Persistence broker <a href="site:pb-guide/detect-leak">leak</a>, missing
+                        <code>PersistenceBroker.close()</code> calls.
+                    </li>
+                </ul>
+            </answer>
+            </faq>
+
+            <faq id="noDefaultConnection">
+            <question>
+                Error message: <em>... no 'default-connection' attribute enabled in the jdbc connection descriptor...</em>.
             </question>
             <answer>
                 <p>
-                    <a href="site:large-metadata">Please refer to this document</a>.
+                    Set attribute <a href="site:repository/default-connection"><em>default-connection</em></a> in
+                    <a href="site:repository/jdbc-connection-descriptor">jdbc-connection-descriptor</a> before using
+                    the <em>shortcut</em>-method to lookup <code>PersistenceBroker</code> instances.
                 </p>
             </answer>
-        </faq>
+            </faq>
+
+        </faqsection>
     </faqsection>
 
 
@@ -677,13 +755,14 @@
                     If you follow these rules, then OJB works fine in web apps:
                 </p>
                 <ul>
-                	<li>Don't put OJB's jars into one of the servers directories but rather put them into the <code>WEB-INF/lib</code>
-                	    folder of your web app.</li>
-                	<li>OJB searches for its configuration files (<code>OJB.properties</code>, <code>repository.xml</code>) in the classpath.
-                	    Therefore, it is easiest if you put them in the <code>WEB-INF/classes</code> folder which is automatically in the
-                	    classpath of the web app</li>
-                	<li>Don't hold onto the <code>PersistenceBroker</code> instances, rather get one whenever you want to do something, and close
-                	    it once you're done.</li>
+                	<li>Don't put OJB's jars into one of the servers directories but rather put
+                        them into the <code>WEB-INF/lib</code> folder of your web app.</li>
+                	<li>OJB searches for its configuration files (<code>OJB.properties</code>,
+                        <code>repository.xml</code>) in the classpath.
+                	    Therefore, it is easiest if you put them in the <code>WEB-INF/classes</code>
+                        folder which is automatically in the classpath of the web app</li>
+                	<li>Don't hold onto the <code>PersistenceBroker</code> instances, rather get one
+                        whenever you want to do something, and close it once you're done.</li>
                 </ul>
                 <p>
                     See <a href="site:deployment">deployment doc</a> for more information.
@@ -902,9 +981,10 @@
             </question>
             <answer>
                 <p>
-                    Primitive values (int, long, ...) can't be <code>null</code>, so OJB interpret '0' as <code>null</code>
-                    for primitive PK/FK fields in persistent objects. Thus primitive PK fields of persistent objects should
-                    never be represented by a '0' value in DB and never used as a
+                    Primitive values (int, long, ...) can't be <code>null</code>, so OJB interpret '0'
+                    as <code>null</code>
+                    for primitive PK/FK fields in persistent objects. Thus primitive PK fields of
+                    persistent objects should never be represented by a '0' value in DB and never used as a
                     <a href="site:sequence-manager">sequence key</a> value.
                     <br/>
                     This is only true for primitive PK/FK fields (e.g. <code>Integer(0)</code> is allowed).
@@ -947,7 +1027,8 @@
                 </p>
                 <note>
                     If method <code>getIteratorByQuery()</code> was used keep in mind that the used
-                    Iterator instance is only valid as long as the used <code>org.apache.ojb.broker.PersistenceBroker</code>
+                    Iterator instance is only valid as long as the used
+                    <code>org.apache.ojb.broker.PersistenceBroker</code>
                     instance ends transaction or be closed. So it is NOT possible to get an Iterator, close the
                     PersistenceBroker and pass the Iterator instance to a servlet or client. In that case use
                     <code>getCollectionByQuery()</code>.
@@ -981,7 +1062,8 @@
                     <br/>
                     b) use the Object2ByteArrFieldConversion. See jdbc-types.html for details on conversion strategies.
                     <br/>
-                    c) use the StringVector2VarcharFieldConversion. See jdbc-types.html for details on conversion strategies.
+                    c) use the StringVector2VarcharFieldConversion. See jdbc-types.html for details on
+                    conversion strategies.
                     <br/>
                     d) provide a field-descriptor for each element.
 



---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org