標簽開始吧。 閱讀全文
posted @
2009-06-26 11:01 Alpha 閱讀(23983) |
評論 (4) |
編輯 收藏
1
PermGen space的全稱是Permanent Generation space,是指內存的永久保存區域OutOfMemoryError: PermGen space從表面上看就是內存益出,解決方法也一定是加大內存說說為什么會內存益出:這一部分用于存放Class和Meta的信息,Class在被 Load的時候被放入PermGen space區域,它和和存放Instance的Heap區域不同,GC(Garbage Collection)不會在主程序運行期對PermGen space進行清理,所以如果你的APP會LOAD很多CLASS的話,就很可能出現PermGen space錯誤這種錯誤常見在web服務器對JSP進行pre compile的時候
改正方法:-Xms256m -Xmx256m -XX:MaxNewSize=256m -XX:MaxPermSize=256m
2
在tomcat中redeploy時出現outofmemory的錯誤.
可以有以下幾個方面的原因:
1,使用了proxool,因為proxool內部包含了一個老版本的cglib.
2, log4j,最好不用,只用common-logging
3, 老版本的cglib,快點更新到最新版
4,更新到最新的hibernate3.2
3
這里以tomcat環境為例,其它WEB服務器如jboss,weblogic等是同一個道理
一java.lang.OutOfMemoryError: PermGen space
PermGen space的全稱是Permanent Generation space,是指內存的永久保存區域,
這塊內存主要是被JVM存放Class和Meta信息的,Class在被Loader時就會被放到PermGen space中,
它和存放類實例(Instance)的Heap區域不同,GC(Garbage Collection)不會在主程序運行期對
PermGen space進行清理,所以如果你的應用中有很多CLASS的話,就很可能出現PermGen space錯誤,
這種錯誤常見在web服務器對JSP進行pre compile的時候如果你的WEB APP下都用了大量的第三方jar, 其大小
超過了jvm默認的大小(4M)那么就會產生此錯誤信息了
解決方法: 手動設置MaxPermSize大小
修改TOMCAT_HOME/bin/catalina.sh
在echo "Using CATALINA_BASE: $CATALINA_BASE"上面加入以下行:
JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m
建議:將相同的第三方jar文件移置到tomcat/shared/lib目錄下,這樣可以達到減少jar 文檔重復占用內存的目的
二java.lang.OutOfMemoryError: Java heap space
Heap size 設置
JVM堆的設置是指java程序運行過程中JVM可以調配使用的內存空間的設置.JVM在啟動的時候會自動設置Heap size的值,
其初始空間(即-Xms)是物理內存的1/64,最大空間(-Xmx)是物理內存的1/4可以利用JVM提供的-Xmn -Xms -Xmx等選項可
進行設置Heap size 的大小是Young Generation 和Tenured Generaion 之和
提示:在JVM中如果98%的時間是用于GC且可用的Heap size 不足2%的時候將拋出此異常信息
提示:Heap Size 最大不要超過可用物理內存的80%,一般的要將-Xms和-Xmx選項設置為相同,而-Xmn為1/4的-Xmx值
解決方法:手動設置Heap size
修改TOMCAT_HOME/bin/catalina.sh
在echo "Using CATALINA_BASE: $CATALINA_BASE"上面加入以下行:
JAVA_OPTS="-server -Xms800m -Xmx800m -XX:MaxNewSize=256m"
三實例,以下給出1G內存環境下java jvm 的參數設置參考:
JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true "
三相關資料
題外話:經??吹骄W友抱怨tomcat的性能不如...,不穩定等,其實根據筆者幾年的經驗,從"互聯星空到現在的房產門戶網,我們
均使用tomcat作為WEB服務器,每天訪問量百萬多,tomcat仍然運行良好建議大家有問題多從自己程序入手,多看看java的DOC文檔
并詳細了解JVM的知識這樣開發的程序才會健壯
posted @
2009-06-19 16:04 Alpha 閱讀(897) |
評論 (0) |
編輯 收藏
摘要: 點“添加參與人”按鈕可以添加一行,每行后面都有一個刪除按鈕,可以刪除所在行,“清空”則刪除所有的行。 這種效果在需要批量添加數據的時候非常有用,可以在客戶端添加完一批數據,然后通過AJAX一次提交給服務器處理,下面是完整代碼:
Body部份:
<div>
<t... 閱讀全文
posted @
2009-06-03 14:59 Alpha 閱讀(6490) |
評論 (2) |
編輯 收藏
前一段時間,一直被mysql的字符集困擾,今天就這方面的知識總結一下.
MySQL的字符集支持(Character Set Support)有兩個方面:
字符集(Character set)和排序方式(Collation)。
對于字符集的支持細化到四個層次:
服務器(server),數據庫(database),數據表(table)和連接(connection)。
1.MySQL默認字符集
MySQL對于字符集的指定可以細化到一個數據庫,一張表,一列,應該用什么字符集。
但是,傳統的程序在創建數據庫和數據表時并沒有使用那么復雜的配置,它們用的是默認的配置,那么,默認的配置從何而來呢?
(1)編譯MySQL 時,指定了一個默認的字符集,這個字符集是 latin1;
(2)安裝MySQL 時,可以在配置文件 (my.ini) 中指定一個默認的的字符集,如果沒指定,這個值繼承自編譯時指定的;
(3)啟動mysqld 時,可以在命令行參數中指定一個默認的的字符集,如果沒指定,這個值繼承自配置文件中的配置,此時
character_set_server 被設定為這個默認的字符集;
(4)當創建一個新的數據庫時,除非明確指定,這個數據庫的字符集被缺省設定為
character_set_server;
(5)當選定了一個數據庫時,
character_set_database 被設定為這個數據庫默認的字符集;
(6)在這個數據庫里創建一張表時,表默認的字符集被設定為
character_set_database,也就是這個數據庫默認的字符集;
(7)當在表內設置一欄時,除非明確指定,否則此欄缺省的字符集就是表默認的字符集;
簡單的總結一下,如果什么地方都不修改,那么所有的數據庫的所有表的所有欄位的都用 latin1 存儲,不過我們如果安裝 MySQL,一般都會選擇多語言支持,也就是說,安裝程序會自動在配置文件中把 default_character_set 設置為 UTF-8,這保證了缺省情況下,所有的數據庫的所有表的所有欄位的都用 UTF-8 存儲。
2.查看默認字符集(默認情況下,mysql的字符集是latin1(ISO_8859_1)
通常,查看系統的字符集和排序方式的設定可以通過下面的兩條命令:
mysql> SHOW VARIABLES LIKE 'character%';
+--------------------------+---------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | D:"mysql-5.0.37"share"charsets" |
+--------------------------+---------------------------------+
mysql> SHOW VARIABLES LIKE 'collation_%';
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+----------------------+-----------------+
3.修改默認字符集
(1) 最簡單的修改方法,就是修改mysql的my.ini文件中的字符集鍵值,
如 default-character-set = utf8
character_set_server = utf8
修改完后,重啟mysql的服務,service mysql restart
使用 mysql> SHOW VARIABLES LIKE 'character%';查看,發現數據庫編碼均已改成utf8
+--------------------------+---------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | D:"mysql-5.0.37"share"charsets" |
+--------------------------+---------------------------------+
(2) 還有一種修改字符集的方法,就是使用mysql的命令
mysql> SET character_set_client = utf8 ;
mysql> SET character_set_connection = utf8 ;
mysql> SET character_set_database = utf8 ;
mysql> SET character_set_results = utf8 ;
mysql> SET character_set_server = utf8 ;
mysql> SET collation_connection = utf8 ;
mysql> SET collation_database = utf8 ;
mysql> SET collation_server = utf8 ;
一般就算設置了表的默認字符集為utf8并且通過UTF-8編碼發送查詢,你會發現存入數據庫的仍然是亂碼。問題就出在這個connection連接層上。解決方法是在發送查詢前執行一下下面這句:
SET NAMES 'utf8';
它相當于下面的三句指令:
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;
總結:
因此,使用什么數據庫版本,不管是3.x,還是4.0.x還是4.1.x,其實對我們來說不重要,重要的有二:
1) 正確的設定數據庫編碼.MySQL4.0以下版本的字符集總是默認ISO8859-1,MySQL4.1在安裝的時候會讓你選擇。如果你準備使用UTF- 8,那么在創建數據庫的時候就要指定好UTF-8(創建好以后也可以改,4.1以上版本還可以單獨指定表的字符集)
2) 正確的設定數據庫connection編碼.設置好數據庫的編碼后,在連接數據庫時候,應該指定connection的編碼,比如使用jdbc連接時,指定連接為utf8方式.
參考 "關中刀客" 的 <Mysql編碼問題>,原文地址http://lixiang.cn/?q=node/98
posted @
2009-04-11 10:29 Alpha 閱讀(978) |
評論 (2) |
編輯 收藏
<c3p0-config>
<default-config>
<!--當連接池中的連接耗盡的時候c3p0一次同時獲取的連接數。Default: 3 -->
<property name="acquireIncrement">3</property>
<!--定義在從數據庫獲取新連接失敗后重復嘗試的次數。Default: 30 -->
<property name="acquireRetryAttempts">30</property>
<!--兩次連接中間隔時間,單位毫秒。Default: 1000 -->
<property name="acquireRetryDelay">1000</property>
<!--連接關閉時默認將所有未提交的操作回滾。Default: false -->
<property name="autoCommitOnClose">false</property>
<!--c3p0將建一張名為Test的空表,并使用其自帶的查詢語句進行測試。如果定義了這個參數那么
屬性preferredTestQuery將被忽略。你不能在這張Test表上進行任何操作,它將只供c3p0測試
使用。Default: null-->
<property name="automaticTestTable">Test</property>
<!--獲取連接失敗將會引起所有等待連接池來獲取連接的線程拋出異常。但是數據源仍有效
保留,并在下次調用getConnection()的時候繼續嘗試獲取連接。如果設為true,那么在嘗試
獲取連接失敗后該數據源將申明已斷開并永久關閉。Default: false-->
<property name="breakAfterAcquireFailure
">false</property>
<!--當連接池用完時客戶端調用getConnection()后等待獲取新連接的時間,超時后將拋出
SQLException,如設為0則無限期等待。單位毫秒。Default: 0 -->
<property name="checkoutTimeout">100</property>
<!--通過實現ConnectionTester或QueryConnectionTester的類來測試連接。類名需制定全路徑。
Default: com.mchange.v2.c3p0.impl.DefaultConnectionTester-->
<property name="connectionTesterClassName"></property>
<!--指定c3p0 libraries的路徑,如果(通常都是這樣)在本地即可獲得那么無需設置,默認null即可
Default: null-->
<property name="factoryClassLocation">null</property>
<!--Strongly disrecommended. Setting this to true may lead to subtle and bizarre bugs.
(文檔原文)作者強烈建議不使用的一個屬性-->
<property name="forceIgnoreUnresolvedTransactions">false</property>
<!--每60秒檢查所有連接池中的空閑連接。Default: 0 -->
<property name="idleConnectionTestPeriod">60</property>
<!--初始化時獲取三個連接,取值應在minPoolSize與maxPoolSize之間。Default: 3 -->
<property name="initialPoolSize">3</property>
<!--最大空閑時間,60秒內未使用則連接被丟棄。若為0則永不丟棄。Default: 0 -->
<property name="maxIdleTime">60</property>
<!--連接池中保留的最大連接數。Default: 15 -->
<property name="maxPoolSize">15</property>
<!--JDBC的標準參數,用以控制數據源內加載的PreparedStatements數量。但由于預緩存的statements
屬于單個connection而不是整個連接池。所以設置這個參數需要考慮到多方面的因素。
如果maxStatements與maxStatementsPerConnection均為0,則緩存被關閉。Default: 0-->
<property name="maxStatements">100</property>
<!--maxStatementsPerConnection定義了連接池內單個連接所擁有的最大緩存statements數。Default: 0 -->
<property name="maxStatementsPerConnection"></property>
<!--c3p0是異步操作的,緩慢的JDBC操作通過幫助進程完成。擴展這些操作可以有效的提升性能
通過多線程實現多個操作同時被執行。Default: 3-->
<property name="numHelperThreads">3</property>
<!--當用戶調用getConnection()時使root用戶成為去獲取連接的用戶。主要用于連接池連接非c3p0
的數據源時。Default: null-->
<property name="overrideDefaultUser">root</property>
<!--與overrideDefaultUser參數對應使用的一個參數。Default: null-->
<property name="overrideDefaultPassword">password</property>
<!--密碼。Default: null-->
<property name="password"></property>
<!--定義所有連接測試都執行的測試語句。在使用連接測試的情況下這個一顯著提高測試速度。注意:
測試的表必須在初始數據源的時候就存在。Default: null-->
<property name="preferredTestQuery">select id from test where id=1</property>
<!--用戶修改系統配置參數執行前最多等待300秒。Default: 300 -->
<property name="propertyCycle">300</property>
<!--因性能消耗大請只在需要的時候使用它。如果設為true那么在每個connection提交的
時候都將校驗其有效性。建議使用idleConnectionTestPeriod或automaticTestTable
等方法來提升連接測試的性能。Default: false -->
<property name="testConnectionOnCheckout">false</property>
<!--如果設為true那么在取得連接的同時將校驗連接的有效性。Default: false -->
<property name="testConnectionOnCheckin">true</property>
<!--用戶名。Default: null-->
<property name="user">root</property>
<!--早期的c3p0版本對JDBC接口采用動態反射代理。在早期版本用途廣泛的情況下這個參數
允許用戶恢復到動態反射代理以解決不穩定的故障。最新的非反射代理更快并且已經開始
廣泛的被使用,所以這個參數未必有用。現在原先的動態反射與新的非反射代理同時受到
支持,但今后可能的版本可能不支持動態反射代理。Default: false-->
<property name="usesTraditionalReflectiveProxies">false</property>
<property name="automaticTestTable">con_test</property>
<property name="checkoutTimeout">30000</property>
<property name="idleConnectionTestPeriod">30</property>
<property name="initialPoolSize">10</property>
<property name="maxIdleTime">30</property>
<property name="maxPoolSize">25</property>
<property name="minPoolSize">10</property>
<property name="maxStatements">0</property>
<user-overrides user="swaldman">
</user-overrides>
</default-config>
<named-config name="dumbTestConfig">
<property name="maxStatements">200</property>
<user-overrides user="poop">
<property name="maxStatements">300</property>
</user-overrides>
</named-config>
</c3p0-config>
轉:http://www.wujianrong.com/archives/2007/08/c3p0.html
解決MYSQL 8小時問題
最近的一個項目在Hibernate使用C3P0的連接池,數據庫為Mysql。開發測試沒有問題,在運行中每個一段長的空閑時間就出現異常:
java 代碼
- org.hibernate.exception.JDBCConnectionException: could not execute query
- at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:74)
- at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
- .......
- Caused by: com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: No operations allowed after connection closed.Connection was implicitly closed due to underlying exception/error:
- ** BEGIN NESTED EXCEPTION **
- com.mysql.jdbc.CommunicationsException
- MESSAGE: Communications link failure due to underlying exception:
- ** BEGIN NESTED EXCEPTION **
- java.net.SocketException
- MESSAGE: Broken pipe
- STACKTRACE:
- java.net.SocketException: Broken pipe
- at java.net.SocketOutputStream.socketWrite0(Native Method)
- ......
- ** END NESTED EXCEPTION **
查看了Mysql的文檔,以及Connector/J的文檔以及在線說明發現,出現這種異常的原因是:
Mysql服務器默認的“wait_timeout”是8小時,也就是說一個connection空閑超過8個小時,Mysql將自動斷開該 connection。這就是問題的所在,在C3P0 pools中的connections如果空閑超過8小時,Mysql將其斷開,而C3P0并不知道該connection已經失效,如果這時有 Client請求connection,C3P0將該失效的Connection提供給Client,將會造成上面的異常。
解決的方法有3種:
- 增加wait_timeout的時間。
- 減少Connection pools中connection的lifetime。
- 測試Connection pools中connection的有效性。
當然最好的辦法是同時綜合使用上述3種方法,下面就DBCP和C3P0分別做一說明,假設wait_timeout為默認的8小時
DBCP增加以下配置信息:
-
- validationQuery = "SELECT 1"
-
- testWhileIdle = "true"
-
- timeBetweenEvictionRunsMillis = 3600000
-
- minEvictableIdleTimeMillis = 18000000
-
- testOnBorrow = "true"
C3P0增加以下配置信息:
-
- testConnectionOnCheckin = true
- //自動測試的table名稱
- automaticTestTable=C3P0TestTable
-
- idleConnectionTestPeriod = 18000
-
- maxIdleTime = 25000
-
- testConnectionOnCheckout = true
更多的配置信息大家可以查看C3P0文檔,Connector/J文檔,以及DBCP的文檔。
轉: http://www.javaeye.com/article/38506
我自己的配置:
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.jdbcUrl = jdbc:mysql://localhost:3306/test
jdbc.user = root
jdbc.password = 12345
jdbc.miniPoolSize = 1
jdbc.maxPoolSize = 20
jdbc.initialPoolSize = 1
jdbc.maxIdleTime = 25000
jdbc.acquireIncrement = 1
jdbc.acquireRetryAttempts = 30
jdbc.acquireRetryDelay = 1000
jdbc.testConnectionOnCheckin = true
jdbc.automaticTestTable = c3p0TestTable
jdbc.idleConnectionTestPeriod = 18000
jdbc.checkoutTimeout=3000
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="${jdbc.driverClass}" />
<property name="jdbcUrl" value="${jdbc.jdbcUrl}" />
<property name="user" value="${jdbc.user}" />
<property name="password" value="${jdbc.password}" />
<property name="minPoolSize" value="${jdbc.miniPoolSize}" />
<property name="maxPoolSize" value="${jdbc.maxPoolSize}"/>
<property name="initialPoolSize" value="${jdbc.initialPoolSize}"/>
<property name="maxIdleTime" value="${jdbc.maxIdleTime}"/>
<property name="acquireIncrement" value="${jdbc.acquireIncrement}"/>
<property name="acquireRetryAttempts" value="${jdbc.acquireRetryAttempts}"/>
<property name="acquireRetryDelay" value="${jdbc.acquireRetryDelay}"/>
<property name="testConnectionOnCheckin" value="${jdbc.testConnectionOnCheckin}"/>
<property name="automaticTestTable" value="${jdbc.automaticTestTable}"/>
<property name="idleConnectionTestPeriod" value="${jdbc.idleConnectionTestPeriod}"/>
<property name="checkoutTimeout" value="${jdbc.checkoutTimeout}"/>
</bean>
posted @
2009-03-29 23:31 Alpha 閱讀(91822) |
評論 (26) |
編輯 收藏
JDK中Jconsole的使用
2008-04-03 14:16
JAVA應用程序打成jar包的部署方式:
一、Local方式
1、cmd進入dos下,進入到應用程序所在目錄,執行語句如下:
java -Dcom.sun.management.jmxremote -jar 程序名.jar
(java -Dcom.sun.management.jmxremote -jar Java2Demo.jar)(測試例子Java2Demo.jar在C:\Program Files\Java\jdk1.6.0_02\demo\jfc\Java2D\)
還出不來的話 直接 在dos里 jconsole 進程號
2、啟動jdk_home\bin目錄下的Jconsole.exe就可以看到有一個
本地的連接在里面。點擊連接就可以進入相應的監視界面了。
二、JMX方式(遠程連接):
1、cmd進入dos下,進入到應用程序所在目錄,執行語句如下:
java -Dcom.sun.management.jmxremote.port=8903 -
Dcom.sun.management.jmxremote.ssl=false -
Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=192.168.***.***
2、啟動jdk_home\bin目錄下的Jconsole.exe點高級。在JMX
URL:中輸入語句如下:
service:jmx:rmi:///jndi/rmi://192.168.***.***:8903/jmxr
mi
點連接就可以進行遠程監控了
web應用程序在tomcat中部署JMX(示例:tomcat-6.0.14)
1、啟動tomcat\bin目錄下的tomcat6w.exe,在JAVA_OPTS里設
置如下:
-Dcom.sun.management.jmxremote.port=8903
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=192.168.***.***
注意:不能有空格,不然tomcat不能啟動。
2、tomcat啟動成功后,就可以在另一臺機器上啟動
jdk_home\bin目錄下的Jconsole.exe點高級。在JMX URL:中輸
入語句如下:
service:jmx:rmi:///jndi/rmi://192.168.***.***:8903/jmxr
mi
點連接就可以進行遠程監控了
以上是JMX基本部署,沒有涉及到驗證方面,如果使用的話,可
能會有漏洞,因為SSL和authenticate設置為false的話,那么
8903端口就有可能有暴露的危險。
如果想進行密碼驗證話,可以在網上找資料,自己進行調試。
我自己的應用:
1.修改Linux下tomcat的bin目錄下的catalina.sh文件
添加
JAVA_OPTS=-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.port=7080
-Dcom.sun.management.jmxremote
2.修改/etc/hosts文件下的localhost對應的IP(127.0.0.1)地址,改為linux自身的IP如10.0.0.157.
3.打開jconsole遠程輸入 10.0.0.157:7080
三
Eden Space (heap): 內存最初從這個線程池分配給大部分對象。
Survivor Space (heap):用于保存在eden space內存池中經過垃圾回收后沒有被回收的對象。
Tenured Generation (heap):用于保持已經在 survivor space內存池中存在了一段時間的對象。
Permanent Generation (non-heap): 保存虛擬機自己的靜態(refective)數據,例如類(class)和方法(method)對象。Java虛擬機共享這些類數據。這個區域被分割為只讀的和只寫的,
Code Cache (non-heap):HotSpot Java虛擬機包括一個用于編譯和保存本地代碼(native code)的內存,叫做“代碼緩存區”(code cache)
================================================
使用 jconsole 監控 tomcat6
在
catalina.bat
找到
set DEBUG_OPTS=
set JPDA=
在下面添加
set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote.port=1090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
保存
通過startup。bat啟動 tomcat
啟動jconsole (jdk1.6.0_02\lib):輸入
localhost:1090
用戶名 口令 為空
進入 即可 查看
posted @
2008-11-20 15:00 Alpha 閱讀(6218) |
評論 (0) |
編輯 收藏
有的女人就像Windows 雖然很優秀,但是安全隱患太大。
有的女人就像UNIX 她條件很好,然而不是誰都能玩的起。
有的女人就像C# 長的很漂亮,但是家務活不行。
有的女人就像C++,她會默默的為你做很多的事情。
有的女人就像JAVA,只需一點付出她就會為你到處服務。
有的女人就像JAVA script,雖然對她處處小心但最終還是沒有結果。
有的女人就像匯編 雖然很麻煩,但是有的時候還得求它。
有的女人就像 SQL,她會為你的發展帶來莫大的幫助。
愛情就是死循環,一旦執行就陷進去了。
愛上一個人,就是內存泄露,你永遠釋放不了。
真正愛上一個人的時候,那就是常量限定,永遠不會改變。
女朋友就是私有變量,只有我這個類才能調用。
情人就是指針用的時候一定要注意,要不然就帶來巨大的災難
posted @
2008-10-12 21:29 Alpha 閱讀(749) |
評論 (1) |
編輯 收藏
.tar
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是壓縮?。?br />
---------------------------------------------
.gz
解壓1:gunzip FileName.gz
解壓2:gzip -d FileName.gz
壓縮:gzip FileName
.tar.gz 和 .tgz
解壓:tar zxvf FileName.tar.gz
壓縮:tar zcvf FileName.tar.gz DirName
---------------------------------------------
.bz2
解壓1:bzip2 -d FileName.bz2
解壓2:bunzip2 FileName.bz2
壓縮: bzip2 -z FileName
.tar.bz2
解壓:tar jxvf FileName.tar.bz2
壓縮:tar jcvf FileName.tar.bz2 DirName
---------------------------------------------
.bz
解壓1:bzip2 -d FileName.bz
解壓2:bunzip2 FileName.bz
壓縮:未知
.tar.bz
解壓:tar jxvf FileName.tar.bz
壓縮:未知
---------------------------------------------
.Z
解壓:uncompress FileName.Z
壓縮:compress FileName
.tar.Z
解壓:tar Zxvf FileName.tar.Z
壓縮:tar Zcvf FileName.tar.Z DirName
---------------------------------------------
.zip
解壓:unzip FileName.zip
壓縮:zip FileName.zip DirName
---------------------------------------------
.rar
解壓:rar x FileName.rar
壓縮:rar a FileName.rar DirName
rar請到:http://www.rarsoft.com/download.htm 下載!
解壓后請將rar_static拷貝到/usr/bin目錄(其他由$PATH環境變量指定的目錄也可以):
[root@www2 tmp]# cp rar_static /usr/bin/rar
---------------------------------------------
.lha
解壓:lha -e FileName.lha
壓縮:lha -a FileName.lha FileName
lha請到:http://www.infor.kanazawa-it.ac.jp/~ishii/lhaunix/下載!
>解壓后請將lha拷貝到/usr/bin目錄(其他由$PATH環境變量指定的目錄也可以):
[root@www2 tmp]# cp lha /usr/bin/
---------------------------------------------
.rpm
解包:rpm2cpio FileName.rpm | cpio -div
---------------------------------------------
.deb
解包:ar p FileName.deb data.tar.gz | tar zxf -
---------------------------------------------
.tar .tgz .tar.gz .tar.Z .tar.bz .tar.bz2 .zip .cpio .rpm .deb .slp .arj .rar .ace .lha .lzh .lzx .lzs .arc .sda .sfx .lnx .zoo .cab .kar .cpt .pit .sit .sea
解壓:sEx x FileName.*
壓縮:sEx a FileName.* FileName
posted @
2008-07-02 09:31 Alpha 閱讀(1822) |
評論 (1) |
編輯 收藏
<!--MySql 驅動程序 eg. mysql-connector-java-5.0.4-bin.jar-->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- JDBC URL -->
<property name="connection.url">jdbc:mysql://localhost/dbname?characterEncoding=gb2312</property>
<!-- 數據庫用戶名-->
<property name="connection.username">root</property>
<!-- 數據庫密碼-->
<property name="connection.password">root</property>
<!--Sql Server 驅動程序 eg. jtds-1.2.jar-->
<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
<property name="connection.driver_class">net.sourceforge.jtds.jdbc.Driver</property>
<!-- JDBC URL -->
<property name="connection.url">jdbc:jtds:sqlserver://localhost:1433;DatabaseName=dbname</property>
<!-- 數據庫用戶名-->
<property name="connection.username">sa</property>
<!-- 數據庫密碼-->
<property name="connection.password"></property>
<!--Oracle 驅動程序 ojdbc14.jar-->
<property name="dialect">org.hibernate.dialect.OracleDialect</property>
<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<!-- JDBC URL -->
<property name="connection.url">jdbc:oracle:thin:@localhost:1521:dbname</property>
<!-- 數據庫用戶名-->
<property name="connection.username">test</property>
<!-- 數據庫密碼-->
<property name="connection.password">test</property>
如果出現如下錯誤,則可能是Hibernate SQL方言 (hibernate.dialect)設置不正確。
Caused by: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]'last_insert_id' 不是可以識別的 函數名。
RDBMS
| 方言
|
DB2
|
org.hibernate.dialect.DB2Dialect
|
DB2 AS/400
|
org.hibernate.dialect.DB2400Dialect
|
DB2 OS390
|
org.hibernate.dialect.DB2390Dialect
|
PostgreSQL
|
org.hibernate.dialect.PostgreSQLDialect
|
MySQL
|
org.hibernate.dialect.MySQLDialect
|
MySQL with InnoDB
|
org.hibernate.dialect.MySQLInnoDBDialect
|
MySQL with MyISAM
|
org.hibernate.dialect.MySQLMyISAMDialect
|
Oracle (any version)
|
org.hibernate.dialect.OracleDialect
|
Oracle 9i/10g
|
org.hibernate.dialect.Oracle9Dialect
|
Sybase
|
org.hibernate.dialect.SybaseDialect
|
Sybase Anywhere
|
org.hibernate.dialect.SybaseAnywhereDialect
|
Microsoft SQL Server
|
org.hibernate.dialect.SQLServerDialect
|
SAP DB
|
org.hibernate.dialect.SAPDBDialect
|
Informix
|
org.hibernate.dialect.InformixDialect
|
HypersonicSQL
|
org.hibernate.dialect.HSQLDialect
|
Ingres
|
org.hibernate.dialect.IngresDialect
|
Progress
|
org.hibernate.dialect.ProgressDialect
|
Mckoi SQL
|
org.hibernate.dialect.MckoiDialect
|
Interbase
|
org.hibernate.dialect.InterbaseDialect
|
Pointbase
|
org.hibernate.dialect.PointbaseDialect
|
FrontBase
|
org.hibernate.dialect.FrontbaseDialect
|
Firebird
|
org.hibernate.dialect.FirebirdDialect |
posted @
2008-04-15 14:06 Alpha 閱讀(50281) |
評論 (0) |
編輯 收藏
(給使用電腦的朋友)告訴你們一種保護眼睛的好方法:
桌面->右鍵->屬性->外觀->高級->項目選擇(窗口)、顏色1(L)選擇(其它)將色調改為:85。飽和度:123。亮度:205->添加到自定義顏色->在自定義顏色選定點確定->確定
這樣所有的文檔都不再是刺眼的白底黑字,而是非常柔和的豆沙綠色,這個色調是眼科專家配置的,長時間使用會很有效的緩解眼睛疲勞保護眼睛
posted @
2008-03-31 23:17 Alpha 閱讀(1197) |
評論 (4) |
編輯 收藏