2015/5/19

about ThreadLocal......


From:
http://minglight.pixnet.net/blog/post/35569918-threadlocal
http://blog.csdn.net/qjyong/article/details/2158097

直接講感言:
threadLocal提供了一個比較安全的方式,利用currentThread為PKey,
來取得當前thread的區域變數
我自己也實做類似的方式,但是沒有threadLocal來的安全
建立一個大家都要繼承的Object,裡面宣告一個static的Map
 然後利用Thread.currentThread().getName()+"Name",來存放當時的TX與session

public abstract class ServerObject {
   protected final static HashMap<String,Thread> threadPoolHashMap=new HashMap<String, Thread>();
   protected final static HashMap<String,Object> threadPoolSessionObjectHashMap=new HashMap<String, Object>();
   protected Transaction tx;
   protected org.hibernate.Session Hibernatesession;
     protected void reloadProperty() throws FileNotFoundException, IOException {
        Hibernatesession=(Session) threadPoolSessionObjectHashMap.get(Thread.currentThread().getName()+"hibernate-session");
        tx= (Transaction) threadPoolSessionObjectHashMap.get(Thread.currentThread().getName()+"hibernate-transaction");
      }
   
}

一開始進入點,就先宣告好當時的session,並且宣告好開始TX
Hibernatesession = HibernateSessionFactory.getSession();
threadPoolSessionObjectHashMap.put(Thread.currentThread().getName()+"hibernate-session", Hibernatesession);
tx = Hibernatesession.beginTransaction();
threadPoolSessionObjectHashMap.put(Thread.currentThread().getName()+"hibernate-transaction", tx);

之後一層一層繼承下來,需要取用的時候才抓出來

這樣看起來好處是:自己開發的,自己習慣
壞處就是:其他object要取值、remove,無法控制

後續再來找時間研究 有沒有更幽雅寫法

2015/5/14

zsh on CentOS 6.X


From:
http://macshuo.com/?p=676
http://shyuan.github.io/blog/2012/07/10/install-zsh-and-oh-my-zsh-in-ubuntu-linux/


重點:

yum install zsh
wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh
 vi ~/.zshrc

ZSH_THEME="ys"
plugins=(git textmate ruby autojump osx mvn gradle)

[[ -s /root/.autojump/etc/profile.d/autojump.sh ]] && source /root/.autojump/etc/profile.d/autojump.sh
        autoload -U compinit && compinit -u
bindkey -s "^[Op" "0"
bindkey -s "^[On" "."
bindkey -s "^[Oq" "1"
bindkey -s "^[Or" "2"
bindkey -s "^[Os" "3"
bindkey -s "^[Ot" "4"
bindkey -s "^[Ou" "5"
bindkey -s "^[Ov" "6"
bindkey -s "^[Ow" "7"
bindkey -s "^[Ox" "8"
bindkey -s "^[Oy" "9"
bindkey -s "^[Ol" "+"
bindkey -s "^[Om" "-"

for pietty:(not working............)
option-->detail-->
Terminal -> Keyboard "The Function keys and keypad"

2015/5/11

推薦!國外程序員整理的系統管理員資源大全 - 博客 - 伯樂在線 http://blog.jobbole.com/83212/

自己留存被查


FROM :推薦!國外程序員整理的系統管理員資源大全 - 博客 - 伯樂在線 http://blog.jobbole.com/83212/


推薦!國外程序員整理的系統管理員資源大全

受其他程序員彙編 PHP 資源,kahun 在 Github 發起系統管理員相關的開源資源整理。
內容分類包括:備份/克隆軟件、云計算/云存儲、協作軟件、配置管理、日誌管理、監控、項目管理…… 當然也有系統管理員相關書籍。
另外推薦一篇文章:10本適合於系統管理員的最佳書籍,目前比 kahun 他們整理的列表更豐富。

備份

備份軟件
  • Amanda -客戶端-服務器模型備份工具
  • Bacula - 另一個客戶端-服務器模型備份工具
  • Backupninja -輕量級,可擴展的元數據備份系統
  • Backuppc -客戶端-服務器模型備份工具和文件共享方案。
  • Burp -網絡備份和還原程序
  • Duplicity -使用rsync算法加密的帶寬-效率備份
  • Lsyncd -監控一個本地目錄樹的變化,然後產生一個進程去同步變化。默認使用rsync。
  • Rsnapshot -文件系統快照工具
  • SafeKeep -使用rdiff-backup,集中的,基於pull的備份
  • TarSnap - 具有一個開源客戶端的安全備份服務
  • UrBackup -另一個客戶端-服務器備份系統
  • DREBS - AWS EBS支持策略的備份腳本

