摘要: 地址是: http://atealxt.appspot.com/ 閱讀全文
置頂隨筆 #
2012年2月29日 #
有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升級一下
發現的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升級一下
2011年12月28日 #
最近又折騰起了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起)
|
2011年9月1日 #
摘要: 標題起的有些大,僅代表自己和身邊一些人從業這幾年來的感悟:P 閱讀全文
2011年6月24日 #
現象:
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.%
解決辦法:
在主從配置文件內加入參數
參考文檔:
MySQL官方文檔
然后操作并不計入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官方文檔
2011年6月8日 #
摘要: VJET JavaScript IDE 是一個Eclipse插件,提供了整套的Javascript開發環境:語法提示、自動補全、高亮、編輯糾錯、debug等。
比起Aptana來,VJET更加輕量,速度也更快。 閱讀全文
比起Aptana來,VJET更加輕量,速度也更快。 閱讀全文
2011年5月31日 #
摘要: JDK1.5引入的泛型,減少了類型強轉的代碼,增加了編譯檢查,提高了代碼的健壯性。
但在某些情況,泛型檢查會出乎意料的“丟失”,由此可引發難以發現的bug。 閱讀全文
但在某些情況,泛型檢查會出乎意料的“丟失”,由此可引發難以發現的bug。 閱讀全文
2011年3月17日 #
如果別人只是讀取數據,FOR UPDATE就不會鎖定資源不讓他們讀
sum,count等函數為表鎖
null不等于任何值,包括它自己
盡量不要使用LONG型字段,而考慮使用CLOB
與不可重復讀的區別在于:在幻像讀中,已經讀取的數據不會改變,只是與以前相比,會有更多的數據滿足你的查詢條件
客戶端發出的語句(如INSERT INTO)是原子性的
應慎用IMMEDIATE約束。一條語句可能會使表中的各行暫時“不一致”,這是很自然的。
一般認為,用更新級聯來修改主鍵是很不好的做法
應手動給外鍵加索引,否則會引起子表的表鎖。
優化期會對視圖的來源表使用查詢。所以,對視圖加索引不如直接對來源表進行索引優化。
無法通過頻繁提交來“節省”undo空間,所以沒有必要在循環中提交。
1、事務的粒度(時長)應設計的盡可能?。ǘ蹋?br /> 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
sum,count等函數為表鎖
null不等于任何值,包括它自己
盡量不要使用LONG型字段,而考慮使用CLOB
與不可重復讀的區別在于:在幻像讀中,已經讀取的數據不會改變,只是與以前相比,會有更多的數據滿足你的查詢條件
客戶端發出的語句(如INSERT INTO)是原子性的
應慎用IMMEDIATE約束。一條語句可能會使表中的各行暫時“不一致”,這是很自然的。
一般認為,用更新級聯來修改主鍵是很不好的做法
應手動給外鍵加索引,否則會引起子表的表鎖。
優化期會對視圖的來源表使用查詢。所以,對視圖加索引不如直接對來源表進行索引優化。
無法通過頻繁提交來“節省”undo空間,所以沒有必要在循環中提交。
1、事務的粒度(時長)應設計的盡可能?。ǘ蹋?br /> 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
2011年3月9日 #
摘要: 使用"help" -> "Check for Updates", 選擇所有eclipse插件,升級。
升級完重啟時,發生錯誤,IDE啟動失敗,報錯。
解決辦法:
修改文件 "ECLIPSE_HOME\configuration\config.ini"。 閱讀全文
升級完重啟時,發生錯誤,IDE啟動失敗,報錯。
解決辦法:
修改文件 "ECLIPSE_HOME\configuration\config.ini"。 閱讀全文
2011年2月28日 #
2011年2月9日 #
從今天開始,把讀書時做的標注集中地做個摘抄,在加深印象的同時也能全面地了解一下自己在讀該書時的側重點及收獲。
首先,逐步地把以前的整理出來:)
- 細節應該依賴于抽象
- 在包的依賴關系圖中不允許存在環
- 如果在迭代結束的時候,90%的任務已被完成,但沒有一個素材是被完全完成的,這將是噩夢一般的情景
- SINGLETON模式強制結構上的單一性。它防止創建出多個對象實例。相反,MONOSTATE模式則強制行為上的單一性,而沒有強加結構方面的限制。
- VISITOR模式如同一個矩陣
- Builder模式著重于一步步構造一個復雜對象,而Abstract Factory著重于多個系列的產品對象。Builder在最后的一部返回產品,而對于Abstract Factory來說,產品是立即返回的。