一、Cloudscape數(shù)據(jù)庫
Cloudscape數(shù)據(jù)庫是J2EE自帶的RDBMS數(shù)據(jù)庫管理系統(tǒng)。它提供了所有大型數(shù)據(jù)庫管理系統(tǒng)的大部分功能,為J2EE的初學者提供了較好的數(shù)據(jù)環(huán)境。
Cloudscape™ 是一種占用內存少、多用戶、標準驅動的關系數(shù)據(jù)庫系統(tǒng),它完全用 Java™ 編寫,適合嵌入到 Java 應用程序和服務器中。Cloudscape 可以在任何功能完備的 JVM 上運行,因此同一個 Cloudscape 應用程序不必修改就能在多種硬件平臺上運行。
Cloudscape 支持 SQL-92E (entry) 標準和 SQL-99 的一部分,是基于 Java 和 SQL 的關系數(shù)據(jù)庫管理系統(tǒng)(ORDBMS),Cloudscape 使用的 API 是 JDBC。 它無需進行管理(零管理),而且無需在應用程序之外安裝和管理數(shù)據(jù)庫。“安裝后就忘掉”,這是成功的可嵌入式組件的重要設計目標。 Cloudscape 是作為 Java 類庫實現(xiàn)的關系數(shù)據(jù)庫管理引擎。應用程序可以通過 JDBC API 訪問 Cloudscape 引擎管理的數(shù)據(jù)。
簡單說,Cloudscape 是一個 Java 類庫,可以很容易地將它嵌入到任何 Java 應用程序或服務器架構中,同時還不會損害該應用程序的 Java 特性。當需要擴充數(shù)據(jù)庫時,Cloudscape 支持復雜 SQL 事務和 JDBC,該特性允許它將應用程序遷移到其他 SQL 數(shù)據(jù)庫,例如 IBM DB2® Universal Database™(UDB)。
可以從許多技術方面來區(qū)分 Cloudscape 和其他數(shù)據(jù)庫系統(tǒng):
Cloudscape 易于管理。當嵌入到客戶機應用程序中時,Cloudscape 系統(tǒng)不需要任何管理干預。
Cloudscape 是可嵌入的。應用程序可以將數(shù)據(jù)庫管理系統(tǒng)(Database Management System,DBMS)引擎嵌入應用程序進程中,從而無需管理單獨的數(shù)據(jù)庫進程或服務。
通過網(wǎng)絡服務器(Network Server)架構或您選擇的服務器架構,可以將Cloudscape 作為單獨的進程來運行。
Cloudscape 是一個純 Java 的類庫:對于 Java 開發(fā)人員,這點十分重要,因為他們正試圖維護 Java 技術的優(yōu)點,例如平臺無關性、易于配置以及易于安裝。
Cloudscape 不需要專有的 Java 虛擬機(Java Virtual Machine,JVM)。因為完全是用 Java 語言編寫的,所以它適應所有合格的 JVM。
Cloudscape DBMS 引擎是輕量級的。類文件大小大約是 2MB,并且只使用了 4MB 的 Java 堆。
Cloudscape 支持使用 Java 編寫存儲過程和函數(shù),這些存儲過程和函數(shù)可以在應用程序的任何層上運行。Cloudscape 沒有專用的存儲過程語言,它使用 JDBC。
Cloudscape 與其他的關系數(shù)據(jù)庫系統(tǒng)類似。它實現(xiàn)了 SQL92E 語言標準和 JDBC API 標準。Cloudscape 也有事務(提交和回滾),能夠通過事務隔離支持多個連接,并提供了崩潰恢復。與其他數(shù)據(jù)庫一樣,它允許多個線程共享同一連接,而且,隨著對 Java 技術進行擴展,Cloudscape 也實現(xiàn)了許多 SQL99 特性。
這種技術功能的獨特組合允許應用程序開發(fā)人員構建數(shù)據(jù)驅動的應用程序,這些應用程序是普遍的(到處運行)、可部署的(可下載的)、可管理的、可擴展的和可連接的。
reference http://www-106.ibm.com/developerworks/cn/db2/library/techarticles/dm-0408anderson/
http://www-106.ibm.com/developerworks/cn/db2/library/techarticles/dm-0408anderson2/index.html
http://www-106.ibm.com/developerworks/cn/db2/library/techarticles/dm-0408bradbury/index.html
二、Derby數(shù)據(jù)庫
IBM® 在舊金山的 LinuxWorld 宣布正在將 Cloudscape™(一種純關系 Java™ 數(shù)據(jù)庫)作為開放源代碼發(fā)布給 Apache Software Foundation (ASF),后者已為其建立了一個名為“Derby”的孵化器項目。這是繼 IBM 向開放源代碼社區(qū)作出一系列承諾以來的最新承諾。
據(jù)悉,IBM為ASF提供的“Derby”軟件是IBM公司前Cloudscape關系數(shù)據(jù)庫產(chǎn)品的一部分,此舉旨在激發(fā)負責Java應用開發(fā)的社團的創(chuàng)新。
IBM希望借助這次捐助活動提高使用Derby軟件進行Java開發(fā)的速度,為開發(fā)商和客戶開發(fā)基于Java的嵌入式數(shù)據(jù)庫功能提供新的選擇。到目前為止,IBM已經(jīng)雇傭了將近4000名Java專業(yè)人員,并提供100多種Java驅動的產(chǎn)品和解決方案。
Derby是一套基于Java的關系數(shù)據(jù)庫,可完全嵌入而無需管理支持的2MB容量。同時,它還是開發(fā)商的理想軟件,在無需企業(yè)級數(shù)據(jù)庫系統(tǒng)的情況下,開發(fā)人員使用該軟件能夠方便地構建和部署應用和工作負載。
為了弄清楚更多關于這種數(shù)據(jù)庫的問題,以及這種數(shù)據(jù)庫如何融入到 IBM 的戰(zhàn)略和 Java 應用程序架構中去,Jon Prial -IBM 副總裁接受了有關方面的專門采訪,以下為訪談的部分內容。
問: 在 LinuxWorld 上,IBM 宣布將 Cloudscape 貢獻給 Apache Software Foundation。那么,什么是 Cloudscape?
答:Cloudscape 是一種基于 Java 的、具有全面事務支持能力的關系數(shù)據(jù)庫技術。它是一種純嵌入式數(shù)據(jù)庫,可以用在應用程序中,也可以作為更傳統(tǒng)的客戶機-服務器應用程序的數(shù)據(jù)庫。它體積小,而且不需要數(shù)據(jù)庫管理員;您只需編寫應用程序。在需要時直接調用數(shù)據(jù)庫,Cloudscape 就可以為您服務。
問: 開放源代碼版本與 IBM 的商業(yè)版本之間有什么不同?
答:我們已經(jīng)把 Cloudscape 的代碼獻給了 Apache Software Foundation [ASF]。在 Apache 中這個項目叫做“Derby”,IBM Cloudscape 的未來商業(yè)版本都將以 Derby 代碼為基礎。
Derby 是一個孵化器(incubator)項目,這也是外部項目成為 ASF 一部分的一種常見的方式。但是開發(fā)人員如今可以在 Apache 的許可下為 Derby 代碼作出貢獻,或者下載 Derby 代碼,我們正在積極地與我們的合作伙伴以及 Apache 合作,以發(fā)展和形成致力于 Derby 項目的社區(qū)。
對于我們的 Cloudscape 項目,IBM 搬用 Derby 代碼,并作為 IBM Cloudscape offering 提供完全支持。您也可以免費下載 IBM Cloudscape 代碼,并且可以從 IBM 那里購買對它的支持,但我們并不打算收取 Cloudscape 的許可費。
問: 為什么 IBM 決定公開 Cloudscape 源代碼?
答:通過將 Cloudcape 開放源代碼,IBM 希望加快基于 Java 的應用程序的開發(fā),并帶動 Linux 和 Java 方面的更多革新。所以,擴大這方面的市場就等于擴大高價值的 IBM 中間件、硬件和服務方面的市場。我們認為這樣做尤其可以在嵌入式數(shù)據(jù)庫應用程序、小型企業(yè)解決方案以及基于 Java 和基于 Web 的應用程序等領域開辟新的商機。
開發(fā)人員能識別好的代碼。當我們從 Informix® 取得 Cloudscape 代碼時,我們內部的開發(fā)社區(qū)便開始談論它,并做一些工作。實際上,至今在 IBM 中已有 70 個項目在他們的 offering 中使用 Cloudscape -- 其中有很多項目已發(fā)布到市場,例如 WebSphere® Application Server、WebSphere Portal 和 IBM Workplace。所以,我們知道我們有一項有趣的技術,而這項技術可以成為 Java 架構的一部分。我們看到 Java 數(shù)據(jù)庫和 Apache 正在做的 Java 工作之間有關聯(lián),并且認識到這是一個巨大的項目,適合開放源代碼來做。
現(xiàn)在,IBM 對開放源代碼社區(qū)有一個長期的承諾。我們之所以有能力建立那樣的關系,部分原因就在于我們知道不是為了開放源代碼而開放源代碼,而是開放源代碼可以使事情變得更容易。
IBM 知道必須找到正確的方式來建立社區(qū)和鼓勵革新,而我們也用了很多不同的方法,例如支持 Eclipse.org 的創(chuàng)建。通過與 Apache 合作,我們可以為使用 Derby 并幫助使其變得更好的開發(fā)人員們建立一個社區(qū)。實際上,我們希望看到 Derby 數(shù)據(jù)庫變得和 Apache HTTP 服務器一樣無所不在。
問: 使用 Cloudscape 可以做哪些事情呢?
答:Cloudscape 最有趣的一個用法就是作為一個 Java 數(shù)據(jù)存儲,直接將數(shù)據(jù)庫輸入到 Java 應用程序中。我曾提到過,Cloudscape 數(shù)據(jù)庫非常小。它只是一個 2MB 的 .jar 文件。有了這樣一個 Java 數(shù)據(jù)庫,當一個 Java 應用程序想要使用它時,根本不需要做任何工作,不需要進行任何管理。Java 應用程序只需發(fā)出 JDBC 調用,然后訪問數(shù)據(jù),之所以可以這樣做,是因為數(shù)據(jù)庫自始至終都是以一個 .jar 文件的形式存在。
Cloudscape 技術實際上非常通用 ― 我認為,認識到其他類型的應用程序在這里也可以使用是很重要的。我曾提到過,IBM Workplace 在客戶端使用 Cloudscape,以便將數(shù)據(jù)自動復制回服務器。我們在 LinuxWorld 提供了 "IBM Workplace Data Access" 可編寫腳本桌面數(shù)據(jù)庫的技術預覽 ― 這是一種用于創(chuàng)建客戶端數(shù)據(jù)庫、查詢和報表的商業(yè)用戶工具。
人們可以使用 Cloudscape 網(wǎng)絡服務器特性,將其當作基于服務器的數(shù)據(jù)存儲來訪問。因此,雖然我們原本期望看到圍繞 Java 應用程序的大多數(shù)初始用法,但實際上 Cloudscape 還可以用作客戶機-服務器數(shù)據(jù)庫。
問: IBM 將提供哪些類型的 Eclipse 工具?
答:我們擁有一些用于 Eclipse 的插件,通過這些插件可以訪問數(shù)據(jù)庫。此外,我們還為那些使用 Cloudscape 并希望遷移到企業(yè)級的數(shù)據(jù)庫的人們提供了工具。例如,他們可以從 Cloudscape 移植到 DB2®。
問: 您提到了 "IBM Workplace Data Access"??梢哉劦酶敿氁稽c嗎?
答:IBM Workplace Data Access 是商業(yè)用戶用于創(chuàng)建和查詢運行在不同桌面環(huán)境(包括 Windows® 和 Linux)上的數(shù)據(jù)庫應用程序的一種工具。我們使用 Eclipse 框架開發(fā) GUI,用 Cloudscape 作為底層數(shù)據(jù)庫。
我們認為 IBM Workplace Data Access 將可以獨自開辟新的機遇。但它也是將輕量級、跨平臺的數(shù)據(jù)庫(例如 Cloudscape 或 Derby)與用于應用程序開發(fā)的跨平臺客戶端框架(例如 Eclipse)相結合的一個偉大的典范。
問: Cloudscape 在 DB2 數(shù)據(jù)庫系列中處于什么樣的地位?
答:Cloudscape 能滿足新的和正在增長的市場的需求。作為面向 Java 的數(shù)據(jù)庫,Cloudscape 的定位非常恰當,它很好地彌補了我們的其他數(shù)據(jù)庫:DB2 Universal Database™、Informix Dynamic Server、DB2 Express 等等。又因為它是建立在開放標準基礎上的,任何針對 Cloudscape 編寫的應用程序都可以很容易地遷移到 DB2 UDB 和其他數(shù)據(jù)庫上運行,這正是企業(yè)級的解決方案所需要的。
問: Derby 與其他開放源代碼數(shù)據(jù)庫有什么不同?
答:沒有哪種開放源代碼數(shù)據(jù)庫像 Derby 這樣適合擴展 Java 架構,并帶動整個社區(qū)的革新。IBM 非常注重滿足這一需求。我們曾看到其他公司僅僅做到數(shù)據(jù)庫源代碼開放,根本沒有提供可行的計劃來建立社區(qū)。很多開放源代碼數(shù)據(jù)庫都有許可限制,有時候 ISV 實際上不得不為取得重新發(fā)布開放源代碼數(shù)據(jù)庫的權利而付出代價。而且有時候這些數(shù)據(jù)庫并不完全是關系型數(shù)據(jù)庫或事務處理數(shù)據(jù)庫。
所以,與其他開放源代碼數(shù)據(jù)庫相比,Derby 是獨一無二的。它的確是功能豐富的關系型數(shù)據(jù)庫。而且,它完全是免費提供的,沒有商業(yè)許可限制。
問: 您還有什么要補充嗎?
答:Cloudscape 技術是 IBM 更大型數(shù)據(jù)產(chǎn)品戰(zhàn)略的一個擴展。我們的想法是集成各種不同的數(shù)據(jù)存儲 ― 從 zSeries® 到普適(pervasive)設備 ― 以支持來自 IBM 和非 IBM 數(shù)據(jù)源的結構化的和非結構化的數(shù)據(jù)。我們認為信息集成是將這些維系在一起的關鍵,而我們的 DB2 產(chǎn)品為客戶提供了實現(xiàn)這一點的框架。
公共的、一致的用于訪問信息的框架使人們可以做更多的事情 ― 利用數(shù)據(jù),收集更多洞察力,以及成為更能隨需應變的企業(yè)。我們看到 Cloudscape 正是其中的關鍵部分。
cloudscape 使用入門
一、配置Cloudscape數(shù)據(jù)庫{未驗證}
1. 安裝j2eesdk1.3.1或者j2ee的更高版本。軟件可以到sun的網(wǎng)站上去找http://java.sun.com/j2ee。注意:若j2ee安裝后目錄下并沒有cloudscape子目錄,則參見下文的- derby數(shù)據(jù)庫安裝
2. 在環(huán)境變量里配置J2EE_HOME。J2EE_HOME=j2ee的安裝目錄,例如c:\j2sdkee1.3.1。
3. 在環(huán)境變量里的path里加入%J2EE_HOME%\bin
二、啟動Cloudscape
在J2EE的安裝目錄下,有cloudscape子目錄,這就是Cloudscape數(shù)據(jù)庫的主目錄。在這個目錄下面的CloudscapeDB目錄是存儲數(shù)據(jù)的目錄。
1. 啟動Cloudscape
在DOS窗口中輸入"cloudscape -start",可以啟動Cloudscape。說明:DOS窗口目錄需為j2ee的bin目錄下。
C:\>cloudscape ?Cstart
啟動cloudscape數(shù)據(jù)庫,成功啟動后出現(xiàn)如下信息:
Fri Jul 16 21:24:27 CST 2004: [RmiJdbc] Starting Cloudscape
RmiJdbc Server Version 1.7.2...
Fri Jul 16 21:24:29 CST 2004: [RmiJdbc] COM.cloudscape.core.
JDBCDriver registered in DriverManager
Fri Jul 16 21:24:29 CST 2004: [RmiJdbc] Binding RmiJdbcServer...
Fri Jul 16 21:24:29 CST 2004: [RmiJdbc] No installation of
RMI Security Manager...
Fri Jul 16 21:24:29 CST 2004: [RmiJdbc] RmiJdbcServer bound
in rmi registry
2. 停止Cloudscape
在DOS窗口中輸入"cloudscape -stop",可以停止Cloudscape。
C:\>cloudscape -stop
URL=[jdbc:rmi:jdbc:cloudscape:]
Attempting to shutdown RmiJdbc server
RmiJdbc Server RmiAddr is: //stere/RmiJdbcServer
WARNING: Shutdown was successful!
3. 進入Cloudscape數(shù)據(jù)編輯器
在DOS窗口中輸入"cloudscape -isql",可以進入Cloudscape數(shù)據(jù)編輯器。
C:\>>cloudscape -isql
ij version 4.0 (c) 1997-2001 Informix Software, Inc.
WARNING 01J01: Database ‘CloudscapeDB‘ not created,
connection made to existing database instead.
CONNECTION0* - jdbc:cloudscape:CloudscapeDB;create=true
* = current connection
ij>
在"ij>"提示符下,可以使用常用的SQL語句創(chuàng)建、刪除、修改數(shù)據(jù)表和數(shù)據(jù)表中的記錄。
創(chuàng)建emp數(shù)據(jù)表:
create table emp
(emp_id integer,emp_name varchar(32),emp_birthdate date);
向emp數(shù)據(jù)表中插入記錄:
insert into emp values ( 1, ‘Kevin Allen‘, ‘1965-2-20‘ );
insert into emp values ( 2, ‘Jean Doyle‘ , ‘1978-4-4‘ );
insert into emp values ( 3, ‘Lynn Dennis‘, ‘1975-5-15‘ );
4. Cloudscape數(shù)據(jù)編輯器中的命令
Cloudscape數(shù)據(jù)編輯器提供一組特殊的管理命令。
退出Cloudscape數(shù)據(jù)編輯器:
exit;
運行SQL腳本文件:
run ‘c:\sqldemo.sql‘;
可以通過"help;"命令,獲取所有Cloudscape數(shù)據(jù)編輯器命令的信息。
5. 如何調出cloudscape數(shù)據(jù)庫的圖形管理界面及相關問題
在命令行方式下敲入java COM.cloudscape.tools.cview很可能會出現(xiàn)錯誤。
什么原因呢?第一、你要看看你的jdk版本對不對,是不是1.3.1_02以上或者1.4的。第二、關鍵中的關鍵,原來sun的j2ee里的cloudview是不能在他附帶的cloudscape4.0.6下工作的。
這里是在ibm網(wǎng)站上的一句原話:The Java 2 SDK, Enterprise Edition v. 1.3.1 includes Cloudscape 4.0.6 but includes a version of Cloudview which will not function with the 4.0.6 system。所以同志門就自己去下一個吧!
常見錯誤:java.lang.ClassNotFoundException: COM.cloudscape.core.JDBCDriver
英文解釋:
To "find" the missing driver, you need to add to the CLASSPATH the cloudscape jar files RmiJdbc.jar , cloudclient.jar and system/cloudscape.jar which are located under the directory %J2EE_HOME%\lib\cloudscape\
So, under UNIX you should execute:
setenv CLASSPATH .:$J2EE_HOME/lib/cloudscape/system/cloudscape.jar:$J2EE_HOME/lib/cloudscape/cloudclient.jar:$J2EE_HOME/lib/cloudscape/RmiJdbc.jar
under Windows, you should add to CLASSPATH the following
%J2EE_HOME%\lib\cloudscape\system\cloudscape.jar;%J2EE_HOME%\lib\cloudscape\cloudclient.jar;%J2EE_HOME%\lib\cloudscape\RmiJdbc.jar
If you will, you can also look at "cloudscape" command (cloudscape.bat under Windows) what jar files it adds to its classpath.
We‘d like also to give you a hint regarding missing classes. If some class cannot be loaded, even though it should be somewhere, this indicates that the class is not "visible" in classpath for a class loader. To find the class, you should inspect JAR files under lib directory of a Java environment by using "jar -tvf file.jar" or WinZip. For example, to find the driver under UNIX one should execute in the directory $J2EE_HOME/lib/cloudscape/system/ the following
jar tvf cloudscape.jar | grep JDBCDriver
In particular , the driver class COM.cloudscape.core.JDBCDriver is packaged in %J2EE_HOME%\lib\cloudscape\system\cloudscape.jar
(under UNIX in $J2EE_HOME/lib/cloudscape/system/cloudscape.jar)
中文解釋:
重點是設置對RmiJdbc.jar , cloudclient.jar and system/cloudscape.jar
幾點注意的地方:
1. 修改完resource.properties,需要重起j2ee server
2. 使用cloudview時,cloudscape數(shù)據(jù)庫必須關閉,設置完以后再重起數(shù)據(jù)庫
3. deploy修改默認SQL的時候,點畫面左邊的SQL名稱,右邊出現(xiàn)SQL文,修改完畢之后必須再點一下左邊的這個SQL名稱,這樣表示更新了,如果直接去點別的SQL名稱,就會亂掉??吹角懊嬗械母鐐儍赫f改一下就按一下OK,否則會亂,其實不必。
4. 不知道cloudscape數(shù)據(jù)庫怎么樣,反正Oracle中在SQL中不加""就會忽略大小寫。比如:select * from employee where employeeID=‘123‘和select * from EMPLOYEE where EMPLOYEEID=‘123‘是一樣的,但是deploy時默認的SQL中是有""的,這樣select * from "employee" where "employeeID"=‘123‘就和select * from "EMPLOYEE" where "EMPLOYEEID"=‘123‘不一樣了。前面有的朋友說字段大小寫的問題估計就在此。
5. deploy結束之后需要save,否則jsp中輸入ID,點submit就會是白板一塊。
三、開發(fā)第一個J2EE、配置J2EE環(huán)境及Cloudscape數(shù)據(jù)庫
本部分將一步步教j2ee入門者配置出一個標準的j2ee環(huán)境,本人一步步自己摸索配置了j2ee的開發(fā)環(huán)境,到最后啟動了cloudscape數(shù)據(jù)庫的cloudview可謂很費周折,主要原因是沒有仔細看說明。
首先,確認你下載了j2se1.3.1_02以上的jdk版本和j2sdkee.1.3.1。這些軟件可以到sun的網(wǎng)站上去找http://java.sun.com/j2ee。 目前j2se的最高版本是j2se1.4。然后安裝上述軟件。我的安裝目錄是在H:盤。在安裝之前如果你以前裝有不同版本的jdk,請先卸載,然后再安裝。安裝好以后,請設置classpath.windows下的設置如下:
set JAVA_HOME=h:\jdk1.3.1.2
set J2EE_HOME=h:\j2sdkee1.3.1
set classpath=h:\jdk1.2.2\jre\lib\i18n.jar;
h:\jdk1.2.2\jre\lib\jaws.jar;
h:\jdk1.2.2\jre\lib\plugprov.jar;
h:\jdk1.2.2\lib\dt.jar;
h:\jdk1.2.2\lib\tools.jar;
h:\j2sdkee1.3.1\lib\ejb10deployment.jar;
h:\j2sdkee1.3.1\lib\j2ee.jar;
h:\j2sdkee1.3.1\lib\jhall.jar;
h:\j2sdkee1.3.1\lib\j2eetools.jar;
h:\j2sdkee1.3.1\lib;
注意:上面是我的機器上的目錄,如果你安裝在不同的目錄上的話,請自行改變。
啟動j2ee服務
安裝、設置后,就可以順利的啟動j2ee,到h:\j2sdkee1.3.1\bin目錄下執(zhí)行j2ee.bat文件。打開瀏覽器敲入地址http://localhost:8000/index.html可以看到首頁就說明對了。
啟動j2ee自帶的cloudscape數(shù)據(jù)庫
這個也簡單,把h:\j2sdkee1.3.1\lib\system\cloudutil.jar;
h:\j2sdkee1.3.1\lib\cloudscape\cloudclient.jar;
h:\j2sdkee1.3.1\lib\cloudscape\rmijdbc.jar;
h:\j2sdkee1.3.1\lib\system\cloudscape.jar;
加入就可以了,在命令行方式下到h:\j2sdkee1.3.1\bin目錄下打cloudscape -start可以啟動cloudscape數(shù)據(jù)庫
關鍵的問題出在如何調出cloudscape數(shù)據(jù)庫的圖形管理界面!
你在命令行方式下敲入java COM.cloudscape.tools.cview一般都會出現(xiàn)錯誤。什么原因呢?第一、你要看看你的jdk版本對不對,是不是1.3.1_02以上或者1.4的。
第二、關鍵中的關鍵,原來sun的j2ee里的cloudview是不能在他附帶的cloudscape4.0.6下工作的(真不知道sun在搞什么東東 :))
這里是在ibm網(wǎng)站上的一句原話:The Java 2 SDK, Enterprise Edition v. 1.3.1 includes Cloudscape 4.0.6 but includes a version of Cloudview which will not function with the 4.0.6 system。所以同志門就自己去下一個吧!這里還需要兩個jar文件。下載cloudview.jar和jd.jar把這兩個文件放在j2sdkee1.3.1下的cloudscape目錄下,我這里還需要加兩個classpaht路徑
h:\j2sdkee1.3.1\cloudscape\cloudview406.jar;
h:\j2sdkee1.3.1\cloudscape\jh.jar
OK!一起大功告成!現(xiàn)在看看怎么啟動cloudview,在命令行下鍵入
java -Dcloudscape.system.home=%j2ee_home%\cloudscape COM.cloudscape.tools.cview
這里-Dcloudscape.system.home是設置數(shù)據(jù)庫存放的路徑,這個路徑可以在建立數(shù)據(jù)庫的時候改變
%j2ee_home%\cloudscape是cloudscape的默認工作目錄
也可以將-Dcloudscape.system.home后的路徑去掉,不過要記住,要將數(shù)據(jù)庫建在改路徑下,否則j2ee server找不到它!
好了,接下來你會發(fā)現(xiàn)一個圖形界面起來了。
四、derby數(shù)據(jù)庫安裝{驗證}
1. 該數(shù)據(jù)庫可在IBM和Apache兩處下載,cloudscape是derby數(shù)據(jù)庫的商業(yè)版本,由IBM贈送與Apache后的稱呼。
Apache一方目前版本是Derby 10.1.0.0 alpha (Apr 28, 2005 / SVN 165185)。由于alpha版,而且Derby 10.0.2.2 (Apr 28, 2005 / SVN 165169)版本的數(shù)據(jù)庫提供的附加工具及少,所以我是去IBM網(wǎng)站下載的數(shù)據(jù)庫。
IBM網(wǎng)站目前版本是V10.0.2.0 Build: 30301,提供3種類型的下載,有installer的linux,win32和沒有installer一個單一的zip包文件。win32中包括jdk1.4,考慮到我的機器已經(jīng)被迫安裝了n個jdk,故此我下載了單一zip包的cloudscape。
IBM下載地址為:
http://www-128.ibm.com/developerworks/cn/db2/library/techarticles/dm-0408cline/index.html,需要以自己的mail作為id注冊一個用戶才能下載。
2. 下載后運行java ?Cjar 10.0-IBM-Cloudscape.jar,出現(xiàn)安裝界面,在這里需要指定安裝目錄,需要注意的是安裝目錄盡量不要帶有空格。
3. 安裝完后需要進行一些環(huán)境變量的設置,請根據(jù)自己的實際情況增加以下環(huán)境變量:
數(shù)據(jù)庫安裝目錄環(huán)境變量:
CLOUDSCAPE_INSTALL= D:\IBM\Cloudscape_10.0
classpath中增加:
.;%CLOUDSCAPE_INSTALL%\lib\derby.jar;%CLOUDSCAPE_INSTALL%\lib\derbynet.jar;%CLOUDSCAPE_INSTALL%\lib\derbytools.jar;%CLOUDSCAPE_INSTALL%\lib\db2jcc.jar;%CLOUDSCAPE_INSTALL%\lib\db2jcc_license_c.jar
;CLOUDSCAPE_INSTALL%\lib\cloudview40.jar;CLOUDSCAPE_INSTALL%\lib\jh.jar;
path中增加:
%CLOUDSCAPE_INSTALL%\frameworks\NetworkServer\bin
4. 現(xiàn)在就可以對數(shù)據(jù)庫進行操作。該數(shù)據(jù)庫提供兩種模式的數(shù)據(jù)庫引擎:
(1. 服務器架構中充當客戶機/服務器的引擎。
(2. 作為可嵌入類庫的數(shù)據(jù)庫引擎。在c/s引擎應該比較了解??汕度腩悗斓臄?shù)據(jù)庫引擎就是和java程序運行在同一JVM中,不需要啟動數(shù)據(jù)庫,不需要對數(shù)據(jù)庫進行管理(對這個我也知道個大概,呵呵)。
1.C/S模式下的數(shù)據(jù)庫訪問:
打開dos界面,敲入startNetworkServer啟動數(shù)據(jù)庫,再打開一個dos界面敲ij以進行數(shù)據(jù)庫管理。
在D:\IBM\Cloudscape_10.0\demo\databases下有一toursDB的demo數(shù)據(jù)庫,我們要連至該數(shù)據(jù)庫我們可以在ij下敲入:
connect ‘jdbc:derby:net://localhost:1527/"D:\IBM\Cloudscape_10.0\demo\databases\toursDB"‘
例如以下我是對數(shù)據(jù)庫的一些簡單操作:
--連接數(shù)據(jù)庫:(;不可少)
ij> connect ‘jdbc:derby:net://localhost:1527/"D:\IBM\Cloudscape_10.0\demo\databases\toursDB"‘;
--創(chuàng)建一個名為abc的表:
ij> create table abc (a int, b int);
0 rows inserted/updated/deleted
--往abc表中插入數(shù)據(jù),沒into還報錯,用sybase用習慣了。
ij> insert abc values(1,2);
ERROR 42X01: DB2 SQL error: SQLCODE: -1, SQLSTATE: 42X01, SQLERRMC: Encountered "abc" at line 1, column 8?42X0(?代表一個怪字符,spaces上發(fā)布的時候提示“此空間暫時不可用”,沒辦法只好用?代替啦,發(fā)現(xiàn)問題浪費了我十幾分鐘時間,TNND)
--這次數(shù)據(jù)進去了
ij> insert into abc values(1,2);
1 row inserted/updated/deleted
--察看剛才插入的數(shù)據(jù)
ij> select * from abc;
A |B
-----------------------
1 |2
1 row selected
--斷開數(shù)據(jù)庫連接,沒有任何信息輸出
ij> disconnect;
--退出ij
ij> exit;
注意命令結束符是分號“;”
如果要停止數(shù)據(jù)庫在dos中敲入stopnetworkserver即可。
2.可嵌入類庫模式下對DB的訪問(該模式下不需要啟動數(shù)據(jù)庫,且ij中只能有一個連接操作數(shù)據(jù)庫)
我的toursDB數(shù)據(jù)庫目錄為C:\IBM\Cloudscape_10.0\demo\databases下,如果我們DOS界面所在的目錄已經(jīng)在在該目錄,則進入ij后直接敲入“connect ‘jdbc:derby:toursDB‘;”就可以連接至數(shù)據(jù)庫,否則得指定數(shù)據(jù)庫所在路徑“connect ‘jdbc:derby:C:\IBM\Cloudscape_10.0\demo\databases\toursDB‘;”。下面是我對數(shù)據(jù)庫的一些訪問:
ij> connect ‘jdbc:derby:toursDB‘;
ij> select * from cities;
CITY_ID |CITY_NAME |COUNTRY |AIRPORT |LANGUAGE |COU&
----------------------------------------------------------------------------------------------------------------
1 |Amsterdam |Netherlands |AMS |Dutch |NL
……………………………等等
87 rows selected
ij> disconnect;
ij> exit;
C:\IBM\Cloudscape_10.0\demo\databases>
其中cities是toursDB數(shù)據(jù)庫自帶的一個表,其它的表還有airlines, countries,flightavailability,flights,flights_history,maps。
關于數(shù)據(jù)庫的一些操作命令可在ij下敲入help;進行察看,詳細的幫助信息在D:\IBM\Cloudscape_10.0\doc\pdf中,IBM的developerWorks下的DB2有很多介紹cloudscape相關技術的文章,網(wǎng)址:http://www-128.ibm.com/developerworks/cn/index.html。 還有IBM的在線幫助手冊有3本是中文的,網(wǎng)址:
http://www.elink.ibmlink.ibm.com/public/applications/publications/cgibin/pbi.cgi?CTY=US&FNC=ICL,進去后選擇cloudscape。
Cloudscape 常見問題
一般問題
問: 什么是 Cloudscape Version 10.0?
答: Cloudscape 是一種占用內存少、多用戶、標準驅動的關系數(shù)據(jù)庫系統(tǒng),它完全用 Java 編寫,適合嵌入到 Java 應用程序和服務器中。 Cloudscape 可以在任何功能完備的 JVM 上運行,因此同一個 Cloudscape 應用程序不必修改就能在多種硬件平臺上運行。
Cloudscape 支持 SQL-92E (entry) 標準和 SQL-99 的一部分。 Cloudscape 使用的 API 是 JDBC。 它無需進行管理(零管理),而且無需在應用程序之外安裝和管理數(shù)據(jù)庫。"安裝后就忘掉",這是成功的可嵌入式組件的重要設計目標。
問: 何為"嵌入(embedded)"?
答:按照 Merriam Webster OnLine Dictionary(http://m-w.com/)的定義:
em•bed•ded; em•bed•ding 及物動詞
1 a : 緊緊地包圍或者像在母體中那樣 b : 使......成為整體的一部分 c : 通過滲透和固定在載玻片上準備(顯微鏡用樣品)切片。
2 : 緊緊圍住 不及物動詞:被嵌入。
"嵌入式 Cloudscape"意味著沒有單獨的數(shù)據(jù)庫服務器; Cloudscape 和 Java 應用程序是一起安裝(jar 文件和數(shù)據(jù)庫文件)的。它和應用程序在同一個 JVM 上運行,啟動和關閉都由應用程序控制。終端用戶無需關心應用程序中的數(shù)據(jù)庫系統(tǒng)。其結果就是應用程序很容易部署,并且具有關系數(shù)據(jù)庫系統(tǒng)的所有特性。
問:嵌入式 Cloudscape 是一種多用戶數(shù)據(jù)庫嗎?
答: 是的,無論選擇了什么樣的部署選項,Cloudscape 都支持多用戶訪問。 Cloudscape 手冊說明了如何在單用戶應用程序中使用 CLoudscape。 Cloudscape 非常適合在這種結構中運行,但它本身并不是單用戶的。多用戶意味著在需要時,引擎可以管理多個獨立的事務。 即使是在嵌入式部署環(huán)境中,Cloudscape 也支持多連接。每個連接代表一個單獨的事務。這樣就允許單個應用程序建立多個連接,從而執(zhí)行多個獨立的事務。每個連接可以規(guī)定 4 種事務隔離級別,以滿足并發(fā)性的要求。關于事務隔離級別、并發(fā)和鎖定類型的完整描述,請參閱 Cloudscape Developers Guide。
一定要注意的是,Cloudscape jar 文件中不含網(wǎng)絡代碼,再次聲明,這并不意味著 Cloudscape 是單用戶的,盡管有時候這樣解釋。在運行 Cloudscape 引擎的 JVM 之外進行通信(進程間通信)必須使用網(wǎng)絡消息。兩個獨立進程間的通信稱為客戶機-服務器。為了滿足客戶機-服務器通信方式的需要,Cloudscape 提供了 Network Server 功能(在單獨的 jar 文件中)。 Cloudscape 很容易嵌入 Network Server,以便在需要的時候提供客戶機-服務器連接。 Cloudscape 也很容易嵌入其他很多服務器程序(如 WebShpere、Apache Tomcat 等),因此選擇權在您手中。
問:為何 Cloudscape 不在其基本產(chǎn)品中提供 Client/Server 功能?
答: 很多應用程序完全在單個系統(tǒng)、單個進程中運行,不需要 Client/Server 功能。比如,存儲輸入到 Web 表單中的數(shù)據(jù)的 servlet,或者在 PC 上運行的地址簿應用程序,都不需要和其他進程通信。 Client/Server 代碼只會增加這些應用程序的內存消耗,而沒有其他任何用處。對于這類應用程序,Cloudscape 提供了關系數(shù)據(jù)庫的所有便利,而沒有增加不必要的網(wǎng)絡代碼。在需要的時候,可以通過運行 Network Server 或者其他服務器體系結構,隨時添加 Client/Server 的功能。
安裝
問:如何安裝 Cloudscape 環(huán)境?
答: 安裝非常簡單,通過使用 Java 安裝程序,安裝完全是平臺獨立的(啟動安裝過程和指定文件路徑的命令行語法仍然和平臺有關)。 這里簡要說明了如何使用 Java 安裝程序進行安裝,也可能提供用于特定平臺的其他安裝程序類型,關于使用平臺專用安裝程序的信息,請參閱 install.html 文件。
安裝需要啟動 JVM,而且需要在文件系統(tǒng)有足夠的磁盤空間 ―― jar 文件需要 4 Mb 的磁盤空間;帶有 javadoc 和例子的完整 Cloudscape 安裝需要 24 Mb 的磁盤空間;完全安裝 Cloudscape 和 IBM JRE 需要 64 Mb 的磁盤空間(僅用于 Windows)。這些數(shù)據(jù)不包括安裝文件的大小。
在命令行提示符下,切換到包含 Cloudscape 安裝文件的目錄,通過下面的命令啟動安裝程序:
\java -cp. -jar
其中:
• 是 java.exe 文件的完全限定目錄(通常用環(huán)境變量 JAVA_HOME 規(guī)定)。
• 是安裝文件。
相應的提示:
• 第 1 屏:檢查安裝的產(chǎn)品是否正確,單擊 Next。
• 第 2 屏:取消對復選框"Yes, I would like to read the release notes now"的選擇。 單擊 Next。
• 第 3 屏:查看許可證條款。如果接受,則選擇 I accept the terms of the license agreement。 單擊 Next。
• 第 4 屏:檢查或輸入完整的安裝路徑。 單擊 Next。
• 第 5 屏:檢查安裝選項和需要的磁盤空間。單擊 Next。
• 第 6 屏:單擊 Next,然后單擊 Finish。
配置/設置
問:Cloudscape 部署的基本組件有哪些?
答: Cloudscape 在應用程序中部署的主要組件包括 1) jar 文件, 2) 數(shù)據(jù)庫文件和 3) Cloudscape 日志。所有 Cloudscape 部署中都有這些文件,而且,在進行任何數(shù)據(jù)庫級操作或者調試之前,必須安裝好它們。
在討論任何 Cloudscape 部署時, Cloudscape System Home 的概念也很重要。 Cloudscape System Home 是創(chuàng)建所有文件的默認位置,也是存放數(shù)據(jù)庫和 Cloudscape 日志的默認位置。如果沒有通過屬性 cloudscape.system.home 定義這個位置,那么運行 Cloudscape 引擎的 JVM 的當前工作目錄將被默認為該位置。在產(chǎn)品部署中明確定義并記錄 Cloudscape System Home 是謹慎的做法。在第一次連接到數(shù)據(jù)庫(或者說啟動 Cloudscape 引擎)之前,需要設置 cloudscape.system.home。
日志文件的默認名稱為 cloudscape.log,但該文件名是可以配置的,有時候應用程序員也可以更改它。在默認情況下,該日志文件被寫入 cloudscape.system.home,采用這一默認位置是一種謹慎做法。任何數(shù)據(jù)庫級的調查/調試活動都需要該日志文件。為了進行 Cloudscape 部署,該文件的位置和名稱必須是已知的。日志文件包含 Cloudscape 引擎啟動的所有數(shù)據(jù)庫列表和出現(xiàn)的錯誤(要記錄其他消息,可以設置 cloudscape.stream.error.logSeverityLevel,請參閱 Cloudscape Tuning Guide"Cloudscape 屬性"一章)。
數(shù)據(jù)庫文件(如 c2a10.dat)和事務日志文件(如 log2.dat)位于主數(shù)據(jù)庫目錄的子目錄下。主目錄和數(shù)據(jù)庫同名(如 toursDB)。 啟動數(shù)據(jù)庫需要知道數(shù)據(jù)庫目錄的路徑。主數(shù)據(jù)庫目錄至少包含兩個子目錄:
• ‘seg0‘ 包含數(shù)據(jù)文件。
• ‘log‘ 包含事務日志文件。
一定不要直接存取這些目錄中的任何文件。
cs.jar 文件包含運行 Cloudscape 引擎的代碼。該文件必須位于類路徑中,以便加載 Cloudscape 引擎和啟動 Cloudscape 數(shù)據(jù)庫。 Cloudscape 開發(fā)環(huán)境包含 Cloudscape 部署包中的其他可選 jar 文件。其中包括:
• cstools.jar ―― 工具 ij 和 cslook。
o ij ―― Cloudscapes 與 JDBC 交互的腳本工具和 SQL 命令行接口。
o cslook ―― 查看和轉儲數(shù)據(jù)庫中對象的數(shù)據(jù)定義語言(DDL)的 Cloudscapes 工具。
• csnet.jar ―― Cloudscape Network 服務器。
• db2jcc.jar 和 db2jcc_license_c.jar ―― Cloudscape Network Server 客戶通信 jar 文件。
一般用法/基本特性
問:模式和數(shù)據(jù)庫有何不同?
答: Cloudscape 數(shù)據(jù)庫由一組模式構成,每個模式都有自己的表集,所有模式都用相同的數(shù)據(jù)詞典(SYS 模式中的系統(tǒng)表)定義。 在磁盤上,數(shù)據(jù)庫由一些數(shù)據(jù)文件(放在 seg0 目錄中)和一些事務日志文件(放在 log 目錄中)組成。事務不可能跨數(shù)據(jù)庫,但是可以跨越同一個數(shù)據(jù)庫中的不同模式。關于用單個 Cloudscape 引擎連接多個數(shù)據(jù)庫的更多信息,請參考"在 Cloudscape 系統(tǒng)中,應用程序如何連接到多個數(shù)據(jù)庫?"。
Cloudscape 實現(xiàn)了這些模式,以便在單個 DB 中提供多個名稱空間。在將相關的表組成一個邏輯單位時,會用到模式。模式?jīng)]有相關的單獨的磁盤文件。同一數(shù)據(jù)庫中的所有模式都使用相同的數(shù)據(jù)詞典和事務日志。您可以在單個 SQL 語句中引用多個模式,這些模式都在同一個連接中執(zhí)行(不需要打開)的。同一數(shù)據(jù)庫中模式間的 SQL 操作是事務性的。
問:在 Cloudscape 系統(tǒng)中,應用程序如何連接到多個數(shù)據(jù)庫?
答: 可以在單個應用程序中打開多個連接,并且每個連接都針對不同的數(shù)據(jù)庫。但是就通過 SQL 跨數(shù)據(jù)庫操作而言,各個實例/連接并不知道其他連接的存在。兩個數(shù)據(jù)庫/連接之間的任何操作,都必須在應用程序級上完成(不能在單個 SQL 語句中),然后顯示結果或者將結果寫入適當?shù)奈恢谩?
比方說,您可以把數(shù)據(jù)庫 A 中的表 ONE 讀入一個數(shù)組,然后把數(shù)據(jù)庫 B 中的表 TWO 讀入另一個數(shù)組。循環(huán)遍歷數(shù)組中的數(shù)據(jù)記錄并根據(jù)需要修改,然后把數(shù)據(jù)寫回原來的數(shù)據(jù)庫和表中。相反,如果要在同一數(shù)據(jù)庫的不同模式下創(chuàng)建表 ONE 和表 TWO,那么允許您在單個事務中使用 SQL 語句完成這項操作。
性能
問: 如何調整 Cloudscape、提高緩存命中率和減少 I/O 次數(shù)?
答: 通過增加 Cloudscape 可用數(shù)據(jù)緩存的大小,可以改善處理大量數(shù)據(jù)的系統(tǒng)的性能,減少 I/O 次數(shù)。通過設置 pageCache 容納盡可能多的數(shù)據(jù)(直到整個數(shù)據(jù)庫),同時避免 OutOfMemory 異常(OOM),可以實現(xiàn)改變緩沖區(qū)大小來提高性能的目標。通過 seg0 目錄中數(shù)據(jù)文件的總體大小,可以粗略估計數(shù)據(jù)庫中的數(shù)據(jù)量(結果偏大)。因為這些文件中存在自由空間,文件大小之和總是超出數(shù)據(jù)庫中所有記錄的總和。計算數(shù)據(jù)文件大小之前壓縮數(shù)據(jù)庫,可以減少這種方法的估計偏差。將 pageCache 設得比這個值還大是沒有意義的,通常較小的緩存能夠提供很好的性能。
優(yōu)化緩存大小需要反復試驗,以保證增加后的緩存既提高了性能,又不會超出 JVM 可用的內存(最大堆)。如果 Cloudscape pageCache 太大,有可能導致 JVM 崩潰。為了避免 OutOfMemory 異常(OOM),需要考慮下面這些因素:
• 機器上的物理內存,JVM 必須裝載到物理內存中。
• 允許的 JVM 最大堆(-Xmx)。
• Cloudscape pageCache 的大?。╬ageCache * pageSize 的平均值)。
關于調整這些值的更多信息,請參考本文 故障檢修 中 "運行 Cloudscape 時如何避免 OutOfMemory 異常"一問。
故障檢修
問:運行 Cloudscape 時如何避免 OutOfMemory 異常?
答: 下面幾節(jié)提供了 Cloudscape 內存應用的背景知識,并介紹了調整 Cloudscape 和 JVM 占用的內存大小,避免 OutOfMemory 異常的一種方法。
與 Cloudscape 內存使用有關的因素
如果不滿意 Cloudscape 的性能,或者遇到了 OutOfMemory 異常(OOM),您要做的第一件事就是調整 Cloudscape pageCache。 可以安全分配給 pageCache 的內存受到多種因素的影響:物理內存、 pageSize 的平均大小和 JVM 的最大 Heap 大?。╩axHeap)是最主要的因素?;镜姆椒ㄊ前凑?JVM 最大 Heap 大小的一定比例,計算分配給 pageCache 的頁數(shù)。
JVM 最大 Heap 大小
JVM 最大 Heap 大?。╩axHeap)是用 Java 參數(shù)"-Xmx#m"設置的,其中 # 是分配給堆的最大 Mb 數(shù)(如 java -Xmx128m 即分配 128 Mb 的 maxHeap)。一定要保證規(guī)定的 JVM 最大堆長度小于機器的物理內存。
JVM MaxHeap 和 Cloudscape PageCache 的聯(lián)系
使用 Cloudscape 4.0 和 Java 1.4.0 進行內部測試表明,將 heapSize 和 Cloudscape pageCache 的比例設置為 20:1 是安全的。這個比例足以支持活動非常頻繁的應用程序,很多應用程序采用較小的比例也能工作得很好。每秒鐘內處理的事務量更大的應用程序,即使采用更大的 JVM maxHeap 和 Cloudscape pageCache 比例,也可能會出現(xiàn) OutOfMemory 異常。如果遇到 OOM,我們建議您進行重負荷測試來確定最佳的系統(tǒng)比例。首先將 JVM 和 pageCache 的比例設為 20:1,然后長期進行重負荷測試,以檢查內存使用的穩(wěn)定性。如果沒有出現(xiàn) OOM,則采用較小的比例繼續(xù)測試,直到獲得可以接受的吞吐量或者應用程序遇到 OutOfMemory 異常。輕型的應用程序甚至能在 2.5:1 的比例下運行。 Cloudscape 5.1 版采用 16:1 的默認比例(pageCache [= 4 MB cache] 和 64K maxHeap),多數(shù)應用程序都能在這個比例下很好地工作。最佳比例是能夠提供足夠的性能而又不會出現(xiàn) OOM 的比例。
PageCache:計算
Cloudscape pageCache 是由數(shù)據(jù)庫使用的平均 pagesize 決定的,可以通過屬性 cloudscape.storage.pageCacheSize 對其進行設置。 pageCache 規(guī)定了 Cloudscape 頁面緩沖區(qū)能夠保存的最大頁面數(shù)。估計 pageCache 所用內存需要用 pageCache 乘上數(shù)據(jù)庫中的平均頁面大?。P于頁面大小的更多信息,請參考關于 cloudscape.storage.pageSize 屬性的文檔)。 如果數(shù)據(jù)庫中所有表都使用默認的 4K 頁面大小,計算起來非常簡單: (pgSz = 4k) x (pageCache 設置)。
JVM Heap 和 PageCache 的比例:計算
對于運行在 1.4 版和更低版本 JVM 上的 Cloudscape 4.0, 默認的 heap:pageCache 比例是(如果沒有設置 maxHeap 和 pageCache) 400:1(64M / (40*4K)/1000)。在 5.0 版中,pageCache 的默認大小從 40 增加到了 1000,相應的比例變成了 16:1 (64M / ( (1000*4)/1000 ) )。對于非常活躍的應用程序,這個比例可能太小,因此使用 5.0 版的默認比例可能造成 OOM。
問:如何設置 Cloudscape 開發(fā)環(huán)境?
答: 按照下述說明設置開發(fā)測試環(huán)境中的 Cloudscape 屬性,能夠避免自動刪除 Cloudscape 日志并記錄下所有的錯誤和警告。使用這些設置時,Cloudscape 不再是零管理系統(tǒng),因此需要注意日志文件的大小。一定不要在零管理非常重要的產(chǎn)品環(huán)境中使用這些屬性。
設置這些屬性最簡單的辦法是創(chuàng)建一個文件,將其命名為 cloudscape.properties,放在 Cloudscape system.home 目錄中(通常和包含 Cloudscape 日志文件的目錄相同)。也可以在 Java 命令行中使用 -D 參數(shù)指定每一個屬性。重新啟動 Cloudscape 之后,修改的屬性才能生效。下面是用于開發(fā)測試環(huán)境的屬性文件,其中帶有注釋:
# Top of Sample File
# This is a sample Cloudscape properties file provided to show
# setting properties which are useful for development and troubleshooting
#
# -- Append to the log file rather than overwriting it
# - manually remove the cloudscape.log when it becomes large
cloudscape.infolog.append=true
#
# -- Log all errors/messages of any severity (will list deadlocks)
cloudscape.stream.error.logSeverityLevel=0
#
# -- Log all lock timeouts with additional trace information
cloudscape.locks.monitor=true
#
# - List transaction information on victim and survivor transactions
# for both lockTimeouts and Deadlocks
cloudscape.locks.deadlockTrace=true
# End of Sample File
本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請
點擊舉報。