克隆

克隆軟件
  • Clonezilla -分區和磁盤鏡像/克隆程序
  • Fog - 另一個計算機克隆解決方案
  • Redo Backup -簡單的備份,恢復和還原

云計算

  • AppScale – 兼容Google App引擎的開源云計算軟件.
  • Archipel -使用Libvirt管理和監視虛擬機
  • CloudStack -創建,管理和部署基礎云服務的云計算軟件
  • Cobbler -Cobbler是一個Linux安裝服務器,允許快速地構建網絡安裝環境
  • Eucalyptus -兼容AWS的開源私有云軟件
  • Mesos -開發和運行能效高的分佈式系統。
  • OpenNebula -一個用於系統管理員和研發運維的用戶驅動的云管理平台
  • OpenStack -構建私有和開放云的開源軟件
  • The Foreman -Foreman是一個用於物理和虛擬服務器的全生命週期管理工具.FOSS.

云業務流程

  • BOSH -IaaS業務流程平台,最初用於部署和管理云計算平台PaaS,但也用於通用的分佈式系統。
  • Cloudify -使用Python和YAML編寫的開源TOSCA-based云業務流程軟件平台。
  • Juju -云業務流程工具用於管理服務,比如charms,YAML配置和部署腳本集
  • MCollective -來自Puppet實驗室的管理服務器業務流程和開發的Ruby框架
  • Overcast -在不同的云提供商上部署VMs,並在任何或所有(VM)上通過SSH並行運行命令行和腳本
  • Rundeck - 簡單的業務流程工具
  • Salt -Python編寫

云存儲

  • git-annex assistant -在你的每一個OSX和Linux電腦,Android設備,可移動驅動,NAS電器和云服務上一個同步文件夾
  • ownCloud -提供你的文件的統一訪問,通過web,你的電腦和你的移動設備
  • Seafile -另一個開源的云存儲解決方案
  • SparkleShare -提供云存儲和文件同步服務。它默認使用Git作為存儲後端
  • Swift -一個高可用,分佈式,最終一致的對象/大數據存儲
  • Syncthing -一個用於私有,加密和身份認證數據的開源系統

代碼審查

基於Web的協作式代碼審查系統
  • Gerrit -基於Git版本控制,它促進軟件開發人員審查源代碼修改和批准或拒絕這些變更。
  • Review Board - 基於MIT License的可用自由軟件

協作軟件

協作軟件和群件套件
  • Citadel/UX -協同套件(消息和群件)繼承於Citadel家族程序
  • EGroupware -PHP編寫的群件軟件
  • Horde Groupware -基於PHP的協作軟件套件,包括郵件,日曆,wiki,時間跟蹤和文件管理
  • Kolab - 另一個群件套件
  • SOGo - 協作軟件服務器,專注簡單性和可伸縮性
  • Zimbra -協作軟件套件,包括郵件服務和web客戶端

配置管理數據庫

配置管理數據庫(CMDB)軟件
  • i-doit - 開源的IT文檔管理和CMDB
  • iTop -一個完全開源的,ITIL,基於web的服務管理工具
  • Ralph -用於大型數據中心或較小本地網絡的資產管理,DICM和CMDB系統
  • Clusto -幫助跟蹤你的庫存,在哪,如何連接,同時提供一個和基礎架構元素交互的抽象接口

配置管理

配置管理工具
  • Ansible -Python編寫的,通過SSH管理節點
  • CFEngine -輕量級代理系統。通過申明語言配置狀態。
  • Chef -Rbuy和Erlang編寫,使用純RubyDSL
  • Fabric - Python庫和cli工具,為應用程序部署或系統管理任務簡化使用SSH。
  • Pallet -通過Clojure DSL進行架構定義,配置和管理
  • Puppet - Ruby編寫,使用Puppet聲明語言或Rbuy DSL
  • Salt - Python編寫
  • Slaughter - Perl編寫

持續繼承和持續部署

