奇怪,不知道Access是怎么搞的,求平均可能因?yàn)楦↑c(diǎn)運(yùn)算慢,但整數(shù)求和為什么也會慢呢?
奇怪,不知道Access是怎么搞的,求平均可能因?yàn)楦↑c(diǎn)運(yùn)算慢,但整數(shù)求和為什么也會慢呢?
解決方法是在<Context>元素中增加一個屬性antiResourceLocking="true",默認(rèn)是"false"。但是這樣會帶來一個問題,Tomcat在運(yùn)行對應(yīng)的webapp時,會把下面的文件復(fù)制到一個臨時目錄里,所以如果你在服務(wù)器運(yùn)行的時候修改了某個JSP,Tomcat并不會發(fā)現(xiàn),看到的還是修改前的那個頁面。
Context elements may be explicitly defined:
- in the
$CATALINA_HOME/conf/context.xml
file: the Context element information will be loaded by all webapps - in the
$CATALINA_HOME/conf/[enginename]/[hostname]/context.xml.default
file: the Context element information will be loaded by all webapps of that host - in individual files (with a ".xml" extension) in the
$CATALINA_HOME/conf/[enginename]/[hostname]/
directory. The name of the file (less the .xml) extension will be used as the context path. Multi-level context paths may be defined using #, e.g.context#path.xml
. The default web application may be defined by using a file calledROOT.xml
. - if the previous file was not found for this application, in an individual file at
/META-INF/context.xml
inside the application files - inside a Host element in the main
conf/server.xml
參考資料:
Tomcat 5.5 文檔:http://tomcat.apache.org/tomcat-5.5-doc/config/context.html
關(guān)于antiResourceLocking的bug:http://issues.apache.org/bugzilla/show_bug.cgi?id=37668
數(shù)據(jù)庫服務(wù)器更換時,要把數(shù)據(jù)庫整個備份出來,轉(zhuǎn)移到另外的服務(wù)器上,在SQL Server 2000中,一般通過數(shù)據(jù)庫的備份生成一個文件,然后在新的服務(wù)器上通過數(shù)據(jù)庫的還原把數(shù)據(jù)導(dǎo)回來,整個過程都有圖形界面,操作簡單直觀。
在ORACLE里,有相似功能的工具,但卻是通過命令行方式。
首先,數(shù)據(jù)庫的備份可以通過exp命令進(jìn)行。exp命令有三種運(yùn)行方式:交互式、命令行和參數(shù)文件。使用交互式一步步提示,用戶只需簡單輸入即可進(jìn)行,它的使用方法如下:
1、輸入exp命令;
2、提示輸入用戶名,可以使用SYSTEM帳號,不能使用SYS帳號;
3、提示輸入密碼;
4、依次提示導(dǎo)出文件名及其他選項(xiàng)。
備份出一個文件之后,可以通過imp命令導(dǎo)入到新的服務(wù)器中,imp命令與exp命令有很多相似的地方,有些選項(xiàng)是相同的。采用全庫導(dǎo)出之后的文件,通過imp完全導(dǎo)入的時候會出現(xiàn)表創(chuàng)建錯誤的提示,如果新的數(shù)據(jù)庫中沒有舊庫中對應(yīng)的用戶,也會出現(xiàn)無法導(dǎo)入的提示,解決方法就是在新的數(shù)據(jù)庫中建立同樣的用戶,并賦予同樣權(quán)限(?)。
exp和imp的使用方法見:
http://oracle.chinaitlab.com/backup/36902.html
http://oracle.chinaitlab.com/backup/36901.html
JavaScript里的Array有一個sort方法:
因此,排序的關(guān)鍵就在于如何設(shè)置sortfunction這個函數(shù)了。
在JavaScript中,字符串有一個localeCompare方法,能夠根據(jù)區(qū)域設(shè)置來排序,中文的話就是按照拼音排序了。
把以上兩個方法結(jié)合,就可以輕松實(shí)現(xiàn)按照拼音順序?qū)Χ鄠€字符串進(jìn)行排序了。
例子可以見這里:
http://hi.baidu.com/aaxh/blog/item/eb6ddaf953327858252df218.html
打開了連接服務(wù)器的一個Socket后,隔了一段時間沒用,Socket就會自動關(guān)閉(為什么?),這時候如果獲取該Socket的OutputStream,并往里面寫東西,在flush的時候就會出現(xiàn):
java.net.SocketException: Software caused connection abort: socket write error
的異常。因此,如果隔了一段時間沒有使用某個Socket,需要重新使用它的時候,就要先判斷它究竟是否還在連接當(dāng)中,一共嘗試了Socket的三個方法:
1、isClosed()
2、isOutputShutdown()
3、isConnected()
發(fā)現(xiàn)前兩個都沒用,即使已經(jīng)斷開了,返回的還是false,只有第三個可以解決問題。
具體原因未知。
2007-4-19更新:
第三個也解決不了問題,還會出現(xiàn)同樣的異常,目前的解決方法是catch SocketException,不管socket的狀態(tài)如何,都把它關(guān)閉了重新再連,但是SocketException的種類有很多,不一定是因?yàn)镾ocket已關(guān)閉,所以這種方法有點(diǎn)粗魯,但找不到更好的方法。
Runtime.getRuntime().addShutdownHook(Thread hook)
方法可以給當(dāng)前的進(jìn)程注冊一個清理線程,當(dāng)進(jìn)程退出的時候,會執(zhí)行線程中的代碼。
1、為了統(tǒng)一清理線程的實(shí)現(xiàn),可以做一個Destroyable接口,實(shí)現(xiàn)此接口的類都有一個destroy()方法,里面包含了該類的清理過程,例如關(guān)閉數(shù)據(jù)庫連接、關(guān)閉Socket連接等。
Destroyable接口的代碼:
2
3 /**
4 * 建立此接口的目的是為了實(shí)現(xiàn)程序退出時的清理
5 * 在Java控制臺程序中,用戶可以通過關(guān)閉命令行窗口或按下Ctrl+C來結(jié)束程序的運(yùn)行
6 * 這時候應(yīng)該保證資源能夠被正確釋放,例如數(shù)據(jù)庫的連接、Socket的連接應(yīng)該關(guān)閉
7 * 實(shí)現(xiàn)了本接口的類的實(shí)例引用可以由一個ShutdownHook線程來操作
8 * 此線程在虛擬機(jī)退出時執(zhí)行,詳見Runtime.addShutdownHook()方法
9 * @author amplifier
10 *
11 */
12 public interface Destroyable {
13 /**
14 * 實(shí)現(xiàn)本接口的類需要實(shí)現(xiàn)此方法,方法中包含該類的清理代碼,
15 * 例如關(guān)閉數(shù)據(jù)庫連接、關(guān)閉Socket連接等
16 *
17 */
18 void destroy();
19 }
2、建立一個繼承于Thread的類ShutdownHook,里面的一個域是Destroyable實(shí)現(xiàn)類的引用,在該類的構(gòu)造函數(shù)中可以傳入該Destroyable實(shí)現(xiàn)類。
ShutdownHook的代碼:
2
3 public class ShutdownHook extends Thread {
4
5 private Destroyable desObj;
6
7 public ShutdownHook(Destroyable desObj){
8 this.desObj = desObj;
9 }
10
11 @Override
12 public void run() {
13 if(this.desObj!=null){
14 try{
15 this.desObj.destroy();
16 }
17 catch (Exception e) {
18 }
19 }
20 }
21
22 /** *//**
23 * @param args
24 */
25 public static void main(String[] args) {
26
27
28 }
29
30 }
3、在main()方法中注冊ShutdownHook。
2 DestroyableImpl di = new DestroyableImpl();
3 ShutdownHook sh = new ShutdownHook(di);
4 Runtime.getRuntime().addShutdownHook(sh);
5 Runtime.getRuntime().addShutdownHook(new Thread(){
6 public void run(){
7 System.out.println("正在退出……");
8 }
9 });
10 di.otherMethod();
11 }
Google,我看行!

特此備忘!
JFreeChart的lib里有g(shù)nujaxp.jar包,添加到WEB-INF/lib里之后,解析faces-configv.xml的時候就會使用gnujaxp包里面的東西,會出現(xiàn)java.net.MalformedURLException: no protocol的異常,google也找不到相關(guān)的例子,仔細(xì)看了一下錯誤輸出,看到有個org.gnu.jaxp...之類的語句,才知道是這個包引起的錯誤,把它刪掉就好了。