ofbiz默認的數據庫為derby,這個當然不能在生產環境中使用,而且也不方便調試和管理。雖然ofbiz也支持很多的開源數據庫,例如mysql等,但是我們這里還是使用主流的數據庫系統oracle 11g.詳細的操作如下
1.更新JDBC驅動,將oracle最新的jdbc驅動copy到${ofbiz install dir}/framework/entity/lib/jdbc 目錄下。
2.設置實體引擎( Entity Engine)的缺省數據庫為oracle.在修改 ${ofbiz install dir}/framework/entity/config/entityengine.xml文件中修改配置:
a.修改數據庫連接參數:
<datasource name="localoracle"
helper-class="org.ofbiz.entity.datasource.GenericHelperDAO"
schema-name="ofbiz" 你的數據庫schema名稱
field-type-name="oracle"
check-on-start="true"
add-missing-on-start="true"
alias-view-columns="false"
join-style="ansi">
<read-data reader-name="seed"/>
<read-data reader-name="seed-initial"/>
<read-data reader-name="demo"/>
<read-data reader-name="ext"/>
<inline-jdbc
jdbc-driver="oracle.jdbc.driver.OracleDriver"
jdbc-uri="jdbc:oracle:thin:@192.168.1.154:1521:ofbiz" ofbiz為你的數據庫SID
jdbc-username="ofbiz" 用戶名
jdbc-password="ofbiz" 密碼
pool-minsize="2"
pool-maxsize="250"/>
</datasource>
b. 修改實體引擎的數據庫缺省配置如下:(將datasource-name的值設置為“localoracle”)
<delegator name="default" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main" distributed-cache-clear-enabled="false">
<group-map group-name="org.ofbiz" datasource-name="localoracle"/>
<group-map group-name="org.ofbiz.olap" datasource-name="localoracle"/>
</delegator>
<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">
<group-map group-name="org.ofbiz" datasource-name="localoracle"/>
<group-map group-name="org.ofbiz.olap" datasource-name="localoracle"/>
</delegator>
<!-- 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" -->
<delegator name="test" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main">
<group-map group-name="org.ofbiz" datasource-name="localoracle"/>
<group-map group-name="org.ofbiz.olap" datasource-name="localoracle"/>
</delegator>
<delegator name="other" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main">
<group-map group-name="org.ofbiz" datasource-name="localoracle"/>
</delegator>
3.補充:在進行以上配置時,請確保你已經存在ofbiz的數據庫,實例,用戶等都已創建好。
4. 初始化數據和導入:
ofbiz$ java -jar ofbiz.jar -install
通過以上命令即可進行數據庫的初始化和初始數據的導入,這里包括了ofbiz自帶的例子,應用的所有的數據表和初始化數據
5.問題:
在使用oracle數據庫時,當前的版本可能會碰到ORA-01843:無效的月份的問題
以sys用戶登陸并創建Trigger:
create or replace TRIGGER ON_CONNECT AFTER LOGON ON DATABASE
DECLARE
guser varchar2(30);
begin
SELECT sys_context('USERENV','SESSION_USER') into guser FROM dual;
if (guser='ofbiz' or guser='OFBIZ') THEN
EXECUTE IMMEDIATE 'alter session set nls_timestamp_format = ''YYYY-MM-DD HH24:MI:SS.FF''';
end if;
end;
注意對登陸用戶名的判斷必須大小寫都要考慮.
另:ofbiz用戶不能擁有dba的權限,同時ofbiz用戶比需要有UNLIMITED TABLESPACE的權限,否則在創建數據表的時候會報“數據庫空間不足”的錯誤,導致無法創建表。
6.參考:
http://blog.csdn.net/blieveme/archive/2007/10/16/1826604.aspx
http://docs.ofbiz.org/display/~jacopoc/OFBiz+and+Oracle
今天就到這里吧,明天繼續:)
posted on 2009-09-03 20:27
雪地孤鴻 閱讀(2613)
評論(3) 編輯 收藏 所屬分類:
ofbiz學習