持續集成/部署軟件
  • Buildbot - 基於Python的持續集成工具
  • Drone - 構建在Docker,使用YAML文件配置的的持續集成服務器
  • GitLab CI -基於rbuy。他們也提供GitLab用於管理git存儲庫
  • Go - 開源的持續交付服務器
  • Jenkins - 一個可擴展的開源持續集成服務器
  • Vlad the Deployer -自動化部署

分佈式文件系統

網絡分佈式文件系統
  • Ceph -分佈式對象存儲和文件系統
  • DRBD -分佈式塊設備複製
  • LeoFS -非結構化對象/數據存儲和高可用性,分佈,最終一致的存儲系統。
  • GlusterFS - 可擴展,網絡附加存儲文件系統。
  • HDFS - Java編寫的,用於Hadoop框架的分佈式、可伸縮、可移植文件系統
  • Lustre -一種並行分佈式文件系統,一般用於大規模集群計算。
  • MooseFS - 容錯、網絡分佈式文件系統。
  • MogileFS -應用程序級別、網絡分佈式文件系統。
  • OpenAFS -只讀副本和多操作系統支持的分佈式網絡文件系統
  • TahoeLAFS -安全、分散、容錯、點對點分佈式數據存儲和分佈式文件系統。
  • XtreemFS -XtreemFS是一個用於存儲需求的容錯式分佈式文件系統。

DNS

DNS服務器
  • Bind -最廣泛使用的域名服務軟件
  • djbdns -DNS應用集合,包括tinydns
  • Designate - DNS REST API,支持多種DNS服務器的後端
  • dnsmasq -為小規模網絡提供DNS,DHCP和TFTP服務的輕量級服務
  • Knot - 高性能,權威的DNS服務器
  • NSD - 權威的、高性能的、簡單的域名服務器。
  • PowerDNS -具有各種數據存儲後端和負載平衡功能的DNS服務器。
  • Unbound - 驗證、遞歸和緩存DNS解析器。
  • Yadifa - 具有DNSSEC兼容的輕量級的權威域名服務器,支持.eu的頂級域名。

主機控制面板

Web主機控制面板
  • Ajenti -Linux和BSD控制面板
  • Feathur - VPS供應和管理軟件
  • ISPConfig -Linux主機控制面板
  • VestaCP -用於Linux和Nginx的主機面板
  • Virtualmin -基於webmin的Linux控制面板
  • ZPanel -Linux BSD和Windows控制面板

IMAP/POP3

IMAP/POP3郵件服務器
  • Courier IMAP/POP3 -快速,可伸縮,企業級IMAP和POP3服務器
  • Cyrus IMAP/POP3 -運行在密封服務器上,普通用戶不允許登錄。
  • Dovecot -主要考慮安全而編寫的IMAP和POP3服務器
  • Qpopper - 一個古老且流行的POP3服務器實現

IT資產管理

IT資產管理軟件
  • GLPI -帶有額外管理接口的信息資源管理器
  • OCS Inventory NG -允許用戶清算IT資產
  • RackTables -數據中心和服務器房間資產,比如將硬件資產,網絡地址,在貨架空間,網絡配置文檔化。
  • Ralph - 針對大型數據中心系統以及小型局域網網絡的資產管理、DCIM和CMDB。
  • Snipe IT -資產和許可證管理軟件

LDAP

LDAP服務器

日誌管理

日誌管理工具:收集,解析,可視化
  • Elasticsearch - 一個基於Lucene的文檔存儲,主要用於日誌索引、存儲和分析。
  • Fluentd - 日誌收集和發出
  • Flume -分佈式日誌收集和聚合系統
  • Graylog2 -具有報警選項的可插入日誌和事件分析服務器
  • Heka -流處理系統,可用於日誌聚合
  • Kibana - 可視化日誌和時間戳數據
  • Logstash -管理事件和日誌的工具
  • Octopussy -日誌管理解決方案(可視化/報警/報告)

監控

