﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-哈哈,吼吼,这是个好地方-随笔分类-ofbiz学习</title><link>http://www.blogjava.net/tufanshu/category/41549.html</link><description>没有风雨躲的过，
没有坎坷不必走……
</description><language>zh-cn</language><lastBuildDate>Thu, 03 Sep 2009 13:05:30 GMT</lastBuildDate><pubDate>Thu, 03 Sep 2009 13:05:30 GMT</pubDate><ttl>60</ttl><item><title>ofbiz9 + oracle 11g</title><link>http://www.blogjava.net/tufanshu/archive/2009/09/03/293787.html</link><dc:creator>雪地孤鸿</dc:creator><author>雪地孤鸿</author><pubDate>Thu, 03 Sep 2009 12:27:00 GMT</pubDate><guid>http://www.blogjava.net/tufanshu/archive/2009/09/03/293787.html</guid><wfw:comment>http://www.blogjava.net/tufanshu/comments/293787.html</wfw:comment><comments>http://www.blogjava.net/tufanshu/archive/2009/09/03/293787.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tufanshu/comments/commentRss/293787.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tufanshu/services/trackbacks/293787.html</trackback:ping><description><![CDATA[ofbiz默认的数据库为derby,这个当然不能在生产环境中使用，而且也不方便调试和管理。虽然ofbiz也支持很多的开源数据库，例如mysql等，但是我们这里还是使用主流的数据库系统oracle 11g.详细的操作如下<br />
1.更新JDBC驱动，将oracle最新的jdbc驱动copy到${ofbiz install dir}/framework/entity/lib/jdbc 目录下。<br />
2.设置实体引擎( Entity Engine)的缺省数据库为oracle.在修改 ${ofbiz install dir}/framework/entity/config/entityengine.xml文件中修改配置：<br />
&nbsp;&nbsp; a.修改数据库连接参数：<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;datasource name="localoracle"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; helper-class="org.ofbiz.entity.datasource.GenericHelperDAO"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; schema-name="ofbiz" 你的数据库schema名称<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; field-type-name="oracle"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; check-on-start="true"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add-missing-on-start="true"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alias-view-columns="false"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; join-style="ansi"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;read-data reader-name="seed"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;read-data reader-name="seed-initial"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;read-data reader-name="demo"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;read-data reader-name="ext"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;inline-jdbc<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jdbc-driver="oracle.jdbc.driver.OracleDriver"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jdbc-uri="jdbc:oracle:thin:@192.168.1.154:1521:ofbiz"&nbsp; ofbiz为你的数据库SID<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jdbc-username="ofbiz"&nbsp; 用户名<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jdbc-password="ofbiz"&nbsp; 密码<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pool-minsize="2"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pool-maxsize="250"/&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/datasource&gt;<br />
&nbsp; b. 修改实体引擎的数据库缺省配置如下：（将datasource-name的值设置为&#8220;localoracle&#8221;）<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;delegator name="default" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main" distributed-cache-clear-enabled="false"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;group-map group-name="org.ofbiz" datasource-name="localoracle"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;group-map group-name="org.ofbiz.olap" datasource-name="localoracle"/&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/delegator&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;delegator name="default-no-eca" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main" entity-eca-enabled="false" distributed-cache-clear-enabled="false"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;group-map group-name="org.ofbiz" datasource-name="localoracle"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;group-map group-name="org.ofbiz.olap" datasource-name="localoracle"/&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/delegator&gt;<br />
<br />
&nbsp;&nbsp;&nbsp; &lt;!-- be sure that your default delegator (or the one you use) uses the same datasource for test. You must run "ant run-install" before running "ant run-tests" --&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;delegator name="test" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;group-map group-name="org.ofbiz" datasource-name="localoracle"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;group-map group-name="org.ofbiz.olap" datasource-name="localoracle"/&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/delegator&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;delegator name="other" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;group-map group-name="org.ofbiz" datasource-name="localoracle"/&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/delegator&gt;<br />
3.补充：在进行以上配置时，请确保你已经存在ofbiz的数据库，实例，用户等都已创建好。<br />
4. 初始化数据和导入：&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; ofbiz$ java -jar ofbiz.jar -install<br />
通过以上命令即可进行数据库的初始化和初始数据的导入，这里包括了ofbiz自带的例子，应用的所有的数据表和初始化数据<br />
<br />
5.问题：<br />
在使用oracle数据库时，当前的版本可能会碰到ORA－01843：无效的月份的问题&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<p>&nbsp;&nbsp;&nbsp; 以sys用户登陆并创建Trigger:</p>
<p>&nbsp;&nbsp;&nbsp; create or replace TRIGGER ON_CONNECT AFTER LOGON ON DATABASE<br />
&nbsp;&nbsp;&nbsp;&nbsp; DECLARE<br />
&nbsp;&nbsp;&nbsp;&nbsp; guser varchar2(30);<br />
&nbsp;&nbsp;&nbsp;&nbsp; begin <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SELECT sys_context('USERENV','SESSION_USER') into guser FROM dual;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (guser='ofbiz' or<font color="#ff0000"> guser='OFBIZ'</font>) THEN<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EXECUTE IMMEDIATE 'alter session set nls_timestamp_format = ''YYYY-MM-DD HH24:MI:SS.FF''';<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end if;<br />
&nbsp;&nbsp;&nbsp;&nbsp; end;</p>
<p>注意对登陆用户名的判断必须大小写都要考虑.</p>
另：ofbiz用户不能拥有dba的权限，同时ofbiz用户比需要有UNLIMITED TABLESPACE的权限，否则在创建数据表的时候会报&#8220;数据库空间不足&#8221;的错误，导致无法创建表。<br />
<br />
6.参考：<br />
http://blog.csdn.net/blieveme/archive/2007/10/16/1826604.aspx<br />
http://docs.ofbiz.org/display/~jacopoc/OFBiz+and+Oracle<br />
<br />
今天就到这里吧，明天继续：）&nbsp; <br />
<img src ="http://www.blogjava.net/tufanshu/aggbug/293787.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tufanshu/" target="_blank">雪地孤鸿</a> 2009-09-03 20:27 <a href="http://www.blogjava.net/tufanshu/archive/2009/09/03/293787.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>