Atea - Hero's Grave

          面向對象,開源,框架,敏捷,云計算,NoSQL,商業智能,編程思想。

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            40 隨筆 :: 0 文章 :: 28 評論 :: 0 Trackbacks

          2008年7月18日 #

          有2臺linux服務器,一臺布apache(A)和tomcat應用程序(B),一臺布solr管理平臺(C)。

          發現的bug為:
          前臺訪問A,A轉發給B,B再訪問C,訪問失敗。

          經試驗,web server和app server不能放到一臺服務器上,否則通過apache代理,app server調用solrj會因獲取不到連接而失敗。

          目前跟蹤調查到
          org.apache.solr.client.solrj.impl.CommonsHttpSolrServer
          ->
          org.apache.commons.httpclient.HttpClient
          ->
          org.apache.commons.httpclient.MultiThreadedHttpConnectionManager

          httpclient的版本是3.1,懷疑是MultiThreadedHttpConnectionManager自定義的池出的問題。
          網上搜了搜,沒什么相關資料。最近太忙,沒精力刨根問底了。暫時改了solrj源碼,使用了默認的new HttpClient()
          有誰也遇到類似問題并解決了,或知道怎么回事,麻煩告知一下。

          PS:
          solr更新這么迅速,為啥不把httpclient升級一下

          posted @ 2012-02-29 16:45 Atea 閱讀(337) | 評論 (0)編輯 收藏

          最近又折騰起了activemq。見Failover的文檔沒有中文的,就順手給翻了:

          Apache ActiveMQ - The Failover Transport Options

          Option Name Default Value Description
          initialReconnectDelay 10
          第一次重連的時間間隔(毫秒)
          maxReconnectDelay 30000
          最長重連的時間間隔(毫秒)
          useExponentialBackOff true
          重連時間間隔是否以指數形式增長
          backOffMultiplier 2.0
          指數的值
          maxReconnectAttempts -1 >= AMQ v5.6
          0 < AMQ v5.6,
          自版本5.6起:-1為默認值,代表不限重試次數;0代表從不重試(只嘗試連接一次,并不重連)
          5.6以前的版本:0為默認值,代表不限重試次數
          所有版本:如果設置為大于0的數,代表最大重試次數
          startupMaxReconnectAttempts 0
          初始化時的最大重連次數。一旦連接上,將使用maxReconnectAttempts的配置
          randomize true
          使用隨機鏈接(注:達到負載均衡的目的)
          backup false
          提前初始化一個未使用連接,以便進行快速失敗轉移
          timeout -1
          設置發送操作的總計最大超時時間(毫秒)
          trackMessages false
          在重連過程中緩存消息
          maxCacheSize 131072
          緩存的最大字節數
          updateURIsSupported true
          設定是否可以動態修改broker uri(自版本5.4起)

          posted @ 2011-12-28 10:35 Atea 閱讀(2982) | 評論 (0)編輯 收藏

               摘要: 標題起的有些大,僅代表自己和身邊一些人從業這幾年來的感悟:P  閱讀全文
          posted @ 2011-09-01 15:31 Atea 閱讀(2766) | 評論 (5)編輯 收藏

          現象:
          JDBC執行 UPDATE DB_NAME.TABLE_NAME SET COLUMN_NAME xxxx;
          然后操作并不計入mysql binlog,主從復制失效。

          發生條件:
          1、MySQL 5.1 (理論上5.1+)
          2、SQL語句指定庫名/跨庫執行,之前沒有指到這個庫下面(use DATABASE_NAME )
          3、MySQL主從配置沒有加--replicate-wild-do-table=db_name.%

          解決辦法:
          在主從配置文件內加入參數
          --replicate-wild-do-table=db_name.%

          參考文檔:
          MySQL官方文檔
          posted @ 2011-06-24 16:47 Atea 閱讀(535) | 評論 (0)編輯 收藏

               摘要: VJET JavaScript IDE 是一個Eclipse插件,提供了整套的Javascript開發環境:語法提示、自動補全、高亮、編輯糾錯、debug等。
          比起Aptana來,VJET更加輕量,速度也更快。  閱讀全文
          posted @ 2011-06-08 13:48 Atea 閱讀(10361) | 評論 (1)編輯 收藏

               摘要: JDK1.5引入的泛型,減少了類型強轉的代碼,增加了編譯檢查,提高了代碼的健壯性。
          但在某些情況,泛型檢查會出乎意料的“丟失”,由此可引發難以發現的bug。  閱讀全文
          posted @ 2011-05-31 10:31 Atea 閱讀(694) | 評論 (0)編輯 收藏

          如果別人只是讀取數據,FOR UPDATE就不會鎖定資源不讓他們讀
          sum,count等函數為表鎖
          null不等于任何值,包括它自己
          盡量不要使用LONG型字段,而考慮使用CLOB
          與不可重復讀的區別在于:在幻像讀中,已經讀取的數據不會改變,只是與以前相比,會有更多的數據滿足你的查詢條件
          客戶端發出的語句(如INSERT INTO)是原子性的
          應慎用IMMEDIATE約束。一條語句可能會使表中的各行暫時“不一致”,這是很自然的。
          一般認為,用更新級聯來修改主鍵是很不好的做法
          應手動給外鍵加索引,否則會引起子表的表鎖。
          優化期會對視圖的來源表使用查詢。所以,對視圖加索引不如直接對來源表進行索引優化。

          無法通過頻繁提交來“節省”undo空間,所以沒有必要在循環中提交。
          1、事務的粒度(時長)應設計的盡可能小(短)
          2、事務不是稀缺資源,所以不要在循環中提交
          以上2個說法都正確,并不矛盾:
          Re1: 事務過大,會在rollback時消耗大量資源
          Re2: 循環提交會頻繁IO

          性能調優,應首先嘗試減少查詢的運行時間,其次再考慮設置參數等。
          查詢中最好手動加上order by
          索引組織表(IOT)是存儲在索引結構中的表,適合OLAP應用。IOT不存在主鍵的空間開銷,因為索引就是輸據。
          位圖索引適用于高度重復而且通常只讀的數據(在OLTP中慎用,涉及到并發性)。在讀密集的環境中能很好的工作,但極不適用于寫密集環境。
          僅當要通過索引訪問表中很少的一部分行(很小的一個百分比)時,才使用B*索引。每個唯一約束應該至少有一個確實唯一的NOT NULL列。B*樹索引不會對一個完全為NULL的項加索引。

          http://atealxt.appspot.com/article/20110317/book_read_note_oracle_database_9i10gand11g_programming_techniques_and_solutions.html
          posted @ 2011-03-17 22:19 Atea 閱讀(450) | 評論 (0)編輯 收藏

               摘要: 使用"help" -> "Check for Updates", 選擇所有eclipse插件,升級。
          升級完重啟時,發生錯誤,IDE啟動失敗,報錯。


          解決辦法:
          修改文件 "ECLIPSE_HOME\configuration\config.ini"。  閱讀全文
          posted @ 2011-03-09 16:17 Atea 閱讀(1805) | 評論 (0)編輯 收藏

               摘要: 限于自己的水平還未達到DBA級別,只能先以應用為主的角度讀了。
          也許過幾個月再回來重讀,會有另一番心得。

          筆記包含索引、事務與鎖、備份及其他四類。
            閱讀全文
          posted @ 2011-02-28 23:16 Atea 閱讀(542) | 評論 (0)編輯 收藏

          從今天開始,把讀書時做的標注集中地做個摘抄,在加深印象的同時也能全面地了解一下自己在讀該書時的側重點及收獲。
          首先,逐步地把以前的整理出來:)

          • 細節應該依賴于抽象
          • 在包的依賴關系圖中不允許存在環
          • 如果在迭代結束的時候,90%的任務已被完成,但沒有一個素材是被完全完成的,這將是噩夢一般的情景
          • SINGLETON模式強制結構上的單一性。它防止創建出多個對象實例。相反,MONOSTATE模式則強制行為上的單一性,而沒有強加結構方面的限制。
          • VISITOR模式如同一個矩陣
          • Builder模式著重于一步步構造一個復雜對象,而Abstract Factory著重于多個系列的產品對象。Builder在最后的一部返回產品,而對于Abstract Factory來說,產品是立即返回的。
          http://atealxt.appspot.com/article/20110209/reading_notes_agile_software_gof.html
          posted @ 2011-02-09 23:27 Atea 閱讀(352) | 評論 (0)編輯 收藏

          錯誤日志為:
          java.lang.NullPointerException
              at oracle.jdbc.dbaccess.DBData.clearItem(DBData.java:
          431)
              at oracle.jdbc.dbaccess.DBDataSetImpl.clearItem(DBDataSetImpl.java:
          3528)
              at oracle.jdbc.driver.OraclePreparedStatement.checkBindTypes(OraclePreparedStatement.java:
          3271)
              at oracle.jdbc.driver.OraclePreparedStatement.setNull(OraclePreparedStatement.java:
          1322)
              at org.apache.commons.dbutils.QueryRunner.fillStatement(QueryRunner.java:
          197)
              at org.apache.commons.dbutils.QueryRunner.batch(QueryRunner.java:
          122)

          也是網上搜了半天,查了不少原因,未果。
          最后試著更新了一下jdbc驅動,原來是oracle較早版本的jdbc驅動bug所致。
          去官網下載一個所對應oracle版本的最新jdbc驅動就OK了。

          posted @ 2010-12-13 16:05 Atea 閱讀(1251) | 評論 (0)編輯 收藏

               摘要: 傳統的"Return to Top"置于頁面底部或指定位置,點擊后返回頁面頂部。
          但其存在諸多不便:
          1、頁面頂部必須定義一個相應的錨點,其本身也會占用DOM空間,很容易發生返回的不是絕對的頂部而是該錨點(滾動條會稍微向下一點,而不是在0的位置)
          2、如果頁面很長,想在滾動條任意處回頂部會變得難以處理。

          使用jQuery能大大改善這一用戶體驗。本文章將能做到:
          "Return to Top"在頁面初始化時不顯示,當移動滾動條時出現并隨滾動條位置變化而變化。
          點擊"Return to Top"頁面移動到頂部,當滾動條到頂部時"Return to Top"自動隱藏。
          以上均伴有動畫效果。  閱讀全文
          posted @ 2010-05-13 11:14 Atea 閱讀(2178) | 評論 (2)編輯 收藏

               摘要:
          首先來預熱一下:)
          System.out.println(2.00 - 1.10);
          System.out.println(2.00d - 1.10d);
          System.out.println(2.00D - 1.10D);

          答案
          // 0.8999999999999999
          // 0.8999999999999999
          // 0.8999999999999999
          PS:JAVA Puzzlers(Puzzle 2)

          那么,問題是:
          一個浮點數X,存到DB里是305.35,頁面顯示305.34
          X = ?

          DB用的是MySQL,字段類型是FLOAT(8,2)
          后臺框架用的是Hibernate
          前臺顯示用的是JSTL tag
            閱讀全文
          posted @ 2010-01-18 12:58 Atea 閱讀(1705) | 評論 (0)編輯 收藏

               摘要: UltraEdit提供了正則表達式的查找與替換,靈活使用可以節省工作量

          使用方法是:^(正則表達式^)
          匹配的話,按使用正則表達式的數量,匹配結果為^1、^2并以此類推。  閱讀全文
          posted @ 2009-11-12 10:14 Atea 閱讀(314) | 評論 (0)編輯 收藏

               摘要: PDF不像EXCEL那樣靈活,要想處理動態數據,基本有2種方法
          1、純程序畫
          風險較大,可行性低
          2、把模板里的動態部分單獨做成模板
          使用Foxit PDF Editor編輯PDF模板元素,把動態數據部分的模板按一條(一行)提取出來單獨做一頁,使用時動態引入。  閱讀全文
          posted @ 2009-10-30 15:41 Atea 閱讀(619) | 評論 (0)編輯 收藏

               摘要: Spring-MVC如何使用攔截器,官方文檔只給出了非注解風格的例子。那么基于注解風格如何使用攔截器呢?
          基于注解基本上有2個可使用的定義類,分別是DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter。  閱讀全文
          posted @ 2009-09-20 20:23 Atea 閱讀(7275) | 評論 (0)編輯 收藏

               摘要: XDoclet是一款開源的代碼自動生成引擎,支持很多框架的代碼自動生成。
          而XDoclet2作為Maven2的插件,支持Hibernate3的pojo->xml的代碼自動生成。配合ant與Hibernate Tool API,可以實現pojo<->xml<->db schema的相互轉化。  閱讀全文
          posted @ 2009-08-01 22:35 Atea 閱讀(1122) | 評論 (2)編輯 收藏

               摘要: 1. org.datanucleus.store.exceptions.NoTableManagedException
          2. org.datanucleus.exceptions.NucleusUserException A parent cannot be established or changed once an object has been persisted.
          3. java.lang.IllegalArgumentException: can't operate on multiple entity groups in a single transaction
          4. 404 happened when visit online but ok in local environment
            閱讀全文
          posted @ 2009-06-30 15:49 Atea 閱讀(526) | 評論 (0)編輯 收藏

               摘要: 地址是: http://atealxt.appspot.com/  閱讀全文
          posted @ 2009-06-24 15:09 Atea 閱讀(562) | 評論 (1)編輯 收藏

               摘要: 替換前: aaa[code:java]bbb[/code]ccc
          替換后: aaa<pre class="brush:java;">bbb</pre>ccc  閱讀全文
          posted @ 2009-06-12 11:11 Atea 閱讀(369) | 評論 (0)編輯 收藏

               摘要: 1. pojo compile warning
          2. com.google.apphosting.api.ApiProxy$CallNotFoundException
          3. org.datanucleus.exceptions.NucleusUserException
          4. java.lang.NoClassDefFoundError: javax/naming/NamingException
          5. java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.String
          6. one to many relationship doesn't work   閱讀全文
          posted @ 2009-06-04 12:20 Atea 閱讀(627) | 評論 (0)編輯 收藏

               摘要: s2dao是基于seasar2的orm框架,使用簡單且功能比較強大。官方網站為http://s2dao.seasar.org/,中英日文檔皆有。
          如果對hibernate望而生畏,而只是尋找一個替代jdbc的工具的話,s2dao算是一個不錯的選擇。某種程度上來講,s2dao可能會比較像ibatis。  閱讀全文
          posted @ 2009-05-07 17:08 Atea 閱讀(856) | 評論 (0)編輯 收藏

               摘要: amCharts是一款前臺Flash報表工具。
          由于使用了Flash ,可以做出不少華麗的動畫效果,使報表數據顯得生動立體。  閱讀全文
          posted @ 2009-03-29 20:23 Atea 閱讀(4267) | 評論 (0)編輯 收藏

               摘要: struts2 Action里面的getter方法會在Action結束后被自動調用。
          在Ajax調用Action返回json數據等的情況,很可能給函數起個getXXX的名字,而這就可能發生錯誤了。  閱讀全文
          posted @ 2009-02-16 20:09 Atea 閱讀(391) | 評論 (0)編輯 收藏

               摘要: 一段hibernate的SchemaExport,原來在win下運行正常,放到linux下就出了問題,在插入數據的時候發生了異常。
          查看DB,發現表引擎是MyISAM,而不是期望的InnoDB。我的代碼是在用到batch的時候(Session.flush())才出的錯,查了查MyISAM的資料,應該就是這個了。  閱讀全文
          posted @ 2009-01-31 10:36 Atea 閱讀(3880) | 評論 (2)編輯 收藏

               摘要: 本文介紹了PL/SQL的基本使用方法,包括PACKAGE、FUNCTION的書寫及調用,游標的使用等。  閱讀全文
          posted @ 2008-12-26 20:22 Atea 閱讀(357) | 評論 (0)編輯 收藏

               摘要: 今日看了《Java Concurrency in Practice》的第6.2.5章節,才知道java.util.Timer真是問題多多啊。
          Timer任務執行過程中,如果下一次計時到了,會產生任務沖突問題。這在多線程的環境下會更加突出。
          另外如果Timer任務執行過程中發生異常,Timer仍然會繼續工作!

          jdk5的java.util.concurrent.ScheduledExecutorService很好的解決了以上問題。  閱讀全文
          posted @ 2008-11-25 09:33 Atea 閱讀(4417) | 評論 (0)編輯 收藏

               摘要: 在ORACLE中,CHAR類型的字段值會自動補足空格。所以當其作為條件時,就有可能查不出想要的數據。
          如果不允許改DB設計的話,那就用RTRIM來解決吧。  閱讀全文
          posted @ 2008-11-11 14:45 Atea 閱讀(4080) | 評論 (4)編輯 收藏

               摘要: 最近的項目使用了Prototype。
          基本不用在頁面寫諸如onclick=***的代碼了,在js最后綁定上body onload,然后把控件和事件的綁定統一寫到body onload中。這樣頁面代碼干凈了不少,事件也能夠得到統一管理,蠻優雅的。  閱讀全文
          posted @ 2008-11-04 09:59 Atea 閱讀(1022) | 評論 (0)編輯 收藏

               摘要: 注意:
          1. 如果bean被aop監聽的話(aop:pointcut),bean的init-method是不會執行的(構造函數會執行)。
          2. 如果bean是其他bean的field(ref bean),init-method和構造函數都會執行。  閱讀全文
          posted @ 2008-09-19 15:48 Atea 閱讀(575) | 評論 (0)編輯 收藏

               摘要: 辦法1:
          修改eclipse_home/your_workspace/.metadata/.plugins/org.eclipse.wst.server.core/servers.xml
          辦法2:
          Double-click the server in the Servers view to open the server editor. Then expand the Timeouts section on the right side of the editor.  閱讀全文
          posted @ 2008-09-03 18:07 Atea 閱讀(3890) | 評論 (3)編輯 收藏

               摘要: 1."rich" textarea editor.
          簡單的可即時變色的iframe editor。

          2.Advertisement Board.
          在CSDN看到的投標項目的廣告滾動條,用的是iframe + window.scrollBy,挺好玩的。
          自己把源碼做了點改進,加了個暫停滾動的功能。  閱讀全文
          posted @ 2008-08-25 18:46 Atea 閱讀(2734) | 評論 (0)編輯 收藏

               摘要: 現有一程序,啟動時需要分別點擊執行a.bat和b.bat。每次都要雙擊兩回,著實不方便,于是編寫了一個bat文件直接來調這兩個文件。  閱讀全文
          posted @ 2008-08-22 17:29 Atea 閱讀(2083) | 評論 (0)編輯 收藏

               摘要: 網上沒找到符合需求的資料,前后鼓搗了兩天才弄好。
          《Spring in Action》中的aop例子-吟游詩人(Minstrel)雖然生動,但代碼不全,可害苦我了:<
          后又結合spring reference 6.2節看了半天,才琢麼出來。  閱讀全文
          posted @ 2008-08-18 16:52 Atea 閱讀(1994) | 評論 (0)編輯 收藏

               摘要: 筆者近期正在使用Struts2開發,在這里把個人心得小結一下。
          1.重復提交問題。
          2.在web page中使用for循環的問題。
          3.數據的頁面顯示問題。
          4.自定義interceptor的問題。  閱讀全文
          posted @ 2008-08-04 17:47 Atea 閱讀(3314) | 評論 (7)編輯 收藏

               摘要: Hibernate Session獲取方法大致有兩種:
          方法1. SessionFactory.openSession();
          方法2. SessionFactory.getCurrentSession();
          以前自己寫代碼都是用方法1取session。今天學會了方法2,以后就可以用它來提高效率了
          ...  閱讀全文
          posted @ 2008-07-28 16:57 Atea 閱讀(3473) | 評論 (0)編輯 收藏

               摘要: 通過以往的學習我知道Super po = new Sub()的時候"Method is Sub's,Field is Super's"。但碰上域限定符時就又糊涂了。顯然是知其然不知其所以然。
          而當我用"javap -verbose"調試并分析日志的時候,我終于明白了
          ...  閱讀全文
          posted @ 2008-07-22 17:32 Atea 閱讀(361) | 評論 (0)編輯 收藏

               摘要: 接上篇,下面是剩余Client端的部分代碼...  閱讀全文
          posted @ 2008-07-18 12:23 Atea 閱讀(1082) | 評論 (0)編輯 收藏

               摘要: 年初正是JavaFX熱的的時候,于是便學習了相關基礎編程,作了個小聊天室。
          雖然NetBeans 6.0支持JavaFX集成,但Editor的完成度并不高。當時為了javafx和java class之間互相傳值可真是費了不少周折:<
          更多JavaFX Script?資料請見官網:https://openjfx.dev.java.net
          Matrix上有不少中文資料:http://www.matrix.org.cn
          主要邏輯:...  閱讀全文
          posted @ 2008-07-18 12:19 Atea 閱讀(1079) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 漳州市| 广安市| 汉阴县| 长海县| 邮箱| 武功县| 益阳市| 鹰潭市| 阳新县| 南投市| 六枝特区| 鹤峰县| 临西县| 东乡县| 麻栗坡县| 仙桃市| 屏南县| 永春县| 福鼎市| 无为县| 金川县| 英德市| 辉县市| 通河县| 太仆寺旗| 台中市| 巴青县| 宜春市| 和政县| 孙吴县| 紫阳县| 南昌县| 文昌市| 景宁| 曲周县| 武陟县| 从江县| 林周县| 镇原县| 伊宁市| 怀柔区|