監控軟件
  • Cacti -基於Web的網絡監控和圖形工具
  • Cabot - 監控和報警,類似PagerDuty
  • check_mk -Nagios的擴展集合
  • Dash -一個用於GNU/Linux機器的低開銷web儀表板監控。
  • Icinga - Nagios分支
  • LibreNMS - Observium分支
  • Monit - 管理和監控Unix系統的小型開源工具
  • Munin -網絡資源監控工具
  • Naemon -基於Nagios4內核的網絡監控工具,具有性能加強和新功能
  • Nagios -計算機系統,網絡和基礎架構監控軟件
  • Observium -服務器和網絡設備的SNMP監控,運行在linux
  • OMD -開放的監控分佈
  • Opsview -基於Nagios4,Opsview核心,用於小型IT和測試環境
  • Riemann -靈活和快速的事件處理器,允許負責時間和度量分析
  • Sensu -開源的監控框架
  • Sentry - 應用監控,事件記錄和聚合
  • Shinken - 另一個監控框架
  • Thruk - 多後台監控的web接口,支持Naemon,Nagios,Icinga和Shinken
  • Xymon -靈感來自Big Brother的網絡監控
  • Zabbix - Enterprise-class software for monitoring of networks and applications.
  • Zabbix - 監控網絡和應用的企業級軟件
  • Zenoss -基於Zope的應用,服務器和網絡管理平台

度量和度量收集

度量收集和顯示軟件
  • Collectd -系統統計收集守護進程
  • Collectl -高精度系統性能指標收集工具。
  • Dashing -Ruby gem,允許快速統計儀表板的開發。基於HTML5,允許在數據中心或會議室進行大屏幕顯示。
  • Diamond -基於Python的統計收集守護進程
  • Ganglia - 基於RRD用於網格和/或集群的服務器的高性能、可伸縮監控設備。兼容Graphite,使用一個單一的收集進程。
  • Grafana -一個Graphite或InfluxDB儀表盤和圖形編輯器
  • 開源的可伸縮繪圖服務器
  • InfluxDB -開源的分佈式時間序列數據庫,沒有外部依賴。
  • KairosDB -快速分佈式可擴展的時間序列數據庫,OpenTSDB 1. x的分支。
  • OpenTSDB -存儲和服務大量的時間序列數據,不丟失粒度。
  • RRDtool - 開源企業標準,用於時間序列數據的高性能數據記錄和繪圖系統
  • Statsd -應用統計監聽

網絡配置管理

網絡配置管理工具
  • GestióIP -一個自動的基於web的IPV4/IPV6地址管理工具
  • RANCID -監控網絡設備配置和維護歷史變更
  • rConfig -另一個網絡配置管理工具

時事通訊

時事通訊軟件
  • DadaMail -Perl編寫的郵件列表管理器
  • phpList -PHP編寫的時事通訊管理器

NOSQL

NOSQL數據庫
  • 列族
    • Apache HBase - Hadoop數據庫,一個分佈式的大數據存儲
    • Cassandra -分佈式數據庫管理系統,設計用於處理大量數據跨多個服務器。
    • Hypertable -基於c++的bigtable DBMS,節省通信,可獨立或在Hadoop類似的分佈式FS上運行。
  • 文檔存儲
    • CouchDB -易於使用,多主機複製的面向文檔的數據庫系統。
    • ElasticSearch - 基於Java的數據庫,受歡迎的日誌聚合,和電子郵件歸檔項目。
    • MongoDB - 另一個面向文檔的數據庫系統
    • RavenDB - 具有ACID/事物功能的基於文檔的數據庫
    • RethinkDB -開源分佈式文檔存儲數據庫,關注JSON
    • FlockDB -Twitter分佈式,容錯圖數據庫
    • Neo4j - 開源圖數據庫
  • 鍵值
    • LevelDB -Google高性能鍵值數據庫
    • Redis - 支持網絡,基於內存,鍵值,亦可持久化數據庫
    • Riak -另一個容錯的鍵值NoSQL數據庫
NoSQL服務器比較: http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis

打包

  • fpm - 萬能的多格式包創建器
  • omnibus-ruby - 全棧,跨發行版的包管理軟件(Ruby)
  • packman -全棧,跨發行版的包管理軟件(Python)
  • tito - 為git項目構建RPM

隊列

  • BeanstalkD - A simple, fast work queue.
  • BeanstalkD - 一個簡單快速的工作隊列
  • Gearman -快速的多語言隊列或任務處理平台
  • NSQ - 實時分發的消息平台
  • RabbitMQ -健壯的,全功能,跨發行版的隊列系統
  • ZeroMQ -輕量級隊列系統

RDBMS

