<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    2008年6月13日

    一個SWT應用程序的基本組成部分為顯示界面(Display)、命令界面(Shell,使命令進入并使運行初始化)和窗口部件(Widgets)。Display負責管理事件循環和控制UI線程和其他線程之間的通訊。Shell是應用程序中被操作系統窗口管理器管理的窗口。每個SWT應用程序至少需要一個Display和大于等于1個的Shell實例。


    圖1:從不同的角度看SWT應用程序


      圖1從不同的角度展示了SWT應用程序。左側的圖是一個簡化的UI對象的繼承圖。中間的圖展示了UI對象的容器結構(containment structure)。右側的圖則是創建后的UI外觀。

      如果一個應用程序使用了多個線程,那么每個線程都使用的是Display對象分配給它自己的實例。程序員可以使用靜態方法Display.getCurent()來得到Display對象的當前活動的實例。

      Shell用于在特定的操作系統中表現窗口。Shell可以最大化、最小化或正常化。Shell有兩種類型。第1種是高層shell,它是Display的子窗口,同時它也是一個主窗口。第2類是對話shell,這種shell要依賴于其他的shell窗口存在。shell窗口最終成為上述那種類型,要看在創建shell時傳遞給shell構造函數的是什么風格位(style bits)。一個shell的默認值是DialogShell。也就是說,如果不帶參數,那默認就是一個對話shell。而如果給參數賦予了一個Display對象,則該shell將是一個高層shell。

      一些窗口部件的屬性必須在創建它們的初期就要被設置。這些窗口部件的屬性就是前面所說的風格位(style bits)。在SWT的類中,風格位被定義為常數。例如,Button button = new Button( shell, <styleBits> )。可以使用或(OR)操作符“|”來設置多個風格位。例如,如果想設置一個帶邊界的壓下按鈕,需要傳遞SWT.PUSH | SWT.BORDER作為風格位參數。

     

    本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/bnlovebn/archive/2011/06/14/6543693.aspx

    posted @ 2011-06-14 14:33 重歸本壘(Bing) 閱讀(370) | 評論 (0)編輯 收藏
     

    找到AppData\Local\Genuitec\Common\configuration\com.genuitec.pulse2.client.common.provisioning中的文件rmb-2042360.latest.snapshot,在文件rmb-2042360.latest.snapshot中找到你要刪除的插件名。把這行刪除即可。

    posted @ 2011-06-14 11:32 重歸本壘(Bing) 閱讀(3663) | 評論 (1)編輯 收藏
     
    最近orcale數據只有一臺可以服務,導致hibernate 連接數據庫每個13分鐘就會報“APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks”的錯誤.
    原因是 hibernate 使用c3p0連接orcale數據后不會釋放 , c3p0的最大連接數為100,但顯然c3p0有Bug,導致數據庫連接池不夠用,導致進程鎖死。
    后換Proxool后,觀察正常。

    下面轉引其它網友文章說明c3p0 、 Proxool、 dbcp  的區別
    1<!-- JDBC驅動程序 -->   
    2<property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://localhost:3306/struts?useUnicode=true&characterEncoding=GBK</property> <!-- 數據庫用戶名 -->   
    3<property name="connection.username">root</property> <!-- 數據庫密碼 -->

    上面的一段配置,在c3p0dbcp中,都是必需的,因為hibernate會根據上述的配置來生成connections,再交給c3p0dbcp管理.

    1 C3P0

    只需在hibernate.cfg.xml中加入
    1<property name="c3p0.min_size">5</property>   
    2<property name="c3p0.max_size">30</property>   
    3<property name="c3p0.time_out">1800</property>   
    4<property name="c3p0.max_statement">50</property>   
    5

    還有在classespath中加入c3p0-0.8.4.5.jar


    2 dbcp

    在hibernate.cfg.xml中加入
     1<property name="dbcp.maxActive">100</property>   
     2<property name="dbcp.whenExhaustedAction">1</property>   
     3<property name="dbcp.maxWait">60000</property>   
     4<property name="dbcp.maxIdle">10</property>   
     5   
     6<property name="dbcp.ps.maxActive">100</property>   
     7<property name="dbcp.ps.whenExhaustedAction">1</property>   
     8<property name="dbcp.ps.maxWait">60000</property>   
     9<property name="dbcp.ps.maxIdle">10</property>  
    10

    還有在classespath中加入commons-pool-1.2.jar 和commons-dbcp-1.2.1.jar.

    3 proxool

    由于數據庫connection在較長時間沒有訪問下會自動斷開連接,導致瀏覽出錯,增加proxool作為數據庫pool。它有自動連接功能。
    1)、從http://proxool.sourceforge...下載proxool,釋放proxool.jar到WEB-INF/lib

    2)、在hibernate.cfg.xml中增加:
    1<property name="hibernate.proxool.pool_alias">dbpool</property>   
    2<property name="hibernate.proxool.xml">proxool.xml</property>   
    3<property name="connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider</property>  
    4

    3)、在與hibernate.cfg.xml同級目錄(src根目錄下)增加proxool.xml文件:
     1<?xml version="1.0" encoding="utf-8"?>   
     2<!-- the proxool configuration can be embedded within your own application's.    
     3 Anything outside the "proxool" tag is ignored. -->   
     4<something-else-entirely>   
     5 <proxool>   
     6   <alias>dbpool</alias>   
     7   <!--proxool只能管理由自己產生的連接-->   
     8   <driver-url>   
     9     jdbc:mysql://127.0.0.1:3306/wlsh?characterEncoding=GBK&useUnicode=true&autoReconnect=true     </driver-url>   
    10   <driver-class>com.mysql.jdbc.Driver</driver-class>   
    11   <driver-properties>   
    12       <property name="user" value="root" />   
    13       <property name="password" value="123456" />   
    14   </driver-properties>   
    15   <!-- proxool自動偵察各個連接狀態的時間間隔(毫秒),偵察到空閑的連接就馬上回收,超時的銷毀-->   
    16   <house-keeping-sleep-time>90000</house-keeping-sleep-time>   
    17   <!-- 最少保持的空閑連接數-->   
    18   <prototype-count>5</prototype-count>   
    19   <!-- 允許最大連接數,超過了這個連接,再有請求時,就排在隊列中等候,最大的等待請求數由maximum-new-connections決定-->   
    20   <maximum-connection-count>100</maximum-connection-count>   
    21   <!-- 最小連接數-->   
    22   <minimum-connection-count>10</minimum-connection-count>   
    23 </proxool>   
    24</something-else-entirely>  
    25

    于在hibernate3.0中,已經不再支持dbcp了,hibernate的作者在hibernate.org中,明確指出在實踐中發現dbcp有 BUG,在某些種情會產生很多空連接不能釋放,所以拋棄了對dbcp的支持。至于c3p0,有評論說它的算法不是最優的,因為網上查資料得知:有網友做了一個實驗,在同一項目中分別用了幾個常用的連接池,然后測試其性能,發現c3p0占用資源比較大,效率也不高。所以,基于上述原因,proxool不少行家推薦使用,而且暫時來說,是負面評價是最少的一個。在三星中也有項目是用proxool的。從性能和出錯率來說,proxool稍微比前兩種好些。C3P0,穩定性似乎不錯,在這方面似乎有很好的口碑。至于性能,應該不是最好的,算是中規中矩的類型。
      Proxool的口碑似乎很好,不大見到負面的評價,從官方資料上來看,有許多有用的特性和特點,也是許多人推薦的。
    posted @ 2011-06-12 13:51 重歸本壘(Bing) 閱讀(5266) | 評論 (0)編輯 收藏
     
    1、was6.1基于j2ee1.4。
    2、was6.1ND版中有Edge Components產品。
    3、was6.1各版本都有一些基本的功能。
    posted @ 2010-04-12 10:41 重歸本壘(Bing) 閱讀(313) | 評論 (0)編輯 收藏
     
         摘要: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html>     <head>         ...  閱讀全文
    posted @ 2008-12-21 02:56 重歸本壘(Bing) 閱讀(3838) | 評論 (2)編輯 收藏
     
    <span id="spnTime"></span><script language="javascript">
    var http = new XMLHttpRequest;
    http.open(
    "HEAD""."false);
    http.send(
    null);
    var curDate = new Date;
    var offsetTime = curDate - Date.parse(http.getResponseHeader("Date"));
    setInterval(
    function()
    {
        curDate.setTime(
    new Date - offsetTime);
        document.getElementById(
    "spnTime").innerHTML = curDate.toLocaleString();
    }
    1000);
    </script>
    posted @ 2008-09-26 08:42 重歸本壘(Bing) 閱讀(325) | 評論 (0)編輯 收藏
     

     

    <!-- 把下列代碼加入到head區內 -->
    <style>




    #tablist a
    {
    text-decoration
    : none;
    padding
    : 2px 0.2em;
    border
    : 1px solid #778;
    background
    : white;
    }


    #tablist  a:link, #tablist  a:visited
    {
    color
    : navy;
    }


    #tablist  a:hover
    {
    color
    : black;
    background
    : lightyellow;
    border-color
    : navy;
    }


    #tablist  a.current
    {
    background
    : lightyellow;
    }

    </style>


    <!-- 把下列代碼加入到body區內 -->
    <label id="tablist">
    <href="http://www.yahoo.com">Yahoo</a>
    <href="http://www.google.com">Google</a>
    <href="http://www.sina.com">退出</a>
    </label>
    posted @ 2008-09-23 11:53 重歸本壘(Bing) 閱讀(249) | 評論 (0)編輯 收藏
     
    1、源代碼包的安裝    
      gzip   -d   apache_1.3.20.tar.gz   (解壓)    
      tar   xvf   apache_1.3.20.tar   (解包)    
      cd   apache_1.3.20    
      ./configure   (配置)   ----./configure   --help(查看configure選項)    
      make   (編譯)    
      make   install   (安裝)    
      make   clean   (卸載)    
       
      注:典型的源代碼包可以這樣安裝,但不都是這樣,如webmin    
      要執行其目錄下./setup.sh進入交互式配置安裝    
      卸載用uninstall程序    
      具體如果不清楚看要安裝的包下的README文件    
       
      2、RPM包的安裝    
      RPM軟件包的一個例子:    
      foo-1.0-1.i386.rpm    
      其中包括軟件包的名稱(foo),版本號(1.0),發行號(1),和硬件平臺(i386)。    
      (1)安裝    
      #   rpm   -ivh   foo-1.0-1.i386.rpm    
      foo    
      #######################    
      A.   軟件包已被安裝    
      #   rpm   -ivh   foo-1.0-1.i386.rpm    
      foo   package   foo-1.0-1   is   already   installed    
      error:   foo-1.0-1.i386.rpm   cannot   be   installed    
      如果你仍舊要安裝該軟件包,你可以在命令行上使用--replacepkgs   選項,這將忽略該錯誤信息。    
      B.   文件沖突    
      如果要安裝的軟件包中有一個文件已在安裝其它軟件包時安裝,會出現以下錯誤信息:    
      #   rpm   -ivh   foo-1.0-1.i386.rpm    
      foo   /usr/bin/foo   conflicts   with   file   from   bar-1.0-1    
      error:   foo-1.0-1.i386.rpm   cannot   be   installed    
      要想讓RPM   忽略該錯誤信息,   請使用--replacefiles   命令行選項    
      C.未解決依賴關系    
      RPM軟件包可能依賴于其它軟件包,   在安裝了特定的軟件包之后才能安裝該軟件包。    
      #   rpm   -ivh   bar-1.0-1.i386.rpm    
      failed   dependencies:    
      foo   is   needed   by   bar-1.0-1    
      你必須安裝完所依賴的軟件包,才能解決這個問題。如果想強制安裝   (但是,這樣安裝后的軟件包未必能正常運行),請使用-nodeps   命令行選項。    
       
      (2)   卸載    
      #   rpm   -e   foo    
      注意:這里使用軟件包的名字foo,而不是軟件包文件的名字“foo-1.0-1.i386.rpm”.    
      如果其它軟件包依賴于你要卸載的軟件包,卸載時則會產生錯誤信息。如:    
      #   rpm   -e   foo    
      removing   these   packages   would   break   dependencies:    
      foo   is   needed   by   bar-1.0-1    
      要想RPM忽略該錯誤信息繼續卸載的話   (但是,依賴于該軟件包的程序可能無法運行),   請使用-nodeps   命令行選項。    
      (3)升級    
      #   rpm   -Uvh   foo-2.0-1.i386.rpm    
      foo    
      ###############################    
      當使用舊版本的軟件包來升級新版本的軟件時,會產生以下錯誤信息:    
      #   rpm   -Uvh   foo-1.0-1.i386.rpm    
      foo   package   foo-2.0-1   (which   is   newer)   is   already   installed    
      error:   foo-1.0-1.i386.rpm   cannot   be   installed    
      要使RPM   堅持這樣“升級”,可使用--oldpackage   命令行參數。    
      (4)查詢    
      #   rpm   -q   foo    
      foo-2.0-1    
      軟件包指定選項:    
      -a   查詢所有已安裝的軟件包.    
      -f   <file>   將查詢包含有文件<file>的軟件包    
      -p   <packagefile>    
      查詢軟件包文件名為<packagefile>的軟件包    
      信息選擇選項:    
      -i   顯示軟件包信息,如描述,   發行號,   尺寸,   構建日期,   安裝日期,   平臺,   以及其它各類信息。    
      -l   顯示軟件包中的文件列表。    
      -s   顯示軟件包中所有文件的狀態。    
      -d   顯示被標注為文檔的文件列表(man   手冊,   info   手冊,   README's,   etc).    
      -c   顯示被標注為配置文件的文件列表。這些是要在安裝完畢以后加以定制的文件(sendmail.cf,   passwd,   inittab,   etc)。    
      對于那些要顯示文件列表的文件,可以增加-v   命令行選項以獲得如同   ls   -l   格式的輸出。    
      (5)驗證    
      驗證軟件包是通過比較軟件包中安裝的文件和軟件包中的原始文件信息來進行的。除了其它一些東西,驗證主要是比較文件的尺寸,   MD5   校驗碼,   文件權限,   類型,   屬主和用戶組等。    
      rpm   -V命令用來驗證一個軟件包,如    
      rpm   -V   foo    
      驗證包含特定文件的軟件包:    
      rpm   -Vf   /bin/vi    
      驗證所有已安裝的軟件包:    
      rpm   -Va    
      根據一個RPM來驗證某個軟件包:    
      rpm   -Vp   foo-1.0-1.i386.rpm    
      如果你擔心RPM數據庫已被破壞,就可以使用這種方式。如果一切校驗均正常將不會產生任何輸出。如果有不一致的地方,就會顯示出來。    
      輸出格式是8位長字符串,c   用以指配置文件,接著是文件名.   8位字符的每一個用以表示文件與RPM數據庫中一種屬性的比較結果。“.”   (點)表示測試通過。    
      以下字符表示某種測試的失敗:    
      5   MD5   校驗碼    
      S   文件尺寸    
      L   符號連接    
      T   文件修改日期    
      D   設備    
      U   用戶    
      G   用戶組    
      M   模式e   (包括權限和文件類型)    
      如果有信息輸出,應當認真加以考慮,是刪除,重新安裝,還是修正出現的問題。    
      (6)RPM應用的幾個例子    
      A.   如你誤刪了一些文件,   但是不能肯定到底刪除了哪些文件。如果你想驗證一下整個系統看看都丟失了哪些文件的話,可以鍵入:    
      rpm   –Va    
      B.若是一些文件丟失了或已被損壞,   就可以重新安裝或先卸載再安裝該軟件包。如果碰到了一個自己不認識的文件,要想查處它屬于哪個軟件包,可以輸入以下命令:    
      rpm   -qf   /usr/X11R6/bin/xjewel    
      而輸出的結果會是:    
      xjewel-1.6-1    
      C.   如果發生綜合以上兩個例子的情況,如文/usr/bin/paste出了問題。你想驗證一下擁有該文件的軟件包,可又不知道軟件包的名字,這時可以簡單的鍵入:    
      rpm   -Vf   /usr/bin/paste    
      這樣相應的軟件包就會被驗證。    
      D.   如果你想了解一個正在使用的程序的詳細信息,可以鍵入如下命令來獲得擁有該程序的軟件包中的文檔信息:    
      rpm   -qdf   /usr/bin/ispell    
      輸出結果為:    
      /usr/man/man4/ispell.4    
      /usr/man/man4/english.4    
      …………………………………………………………    
       
      E.   如果你發現了一個新的koules   RPM,但是不知道它是什么東西,可以鍵入如下命令:    
      rpm   -qip   koules-1.2-2.i386.rpm    
      F.   現在你想了解koules   RPM   所安裝的文件。可以鍵入:    
      rpm   -qlp   koules-1.2-2.i386.rpm    
      圖形管理工具:kpackage    
       
      3、shell或java腳本安裝    
      基于圖形界面的安裝,一般基于SHELL或Java語言編寫,主要應用于一些辦公軟件和制圖軟件及安裝程序,如staroffice、oracle的安裝,很容易,和windows一樣     
       
    posted @ 2008-06-13 17:47 重歸本壘(Bing) 閱讀(9203) | 評論 (0)編輯 收藏
     
    Web Page Rank Icon
    主站蜘蛛池模板: 免费国产黄网站在线观看视频| 日韩毛片免费在线观看| 亚洲欧美日韩一区二区三区 | 亚洲丁香婷婷综合久久| 亚洲午夜无码AV毛片久久| 免费人成在线观看网站品爱网| 亚洲中文无码亚洲人成影院| 五月婷婷亚洲综合| 1000部免费啪啪十八未年禁止观看| 亚洲国产欧洲综合997久久| 久久精品国产亚洲综合色| 国产精品视频免费一区二区| 国产乱妇高清无乱码免费| 亚洲不卡1卡2卡三卡2021麻豆| 亚洲国产成人a精品不卡在线| 3344永久在线观看视频免费首页| 精品免费AV一区二区三区| 久久久亚洲AV波多野结衣 | 亚洲国产香蕉碰碰人人| 国产精品国产免费无码专区不卡| 久久精品国产影库免费看| 国产精品日本亚洲777| 亚洲成a人片在线观| 国产亚洲av人片在线观看| 四虎免费在线观看| 18禁美女黄网站色大片免费观看| 青青草97国产精品免费观看 | 在线亚洲午夜片AV大片| 久久精品国产精品亚洲精品| 免费播放特黄特色毛片| 成年女人免费视频播放体验区| 成人性生交大片免费看中文| 精品亚洲国产成人av| 亚洲国产超清无码专区| 久久亚洲精品中文字幕无码| 久久久久亚洲AV成人网| 永久免费av无码网站大全| 国产成人免费网站| 99热在线免费观看| 99视频在线观看免费| 一级一级一片免费高清|