osworkflow / docs / 1.3 Running the Example App.html

<html>
    <head>
        <title>1.3 Running the Example App</title>
	    <link rel="stylesheet" href="styles/site.css" type="text/css" />
    </head>

    <body>
	    <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
		    <tr>
			    <td valign="top" class="pagebody">

				    <ul class="star">
<li> Back to <a href="1.2 Requirements.html">1.2 Requirements</a></li>
<li> Forward to <a href="1.4 Persistence Options.html">1.4 Persistence Options</a></li>
</ul><br/>
<a name="1.3+Running+the+Example+App-top" ></a><br/>
Note that as of version 2.5, the example war application should deploy on most web containers with no external configuration required. The example app now uses memory persistence, so no datasources need to be configured. The instructions below apply for those wishing to configure a persistent store. In order to explore the example workflow, it is recommended that you first deploy the example war as-is, without any persistence.<p class="paragraph">The guides below therefore are only applicable if you would like to deploy the example application using a persistent datastore. For your first run, it is strongly recommended you not bother with these and instead simply deploy the example war.</p>OSWorkflow comes with a very simple example application to help you get started with understanding the concepts OSWorkflow is based upon. The example application can run on any servlet container. The following guides have been provided courtesy of Ed Yu and Egor Kobylkin. If your application server is<br/>
not listed, read one of the guides below as a starting point. Installation<br/>
should be very similar.
<ul class="star">
<li> <span class="nobr"><a href="#orion">Orion</a></span></li>
<li> <span class="nobr"><a href="#jrun">JRun</a></span></li>
<li> <span class="nobr"><a href="#tomcat40">Tomcat 4.0.x</a></span></li>
<li> <span class="nobr"><a href="#tomcat41">Tomcat 4.1.x</a></span></li>
</ul><br/>
<a name="1.3+Running+the+Example+App-orion" ></a>
<h2 class="heading2"> Orion <span class="nobr"><a href="#top">top</a></span></h2>