關係數據庫管理系統
  • Firebird - 真正的全球開源數據庫
  • Galera -Galera MySQL集群是一個易於使用的高可用性解決方案,具有很高的系統正常運行時間,沒有數據丟失,為未來的增長提供可伸縮性。
  • MariaDB -MySQL的社區開發分支
  • MySQL - 非常流行的RDBMS服務器
  • Percona Server -增強的,可替換MySQL
  • PostgreSQL - 對象關係數據庫管理系統(ORDBMS)
  • PostgreSQL-XL - 基於PostgreSQL的可伸縮開源數據庫集群
  • SQLite -自包容,弱服務器,零配置,支持事務的SQL DBS實現庫

安全

安全工具
  • Denyhosts -阻止SSH字典攻擊和暴力攻擊
  • Fail2Ban - 掃瞄日誌文件,並對具有惡意行為顯示的IP採取措施
  • SpamAssassin -一個強大的和受歡迎的垃圾郵件過濾器,它採用多種檢測技術。

服務發現

  • Consul - Consule是伊戈爾服務發現,監控和配置的工具
  • Doozerd - Doozer是一個高可用,完全一致的存儲,用於少量非常重要的數據
  • ZooKeeper - ZooKeeper是一個集中的服務,用於維護配置信息,命名,提供分佈式同步和組服務

SMTP

SMTP服務器
  • Exim -由劍橋大學開發的消息傳輸代理(MTA)
  • Haraka - 用JavaScirpt編寫的高性能,可插入的SMTP服務器
  • MailCatcher -Ruby gem部署一個簡單的SMTP MTA網關,接收所有郵件並在web接口顯示。對調試和開發有用。
  • Maildrop -開源的一次性郵件服務器,對開發也很有用
  • OpenSMTPD -從OpenBSD項目實現的安全的SMTP服務器
  • Postfix - 快速,易於管理和安全的Sendmail替代品
  • Qmail - 安全的Sendmail替代品
  • Sendmail -消息傳輸代理(MTA)

軟件容器

操作系統級別的虛擬化
  • Bitnami -為web應用,開發棧和虛擬設備生產開源軟件安裝器或軟件包
  • Docker - 給開發者和系統管理員構建,發佈和運行分佈式應用程序的開放平台
  • OpenVZ -Linux平台基於容器的虛擬化

SSH

SSH工具
  • autossh -網絡中斷後自動復位ssh會話。
  • Cluster SSH -通過一個圖形化控制台控制多個xterm窗口。
  • DSH -Dancer的shell/分佈式shell-從一個命令行包裝執行多個遠程shell命令。
  • Mosh - 移動shell
  • parallel-ssh -提供並行的OpenSSH版本和相關工具
  • SSH Power Tool -不使用pre-shared鑰匙的情況下對多個服務器同時執行命令和上傳文件

統計

分析軟件
  • Analog - 世界上最流行的日誌分析工具
  • GoAccess -在終端運行的開源的實時web日誌分析和交互視圖
  • Piwik -免費和開源的web分析應用
  • Webalizer - F快速免費的web服務器日誌文件分析程序

工單系統

基於web的工單系統
  • Bugzilla -由Mozilla項目開發和使用過的通用缺陷跟蹤和測試工具
  • Cerb - 基於商業開源許可的基於組的郵件管理項目
  • Flyspray - 使用PHP編寫的缺陷跟蹤系統
  • MantisBT -另一個基於web的缺陷跟蹤系統
  • osTicket -開源的技術支持工單系統
  • Otrs -免費和開源故障通知單系統軟件包,公司,組織,或其他實體可以使用它來基於詢問分配工單並跟蹤進一步的溝通。
  • Request Tracker -使用Perl編寫的工單跟蹤系統
  • TheBugGenie -開源的工單系統,具有非常完備的用戶權限分配

故障排除

故障排除工具
  • mitmproxy -ython工具,用於攔截,查看和修改網絡流量。在排除某些問題是非常重要的。
  • Sysdig -從一個運行的linux實例上捕獲系統狀態和活動,之後保存,過濾和分析
  • Wireshark -世界上著名的網絡協議分析工具

項目管理

基於web的項目管理和缺陷跟蹤系統

版本控制

軟件版本和版本控制
  • Fossil -分佈式版本控制,內建wiki和缺陷跟蹤
  • Git -速度很快的分佈式版本控制和源代碼管理
  • GNU Bazaar -由Cannoicalzi贊助的分佈式版本控制系統
  • Mercurial -另一個版本控制
  • Subversion -客戶端-服務器版本控制系統

