Page: http://wiki.cocoondev.org/Wiki.jsp?page=As400 , version: 17 on Thu Mar 13 
14:38:33 2003 by Lorenzo

- !!A JDK issue
+ !!JDK version issues
- 
- !If you need all Cocoon SQL functionality
- If you need all Cocoon SQL functionality (XSP and SQLTransformer) you 
probably need to switch to JDK 1.4, which means:
- * downloading and installing a JDK 1.4.0 or later from 
[Sun|http://java.sun.com/j2se/downloads.html] (current successful 
configurations use version 1.4.1);
- * have Tomcat use the upgraded JDK (by changing its {{$JAVA_HOME}});
- * have __all__ applications hosted in your Tomcat instance use a 1.4-targeted 
version of Cocoon.\\Currently, version 2.0.3 has a ready-made, 1.4-targeted 
binary distribution in the download directory.\\If your applications are Cocoon 
2.0.3-based, the following should be enough:
- ## Locate {{cocoon-2.0.3-vm14-bin.tar.gz}} or {{cocoon-2.0.3-vm14-bin.zip}} 
in [Cocoon's distribution directory|http://xml.apache.org/cocoon/dist/] and 
download the one which suits yout platform.
- ## unpack the file in a directory of your choice;
- ## unpack the {{cocoon.war}} which has been extracted: it expands to a full 
webapp directory structure;
- ## locate the {{WEB-INF/lib}} directory: it contains the same {{JAR}}s as 
your 2.0.3 application's {{WEB-INF/lib}} directory, but retargeted at the JDK 
1.4;
- ## after making a backup copy :), overwrite your application's Cocoon JARs 
with these new 1.4 ones;
- ## Restart Tomcat or simply reload your application(s) via the Tomcat Manager.
- * If your applications are based on another Cocoon version, you need to 
manually rebuild Cocoon from the source, targetting at the JDK 1.4, and then 
start from previous point 4.
- 
- !If you don't need/use SQLTransformer and are happy with ESQL
- Then maybe you could stick with JDK 1.3 without changing other applications, 
and retain your current Tomcat setup except for minor changes.
- 
- The trick is to not use Cocoon's built-in connection pooling facility 
(provided by Avalon), but rather use your servlet container's one. Currently, 
this has been tested on Tomcat, which uses connection pooling services provided 
by Apache Commons DBCP.
- 
- You need to:
- # Let the {{com.ibm.as400.access.AS400JDBCDriver}} be accessible by Tomcat at 
its startup by copying {{jt400.jar}} to {{$TOMCAT_HOME/common/lib}};
- # Add to Tomcat's {{server.xml}} configuration file (located in 
{{$TOMCAT_HOME/conf}}) the desired JDBC connection as a JNDI resource: {{{
- <Resource name="jdbc/as400" auth="Container" type="javax.sql.DataSource"/>
- <ResourceParams name="jdbc/as400">
-         <parameter>
-           <name>username</name>
-           <value><$YOUR_USERNAME></value>
-         </parameter>
-         <parameter>
-           <name>password</name>
-           <value><$YOUR_PASSWORD></value>
-         </parameter>
-         <parameter>
-           <name>driverClassName</name>
-           <value>com.ibm.as400.access.AS400JDBCDriver</value>
-          </parameter>
-     <parameter>
-       <name>url</name>
-       <value>jdbc:as400://<$YOUR_HOST>/<$YOUR_COLLECTION></value>
-     </parameter>
- </ResourceParams>
- }}}
- ##Please note that you can append a {{;trace=true}} option to the JDBC URL, 
as well as any other options documented in JTOpen documentation. The trace 
option obviously kills performance, but allows you to debug connection problems 
by writing a quite detailed log to {{System.out}}, which in Tomcat default 
configuration gets logged to {{$TOMCAT_HOME/logs/catalina.out}}.
- ##Please also note that the snippet above must be inserted inside the 
relevant {{<Context/>}} element for your application. If you didn't define one 
(just dropped something into the webapps directory), putting it in the 
<GlobalNamingResources> could work (?).
- # Add to your application's {{cocoon.xconf}} file a reference to the J2EE 
connection you have just defined:{{{<datasources>
-    ...
-    <j2ee name="$CONNECTION_NAME">
-       <dbname>as400</dbname>
-    </j2ee>
-    ...
- </datasources>}}}
- Please note that $CONNECTION_NAME is the name you want to use in your Cocoon 
application.\\The {{<dbname/>}} string is, instead, the name you chose in 
{{server.xml}}'s resource definition.
- 
- Note that {{server.xml}}'s resource name is {{jdbc/as400}}, where 
{{<dbname/>}} only contains {{as400}}. This is because database connections are 
usually looked up inside the {{jdbc/}} hierarchy.
- 
- This latter JNDI configuration is obviously only a "desperation-workaround", 
since it has shown problems with SQLTransformer.\\Switching to JDK 1.4 should 
be seen as the best option, since it seems to allow all Cocoon SQL 
functionality to be used on databases stored on our AS/400 boxes.
- 
- 
- !A final note
- Please note that all the above has been tested on Tomcat 4.1.12.
- 
- ([Lorenzo])
- 
- ''Thank you Lorenzo. I'll correct my part specifying the versions of jdk and 
Tomcat I have used. If you want we could divide this page in two: one page for 
jdk 1.4 and one for the case you described'' -- [Gabridome]


Page: http://wiki.cocoondev.org/Wiki.jsp?page=SQL , version: 9 on Thu Mar 13 
14:05:34 2003 by Scherler



Page: http://wiki.cocoondev.org/Wiki.jsp?page=Main , version: 148 on Thu Mar 13 
14:05:36 2003 by 137.204.107.72

- 
+ {{ciaoMondo()}}


Page: http://wiki.cocoondev.org/Wiki.jsp?page=As400JDK13 , version: 3 on Thu 
Mar 13 14:37:17 2003 by Lorenzo

- !!A JDK issue
- 


Reply via email to