<div class="code"><pre>This is a quick stab on how to deploy osworkflow&#95;example.war &#10;on Orion 1.5.4 or later.&#10;&#10;Setting up persistence&#10;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#10;It is important to properly configure pooled datasource <span class="java&#45;keyword">for</span> good performance.&#10;&#10;For Orion 1.5.4&#43;, the add the following to file config/data&#45;sources.xml&#10;to properly configure pooled datasource required by OSWorkflow&#58;&#10;&#10;	&lt;&#33;&#45;&#45; Postgresql Pooled Datasource &#45;&gt;&#10;	&lt;data&#45;source&#10;                    class=&quot;com.evermind.sql.DriverManagerDataSource&quot;&#10;                    name=&quot;NoPoolPostgresql&quot;&#10;                    location=&quot;jdbc/NoPoolDefaultDS&quot;&#10;                    xa&#45;location=&quot;jdbc/xa/NoPoolDefaultXADS&quot;&#10;                    connection&#45;driver=&quot;org.postgresql.Driver&quot;&#10;                    username=&quot;name&quot;&#10;                    password=&quot;pass&quot;&#10;                    url=&quot;jdbc&#58;postgresql&#58;//hostname&#58;port/dbname&quot;&#10;                    inactivity&#45;timeout=&quot;30&quot;&#10;        /&gt;&#10;	&lt;data&#45;source&#10;                    class=&quot;com.evermind.sql.OrionPooledDataSource&quot;&#10;                    name=&quot;PooledPostgresql&quot;&#10;                    location=&quot;jdbc/DefaultDS&quot;&#10;                    pooled&#45;location=&quot;jdbc/DefaultDS&quot;&#10;                    xa&#45;location=&quot;jdbc/xa/DefaultXADS&quot;&#10;                    source&#45;location=&quot;jdbc/NoPoolDefaultDS&quot;&#10;                    connection&#45;driver=&quot;org.postgresql.Driver&quot;&#10;                    username=&quot;name&quot;&#10;                    password=&quot;pass&quot;&#10;                    url=&quot;jdbc&#58;postgresql&#58;//hostname&#58;port/dbname&quot;&#10;                    inactivity&#45;timeout=&quot;30&quot;&#10;        /&gt;&#10;&#10;	&lt;&#33;&#45; Oracle Pooled Datasource &#45;&gt;&#10;	&lt;data&#45;source&#10;                    class=&quot;oracle.jdbc.pool.OracleDataSource&quot;&#10;                    name=&quot;Default&quot;&#10;                    location=&quot;jdbc/DefaultDS&quot;&#10;                    xa&#45;location=&quot;jdbc/xa/DefaultXADS&quot;&#10;                    ejb&#45;location=&quot;jdbc/DefaultDS&quot;&#10;                    connection&#45;driver=&quot;oracle.jdbc.driver.OracleDriver&quot;&#10;                    username=&quot;name&quot;&#10;                    password=&quot;pass&quot;&#10;                    url=&quot;jdbc&#58;oracle&#58;thin&#58;&#64;hostname&#58;port&#58;SID&quot;&#10;                    inactivity&#45;timeout=&quot;30&quot;&#10;        /&gt;&#10;&#10;&#10;In addition, modify the osworkflow.xml to reflect how to access sequence&#10;objects <span class="java&#45;keyword">for</span> your database.&#10;&#10;To use postgresql as the backend database, execute the file tables&#95;postgres.sql&#10;against the database and make sure the following is defined in the file&#10;osworkflow.xml&#58;&#10;&#10;  &lt;&#33;&#45; Postgresql sequence access &#45;&gt;&#10;  &lt;property key=&quot;entry.sequence&quot; &#10;                  value=&quot;SELECT nextVal(&#039;seq&#95;os&#95;wfentry&#039;)&quot;/&gt;&#10;  &lt;property key=&quot;step.sequence&quot; &#10;                  value=&quot;SELECT nextVal(&#039;seq&#95;os&#95;currentsteps&#039;)&quot;/&gt;&#10;&#10;To use oracle as the backend database, execute the file tables&#95;oracle.sql&#10;against the database and make sure the following is defined in the&#10;osworkflow.xml&#58;&#10;&#10;        &lt;&#33;&#45; Oracle sequence access &#45;&gt;&#10;        &lt;property key=&quot;entry.sequence&quot; &#10;                  value=&quot;SELECT seq&#95;os&#95;wfentry.nextval FROM dual&quot;/&gt;&#10;        &lt;property key=&quot;step.sequence&quot; &#10;                  value=&quot;SELECT seq&#95;os&#95;currentsteps.nextval FROM dual&quot;/&gt;&#10;&#10;&#10;WAR Deployment&#10;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#10;Make a directory under the server home (e.g. C&#58;&#92;orion&#92;oswf), pleace the file&#10;osworkflow&#95;example.war file under it.&#10;&#10;Modify file config/application.xml and add the following line in&#58;&#10;&#10;	&lt;web&#45;module id=&quot;oswf&quot; path=&quot;../oswf/osworkflow&#95;example.war&quot; /&gt;&#10;&#10;Modify file config/<span class="java&#45;keyword">default</span>&#45;web&#45;site.xml and add the following line in&#58;&#10;&#10;	&lt;web&#45;app application=&quot;<span class="java&#45;keyword">default</span>&quot; load&#45;on&#45;startup=&quot;<span class="java&#45;keyword">true</span>&quot; &#10;                 name=&quot;oswf&quot; root=&quot;/oswf&quot; /&gt;&#10;&#10;Finally go to http&#58;//localhost/oswf to access the sample application.&#10;&#10;You can also deploy the ear example application, which uses EJB persistence &#10;rather than the in&#45;memory persistence that the example war webapp uses.</pre></div><p class="paragraph"><a name="1.3+Running+the+Example+App-jrun" ></a>
<h2 class="heading2"> JRun <span class="nobr"><a href="#top">top</a></span></h2></p><div class="code"><pre>This is a quick stab on how to deploy osworkflow&#95;example.war on JRun4.&#10;&#10;&#10;Setting up persistence&#10;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#10;It is important to properly configure pooled datasource <span class="java&#45;keyword">for</span> good performance.&#10;&#10;For JRun4, it is pretty easy to configure pooled datasource when defining JDBC&#10;resources using the JMC. Startup the admin server and the <span class="java&#45;keyword">default</span> server and&#10;then use JMC to define a JDBC datasource <span class="java&#45;keyword">for</span> your database within the <span class="java&#45;keyword">default</span>&#10;server(port 8100). Keep the checkbox clicked <span class="java&#45;keyword">for</span> pool connection when adding&#10;in the datasource. Make sure to verify the datasource after adding it in.&#10;&#10;JNDI Name		jdbc/DefaultDS&#10;Driver <span class="java&#45;object">Class</span> Name	org.postgresql.Driver&#10;URL			jdbc&#58;postgresql&#58;//hostname&#58;port/dbName&#10;Description		OSWorkflow example Postgresql database. &#10;Pool Connections	X&#10;Pool Statements		X&#10;Native Results		X&#10;User Name		user&#10;Password		pass&#10;Verify Password	pass	pass&#10;&#10;JNDI Name		jdbc/DefaultDS&#10;Driver <span class="java&#45;object">Class</span> Name	oracle.jdbc.pool.OracleDataSource&#10;URL			jdbc&#58;oracle&#58;thin&#58;&#64;hostname&#58;port&#58;SID&#10;Description		OSWorkflow example Oracle database. &#10;Pool Connections	X&#10;Pool Statements		X&#10;Native Results		X&#10;User Name		user&#10;Password		pass&#10;Verify Password	pass	pass&#10;&#10;In addition, modify the osworkflow.xml to reflect how to access sequence&#10;objects <span class="java&#45;keyword">for</span> your database.&#10;&#10;To use postgresql as the backend database, execute the file tables&#95;postgres.sql&#10;against the database and make sure the following is defined in the file&#10;osworkflow.xml&#58;&#10;&#10;        &lt;&#33;&#45;&#45; Postgresql sequence access &#45;&gt;&#10;        &lt;property key=&quot;entry.sequence&quot; &#10;                        value=&quot;SELECT nextVal(&#039;seq&#95;os&#95;wfentry&#039;)&quot;/&gt;&#10;        &lt;property key=&quot;step.sequence&quot; &#10;                        value=&quot;SELECT nextVal(&#039;seq&#95;os&#95;currentsteps&#039;)&quot;/&gt;&#10;&#10;To use oracle as the backend database, execute the file tables&#95;oracle.sql&#10;against the database and make sure the following is defined in the&#10;osworkflow.xml&#58;&#10;&#10;        &lt;&#33;&#45; Oracle sequence access &#45;&gt;&#10;        &lt;property key=&quot;entry.sequence&quot; &#10;                  value=&quot;SELECT seq&#95;os&#95;wfentry.nextval FROM dual&quot;/&gt;&#10;        &lt;property key=&quot;step.sequence&quot; &#10;                  value=&quot;SELECT seq&#95;os&#95;currentsteps.nextval FROM dual&quot;/&gt;&#10;&#10;&#10;WAR Deployment&#10;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#10;To deploy osworkflow&#95;example.war, place the file under the directory&#10;servers/<span class="java&#45;keyword">default</span> after setting up the persistence mechanism outlined above.&#10;Restart the <span class="java&#45;keyword">default</span> server (port 8100).&#10;&#10;Finally, go to http&#58;//localhost&#58;8100/osworkflow&#95;example to &#10;access the sample application.</pre></div><p class="paragraph"><h2 class="heading2"> Tomcat 4.0.x <a name="1.3+Running+the+Example+App-tomcat40" ></a> <span class="nobr"><a href="#top">top</a></span></h2>
<ul class="star">
<li> <span class="nobr"><a href="#tomcat41">Tomcat 4.1.x</a></span></li>
</ul>
<div class="code"><pre>README&#45;Tomcat.txt&#10;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#10;This is a quick stab on how to deploy osworkflow&#95;example.war on Tomcat 4.0.X.&#10;&#10;&#10;Setting up persistence&#10;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#10;It is important to properly configure pooled datasource <span class="java&#45;keyword">for</span> good performance.&#10;&#10;Unfortunately, there is no good documentation on how to setup Tyrex in Tomcat&#10;4.0 and compounded by the fact that Tyrex will be deprecated begining in Tomcat&#10;version 4.1, there is no good way to improve performance under Tomcat 4.0.&#10;Nonetheless, there are documentation on how to configure Oracle pooled&#10;datasource factory in Tomcat 4.0.X. Refer to the urls&#10;http&#58;//www.apachelabs.org/tomcat&#45;user/20020&#91;OS&#58;3&#45;7&#93;.mbox/threads.html,&#10;<span class="java&#45;keyword">try</span> it out and let me know <span class="java&#45;keyword">if</span> you are successful. I&#039;ve also attempted to&#10;use the LE version of Tomcat 4.0.4 (jakarta&#45;tomcat&#45;4.0.4&#45;LE&#45;jdk14.&#42;) without&#10;any luck (NPE), whereas the full version works fine <span class="java&#45;keyword">for</span> me.&#10;&#10;Please read the WAR Deployment section below and then come back here.&#10;&#10;It is important to copy the osworkflow&#95;example.war into TOMCAT&#95;HOME/webapps&#10;and startup and shutdown the server before making the modifications to&#10;TOMCAT&#95;HOME/conf/server.xml to include&#58;&#10;&#10;        &lt;&#33;&#45;&#45; OSWorkflow Example Context &#45;&gt;&#10;        &lt;Context path=&quot;/osworkflow&#95;example&quot; &#10;                 docBase=&quot;osworkflow&#95;example&quot; debug=&quot;0&quot;&#10;                 reloadable=&quot;<span class="java&#45;keyword">true</span>&quot; crossContext=&quot;<span class="java&#45;keyword">true</span>&quot;&gt;&#10;	  &lt;Resource name=&quot;jdbc/DefaultDS&quot; auth=&quot;Container&quot;&#10;            type=&quot;javax.sql.DataSource&quot;/&gt;&#10;	  &lt;ResourceParams name=&quot;jdbc/DefaultDS&quot;&gt;&#10;            &lt;parameter&gt;&lt;name&gt;user&lt;/name&gt;&lt;value&gt;user&lt;/value&gt;&lt;/parameter&gt;&#10;            &lt;parameter&gt;&lt;name&gt;password&lt;/name&gt;&lt;value&gt;pass&lt;/value&gt;&lt;/parameter&gt;&#10;	    &lt;parameter&gt;&#10;	      &lt;name&gt;driverClassName&lt;/name&gt;&#10;	      &lt;&#33;&#45; Oracle &#45;&gt;&#10;              &lt;value&gt;oracle.jdbc.driver.OracleDriver&lt;/value&gt;&#10;&#10;	      &lt;&#33;&#45; Postgresql&#10;	      &lt;value&gt;org.postgresql.Driver&lt;/value&gt;&#10;	      &#45;&gt;&#10;	    &lt;/parameter&gt;&#10;	    &lt;parameter&gt;&#10;	      &lt;name&gt;driverName&lt;/name&gt;&#10;	      &lt;&#33;&#45; Oracle &#45;&gt;&#10;	      &lt;value&gt;jdbc&#58;oracle&#58;thin&#58;&#64;hostname&#58;port&#58;SID&lt;/value&gt;&#10;&#10;	      &lt;&#33;&#45; Postgresql&#10;	      &lt;value&gt;jdbc&#58;postgresql&#58;//hostname&#58;port/dbName&lt;/value&gt;&#10;	      &#45;&gt;&#10;	    &lt;/parameter&gt;&#10;	  &lt;/ResourceParams&gt;&#10;	&lt;/Context&gt;&#10;      &lt;/Host&gt;&#10;    &lt;/Engine&gt;&#10;  &lt;/Service&gt;&#10;&#10;Make sure your JDBC driver is in TOMCAT&#95;HOME/common/lib. For oracle, you may&#10;need to rename classes12.zip into classes12.jar <span class="java&#45;keyword">for</span> it to work.&#10;&#10;In addition, modify the osworkflow.xml to reflect how to access sequence&#10;objects <span class="java&#45;keyword">for</span> your database.&#10;&#10;To use postgresql as the backend database, execute the file tables&#95;postgres.sql&#10;against the database and make sure the following is defined in the file&#10;osworkflow.xml&#58;&#10;&#10;        &lt;&#33;&#45; Postgresql sequence access &#45;&gt;&#10;        &lt;property key=&quot;entry.sequence&quot; &#10;                        value=&quot;SELECT nextVal(&#039;seq&#95;os&#95;wfentry&#039;)&quot;/&gt;&#10;        &lt;property key=&quot;step.sequence&quot; &#10;                        value=&quot;SELECT nextVal(&#039;seq&#95;os&#95;currentsteps&#039;)&quot;/&gt;&#10;&#10;To use oracle as the backend database, execute the file tables&#95;oracle.sql&#10;against the database and make sure the following is defined in the&#10;osworkflow.xml&#58;&#10;&#10;        &lt;&#33;&#45; Oracle sequence access &#45;&gt;&#10;        &lt;property key=&quot;entry.sequence&quot; &#10;                  value=&quot;SELECT seq&#95;os&#95;wfentry.nextval FROM dual&quot;/&gt;&#10;        &lt;property key=&quot;step.sequence&quot; &#10;                  value=&quot;SELECT seq&#95;os&#95;currentsteps.nextval FROM dual&quot;/&gt;&#10;&#10;&#10;WAR Deployment&#10;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#10;To deploy osworkflow&#95;example.war, place it under the directory&#10;TOMCAT&#95;HOME/webapps, startup and shutdown the server. Then set up the&#10;persistence mechanism as outlined above. Next, modify the server.xml file to&#10;configure the data source as outlined above.&#10;&#10;Finally, restart the server. Then, go to &#10;http&#58;//localhost&#58;8080/osworkflow&#95;example to access the sample application.</pre></div></p><h2 class="heading2"> Tomcat 4.1.x <a name="1.3+Running+the+Example+App-tomcat41" ></a>  <span class="nobr"><a href="#top">top</a></span></h2><p class="paragraph">&lt;Egor Kobylkin egor.kobylkin@o2.com&gt;<br/>
This is a quick stab on how to deploy osworkflow_example.war on Tomcat 4.1.x. (tested on 4.1.27)</p>To deploy osworkflow_example.war, place it under the directory<br/>
TOMCAT_HOME/webapps, startup and shutdown the server. (Ignore if you have already done it)<p class="paragraph"><em class="emphasis">Note that to run the demonstration there is no necessity to create a persistent store - the demonstration will run without it provided that the Tomcat server is not shut down</em></p><b class="strong">Setting up persistence</b><p class="paragraph">Put jboss-j2ee.jar into TOMCAT_HOME/common/endorsed (get it from JBoss.org) to enable EJB lookup.</p>Next you have to make modifications to<br/>
TOMCAT_HOME/conf/server.xml to include:
<div class="code"><pre>&lt;&#33;&#45;&#45; OSWorkflow JNDI JDBC Data Source Example. egor.kobylkin&#64;o2.com &#45;&gt;&#10;&#10;&lt;Context path=&quot;/osworkflow&#95;example&quot; docBase=&quot;osworkflow&#45;2.7.0&#45;example&quot; &#10;         debug= &quot;99&quot; reloadable=&quot;true&quot; crossContext=&quot;true&quot; &#10;&#10;verbosity=&quot;DEBUG&quot;&gt;&#10;&lt;&#33;&#45; debug level is set to paranoid, to know what is happening, &#10;     turn it off once you do not need it &#45;&gt;&#10;&#10;&lt;Logger className=&quot;org.apache.catalina.logger.FileLogger&quot;&#10;        prefix=&quot;OSWorkflow.&quot; suffix=&quot;.log&quot; timestamp=&quot;true&quot;/&gt;&#10;&lt;&#33;&#45; &#10;    put log4j.jar into&#58;&#10;    TOMCAT&#95;ROOT/webapp/osworkflow&#45;2.7.0&#45;example/WEB&#45;INF/lib &#10;    if you want to use it for logging &#10;&#45;&gt;&#10;&#10;&lt;Resource name=&quot;jdbc/DefaultDS&quot; auth=&quot;Container&quot; &#10;                 type=&quot;javax.sql.DataSource&quot;/&gt;&#10;&lt;&#33;&#45; name=&quot;jdbc/DefaultDS&quot; is used in other components of the &#10;     Example App, do not change it here&#33; &#45;&gt;&#10;&#10;&lt;ResourceParams name=&quot;jdbc/DefaultDS&quot;&gt;&#10;  &lt;parameter&gt;&#10;    &lt;name&gt;factory&lt;/name&gt;&#10;    &lt;value&gt;org.apache.commons.dbcp.BasicDataSourceFactory&lt;/value&gt;&#10;  &lt;/parameter&gt;&#10;  &lt;parameter&gt;&#10;    &lt;name&gt;driverClassName&lt;/name&gt;&#10;    &lt;value&gt;oracle.jdbc.driver.OracleDriver&lt;/value&gt;&#10;  &lt;/parameter&gt;&#10;  &lt;parameter&gt;&#10;    &lt;name&gt;url&lt;/name&gt;&#10;    &lt;value&gt;jdbc&#58;oracle&#58;thin&#58;&#64;yourserver.com&#58;port&#58;SID&lt;/value&gt;&#10;  &lt;/parameter&gt;&#10;  &lt;parameter&gt;&#10;    &lt;name&gt;username&lt;/name&gt;&#10;    &lt;value&gt;your&#95;database&#95;user&#95;name&#95;here&lt;/value&gt;&#10;  &lt;/parameter&gt;&#10;  &lt;parameter&gt;&#10;    &lt;name&gt;password&lt;/name&gt;&#10;    &lt;value&gt;your&#95;password&#95;here&lt;/value&gt;&#10;  &lt;/parameter&gt;&#10;  &lt;parameter&gt;&#10;    &lt;name&gt;maxActive&lt;/name&gt;&#10;    &lt;value&gt;20&lt;/value&gt;&#10;  &lt;/parameter&gt;&#10;  &lt;parameter&gt;&#10;    &lt;name&gt;maxIdle&lt;/name&gt;&#10;    &lt;value&gt;10&lt;/value&gt;&#10;  &lt;/parameter&gt;&#10;  &lt;parameter&gt;&#10;    &lt;name&gt;maxWait&lt;/name&gt;&#10;    &lt;value&gt;&#45;1&lt;/value&gt;&#10;  &lt;/parameter&gt;&#10;&lt;/ResourceParams&gt;&#10;&lt;/Context&gt;&#10;&#10;&lt;&#33;&#45; OSWorkflow JNDI Data Source &#45;&gt;</pre></div><p class="paragraph">Some documentation on how to configure JNDI / JDBC data sources:
<ul class="star">
<li> <span class="nobr"><a href="http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jndi-datasource-examples-howto.html">&#104;ttp://jakarta.apache.org/tomcat/tomcat-4.1-doc/jndi-datasource-examples-howto.html<sup><img src="./icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="&gt;&gt;" border="0"/></sup></a></span></li>
</ul><ul class="star">
<li> <span class="nobr"><a href="http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jndi-resources-howto.html">&#104;ttp://jakarta.apache.org/tomcat/tomcat-4.1-doc/jndi-resources-howto.html<sup><img src="./icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="&gt;&gt;" border="0"/></sup></a></span></li>
</ul><br/>
Make sure your JDBC driver is in TOMCAT_HOME/common/lib. For oracle, you may<br/>
need to rename classes12.zip into classes12.jar for it to work.<br/>
For Oracle9 DB use only the JDBC thin driver of version 9 or higher.</p>In addition, modify the osworkflow.xml to reflect how to access sequence<br/>
objects for your database. <a href="1.4 Persistence Options.html">1.4 Persistence Options</a><br/>
A Description of the entries in osworkflow.xml can be found <span class="nobr"><a href="http://www.opensymphony.com/osworkflow/api/com/opensymphony/workflow/spi/jdbc/JDBCWorkflowStore.html">here<sup><img src="./icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="&gt;&gt;" border="0"/></sup></a></span><p class="paragraph">To use postgresql as the backend database, execute the file tables_postgres.sql<br/>
against the database and make sure the following is defined in the file<br/>
osworkflow.xml:</p><div class="code"><pre>&lt;&#33;&#45; Postgresql sequence access &#45;&gt;&#10;        &lt;property key=&quot;entry.sequence&quot; &#10;                        value=&quot;SELECT nextVal(&#039;seq&#95;os&#95;wfentry&#039;)&quot;/&gt;&#10;        &lt;property key=&quot;step.sequence&quot; &#10;                       value=&quot;SELECT nextVal(&#039;seq&#95;os&#95;currentsteps&#039;)&quot;/&gt;</pre></div><p class="paragraph">To use oracle as the backend database, execute the file tables_oracle.sql<br/>
against the database (watch out for the missing comma in the file) and make  sure the following is defined in the osworkflow.xml file:</p><div class="code"><pre>&lt;&#33;&#45; Oracle sequence access &#45;&#45;&gt;&#10;        &lt;property key=&quot;entry.sequence&quot; &#10;                  value=&quot;SELECT seq&#95;os&#95;wfentry.nextval FROM dual&quot;/&gt;&#10;        &lt;property key=&quot;step.sequence&quot; &#10;                  value=&quot;SELECT seq&#95;os&#95;currentsteps.nextval FROM dual&quot;/&gt;</pre></div><p class="paragraph">Finally, restart the server. Then, go to:<br/>
<span class="nobr"><a href="http://localhost:your_port/osworkflow-2.7.0-example">&#104;ttp://localhost:your_port/osworkflow-2.7.0-example<sup><img src="./icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="&gt;&gt;" border="0"/></sup></a></span><br/>
(or whatever you&#039;ve mapped the webapp to in your web container) to access<br/>
the sample application.
<ul class="star">
<li> Back to <a href="1.2 Requirements.html">1.2 Requirements</a></li>
<li> Forward to <a href="1.4 Persistence Options.html">1.4 Persistence Options</a></li>
</ul></p>

				    
			    </td>
		    </tr>
	    </table>
    </body>
</html>
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.