虛擬化

虛擬化軟件
  • Ganeti -在KVM和Xen上構建的集群虛擬服務器管理軟件
  • KVM -Linux內核虛擬化架構
  • oVirt -管理虛擬機,存儲和虛擬網絡
  • Packer - 從單個源配置為多個平台創建相同的機器鏡像
  • Vagrant - 創建完整開發環境的工具
  • VirtualBox -來自Oracle公司的虛擬化產品
  • Xen -用於32/64位Intel/AMD(IA 64)和PowerPC 970架構的虛擬機監控器

VPN

VPN軟件
  • OpenVPN -使用一個定製的安全密鑰交換協議,利用SSL / TLS。
  • Pritunl -基於OpenVPN的方案,易於設置
  • SoftEther - 具有高級特性的多協議VPN軟件
  • sshuttle -窮人的VPN
  • strongSwan - Linux下完整的IPsec實現
  • tinc -分佈式點對點VPN

XMPP

XMPP服務器

Webmails

Webmail應用
  • Mailpile - A modern, fast web-mail client with user-friendly encryption and privacy features.
  • Mailpile - 一個先進,快速的web-mail客戶端,具有用戶友好的加密的私有個性
  • Roundcube - Browser-based IMAP client with an application-like user interface.
  • Roundcube - 基於瀏覽器的IMAP客戶端,具有應用類似的用戶界面

Web

Web服務器
  • Apache -最流行的web服務器
  • Cherokee -輕量級,高性能的web服務器/反向代理
  • Lighttpd - speed-critical環境下更優化的web服務器
  • Nginx -反向代理,負載均衡器,HTTP緩存和web服務器
  • uWSGI -uWSGI項目,目標在開發一個構建主機服務的全棧
Web性能
  • HAProxy - 負載均衡,SSL卸載和性能優化,壓縮和通用web路由
  • Varnish -基於HTTP的web應用加速器,關注內存優化和壓縮

Wikis

Wiki軟件
  • DokuWiki -使用簡單和高度通用的wiki,這並不需要一個數據庫。
  • Gollum - 一個簡單,Git-powered wiki,具有不錯的API和本地前端。
  • ikiwiki -一個wiki編譯器
  • Mediawiki -加強Wikipedia
  • MoinMoin -一個高級的易用的擴展性強的Wiki引擎,具有大量的社區用戶TiddlyWiki - JavaScript的完整交互wiki

資源

各種資源,比如書籍,網站和文章,用於提升技能和知識

博客

書籍

Sysadmin相關書籍

編輯器

開源的代碼編輯器
  • Atom -來自Github的文本編輯器
  • Brackets - 用於web設計和前端開發的開源代碼編輯器
  • Eclipse - 用Java編寫的IDE,具有可擴展的插件系統
  • Geany -GTK2文本編輯器
  • GNU Emacs -一個可擴展,自定義的文本編輯器
  • Haroopad -Markdown編輯器,具有實時預覽
  • ICEcoder -非常棒的代碼編輯器,內建常見的web語言
  • jotgit -Git支持的實時協作代碼編輯
  • Light Table - 下一代代碼編輯器
  • Lime -旨在提供一個Sublime Text的開源替代方案
  • TextMate -OS X下的圖形文本編輯器
  • Vim -一個高可配置的文本編輯器,用於高效編輯

時事通訊

  • Servers for Hackers - 程序員的時事通訊,發現他們需要知道的服務器相關內容。

存儲

軟件包存儲
  • Dotdeb - Debian下LAMP更新包的存儲
  • Remi - RHEL/Centos/Fedora下LAMP更新包的存儲

網站

有用的系統管理員相關的網站
  • Ops School - 全面的計劃,將幫助你成為一名運維工程師。
  • Digital Ocean Tutorials - 一個非常龐大資源,獲得基本的應用程序,工具,甚至是系統管理主題。

貢獻

請看 貢獻詳情

關於作者: cucr

 

關於hibernate查詢--



來源:
http://www.cnblogs.com/balaamwe/archive/2012/03/13/2393912.html
http://shilinfeng.cool.blog.163.com/blog/static/1183214652013528113441283/

起因:
使用hibernate查詢一個TABLE,此table的資料,由另外一組hibernate來負責
剛啟動時正常,但是一段時間之後,就一直停留在固定一筆欄位
一開始推測:browser自己建立cache,所以要強制F5
後來還是一樣狀況
開始追查,推測是hibernate取出資料有錯
查詢到部分網頁,可解決方式有二:
A.每次重新取得一個session
B.使用flush

摘錄如下:

A.
問題描述:這個最開始查詢時是讀取數據庫的,但是在頁面如果對數據進行刪改後,再來查詢就會出現結果錯誤!
原因:查出的數據會放入到緩存中,而我插入和刪除數據用的是存儲過程做的,因為存儲過程會直接將數據插入到數據庫中而不會放入到緩存中,所以當再次查詢數據時由於是獲取的當前的session,就會默認從緩存中查找數據,就導致了查出的數據會和數據庫的數據不對應!
結局辦法就是重新打開一個session,就正常了!

HibernateUtil.getSessionFactory().openSession();

 B.
Hibernate會儘量將與數據庫的操作延遲,直到必須要與數據庫進行交互,例如save方法一般會在提交時才真正執行,最終在提交時會以批處理的方式與數據庫進行交互,以提高效率。
而將操作延遲,就是利用緩存,將最後要處理的操作放到緩存中。
通過設置session.setFlushMode(),可以精確控制Hibernate的FlushMode.
(1) FlushMode.AUTO:Hibernate判斷對象屬性有沒有改變,如果被更改成為髒數據,則在一個查詢語句前將更新此改動以保證數據庫的同步。這也是Hibernate的默認清理模式。
(2) FlushMode.COMMIT:在事務結束之前清理session的緩存。這樣有可能導致查出髒數據
(3) FlushMode.NEVER:除非強制調用Session.flush(),否則永遠不清理Session。相當於將數據庫設置為一個只讀的數據庫。
       【如果此時進行數據的寫入操作,會發生錯誤】
(4) FlushMode.ALWAYS:在每一個查詢數據之前都調用Session.flush()。很顯然這種效率很低。 

筆記下來,以後好查詢


2015/5/5

終端伺服器授權到期解決方式



Windows终端服务客户端临时许可证到期后会提示因许可证发生错误无法连接终端服务器.
解决方法:
1、终端服务在客户端没有许可证的情况下,会临时颁发一个临时许可证给客户,这个许可证的有效期是90天,过了90天,如果客户访问服务器的时候,服务器发现客户已经被颁发过临时许可证,就不再颁发,这样客户在90天外就不可以再访问服务器了。但是这个许可证是存储在客户机上的。只要把这个许可证删掉,在访问服务器的时候,就又会颁发一个临时许可证给客户,这样就又有90天的访问权限。

这个临时许可证存储在客户机的注册表中,位于: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSLicensing 把这项删掉,就可以删除颁发的临时许可证。
这种方法可以说是最简单方便了。缺点就是要告知所有要使用服务器的用户.

2、另一种方法是在安装终端服务的时候,调整系统时间为2099年,也即调整到很远的将来。在系统时间为2099年的时候,客户端登录一次服务器,然后再把系统时间调回现实时间,这样也可以避开时间限限。这种方法麻烦,但是比较实用.

3、第三种方法是网上流行的骗取微软的许可证方式(可参考:http://news.weixiuwang.com/server/2006-8/2006E8Y24;8590E61246139_1.htm),大致做法如下:
去微软注册(https://activate.microsoft.com/),购买方式选择:Select or Exterprise Agreement,得到7组数字字母的服务器ID,服务器上选择选择电话注册,然后获取客户机许可证,数量随便填,注册号码可用:4954438 (这儿是关键)
OKID拿到了,再也没有什么90天的限制。
这时会提示:
已成功处理您的客户端许可证令牌请求。
您应该立即打印这个页面
您需要在“终端服务器 CAL 安装向导”中输入的许可证密钥包 ID :
YVVXH - XYCVP - 8YPFH - RHG9B - TCJJV - 8D6TG - H34JD
许可证服务器 ID 如下的许可证服务器: VM8BR-WGJD8-RJ6KK-MRCCC-6B97Y-TV2PH-JFM87
谢谢您激活终端服务许可证! 69813-640-3867693-45693
这种方法应该也适用于windows2k3的终端授权。

JPA+complex key+custom Query

  來源: https://www.cnblogs.com/520playboy/p/6512592.html   整個來說,就是有複合主鍵 然後要使用  public interface XxXXxx DAO extends CrudRepository<Tc...