<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss version="2.0">
<channel>
  <title>搜斧</title>
  <link>http://www.searchfull.net:80/blog/</link>
  <description>专注于Java技术、开源项目、项目管理</description>
  <language>zh</language>
  <copyright>liupinghua</copyright>
  <lastBuildDate>Sun, 05 Jul 2009 00:12:00 GMT</lastBuildDate>
  <generator>Pebble (http://pebble.sourceforge.net)</generator>
  <docs>http://backend.userland.com/rss</docs>
  
  <image>
    <url>http://www.searchfull.net/images/logo.gif</url>
    <title>搜斧</title>
    <link>http://www.searchfull.net:80/blog/</link>
  </image>
  
  
  <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/searchfull" type="application/rss+xml" /><item>
    <title>我收藏的链接（40）  </title>
    <link>http://www.searchfull.net:80/blog/2009/07/05/1246752720000.html</link>
    
      
      
        <description>
          &lt;dl&gt;&lt;dt&gt;&lt;a last_visit="1246631371" add_date="1246631371" tags="code,programming" href="http://www.infoq.com/cn/news/2009/07/code-quality-for-teams"&gt;InfoQ:  如何在团队中引入和评估代码质量&lt;/a&gt;  &lt;/dt&gt;&lt;dd&gt;* 要写好的代码需要学习什么？ * 我如何评估眼前的代码质量是好还是坏？ * 代码好坏的因素或者标准是什么？ * 如何让代码解决质量问题？ *  如何对糟糕的代码进行优化？  &lt;/dd&gt;&lt;dt&gt;&lt;a last_visit="1246613749" add_date="1246613749" tags="svn" href="http://blog.163.com/hzq_610/blog/static/44925852007829113053427/"&gt;Apache2.2和SVN1.4.4搭建svn版本控制平台（windows环境） - 志权黄的日志 -  网易博客&lt;/a&gt;  &lt;/dt&gt;&lt;dd&gt;Apache2.2和SVN1.4.4搭建svn版本控制平台（windows环境）  &lt;/dd&gt;&lt;dt&gt;&lt;a last_visit="1246605134" add_date="1246605134" tags="gis" href="http://geoserver.org/display/GEOSDOC/5.+GWC+-+GeoWebCache"&gt;5. GWC - GeoWebCache -  GeoServer&lt;/a&gt;  &lt;/dt&gt;&lt;dd&gt;GeoWebCache is a WMS tiling client. It runs as a proxy server between a map  client and map server, caching tiles as they are requested, thus saving vast  amounts of processing time. Written in Java, GeoWebCache is available as a  standalone product which can be integrated with many client/server combinations.  However, GeoWebCache is also an extension that has been shipped with GeoServer  since version 1.7.0.  &lt;/dd&gt;&lt;dt&gt;&lt;a last_visit="1246605118" add_date="1246605118" tags="gis" href="http://geoserver.org/display/GEOSDOC/TileCache+Tutorial"&gt;TileCache Tutorial - GeoServer&lt;/a&gt;   &lt;/dt&gt;&lt;dd&gt;In the GeoServer community we've been really enjoying MetaCarta's TileCache  as a caching layer in front of the WMS. You can see it in action at  http://sigma.openplans.org. If you have non-dynamic mapping data in GeoServer  using it will help give your users an experience that comes close to matching  Google Maps in terms of responsiveness and usability. This tutorial will take  you through setting it up (mostly pointing at their docs) as well as some hints  and tricks that we've come upon in working with it. If you have information  we've missed her don't hesitate to include it, this is a wiki, just hit 'page  operations -&amp;gt; edit page' on the left. We're currently recommending this  solution over squid or oscache, as TileCache was specially designed for WMS.  &lt;/dd&gt;&lt;dt&gt;&lt;a last_visit="1246424394" add_date="1246424394" tags="report,reporting" href="http://www.eclipse.org/birt/phoenix/examples/reports/"&gt;BIRT  Example Reports&lt;/a&gt;  &lt;/dt&gt;&lt;dd&gt;This section of Examples focuses on the feature set within BIRT. Simple  reports are used to illustrate a function within BIRT. Most examples will have a  before and after report that can be downloaded. In addition, the example is  illustrated in a Flash presentation. The examples use popups to explain the  process and provide no sound.  &lt;/dd&gt;&lt;dt&gt;&lt;a last_visit="1246420606" add_date="1246420606" tags="report,reporting" href="http://download.eclipse.org/birt/downloads/examples/reports/2.1/combochart/combinationchart.html"&gt;Eclipse  BIRT报表制作演示视频&lt;/a&gt;  &lt;/dt&gt;&lt;dd&gt;Eclipse BIRT报表制作演示视频，含图表  &lt;/dd&gt;&lt;dt&gt;&lt;a last_visit="1246178935" add_date="1246178935" tags="JMagick" href="http://www.zhangzhang.net/2007/11/install-imagemagick-jmagick/"&gt;安装ImageMagick和JMagick的注意事项 | 姓张的小子&lt;/a&gt;  &lt;/dt&gt;&lt;dd&gt;Linux安装ImageMagick和JMagick的注意事项  &lt;/dd&gt;&lt;dt&gt;&lt;a last_visit="1246178909" add_date="1246178909" tags="JMagick" href="http://weijie.blog.51cto.com/340746/74912"&gt;ImageMagick, JMagick安装、配置及使用 -  魏杰的技术专栏 - 51CTO技术博客&lt;/a&gt;  &lt;/dt&gt;&lt;dd&gt;Pure  java的图片操作，不依赖操作系统的功能，图片运算量比较大，如果批处理图片或图片size较大的话（如1M左右的图片）的话，性能肯定不能满足；用JNI(java本地调用)，依赖操作系统提供的功能，  操作批量、大图片，就成为首选方案。  &lt;/dd&gt;&lt;dt&gt;&lt;a last_visit="1246178298" add_date="1246178298" tags="java,ruleengine,drools" href="http://www.ibm.com/developerworks/cn/java/j-drools/"&gt;使用  Drools 规则引擎实现业务逻辑&lt;/a&gt;  &lt;/dt&gt;&lt;dd&gt;使用规则引擎可以通过降低实现复杂业务逻辑的组件的复杂性，降低应用程序的维护和可扩展性成本。这篇更新的文章展示如何使用开源的 Drools 规则引擎让  Java&amp;trade; 应用程序更适应变化。Drools 项目引入了一个新的本地规则表达式语言和一个 Eclipse 插件，使 Drools 比以前更容易使用  &lt;/dd&gt;&lt;dt&gt;&lt;a last_visit="1245940230" add_date="1245940230" tags="gis" href="http://www.geomajas.org/"&gt;Geomajas | Edit and integrate GIS data from within your  browser&lt;/a&gt;  &lt;/dt&gt;&lt;dd&gt;Geomajas is an Open source Web mapping software framework enabling 'real  integrated GIS via the browser'. Geomajas includes: * Geometry and attribute  editing with snapping support * Complex attribute and relation mapping  (one-to-many, many-to-one), helping you implement business logic * Advanced  querying capabilities (searching, filters, styles, ...)  &lt;/dd&gt;&lt;dt&gt;&lt;a last_visit="1245922901" add_date="1245922901" tags="report,reporting" href="http://www.ibm.com/developerworks/cn/opensource/os-ecl-birt/"&gt;BIRT：基于  Eclipse 的报表&lt;/a&gt;  &lt;/dt&gt;&lt;dd&gt;BIRT：基于 Eclipse 的报表，教程，入门，快速上手  &lt;/dd&gt;&lt;dt&gt;&lt;a last_visit="1245485659" add_date="1245485659" tags="hadoop" href="http://project-voldemort.com/blog/"&gt;Project Voldemort Blog : News  about the project&lt;/a&gt;  &lt;/dt&gt;&lt;dd&gt;Building Voldemort read-only stores with Hadoop  &lt;/dd&gt;&lt;dt&gt;&lt;a last_visit="1245469360" add_date="1245469360" tags="bi,OLAP" href="http://mondrian.pentaho.org/"&gt;Pentaho Commercial Open Source Business Intelligence&lt;/a&gt;   &lt;/dt&gt;&lt;dd&gt;Mondrian is an OLAP server written in Java. It enables you to interactively  analyze very large datasets stored in SQL databases without writing SQL.  &lt;/dd&gt;&lt;dt&gt;&lt;a last_visit="1245296616" add_date="1245296616" tags="gps,j2me" href="http://www.developer.com/java/j2me/article.php/3825706"&gt;Using  Location-Enabled MIDlets for Mobile Navigation&lt;/a&gt;  &lt;/dt&gt;&lt;dd&gt;Location information has become fairly easy to access nowadays, even on  mobile devices. The widespread availability of GPS chipsets like the SiRF  chipsets, which are accurate to within a few meters, as well as the  significantly lower costs of these products, have contributed to the  accessibility. The Location API for J2ME (JSR 179) even makes it very easy for  developers to integrate location information into mobile applications.  &lt;/dd&gt;&lt;dt&gt;&lt;a last_visit="1245230243" add_date="1245230243" tags="JTAPI" href="http://xtapi.sourceforge.net/"&gt;XTAPI JTAPI&lt;/a&gt;  &lt;/dt&gt;&lt;dd&gt;The JTAPI specification has been out for several years with no free working  implementation. The wait is over. XTAPI provides a working implementation of the  Core and Media packages for JTAPI 1.2.  &lt;/dd&gt;&lt;dt&gt;&lt;a last_visit="1244989740" add_date="1244989740" tags="server,proxy" href="http://www.open-open.com/36.htm"&gt;Java开源&amp;nbsp;网络服务器端组件分类列表&lt;/a&gt;  &lt;/dt&gt;&lt;dd&gt;http，socket，ftp，代理服务器开源项目  &lt;/dd&gt;&lt;dt&gt;&lt;a last_visit="1244988711" add_date="1244988711" tags="reporting,report" href="http://ireport.cubebi.com/manual/14.php"&gt;iReport图表(Chart)教程&lt;/a&gt;  &lt;/dt&gt;&lt;dd&gt;iReport很多的图表(Chart)类型可提供使用。iReport现在支持Pie,Pie 3D,Bar,Bar 3D,XY Bar,Stacked  Bar,Stacked Bar 3D,Line,XY Line,Area,XY Area,Scatter Plot,Bubble,Time  Series,High Low Open Close和Candlestick 多种类型图表。  iReport使用jfreechart作为其图表引擎，jfreechart是一个强大的chart 生成工具。  &lt;/dd&gt;&lt;dt&gt;&lt;a last_visit="1244988683" add_date="1244988683" tags="reporting,report" href="http://toneyzhao.blog.sohu.com/84591793.html"&gt;利用iReport进行图表开发-苹果爸爸-搜狐博客&lt;/a&gt;  &lt;/dt&gt;&lt;dd&gt;以柱状图（bar3DChart）为例，详细说明图表的开发过程。  &lt;/dd&gt;&lt;dt&gt;&lt;a last_visit="1244988373" add_date="1244988373" tags="reporting,report" href="https://www6.software.ibm.com/developerworks/cn/education/opensource/os-eclipse-birt-advanced/index.html"&gt;用 BIRT  实现高级图表&lt;/a&gt;  &lt;/dt&gt;&lt;dd&gt;BIRT  提供了一个图表引擎，使我们能够把数据集显示为图表。还可以进一步配置图表来支持交互操作，这样的话，当用户在图表元素（比如图表标题、图例、轴、值系列等）上执行操作时，图表就会做出各种响应，比如显示工具提示、弹出消息或跳到另一个报告。BIRT  可以显示以下格式的图表：PNG、JPG、BMP 或 SVG。SVG 是一种描述 2-D 矢量图形和脚本编程的 XML 规范，因此可以实现各种交互式特性： 钻通  允许用户通过单击行、节点等图表元素从一个报告转到另一个报告。这样就可以通过一个选择的元素把两个报告链接起来  &lt;/dd&gt;&lt;dt&gt;&lt;a last_visit="1244903937" add_date="1244903937" tags="selenium,testing" href="http://www.infoq.com/cn/news/2009/06/selenium-1.0"&gt;InfoQ:  Web自动化测试工具Selenium 1.0正式发布:Chrome支持+用户指南&lt;/a&gt;  &lt;/dt&gt;&lt;dd&gt;Selenium是一款开源Web自动化测试工具，最近发布了1.0版，标志着Web自动化测试领域正式加入了一名新成员。在其新版本中，除了修正了若干  Bug，最引人瞩目的就是Selenium RC增加了对Google Chrome浏览器的支持，同时Selenium官方网站上提供了完整的用户指南  &lt;/dd&gt;&lt;dt&gt;&lt;a last_visit="1244694244" add_date="1244694244" tags="gis" href="http://dev.openstreetmap.org/%7Eedgemaster/OpenLayersExamples/POI/"&gt;http://dev.openstreetmap.org/~edgemaster/OpenLayersExamples/POI/&lt;/a&gt;   &lt;/dt&gt;&lt;dd&gt;OpenLayers Examples 显示点的标注  &lt;/dd&gt;&lt;dt&gt;&lt;a last_visit="1244594743" add_date="1244594743" tags="database,mysql" href="http://www.jianzhaoyang.com/"&gt;- Sky.Jian 朝阳的天空&lt;/a&gt;  &lt;/dt&gt;&lt;dd&gt;简朝阳 (Sky Jian)博客 MySQL &amp;amp; Oracle DBA 目前就职于阿里巴巴  &lt;/dd&gt;&lt;dt&gt;&lt;a last_visit="1244553781" add_date="1244553781" tags="javascript" href="http://wenda.tianya.cn/wenda/thread?tid=0a134bdf8bc51401&amp;amp;clk=wttpcts"&gt;如何用javascript在页面上注册activex事件的处理函数 - 天涯问答&lt;/a&gt;  &lt;/dt&gt;&lt;dd&gt;如何用javascript在页面上注册activex事件的处理函数  &lt;/dd&gt;&lt;dt&gt;&lt;a last_visit="1244553500" add_date="1244553500" tags="javascript" href="http://www.wangchao.net.cn/bbsdetail_577893.html"&gt;vb开发的activex 与javascript 交互 - 王朝网络  - wangchao.org&lt;/a&gt;  &lt;/dt&gt;&lt;dd&gt;vb开发的activex 与javascript 交互  &lt;/dd&gt;&lt;dt&gt;&lt;a last_visit="1244553244" add_date="1244553244" tags="javascript" href="http://www.pin5i.com/showtopic-20073.html"&gt;在用c#开发的ActiveX中调用JavaScript方法 - C#  - 拼吾爱程序人生 最新编程技术交流社区&lt;/a&gt;  &lt;/dt&gt;&lt;dd&gt;如何在ActiveX中调用页面上的JavaScript方法。  &lt;/dd&gt;&lt;dt&gt;&lt;a last_visit="1244512812" add_date="1244512812" tags="flash,streaming" href="http://osflash.org/"&gt;Recent News Open Source Flash&lt;/a&gt;  &lt;/dt&gt;&lt;dd&gt;OSFlash is a watering hole for open source Flash developers and users to  meet, talk about and contribute to new and existing open source projects for the  Flash Platform.  &lt;/dd&gt;&lt;dt&gt;&lt;a last_visit="1244377445" add_date="1244377445" tags="agile,TDD" href="http://www.infoq.com/cn/news/2009/06/love_agile_testing"&gt;InfoQ:  热衷敏捷测试的十大理由&lt;/a&gt;  &lt;/dt&gt;&lt;dd&gt;# 不再需要手工测试脚本！ － 相反，自动运行的脚本让测试人员有更多的时间来挖掘测试。 # 开发人员喜欢我了！ －  迭代结束之前发现问题，而且因为开发人员对代码还有一个比较清晰的印象，所以比较易于找到问题。 # 现在我可以在撰写特性之前就分解特性！（Kay 与 Philip）  － 在撰写特性之前开始测试，测试人员可以预防问题。 # 自动化测试在一天之内运行很多次 － 任何修改都能得到快速反馈。 # 营造团队导向的氛围 －（John  Overbaugh）－ 每位团队成员不仅关心编码，也会关心测试是否完成（Lisa Crispin） # 测试人员可以解决偶发性bug（Lisa  Crispin）－ 自动化的测试让每个人都舒服。 # 经常复审测试实践的机会（Adam Knight）－ 不再是对过去行为的简单重复，实践经常会被复审。在  Adam 的例子里面，过去要5天完成的手工测试减少到只需要30分钟。 # 我只花很少、很少的时间来调试（Adrian Howard）－  当我犯了错，我能很快得到反馈 － 所以轻而易举就找到问题，然后解决。 # 真正改进质量，而不是仅仅记录在文档上（John Overbaugh）－  bug很快就被解决，而不是只放在bug表里面。 # 因为测试先行，测试的时间总是有的 － Josue Barbosa dos Santos  讲述了在巴西的一个政府办公室工作的故事，那里测试被安排在项目的最后阶段。开发工作总是落后于项目时间表，面临截止期限的项目不测试就发布给用户。引入  TDD和ATDD之后，最少有一部分测试会随着软件开发同步进行。  &lt;/dd&gt;&lt;dt&gt;&lt;a last_visit="1243818933" add_date="1243818933" tags="architecture,F5" href="http://blog.s135.com/post/346/"&gt;F5 BIG-IP负载均衡器配置实例与Web管理界面体验[原创] -  回忆未来[张宴] - 服务器系统架构与底层研发&lt;/a&gt;  &lt;/dt&gt;&lt;dd&gt;F5 BIG-IP负载均衡器配置实例与Web管理界面体验  &lt;/dd&gt;&lt;dt&gt;&lt;a last_visit="1243567536" add_date="1243567536" tags="spring" href="http://www.springsource.org/roo"&gt;Spring Roo provides interactive,  lightweight, user customizable tooling that enables rapid delivery of high  performance enterprise Java applications&lt;/a&gt;  &lt;/dt&gt;&lt;dd&gt;Spring Roo provides interactive, lightweight, user customizable tooling that  enables rapid delivery of high performance enterprise Java applications. Roo is  currently in early development, with http://www.springsource.org/roo  representing the project's temporary project home page. We'll add more content  very soon!  &lt;/dd&gt;&lt;dt&gt;&lt;a last_visit="1243499340" add_date="1243499340" tags="database" href="http://vincentchun.javaeye.com/blog/384202"&gt;SQL经典面试题及答案 - - JavaEye技术网站&lt;/a&gt;  &lt;/dt&gt;&lt;dd&gt;SQL经典面试题及答案  &lt;/dd&gt;&lt;dt&gt;&lt;a last_visit="1243499340" add_date="1243499340" tags="database" href="http://vincentchun.javaeye.com/blog/386782"&gt;数据库面试题集合 - - JavaEye技术网站&lt;/a&gt;  &lt;/dt&gt;&lt;dd&gt;数据库面试题集合  &lt;/dd&gt;&lt;dt&gt;&lt;a last_visit="1243499340" add_date="1243499340" tags="java" href="http://vincentchun.javaeye.com/blog/386769"&gt;java面试题集 - - JavaEye技术网站&lt;/a&gt;  &lt;/dt&gt;&lt;dd&gt;java面试题集  &lt;/dd&gt;&lt;dt&gt;&lt;a last_visit="1243499218" add_date="1243499218" tags="jms" href="http://www.hermesjms.com/confluence/display/HJMS/Home"&gt;Home - HermesJMS - Confluence&lt;/a&gt;  &lt;/dt&gt;&lt;dd&gt;HermesJMS is an extensible console that helps you interact with JMS  providers making it easy to browse or seach queues and topics, copy messages  around and delete them. It fully integrates with JNDI letting you discover  administered objects stored, create JMS sessions from the connection factories  and use any destinations found. Many providers include a plugin that uses the  native API to do non-JMS things like getting queue depths (and other statistics)  or finding queue and topic names.  &lt;/dd&gt;&lt;dt&gt;&lt;a last_visit="1243314547" add_date="1243314547" tags=".NET" href="http://www.cnblogs.com/jacklaw/archive/2008/07/02/1234172.html"&gt;解决：服务器无法加载应用程序  '/LM/W3SVC'。&lt;/a&gt;  &lt;/dt&gt;&lt;dd&gt;浏览ASP页面提示 500内部错误  &lt;/dd&gt;&lt;dt&gt;&lt;a last_visit="1243074365" add_date="1243074365" tags="linux,unix" href="http://mmonit.com/monit/"&gt;Monit&lt;/a&gt;  &lt;/dt&gt;&lt;dd&gt;Monit is a free open source utility for managing and monitoring, processes,  files, directories and filesystems on a UNIX system. Monit conducts automatic  maintenance and repair and can execute meaningful causal actions in error  situations.  &lt;/dd&gt;&lt;dt&gt;&lt;a last_visit="1243041068" add_date="1243041068" tags="java" href="http://www.infoq.com/cn/news/2009/05/java-ruby"&gt;InfoQ: Javier Paniza:  Java开发效率也可以比RoR高&lt;/a&gt;  &lt;/dt&gt;&lt;dd&gt;为了证明他的观点，他开始用带JPA注解的POJO，以及模型驱动框架OpenXava，实现了Ruby文章中的一个应用，结果是用了 更少的代码，更少的时间却获得一个更加强大的应用。在用户界面、负责CRUD的controller、实体关系维护等方面，Java方案均表现突出。 &lt;/dd&gt;&lt;dt&gt;&lt;a last_visit="1242915362" add_date="1242915362" tags="lucene" href="http://jeffye.javaeye.com/blog/165780"&gt;lucene HitCollector 的作用 -  信息检索与算法研究 - JavaEye技术网站&lt;/a&gt;  &lt;/dt&gt;&lt;dd&gt;lucene HitCollector 的作用  &lt;/dd&gt;&lt;dt&gt;&lt;a last_visit="1242914100" add_date="1242914100" tags="lucene" href="http://www.pongasoft.com/blog/yan/entry/improving_performances_of_a_lucene"&gt;The Software  Cookbook - Improving performances of a Lucene Search&lt;/a&gt;  &lt;/dt&gt;&lt;dd&gt;Improving performances of a Lucene Search  &lt;/dd&gt;&lt;dt&gt;&lt;a last_visit="1242878744" add_date="1242878744" tags="image" href="http://fir4j.sourceforge.net/"&gt;SourceForge.net: Fast Image Resizer for Java - Project  Web Hosting - Open Source Software&lt;/a&gt;  &lt;/dt&gt;&lt;dd&gt;Fast Image Resizer for Java Tool是一个能够批量调整同一个文件中JPEG/JPG图片大小的Java  Tool。支持将调整后的图片存成ZIP文件。为图片添加文本或图片水印。自动生成Web相册。可以设置输出图片的质量，重命名创建的文件（比如全部改成小写，添加前缀，或按某一规则顺序命名）。   &lt;/dd&gt;&lt;dt&gt;&lt;a last_visit="1242861172" add_date="1242861172" tags="scalability" href="http://www.infoq.com/cn/news/2009/05/8-Best-Practices-Scalability"&gt;InfoQ:  提升可伸缩性的八项最佳实践&lt;/a&gt;  &lt;/dt&gt;&lt;dd&gt;提升可伸缩性的八项最佳实践  &lt;/dd&gt;&lt;dt&gt;&lt;a last_visit="1242629719" add_date="1242629719" tags="apache" href="http://www.dxluo.cn/blog/archives/101"&gt;逆水行舟 &amp;raquo; Blog Archive &amp;raquo; 对apache  timeout参数的思考&lt;/a&gt;  &lt;/dt&gt;&lt;dd&gt;apache timeout参数解释 &lt;/dd&gt;&lt;/dl&gt;&lt;p&gt;&lt;a href="http://www.searchfull.net:80/blog/2009/07/05/1246752720000.html"&gt;阅读全文...&lt;/a&gt;&lt;/p&gt;
        </description>
      
    
    
    
    <category>网摘文章</category>
    
    <comments>http://www.searchfull.net:80/blog/2009/07/05/1246752720000.html#comments</comments>
    <guid isPermaLink="true">http://www.searchfull.net:80/blog/2009/07/05/1246752720000.html</guid>
    <pubDate>Sun, 05 Jul 2009 00:12:00 GMT</pubDate>
  </item>
  
  <item>
    <title>用jdbc代替hibernate处理大批量的关联数据更新</title>
    <link>http://www.searchfull.net:80/blog/2009/06/28/1246179000000.html</link>
    
      
        <description>
          在&lt;a href="http://www.searchfull.net/blog/2008/04/05/1207361943159.html"&gt;Spring+hibernate大批量数据处理&lt;/a&gt;描述了可以用hibernate快速的处理大批量数据更新：&lt;br /&gt;
&lt;blockquote&gt;
&lt;p&gt;14.2.&amp;nbsp;批量更新（Batch updates）&lt;/p&gt;
&lt;p&gt;此方法同样适用于检索和更新数据。此外，在进行会返回很多行数据的查询时， 你需要使用 &lt;tt class="literal"&gt;scroll()&lt;/tt&gt;  方法以便充分利用服务器端游标所带来的好处。 &lt;/p&gt;
&lt;pre class="programlisting"&gt;Session session = sessionFactory.openSession();&lt;br /&gt;Transaction tx = session.beginTransaction();&lt;br /&gt;   &lt;br /&gt;ScrollableResults customers = session.getNamedQuery(&amp;quot;GetCustomers&amp;quot;)&lt;br /&gt;    .setCacheMode(CacheMode.IGNORE)&lt;br /&gt;    .scroll(ScrollMode.FORWARD_ONLY);&lt;br /&gt;int count=0;&lt;br /&gt;while ( customers.next() ) {&lt;br /&gt;    Customer customer = (Customer) customers.get(0);&lt;br /&gt;    customer.updateStuff(...);&lt;br /&gt;    if ( ++count % 20 == 0 ) {&lt;br /&gt;        //flush a batch of updates and release memory:&lt;br /&gt;        session.flush();&lt;br /&gt;        session.clear();&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;   &lt;br /&gt;tx.commit();&lt;br /&gt;session.close();&lt;br /&gt;&lt;br /&gt;条件是：&lt;br /&gt;1，将JDBC的批量抓取数量（batch size）参数设置到一个合适值 （其实是500&amp;mdash;&amp;mdash;1000比较合适）： &lt;br /&gt;hibernate.jdbc.batch_size 20&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;2，在执行批量处理时关闭二级缓存： &lt;/p&gt;
hibernate.cache.use_second_level_cache  false&lt;/blockquote&gt;
&lt;pre class="programlisting"&gt;但是要是在做了上述操作后，还需要对这些记录关联的另外一个表的记录做一个更新，那用hibernate是有问题的。&lt;br /&gt;因为Hibernate更新一条记录的时候必须首先load查出这条记录，那在批量更新的时候不是很耗费性能？确实是这样的。&lt;br /&gt;所以，在大批量处理更新一个大型数据集合，并且需要修改这个集合关联的数据库表对象时，还是需要JDBC来解决问题。如：&lt;br /&gt;&lt;/pre&gt;
&lt;blockquote&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Connection conn1 = this.getConnection();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;  PreparedStatement pstmt1 = null;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ResultSet rs1 = null;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;  String strsql1 = &amp;quot;select  workitem_id,work_sheet_no,process_code,process_name,process_ins_id,&amp;quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;&amp;nbsp;  +&amp;quot;activity_code,activity_name,zone_code,activity_role,run_mode,pre_activity_code,&amp;quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;  +&amp;quot;pre_activity_name,sendor,sendor_name,participant,participant_name,approve_note,&amp;quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;  +&amp;quot;start_time,end_time,time_limit,time_limit_unit,over_time,reassign_participant_id,&amp;quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;  +&amp;quot;form_type,form_id,app_name,urge_date,urger,last_date,last_count,untread,state,remark,&amp;quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; +&amp;quot;activity_role_id from wf_workitem r where  r.process_code='ec_reprints_invoice_process'&amp;quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Connection  conn2 = this.getConnection2();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; PreparedStatement pstmt2 =  null;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; String strsql2 = &amp;quot;insert into  os_currentstep(id,entry_id,step_id,action_id,owner,start_date,&amp;quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;  +&amp;quot;finish_date,due_date,status,caller)  values(seq_os_currentsteps.nextval,?,?,?,?,?,?,?,?,?)&amp;quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; int  updateNum=0;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; try {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; pstmt1 =  conn1.prepareStatement(strsql1);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &lt;strong&gt;pstmt1.setFetchSize(1000);&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;  pstmt2 = conn2.prepareStatement(strsql2);&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; rs1 =  pstmt1.executeQuery();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; int i=0;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; while (rs1.next())  {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; i++;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; String process_ins_id =  rs1.getString(&amp;quot;process_ins_id&amp;quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; String  idsub=process_ins_id.substring(process_ins_id.indexOf(&amp;quot;/&amp;quot;, 1));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; pstmt2.setObject(1, idsub.substring(1,idsub.indexOf(&amp;quot;/&amp;quot;,  1)));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; pstmt2.setObject(2,  getStepIdByStepName(rs1.getString(&amp;quot;activity_name&amp;quot;),rs1.getString(&amp;quot;process_code&amp;quot;)));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; pstmt2.setNull(3,Types.INTEGER);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;  pstmt2.setObject(4, rs1.getString(&amp;quot;activity_role&amp;quot;));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Date  d=convertStringToDate(&amp;quot;yyyy-MM-dd HH:mm:ss&amp;quot;,  rs1.getString(&amp;quot;start_time&amp;quot;));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(d==null){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;&amp;nbsp; pstmt2.setNull(5,Types.DATE);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }else{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;&amp;nbsp; pstmt2.setObject(5, new java.sql.Timestamp(d.getTime()));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;  }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; pstmt2.setNull(6,Types.DATE);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;  pstmt2.setNull(7,Types.DATE);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;  if(rs1.getString(&amp;quot;participant&amp;quot;)==null){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;  pstmt2.setObject(8,&amp;quot;Queued&amp;quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }else{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;  pstmt2.setObject(8,&amp;quot;Underway&amp;quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;  pstmt2.setObject(9, rs1.getString(&amp;quot;participant&amp;quot;));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;pstmt2.addBatch();&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;  if(i%500==0){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;  updateNum=updateNum+&lt;strong&gt;pstmt2.executeBatch()&lt;/strong&gt;.length;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;  updateNum=updateNum+pstmt2.executeBatch().length;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;  System.out.println(&amp;quot;更新了当前待办记录条数：&amp;quot;+updateNum);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (Exception e)  {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; } finally {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;  cleanConn(conn1,pstmt1,rs1);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; cleanConn(conn2,pstmt2,null);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/blockquote&gt;
        </description>
      
      
    
    
    
    <category>Java技术</category>
    
    <category>随笔</category>
    
    <comments>http://www.searchfull.net:80/blog/2009/06/28/1246179000000.html#comments</comments>
    <guid isPermaLink="true">http://www.searchfull.net:80/blog/2009/06/28/1246179000000.html</guid>
    <pubDate>Sun, 28 Jun 2009 08:50:00 GMT</pubDate>
  </item>
  
  <item>
    <title>为了健康，将你的身体从酸性变为碱性</title>
    <link>http://www.searchfull.net:80/blog/2009/06/07/1244353953449.html</link>
    
      
        <description>
          &lt;p&gt;&lt;strong&gt;为了健康，将你的身体从酸性变为碱性&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;与碱性体质者相比，酸性体质的人常会感到身体疲乏、记忆力减退、注意力不集 中、腰酸腿痛、腹泻、便秘等，到医院也检查不出什么毛病。如果长期处在酸性体质不加以改善，女性的皮肤会过早地黯淡和衰老；儿童会造成发育不良、食欲不 振、注意力难以集中等症状；中老年人则会因此引发糖尿病、神经系统疾病和心脑血管疾病。85％的痛风、高血压、癌症、高脂血症患者，都是酸性 体质。 &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;常见食物的酸碱性 &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;强酸性 蛋黄、乳酪、白糖、西点、柿子、乌鱼子、柴鱼等。 &lt;/p&gt;
&lt;p&gt;中酸性 火腿、鸡肉、鲔鱼、猪肉、鳗鱼、牛肉、面包、小麦、奶油、马肉等。 &lt;/p&gt;
&lt;p&gt;弱酸性 白米、花生、啤酒、油炸豆腐、海苔、文蛤、章鱼、泥鳅等。 &lt;/p&gt;
&lt;p&gt;弱碱性 红豆、萝卜、苹果、甘蓝菜、洋葱、豆腐等。 &lt;/p&gt;
&lt;p&gt;中碱性 萝卜干、大豆、胡萝卜、番茄、香蕉、橘子、番瓜、草莓、蛋白、梅干、柠檬、菠菜等。&lt;/p&gt;
强碱性 葡萄、茶叶、葡萄酒、海带、天然绿藻类
        </description>
      
      
    
    
    
    <category>随笔</category>
    
    <comments>http://www.searchfull.net:80/blog/2009/06/07/1244353953449.html#comments</comments>
    <guid isPermaLink="true">http://www.searchfull.net:80/blog/2009/06/07/1244353953449.html</guid>
    <pubDate>Sun, 07 Jun 2009 05:52:33 GMT</pubDate>
  </item>
  
  <item>
    <title>开源的Java ETL (Extraction, Transform, Load) 工具</title>
    <link>http://www.searchfull.net:80/blog/2009/05/30/1243654048232.html</link>
    
      
        <description>
          &lt;blockquote&gt; &lt;/blockquote&gt;&lt;strong&gt;ETL&lt;/strong&gt;，是英文 Extract-Transform-Load 的缩写，用来描述将数据从来源端经过萃取（extract）、转置（transform）、加载（load）至目的端的过程。&lt;strong&gt;ETL&lt;/strong&gt;一词较常用在&lt;a title="数据仓库" href="http://zh.wikipedia.org/w/index.php?title=%E8%B3%87%E6%96%99%E5%80%89%E5%84%B2&amp;amp;variant=zh-cn"&gt;数据仓库&lt;/a&gt;，但其对象并不限于&lt;a title="数据仓库" href="http://zh.wikipedia.org/w/index.php?title=%E8%B3%87%E6%96%99%E5%80%89%E5%84%B2&amp;amp;variant=zh-cn"&gt;数据仓库&lt;/a&gt;。&lt;br /&gt;
&lt;strong&gt;ETL&lt;/strong&gt;所描述的过程，一般常见的作法包含&lt;strong&gt;ETL&lt;/strong&gt;或是&lt;strong&gt;ELT&lt;/strong&gt;(Extract-Load-Transform)，并且混合使用。通常愈大量的数据、复杂的转换逻辑、目的端为较强运算能力的&lt;a class="mw-redirect" title="数据库" href="http://zh.wikipedia.org/w/index.php?title=%E8%B3%87%E6%96%99%E5%BA%AB&amp;amp;variant=zh-cn"&gt;数据库&lt;/a&gt;，愈偏向使用&lt;strong&gt;ELT&lt;/strong&gt;，以便运用目的端&lt;a class="mw-redirect" title="数据库" href="http://zh.wikipedia.org/w/index.php?title=%E8%B3%87%E6%96%99%E5%BA%AB&amp;amp;variant=zh-cn"&gt;数据库&lt;/a&gt;的平行处理能力。&lt;br /&gt;
&lt;p&gt;&lt;strong&gt;ETL&lt;/strong&gt;(or &lt;strong&gt;ELT&lt;/strong&gt;)的流程可以用任何的编程语言去开发完成，由于ETL是极为复杂的过程，而手写程序不易管理，有愈来愈多的企业采用工具协助&lt;strong&gt;ETL&lt;/strong&gt;的开发，并运用其内置的&lt;a class="mw-redirect" title="Metadata" href="http://zh.wikipedia.org/w/index.php?title=Metadata&amp;amp;variant=zh-cn"&gt;metadata&lt;/a&gt;功能来储存来源与目的的对应（mapping）以及转换规则。&lt;/p&gt;
&lt;p&gt;工具并可以提供较强大的连接功能（connectivity）来连接来源及目的端，开发人员不用去熟悉各种相异的平台及数据的结构，亦能进行开发。&lt;/p&gt;
&lt;p&gt;下面是一些&lt;a href="http://www.searchfull.net/blog/2009/05/30/1243654048232.html"&gt;开源的Java ETL工具&lt;/a&gt;&lt;br /&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href="http://octopus.objectweb.org/"&gt;Octopus&lt;img alt="" id="snap_com_shot_link_icon" class="snap_preview_icon" style="border: 0pt none ; margin: 0pt ! important; padding: 1px 0pt 0pt; max-height: 2000px; max-width: 2000px; min-width: 0px; min-height: 0px; font-style: normal; font-weight: normal; font-family: &amp;quot;trebuchet ms&amp;quot;,arial,helvetica,sans-serif; float: none; position: static; left: auto; top: auto; line-height: normal; background-image: url(http://i.ixnp.com/images/v3.83/theme/silver/palette.gif); background-color: transparent; visibility: visible; width: 14px; height: 12px; background-position: -1128px 0pt; background-repeat: no-repeat; text-decoration: none; vertical-align: top; display: inline;" src="http://i.ixnp.com/images/v3.83/t.gif" /&gt;&lt;/a&gt; - Octopus is a simple Java-based Extraction, Transform, and Loading (ETL) tool. It may connect to any JDBC data sources and perform transformations defined in an XML file. A loadjob-generator is provided to generate Octopus loadjob skeletons from an existing database. Many different types of databases can be mixed (MSSQL, Oracle, DB2, QED, JDBC-ODBC with Excel and Access, MySQL, CSV-files, XML-files,...) Three special JDBC drivers come with Octopus to support JDBC access to CSV-files (CSV-JDBC), MS-SQL (FreeTDS) and XML. Octopus supports Ant and JUnit to create a database / tables and extract/load data during a build or test process. &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://software.xineo.net/xil.jspx"&gt;Xineo&lt;img alt="" id="snap_com_shot_link_icon" class="snap_preview_icon" style="border: 0pt none ; margin: 0pt ! important; padding: 1px 0pt 0pt; max-height: 2000px; max-width: 2000px; min-width: 0px; min-height: 0px; font-style: normal; font-weight: normal; font-family: &amp;quot;trebuchet ms&amp;quot;,arial,helvetica,sans-serif; float: none; position: static; left: auto; top: auto; line-height: normal; background-image: url(http://i.ixnp.com/images/v3.83/theme/silver/palette.gif); background-color: transparent; visibility: visible; width: 14px; height: 12px; background-position: -1128px 0pt; background-repeat: no-repeat; text-decoration: none; vertical-align: top; display: inline;" src="http://i.ixnp.com/images/v3.83/t.gif" /&gt;&lt;/a&gt; - Xineo XIL (XML Import Langage) defines an XML language for transforming various record-based data sources into XML documents, and provides a fully functional XIL processing implementation. This implementation has built-in support for relational (via JDBC) and structured text (like CSV) sources, and is extensible thanks to its public API, allowing dynamic integration of new data source implementations. It also provides an abstraction over output format, and the Xineo implementation can generate output documents into stream or as DOM document. Xineo's implementation built-in data sources include : Relational data via JDBC and Structured text via regular expressions. &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://cloveretl.berlios.de/"&gt;CloverETL&lt;img alt="" id="snap_com_shot_link_icon" class="snap_preview_icon" style="border: 0pt none ; margin: 0pt ! important; padding: 1px 0pt 0pt; max-height: 2000px; max-width: 2000px; min-width: 0px; min-height: 0px; font-style: normal; font-weight: normal; font-family: &amp;quot;trebuchet ms&amp;quot;,arial,helvetica,sans-serif; float: none; position: static; left: auto; top: auto; line-height: normal; background-image: url(http://i.ixnp.com/images/v3.83/theme/silver/palette.gif); background-color: transparent; visibility: visible; width: 14px; height: 12px; background-position: -1128px 0pt; background-repeat: no-repeat; text-decoration: none; vertical-align: top; display: inline;" src="http://i.ixnp.com/images/v3.83/t.gif" /&gt;&lt;/a&gt; - CloverETL Features include internally represents all characters as 16bit, converts from most common character sets (ASCII, UTF-8, ISO-8859-1,ISO-8859-2, etc), works with delimited or fix-length data records, data records (fields) are internally handled as a variable-length data structures, fields can have default values, handles NULL values, cooperates with any database with JDBC driver, transforming of the data is performed by independent components, each running as an independent thread, framework implements so called pipeline-parallelism, metadata describing structure of data files (records) can be read from XML and transformation graphs can be read from XML &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://sourceforge.net/projects/babeldoc"&gt;BabelDoc&lt;img alt="" id="snap_com_shot_link_icon" class="snap_preview_icon" style="border: 0pt none ; margin: 0pt ! important; padding: 1px 0pt 0pt; max-height: 2000px; max-width: 2000px; min-width: 0px; min-height: 0px; font-style: normal; font-weight: normal; font-family: &amp;quot;trebuchet ms&amp;quot;,arial,helvetica,sans-serif; float: none; position: static; left: auto; top: auto; line-height: normal; background-image: url(http://i.ixnp.com/images/v3.83/theme/silver/palette.gif); background-color: transparent; visibility: visible; width: 14px; height: 12px; background-position: -1128px 0pt; background-repeat: no-repeat; text-decoration: none; vertical-align: top; display: inline;" src="http://i.ixnp.com/images/v3.83/t.gif" /&gt;&lt;/a&gt; - BabelDoc is a Java framework for processing documents in linear stages, it tracks documents and can reintroduce documents back into into the pipelines, it is monitorable and configurable through a number of interfaces, it can be run standalone, in server processes or in application servers, it can be reconfigured dynamically by text files and database tables.&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://joost.sourceforge.net/"&gt;Joost&lt;img alt="" id="snap_com_shot_link_icon" class="snap_preview_icon" style="border: 0pt none ; margin: 0pt ! important; padding: 1px 0pt 0pt; max-height: 2000px; max-width: 2000px; min-width: 0px; min-height: 0px; font-style: normal; font-weight: normal; font-family: &amp;quot;trebuchet ms&amp;quot;,arial,helvetica,sans-serif; float: none; position: static; left: auto; top: auto; line-height: normal; background-image: url(http://i.ixnp.com/images/v3.83/theme/silver/palette.gif); background-color: transparent; visibility: visible; width: 14px; height: 12px; background-position: -1128px 0pt; background-repeat: no-repeat; text-decoration: none; vertical-align: top; display: inline;" src="http://i.ixnp.com/images/v3.83/t.gif" /&gt;&lt;/a&gt; - Java implementation of the Streaming Transformations for XML (STX) language. Streaming Transformations for XML (STX) is a one-pass transformation language for XML documents. STX is intended as a high-speed, low memory consumption alternative to XSLT. Since it does not require the construction of an in-memory tree, it is suitable for use in resource constrained scenarios.&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://sourceforge.net/projects/cb2xml"&gt;CB2XML &lt;img alt="" id="snap_com_shot_link_icon" class="snap_preview_icon" style="border: 0pt none ; margin: 0pt ! important; padding: 1px 0pt 0pt; max-height: 2000px; max-width: 2000px; min-width: 0px; min-height: 0px; font-style: normal; font-weight: normal; font-family: &amp;quot;trebuchet ms&amp;quot;,arial,helvetica,sans-serif; float: none; position: static; left: auto; top: auto; line-height: normal; background-image: url(http://i.ixnp.com/images/v3.83/theme/silver/palette.gif); background-color: transparent; visibility: visible; width: 14px; height: 12px; background-position: -1128px 0pt; background-repeat: no-repeat; text-decoration: none; vertical-align: top; display: inline;" src="http://i.ixnp.com/images/v3.83/t.gif" /&gt;&lt;/a&gt; - CB2XML (CopyBook to XML) is a COBOL CopyBook to XML converter written in Java and based on the SableCC parser generator. This project includes utilities to convert an XML instance file into its COBOL copybook equivalent string buffer and vice versa. You can find additional information about supporting Jurasic systems &lt;a href="http://jymengant.ifrance.com/jymengant/jurassicFAQ.html"&gt;here&lt;img alt="" id="snap_com_shot_link_icon" class="snap_preview_icon" style="border: 0pt none ; margin: 0pt ! important; padding: 1px 0pt 0pt; max-height: 2000px; max-width: 2000px; min-width: 0px; min-height: 0px; font-style: normal; font-weight: normal; font-family: &amp;quot;trebuchet ms&amp;quot;,arial,helvetica,sans-serif; float: none; position: static; left: auto; top: auto; line-height: normal; background-image: url(http://i.ixnp.com/images/v3.83/theme/silver/palette.gif); background-color: transparent; visibility: visible; width: 14px; height: 12px; background-position: -1128px 0pt; background-repeat: no-repeat; text-decoration: none; vertical-align: top; display: inline;" src="http://i.ixnp.com/images/v3.83/t.gif" /&gt;&lt;/a&gt;.&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://sourceforge.net/projects/mec-eagle/"&gt;mec-eagle&lt;img alt="" id="snap_com_shot_link_icon" class="snap_preview_icon" style="border: 0pt none ; margin: 0pt ! important; padding: 1px 0pt 0pt; max-height: 2000px; max-width: 2000px; min-width: 0px; min-height: 0px; font-style: normal; font-weight: normal; font-family: &amp;quot;trebuchet ms&amp;quot;,arial,helvetica,sans-serif; float: none; position: static; left: auto; top: auto; line-height: normal; background-image: url(http://i.ixnp.com/images/v3.83/theme/silver/palette.gif); background-color: transparent; visibility: visible; width: 14px; height: 12px; background-position: -1128px 0pt; background-repeat: no-repeat; text-decoration: none; vertical-align: top; display: inline;" src="http://i.ixnp.com/images/v3.83/t.gif" /&gt;&lt;/a&gt; - JAVA XML XSL B2B integration software:SWING based GUI,an EDI to XML, XML to XML and XML to EDI converter,client-server architecture.All EDI standards are supported:EDIFACT,ANSI X.12,SAP IDOC,XCBL,RosettaNet,Biztalk.Included comm:SMTP,FTP,HTTP(S),PGP/MIME&lt;/li&gt;
    &lt;li&gt;  &lt;a href="http://transmorpher.inrialpes.fr/"&gt;Transmorpher&lt;img alt="" id="snap_com_shot_link_icon" class="snap_preview_icon" style="border: 0pt none ; margin: 0pt ! important; padding: 1px 0pt 0pt; max-height: 2000px; max-width: 2000px; min-width: 0px; min-height: 0px; font-style: normal; font-weight: normal; font-family: &amp;quot;trebuchet ms&amp;quot;,arial,helvetica,sans-serif; float: none; position: static; left: auto; top: auto; line-height: normal; background-image: url(http://i.ixnp.com/images/v3.83/theme/silver/palette.gif); background-color: transparent; visibility: visible; width: 14px; height: 12px; background-position: -1128px 0pt; background-repeat: no-repeat; text-decoration: none; vertical-align: top; display: inline;" src="http://i.ixnp.com/images/v3.83/t.gif" /&gt;&lt;/a&gt; - Transmorpher is an environment for processing generic  transformations on XML documents. It aims at complementing XSLT in order to:
    &lt;ul compact="1"&gt;
        &lt;li&gt;describe easily simple transformations (removing  elements, replacing tag and attribute names, concatenating  documents...);&lt;/li&gt;
        &lt;li&gt;allowing regular expression transformations on the content;&lt;/li&gt;
        &lt;li&gt;composing transformations by linking their (multiple) output to input;&lt;/li&gt;
        &lt;li&gt;iterating transformations, sometimes until saturation (closure operation);&lt;/li&gt;
        &lt;li&gt;integrating external transformations.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://xpipe.sourceforge.net/Articles/Miscellaneous/fog0000000018.html"&gt;XPipe &lt;img alt="" id="snap_com_shot_link_icon" class="snap_preview_icon" style="border: 0pt none ; margin: 0pt ! important; padding: 1px 0pt 0pt; max-height: 2000px; max-width: 2000px; min-width: 0px; min-height: 0px; font-style: normal; font-weight: normal; font-family: &amp;quot;trebuchet ms&amp;quot;,arial,helvetica,sans-serif; float: none; position: static; left: auto; top: auto; line-height: normal; background-image: url(http://i.ixnp.com/images/v3.83/theme/silver/palette.gif); background-color: transparent; visibility: visible; width: 14px; height: 12px; background-position: -1128px 0pt; background-repeat: no-repeat; text-decoration: none; vertical-align: top; display: inline;" src="http://i.ixnp.com/images/v3.83/t.gif" /&gt;&lt;/a&gt; - XPipe is an approach to manageable, scaleable, robust XML processing based on the assembly line principle, common in many areas of manufacturing. XPipe as being an attempt to take what was great about the original Unix pipe idea and apply it for structured information streams based on XML.&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.datasift.org/"&gt;DataSift&lt;img alt="" id="snap_com_shot_link_icon" class="snap_preview_icon" style="border: 0pt none ; margin: 0pt ! important; padding: 1px 0pt 0pt; max-height: 2000px; max-width: 2000px; min-width: 0px; min-height: 0px; font-style: normal; font-weight: normal; font-family: &amp;quot;trebuchet ms&amp;quot;,arial,helvetica,sans-serif; float: none; position: static; left: auto; top: auto; line-height: normal; background-image: url(http://i.ixnp.com/images/v3.83/theme/silver/palette.gif); background-color: transparent; visibility: visible; width: 14px; height: 12px; background-position: -1128px 0pt; background-repeat: no-repeat; text-decoration: none; vertical-align: top; display: inline;" src="http://i.ixnp.com/images/v3.83/t.gif" /&gt;&lt;/a&gt; - DataSift is a powerful java data validation and transformation framework, aimed at enterprise software development, which provides developers with an extensible architecture they can fully adapt. Almost every feature in it can be configured and extended in some way. &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.xephyrus.com/flume/flume-intro.Prlx"&gt;Xephyrus Flume&lt;img alt="" id="snap_com_shot_link_icon" class="snap_preview_icon" style="border: 0pt none ; margin: 0pt ! important; padding: 1px 0pt 0pt; max-height: 2000px; max-width: 2000px; min-width: 0px; min-height: 0px; font-style: normal; font-weight: normal; font-family: &amp;quot;trebuchet ms&amp;quot;,arial,helvetica,sans-serif; float: none; position: static; left: auto; top: auto; line-height: normal; background-image: url(http://i.ixnp.com/images/v3.83/theme/silver/palette.gif); background-color: transparent; visibility: visible; width: 14px; height: 12px; background-position: -1128px 0pt; background-repeat: no-repeat; text-decoration: none; vertical-align: top; display: inline;" src="http://i.ixnp.com/images/v3.83/t.gif" /&gt;&lt;/a&gt; - Flume is a component pipeline engine. It allows you to chain together multiple workers into a pipeline mechanism. The intention of Flume is that each of the workers would provide access to a different type of technology. For example, a pipeline could consist of a Jython script worker followed by a BeanShell script worker followed by an XSLT worker.&lt;/li&gt;
    &lt;li&gt;&lt;span class="link-https"&gt;&lt;a href="https://smallx.dev.java.net/"&gt;Smallx&lt;/a&gt;&lt;/span&gt; - Smallx supports streaming of XML infosets to allow processing of very large documents (500MB-1GB). Processing is specified in an XML syntax that describes an XML pipeline--which is a sequence of components that consume and produce infosets. This allows chaining of XML component standards like XSLT. Also, there is a full component API that allows developers to easily write their own components. &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://dsd.lbl.gov/nux/index.html"&gt;Nux&lt;img alt="" id="snap_com_shot_link_icon" class="snap_preview_icon" style="border: 0pt none ; margin: 0pt ! important; padding: 1px 0pt 0pt; max-height: 2000px; max-width: 2000px; min-width: 0px; min-height: 0px; font-style: normal; font-weight: normal; font-family: &amp;quot;trebuchet ms&amp;quot;,arial,helvetica,sans-serif; float: none; position: static; left: auto; top: auto; line-height: normal; background-image: url(http://i.ixnp.com/images/v3.83/theme/silver/palette.gif); background-color: transparent; visibility: visible; width: 14px; height: 12px; background-position: -1128px 0pt; background-repeat: no-repeat; text-decoration: none; vertical-align: top; display: inline;" src="http://i.ixnp.com/images/v3.83/t.gif" /&gt;&lt;/a&gt; - Nux is a toolkit making efficient and powerful XML processing easy. It is geared towards embedded use in high-throughput XML messaging middleware such as large-scale Peer-to-Peer infrastructures, message queues, publish-subscribe and matchmaking systems for Blogs/newsfeeds, text chat, data acquisition and distribution systems, application level routers, firewalls, classifiers, etc. Nux reliably processes whatever data fits into main memory (even, say, 250 MB messages), but it is not an XML database system, and does not attempt to be one. Nux integrates best-of-breed components, containing extensions of the XOM, Saxon and Lucene open-source libraries. &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.ketl.org/"&gt;KETL &lt;img alt="" id="snap_com_shot_link_icon" class="snap_preview_icon" style="border: 0pt none ; margin: 0pt ! important; padding: 1px 0pt 0pt; max-height: 2000px; max-width: 2000px; min-width: 0px; min-height: 0px; font-style: normal; font-weight: normal; font-family: &amp;quot;trebuchet ms&amp;quot;,arial,helvetica,sans-serif; float: none; position: static; left: auto; top: auto; line-height: normal; background-image: url(http://i.ixnp.com/images/v3.83/theme/silver/palette.gif); background-color: transparent; visibility: visible; width: 14px; height: 12px; background-position: -1128px 0pt; background-repeat: no-repeat; text-decoration: none; vertical-align: top; display: inline;" src="http://i.ixnp.com/images/v3.83/t.gif" /&gt;&lt;/a&gt; - KETL is an extract, transform, and load (ETL) tool designed by Kinetic Networks. KETL includes job scheduling and alerting capabilities. The KETL Server is a Java-based data integration platform consisting of a multi-threaded server that manages various job executors. Jobs are defined using an XML definition language.&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.kettle.be/"&gt;Kettle&lt;img alt="" id="snap_com_shot_link_icon" class="snap_preview_icon" style="border: 0pt none ; margin: 0pt ! important; padding: 1px 0pt 0pt; max-height: 2000px; max-width: 2000px; min-width: 0px; min-height: 0px; font-style: normal; font-weight: normal; font-family: &amp;quot;trebuchet ms&amp;quot;,arial,helvetica,sans-serif; float: none; position: static; left: auto; top: auto; line-height: normal; background-image: url(http://i.ixnp.com/images/v3.83/theme/silver/palette.gif); background-color: transparent; visibility: visible; width: 14px; height: 12px; background-position: -1128px 0pt; background-repeat: no-repeat; text-decoration: none; vertical-align: top; display: inline;" src="http://i.ixnp.com/images/v3.83/t.gif" /&gt;&lt;/a&gt; - K.E.T.T.L.E (Kettle ETTL Environment) is a meta-data driven ETTL tool. (ETTL: Extraction, Transformation, Transportation &amp;amp; Loading). No code has to be written to perform complex data transformations. Environment means that it is possible to create plugins to do custom transformations or access propriatary data sources. Kettle supports most databases on the market and has native support for slowly chaning dimensions on most platforms. The complete Kettle source code is over 160,000 lines of java code.&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.netflux.org/"&gt;Netflux&lt;img alt="" id="snap_com_shot_link_icon" class="snap_preview_icon" style="border: 0pt none ; margin: 0pt ! important; padding: 1px 0pt 0pt; max-height: 2000px; max-width: 2000px; min-width: 0px; min-height: 0px; font-style: normal; font-weight: normal; font-family: &amp;quot;trebuchet ms&amp;quot;,arial,helvetica,sans-serif; float: none; position: static; left: auto; top: auto; line-height: normal; background-image: url(http://i.ixnp.com/images/v3.83/theme/silver/palette.gif); background-color: transparent; visibility: visible; width: 14px; height: 12px; background-position: -1128px 0pt; background-repeat: no-repeat; text-decoration: none; vertical-align: top; display: inline;" src="http://i.ixnp.com/images/v3.83/t.gif" /&gt;&lt;/a&gt; - Metadata based tool to allow for easier manipulations. Spring based configuration, BSF based scripting support, pluggable JDBC based data sources and sinks. A server and a GUI are planned. &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://opendigger.sourceforge.net/"&gt;OpenDigger&lt;img alt="" id="snap_com_shot_link_icon" class="snap_preview_icon" style="border: 0pt none ; margin: 0pt ! important; padding: 1px 0pt 0pt; max-height: 2000px; max-width: 2000px; min-width: 0px; min-height: 0px; font-style: normal; font-weight: normal; font-family: &amp;quot;trebuchet ms&amp;quot;,arial,helvetica,sans-serif; float: none; position: static; left: auto; top: auto; line-height: normal; background-image: url(http://i.ixnp.com/images/v3.83/theme/silver/palette.gif); background-color: transparent; visibility: visible; width: 14px; height: 12px; background-position: -1128px 0pt; background-repeat: no-repeat; text-decoration: none; vertical-align: top; display: inline;" src="http://i.ixnp.com/images/v3.83/t.gif" /&gt;&lt;/a&gt; - OpenDigger is a java based compiler for the xETL language. xETL is a language specifically projected to read, manipulate and write data in any format and database. With OpenDigger/XETL you can build Extraction-Transformation-Loading (ETL) programs virtually from and to any database platform.&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://servingxml.sourceforge.net/"&gt;ServingXML&lt;img alt="" id="snap_com_shot_link_icon" class="snap_preview_icon" style="border: 0pt none ; margin: 0pt ! important; padding: 1px 0pt 0pt; max-height: 2000px; max-width: 2000px; min-width: 0px; min-height: 0px; font-style: normal; font-weight: normal; font-family: &amp;quot;trebuchet ms&amp;quot;,arial,helvetica,sans-serif; float: none; position: static; left: auto; top: auto; line-height: normal; background-image: url(http://i.ixnp.com/images/v3.83/theme/silver/palette.gif); background-color: transparent; visibility: visible; width: 14px; height: 12px; background-position: -1128px 0pt; background-repeat: no-repeat; text-decoration: none; vertical-align: top; display: inline;" src="http://i.ixnp.com/images/v3.83/t.gif" /&gt;&lt;/a&gt; - ServingXML is a markup language for expressing XML pipelines, and an extensible Java framework for defining the elements of the language. It defines a vocabulary for expressing flat-XML, XML-flat, flat-flat, and XML-XML transformations in pipelines. ServingXML supports reading content as XML files, flat files, SQL queries or dynamically generated SAX events, transforming it with XSLT stylesheets and custom SAX filters, and writing it as XML, HTML, PDF or mail attachments. ServingXML is suited for converting flat file or database records to XML, with its support for namespaces, variant record types, multi-valued fields, segments and repeating groups, hierarchical grouping of records, and record-by-record validation with XML Schema.&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.talend.com/"&gt;Talend&lt;img alt="" id="snap_com_shot_link_icon" class="snap_preview_icon" style="border: 0pt none ; margin: 0pt ! important; padding: 1px 0pt 0pt; max-height: 2000px; max-width: 2000px; min-width: 0px; min-height: 0px; font-style: normal; font-weight: normal; font-family: &amp;quot;trebuchet ms&amp;quot;,arial,helvetica,sans-serif; float: none; position: static; left: auto; top: auto; line-height: normal; background-image: url(http://i.ixnp.com/images/v3.83/theme/silver/palette.gif); background-color: transparent; visibility: visible; width: 14px; height: 12px; background-position: -1128px 0pt; background-repeat: no-repeat; text-decoration: none; vertical-align: top; display: inline;" src="http://i.ixnp.com/images/v3.83/t.gif" /&gt;&lt;/a&gt; - Talend Open Studio is full-featured Data Integration OpenSource solution (ETL). Its graphical user interface, based on Eclipse Rich Client Platform (RCP) includes numerous components for business process modelling, as well as technical implementations of extracting, transformation and mapping of data flows. Data related script and underlying programs are generated in Perl and Java code. &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://scriptella.javaforge.com/"&gt;Scriptella&lt;img alt="" id="snap_com_shot_link_icon" class="snap_preview_icon" style="border: 0pt none ; margin: 0pt ! important; padding: 1px 0pt 0pt; max-height: 2000px; max-width: 2000px; min-width: 0px; min-height: 0px; font-style: normal; font-weight: normal; font-family: &amp;quot;trebuchet ms&amp;quot;,arial,helvetica,sans-serif; float: none; position: static; left: auto; top: auto; line-height: normal; background-image: url(http://i.ixnp.com/images/v3.83/theme/silver/palette.gif); background-color: transparent; visibility: visible; width: 14px; height: 12px; background-position: -1128px 0pt; background-repeat: no-repeat; text-decoration: none; vertical-align: top; display: inline;" src="http://i.ixnp.com/images/v3.83/t.gif" /&gt;&lt;/a&gt; - Scriptella is an ETL and script execution tool. Its primary focus is simplicity. It doesn't require the user to learn another complex XML-based language to use it, but allows the use of SQL or another scripting language suitable for the data source to perform required transformations.&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.glassfishwiki.org/jbiwiki/Wiki.jsp?page=ETLSE"&gt;ETL Integrator&lt;img alt="" id="snap_com_shot_link_icon" class="snap_preview_icon" style="border: 0pt none ; margin: 0pt ! important; padding: 1px 0pt 0pt; max-height: 2000px; max-width: 2000px; min-width: 0px; min-height: 0px; font-style: normal; font-weight: normal; font-family: &amp;quot;trebuchet ms&amp;quot;,arial,helvetica,sans-serif; float: none; position: static; left: auto; top: auto; line-height: normal; background-image: url(http://i.ixnp.com/images/v3.83/theme/silver/palette.gif); background-color: transparent; visibility: visible; width: 14px; height: 12px; background-position: -1128px 0pt; background-repeat: no-repeat; text-decoration: none; vertical-align: top; display: inline;" src="http://i.ixnp.com/images/v3.83/t.gif" /&gt;&lt;/a&gt; - ETL (a highly unimaginative name) consists of 3 components. An ETL service engine that is a JBI compliant service engine implementation which can be deployed in a JBI container. An ETL Editor that is a design time netbeans module which allow users to design ETL process in a graphical way. An ETL Project that is a design time netbeans module which allows users to package ETL related artifacts in a jar file which could be deployed onto the ETL service engine. &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.jitterbit.com/"&gt;Jitterbit&lt;img alt="" id="snap_com_shot_link_icon" class="snap_preview_icon" style="border: 0pt none ; margin: 0pt ! important; padding: 1px 0pt 0pt; max-height: 2000px; max-width: 2000px; min-width: 0px; min-height: 0px; font-style: normal; font-weight: normal; font-family: &amp;quot;trebuchet ms&amp;quot;,arial,helvetica,sans-serif; float: none; position: static; left: auto; top: auto; line-height: normal; background-image: url(http://i.ixnp.com/images/v3.83/theme/silver/palette.gif); background-color: transparent; visibility: visible; width: 14px; height: 12px; background-position: -1128px 0pt; background-repeat: no-repeat; text-decoration: none; vertical-align: top; display: inline;" src="http://i.ixnp.com/images/v3.83/t.gif" /&gt;&lt;/a&gt; - Jitterbit can act as a powerful ETL tool. Operations are defined, configured, and monitored with a GUI. The GUI can create document definitions, from simple flat file structures to complex hierarchic files structures. Jitterbit includes drag-and-drop mapping tool to transform data between your various system interfaces. Furthermore, one can set schedules, create success and failure events and track the results for your integration operations. Jitterbit supports Web Services, XML Files, HTTP/S, FTP, ODBC, Flat and Hierarchic file structures and file shares.&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.apatar.com/"&gt;Apatar&lt;img alt="" id="snap_com_shot_link_icon" class="snap_preview_icon" style="border: 0pt none ; margin: 0pt ! important; padding: 1px 0pt 0pt; max-height: 2000px; max-width: 2000px; min-width: 0px; min-height: 0px; font-style: normal; font-weight: normal; font-family: &amp;quot;trebuchet ms&amp;quot;,arial,helvetica,sans-serif; float: none; position: static; left: auto; top: auto; line-height: normal; background-image: url(http://i.ixnp.com/images/v3.83/theme/silver/palette.gif); background-color: transparent; visibility: visible; width: 14px; height: 12px; background-position: -1128px 0pt; background-repeat: no-repeat; text-decoration: none; vertical-align: top; display: inline;" src="http://i.ixnp.com/images/v3.83/t.gif" /&gt;&lt;/a&gt; - Apatar integrates databases, files and applications. Apatar includes a visual job designer for defining mapping, joins, filtering, data validation and schedules. Connectors include MySQL, PostgreSQL, Oracle, MS SQL, Sybase, FTP, HTTP, SalesForce.com, SugarCRM, Compiere ERP, Goldmine CRM, XML, flat files, Webdav, Buzzsaw, LDAP, Amazon and Flickr. No coding is required to accomplish even a complex integration. All metadata is stored in XML.&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://static.springframework.org/spring-batch/"&gt;Spring Batch&lt;img alt="" id="snap_com_shot_link_icon" class="snap_preview_icon" style="border: 0pt none ; margin: 0pt ! important; padding: 1px 0pt 0pt; max-height: 2000px; max-width: 2000px; min-width: 0px; min-height: 0px; font-style: normal; font-weight: normal; font-family: &amp;quot;trebuchet ms&amp;quot;,arial,helvetica,sans-serif; float: none; position: static; left: auto; top: auto; line-height: normal; background-image: url(http://i.ixnp.com/images/v3.83/theme/silver/palette.gif); background-color: transparent; visibility: visible; width: 14px; height: 12px; background-position: -1128px 0pt; background-repeat: no-repeat; text-decoration: none; vertical-align: top; display: inline;" src="http://i.ixnp.com/images/v3.83/t.gif" /&gt;&lt;/a&gt; - Spring Batch is a lightweight, comprehensive batch framework designed to enable the development of robust batch applications. Spring Batch provides reusable functions that are essential in processing large volumes of records, including logging/tracing, transaction management, job processing statistics, job restart, skip, and resource management. It also provides more advance technical services and features that will enable extremely high-volume and high performance batch jobs though optimization and partitioning techniques. &lt;/li&gt;
    &lt;li&gt;  &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.jaspersoft.com/JasperSoft_JasperETL.html"&gt;JasperETL&lt;img alt="" id="snap_com_shot_link_icon" class="snap_preview_icon" style="border: 0pt none ; margin: 0pt ! important; padding: 1px 0pt 0pt; max-height: 2000px; max-width: 2000px; min-width: 0px; min-height: 0px; font-style: normal; font-weight: normal; font-family: &amp;quot;trebuchet ms&amp;quot;,arial,helvetica,sans-serif; float: none; position: static; left: auto; top: auto; line-height: normal; background-image: url(http://i.ixnp.com/images/v3.83/theme/silver/palette.gif); background-color: transparent; visibility: visible; width: 14px; height: 12px; background-position: -1128px 0pt; background-repeat: no-repeat; text-decoration: none; vertical-align: top; display: inline;" src="http://i.ixnp.com/images/v3.83/t.gif" /&gt;&lt;/a&gt; - JasperETL was developed through a technology partnership with Talend. JasperETL includes Eclipse based user interfaces for process design, transformation mapping, debugging, process viewing. The project includes over 30 connectors like flat files, xml, databases, email, ftp and more. It includes wizards to help configure the processing of complex file formats including positional, delimited, CSV, RegExp, XML, and LDIF formatted data. &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.pentaho.com/products/data_integration/"&gt;Pentaho Data Integration&lt;img alt="" id="snap_com_shot_link_icon" class="snap_preview_icon" style="border: 0pt none ; margin: 0pt ! important; padding: 1px 0pt 0pt; max-height: 2000px; max-width: 2000px; min-width: 0px; min-height: 0px; font-style: normal; font-weight: normal; font-family: &amp;quot;trebuchet ms&amp;quot;,arial,helvetica,sans-serif; float: none; position: static; left: auto; top: auto; line-height: normal; background-image: url(http://i.ixnp.com/images/v3.83/theme/silver/palette.gif); background-color: transparent; visibility: visible; width: 14px; height: 12px; background-position: -1128px 0pt; background-repeat: no-repeat; text-decoration: none; vertical-align: top; display: inline;" src="http://i.ixnp.com/images/v3.83/t.gif" /&gt;&lt;/a&gt; - Pentaho Data Integration provides a declarative approach to ETL where you specify what to do rather than how to do it. It includes a transformation library with over 70 mapping objects. In includes data warehousing capability for slowly changing and junk Dimensions. Includes support for multiple data sources including over 25 open source and proprietary database platforms, flat files, Excel documents, and more. The architecture is extensible with a plug-in mehcanism. &lt;/li&gt;
    &lt;li&gt;&lt;span class="link-https"&gt;&lt;a href="https://mural.dev.java.net/"&gt;Mural&lt;/a&gt;&lt;/span&gt; - Mural is an open source community with the purpose of developing an ecosystem of products that solve the problems in Master Data Management (MDM). Projects include: Master Index Studio which provides the supports the creation of a master index through the matching, de-duplication, merging, and cleansing . Data Integrator which provides extract, transform, load capability and a wide variety of data formats. Data Quality which features matching, standardization, profiling,and cleansing capabilities. Data Mashup Data Mashup which provides data mashup capability. Data Migrator which supports the migration of database objects across database instances&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.smooks.org/"&gt;Smooks&lt;img alt="" id="snap_com_shot_link_icon" class="snap_preview_icon" style="border: 0pt none ; margin: 0pt ! important; padding: 1px 0pt 0pt; max-height: 2000px; max-width: 2000px; min-width: 0px; min-height: 0px; font-style: normal; font-weight: normal; font-family: &amp;quot;trebuchet ms&amp;quot;,arial,helvetica,sans-serif; float: none; position: static; left: auto; top: auto; line-height: normal; background-image: url(http://i.ixnp.com/images/v3.83/theme/silver/palette.gif); background-color: transparent; visibility: visible; width: 14px; height: 12px; background-position: -1128px 0pt; background-repeat: no-repeat; text-decoration: none; vertical-align: top; display: inline;" src="http://i.ixnp.com/images/v3.83/t.gif" /&gt;&lt;/a&gt; - Smooks provides a wide range of Data Transforms. Supports many different Source and Result types - XML/CSV/EDI/Java/JSON to XML/CSV/EDI/Java/JSON. It supports binding of Java Object Models from any data source. It is designed to process huge messages in the GByte range.&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://northconcepts.com/"&gt;Data Pipeline&lt;img alt="" id="snap_com_shot_link_icon" class="snap_preview_icon" style="border: 0pt none ; margin: 0pt ! important; padding: 1px 0pt 0pt; max-height: 2000px; max-width: 2000px; min-width: 0px; min-height: 0px; font-style: normal; font-weight: normal; font-family: &amp;quot;trebuchet ms&amp;quot;,arial,helvetica,sans-serif; float: none; position: static; left: auto; top: auto; line-height: normal; background-image: url(http://i.ixnp.com/images/v3.83/theme/silver/palette.gif); background-color: transparent; visibility: visible; width: 14px; height: 12px; background-position: -1128px 0pt; background-repeat: no-repeat; text-decoration: none; vertical-align: top; display: inline;" src="http://i.ixnp.com/images/v3.83/t.gif" /&gt;&lt;/a&gt; - Data Pipeline provides data conversion, data processing, and data transformation. The toolkit has readers and writers for common file formats (CSV, Excel, Fixed-width, JDBC) along with decorators that can be chained together to process and transform data (filter, remove duplicates, lookups, validation). &lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
        </description>
      
      
    
    
    
    <category>Java技术</category>
    
    <comments>http://www.searchfull.net:80/blog/2009/05/30/1243654048232.html#comments</comments>
    <guid isPermaLink="true">http://www.searchfull.net:80/blog/2009/05/30/1243654048232.html</guid>
    <pubDate>Sat, 30 May 2009 03:27:28 GMT</pubDate>
  </item>
  
  <item>
    <title>Ubuntu9.04安装配置</title>
    <link>http://www.searchfull.net:80/blog/2009/05/30/1243653558725.html</link>
    
      
        <description>
          &lt;div style="margin: 13pt 0cm 13pt 21pt; text-indent: -21pt;"&gt;&lt;font size="4"&gt;下面描述的是&lt;a href="http://www.searchfull.net/blog/2009/05/30/1243653558725.html"&gt;Ubuntu9.04服务器版安装配置&lt;/a&gt;：&lt;br /&gt;
&lt;/font&gt;&lt;strong&gt;&lt;font size="4"&gt; &lt;a name="_Toc228441838"&gt;&lt;span&gt;&lt;span&gt;&lt;font size="5"&gt;1.&lt;/font&gt;&lt;span style="font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;&lt;font size="5"&gt;网络设置：&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 13.5pt; font-family: 宋体;"&gt;编辑 interfaces文件。&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 13.5pt; font-family: 宋体;"&gt;$ sudo vi /etc/network/interfaces&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 13.5pt; font-family: 宋体;"&gt;eth0&lt;/span&gt;&lt;span style="font-size: 13.5pt; font-family: 宋体;"&gt;配置如下：&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 13.5pt; font-family: 宋体;"&gt;auto eth0&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 13.5pt; font-family: 宋体;"&gt;&amp;nbsp; address 192.168.1.123&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 13.5pt; font-family: 宋体;"&gt;&amp;nbsp; netmask 255.255.255.0&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 13.5pt; font-family: 宋体;"&gt;&amp;nbsp; gateway 192.168.1.1&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 13.5pt; font-family: 宋体;"&gt;保存退出后，使用重启networking命令让新配置生效。&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 13.5pt; font-family: 宋体;"&gt;$ sudo /etc/init.d/networking restart&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 13.5pt; font-family: 宋体;"&gt;也可以通过如下命令重启网卡，让新配置生效,好处是不影响其他网络接口。&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 13.5pt; font-family: 宋体;"&gt;$ sudo ifdown eth0&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 13.5pt; font-family: 宋体;"&gt;$ sudo ifup eth0&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 13.5pt; font-family: 宋体;"&gt;如果只是要临时改变IP地址，则不用修改interface.只用ifconfig使用即可，不过当系统重启动后，系统后会恢复interfaces中的配置上。&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 13.5pt; font-family: 宋体;"&gt;$ sudo ifconfig eth0 192.168.1.111 netmask 255.255.255.0&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="宋体"&gt;设置DNS：&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;font face="宋体"&gt;$ sudo vi /etc/resolv.conf&lt;/font&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="宋体"&gt;nameserver 61.235.70.252&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="宋体"&gt;nameserver 211.98.4.1&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="margin: 13pt 0cm 13pt 21pt; text-indent: -21pt;"&gt;&lt;strong&gt;&lt;font size="4"&gt;&lt;a name="_Toc228441839"&gt;&lt;span&gt;&lt;span&gt;&lt;font size="5"&gt;2.&lt;/font&gt;&lt;span style="font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;&lt;font size="5"&gt;更新源：&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;font face="宋体"&gt;$ sudo apt-get update&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="宋体"&gt;中文操作系统环境和中文输入法，操作系统在连上互联网后会自动提示安装中文环境和中文输入法。&lt;/font&gt;&lt;/div&gt;
&lt;div style="margin: 13pt 0cm 13pt 21pt; text-indent: -21pt;"&gt;&lt;strong&gt;&lt;font size="4"&gt;&lt;a name="_Toc228441840"&gt;&lt;span&gt;&lt;span&gt;&lt;font size="5"&gt;3.&lt;/font&gt;&lt;span style="font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;font size="5"&gt;&lt;span style="font-family: 宋体;"&gt;安装&lt;/span&gt;telnet&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="宋体"&gt;1. sudo apt-get install xinetd telnetd &lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="宋体"&gt;2. 安装成功后，系统也会有相应提示（好象7.10才有，6.10就没看到） &lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="宋体"&gt;　　sudo vi /etc/inetd.conf并加入以下一行 &lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="宋体"&gt;　　telnet stream tcp nowait telnetd /usr/sbin/tcpd /usr/sbin/in.telnetd &lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="宋体"&gt;3. sudo vi /etc/xinetd.conf并加入以下内容： &lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;font face="宋体"&gt;# Simple configuration file for xinetd&lt;/font&gt;&lt;/code&gt;&lt;br /&gt;
&lt;font face="宋体"&gt;&lt;code&gt;#&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;# Some defaults, and include /etc/xinetd.d/&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;defaults&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;{&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;# Please note that you need a log_type line to be able to use log_on_success&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;# and log_on_failure. The default is the following :&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;# log_type = SYSLOG daemon info&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;instances = 60&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;log_type = SYSLOG authpriv&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;log_on_success = HOST PID&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;log_on_failure = HOST&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;cps = 25 30&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;}&lt;/code&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="宋体"&gt;　　includedir /etc/xinetd.d &lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="宋体"&gt;4. sudo vi /etc/xinetd.d/telnet并加入以下内容： &lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;code&gt;&lt;font face="宋体"&gt;# default: on&lt;/font&gt;&lt;/code&gt;&lt;br /&gt;
&lt;font face="宋体"&gt;&lt;code&gt;# description: The telnet server serves telnet sessions; it uses&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;# unencrypted username/password pairs for authentication.&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;service telnet&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;{&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;disable = no&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;flags = REUSE&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;socket_type = stream&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;wait = no&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;user = root&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;server = /usr/sbin/in.telnetd&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;log_on_failure += USERID&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;}&lt;/code&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="宋体"&gt;5. 重启机器或重启网络服务sudo /etc/init.d/xinetd restart &lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="margin: 13pt 0cm 13pt 21pt; text-indent: -21pt;"&gt;&lt;strong&gt;&lt;font size="4"&gt;&lt;a name="_Toc228441841"&gt;&lt;span&gt;&lt;span&gt;&lt;font size="5"&gt;4.&lt;/font&gt;&lt;span style="font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;&lt;font size="5"&gt;设置语言环境：&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;/etc/environment&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;文件如下： &lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;strong&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;代码:&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;PATH=&amp;quot;/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games&amp;quot;&lt;br /&gt;
LANG=&amp;quot;zh_CN.GBK&amp;quot;&lt;br /&gt;
LANGUAGE=&amp;quot;zh_CN:zh:en_US:en&amp;quot;&lt;br /&gt;
LC_CTYPE=zh_CN.GBK&lt;br /&gt;
LC_ALL=zh_CN.GBK&lt;br /&gt;
GST_ID3_TAG_ENCODING=GBK&lt;br /&gt;
ID3_TAG_ENCODING=GBK&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;#sudo vi /etc/profile &lt;span style="font-family: 宋体;"&gt;文件&lt;/span&gt; &lt;br /&gt;
&lt;span style="font-family: 宋体;"&gt;在最后加入一句&lt;/span&gt; &lt;br /&gt;
export LANG=en_US&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="margin: 13pt 0cm 13pt 21pt; text-indent: -21pt;"&gt;&lt;strong&gt;&lt;font size="4"&gt;&lt;a name="_Toc228441842"&gt;&lt;span&gt;&lt;span&gt;&lt;font size="5"&gt;5.&lt;/font&gt;&lt;span style="font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;font size="5"&gt;&lt;span style="font-family: 宋体;"&gt;安装&lt;/span&gt;vsftpd&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10.5pt;"&gt;&lt;font face="宋体"&gt;输入：&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="宋体"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sudo apt-get install vsftpd &lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family: 宋体;"&gt;如果没换源可能会提示你使用光盘，插入光盘&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;font face="宋体"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.old &lt;/font&gt;&lt;/div&gt;
&lt;div style="text-indent: 24pt;"&gt;&lt;font face="宋体"&gt;然后可以改动了： &lt;/font&gt;&lt;/div&gt;
&lt;div style="text-indent: 24pt;"&gt;&lt;font face="宋体"&gt;sudo vi /etc/vsftpd.conf&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="宋体"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #不让匿名用户使用 &lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="宋体"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #anonymous_enable=YES &lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="宋体"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #本地用户可用 &lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="宋体"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; local_enable=YES &lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="宋体"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #可用写操作 &lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="宋体"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; write_enable=YES &lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="宋体"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #不需要显示某目录下文件信息 &lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="宋体"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #dirmessage_enable=YES &lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="宋体"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #加点banner提示 &lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="宋体"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ftpd_banner=Hello~~ &lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="宋体"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #FTP&lt;/font&gt;&lt;a href="http://server.it168.com/" target="_blank" title="服务器"&gt;&lt;span style="color: black;"&gt;&lt;span&gt;&lt;font face="宋体"&gt;服务器&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="宋体"&gt;最大承载用户 &lt;/font&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="宋体"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; max_clients=100 &lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family: 宋体;"&gt;启动&lt;/span&gt;ftp&lt;span style="font-family: 宋体;"&gt;服务&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #sudo service vsftpd start&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family: 宋体;"&gt;安装&lt;/span&gt;zip&lt;span style="font-family: 宋体;"&gt;：&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin: 0cm 0cm 0pt 21pt;"&gt;#sudo apt-get &lt;em&gt;install&lt;/em&gt; zip &lt;em&gt;unzip&lt;/em&gt;&lt;/div&gt;
&lt;div&gt;&lt;em&gt;&amp;nbsp;&lt;/em&gt;&lt;/div&gt;
&lt;div&gt;&lt;em&gt;&amp;nbsp;&lt;/em&gt;&lt;/div&gt;
&lt;div style="margin: 13pt 0cm 13pt 21pt; text-indent: -21pt;"&gt;&lt;strong&gt;&lt;font size="4"&gt;&lt;a name="_Toc231399923"&gt;&lt;em&gt;&lt;span style="font-style: normal;"&gt;&lt;font size="5"&gt;6.&lt;/font&gt;&lt;span style="font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;font size="5"&gt;&lt;em&gt;&lt;span style="font-style: normal; font-family: 宋体;"&gt;设置&lt;/span&gt;&lt;/em&gt;&lt;em&gt;&lt;span style="font-style: normal;"&gt;Java&lt;/span&gt;&lt;/em&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="5"&gt;&lt;em&gt;&lt;span style="font-style: normal; font-family: 宋体;"&gt;环境&lt;/span&gt;&lt;/em&gt;&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="宋体"&gt;方法有三：&lt;/font&gt;&lt;br /&gt;
&lt;font face="宋体"&gt;一、临时设置&lt;/font&gt;&lt;br /&gt;
&lt;font face="宋体"&gt;export JAVA_HOME= /home/liupinghua/jdk1.5.0_18&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="宋体"&gt;二、当前用户的全局设置&lt;/font&gt;&lt;br /&gt;
&lt;font face="宋体"&gt;打开~/.bashrc，添加行：&lt;/font&gt;&lt;br /&gt;
&lt;font face="宋体"&gt;export JAVA_HOME= /home/liupinghua/jdk1.5.0_18&lt;br /&gt;
&lt;/font&gt;&lt;font face="宋体"&gt;注销&lt;/font&gt;&lt;br /&gt;
&lt;font face="宋体"&gt;这样每次以此用户登录Ubuntu，该环境变量都会生效。&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="宋体"&gt;三、所有用户的全局设置&lt;/font&gt;&lt;br /&gt;
&lt;font face="宋体"&gt;$ vi /etc/profile &lt;br /&gt;
&lt;/font&gt;&lt;font face="宋体"&gt;在里面加入：&lt;/font&gt;&lt;br /&gt;
&lt;font face="宋体"&gt;export JAVA_HOME= /home/liupinghua/jdk1.5.0_18&lt;br /&gt;
&lt;/font&gt;&lt;font face="宋体"&gt;注销&lt;/font&gt;&lt;br /&gt;
&lt;font face="宋体"&gt;这样不管是以哪个用户登录，该环境变量都会生效。&lt;/font&gt;&lt;/div&gt;
&lt;div style="margin: 0cm 0cm 0pt 21pt;"&gt;&lt;em&gt;&amp;nbsp;&lt;/em&gt;&lt;/div&gt;
&lt;div style="margin: 13pt 0cm 13pt 21pt; text-indent: -21pt;"&gt;&lt;strong&gt;&lt;font size="4"&gt;&lt;a name="_Toc231399924"&gt;&lt;em&gt;&lt;span style="font-style: normal;"&gt;&lt;font size="5"&gt;7.&lt;/font&gt;&lt;span style="font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;font size="5"&gt;&lt;em&gt;&lt;span style="font-style: normal; font-family: 宋体;"&gt;启动&lt;/span&gt;&lt;/em&gt;&lt;em&gt;&lt;span style="font-style: normal;"&gt;Tomcat&lt;/span&gt;&lt;/em&gt;&lt;/font&gt;&lt;/a&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="text-indent: 21pt;"&gt;&lt;em&gt;&lt;span style="font-style: normal;"&gt;#sudo ./startup.sh&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;
&lt;div style="text-indent: 21pt;"&gt;&lt;em&gt;&amp;nbsp;&lt;/em&gt;&lt;/div&gt;
&lt;div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt;"&gt;&lt;em&gt;&lt;span style="font-style: normal; font-family: Wingdings;"&gt;l&lt;span style="font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;em&gt;&lt;span style="font-style: normal; font-family: 宋体;"&gt;设置开机自动启动&lt;/span&gt;&lt;/em&gt;&lt;em&gt;&lt;span style="font-style: normal;"&gt;Tomcat&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;
&lt;div&gt;&lt;em&gt;&amp;nbsp;&lt;/em&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;&amp;nbsp; 1&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;）、使用tomcat自带的jsvc工具，生成脚本使tomcat自动启动&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;
&lt;div align="left" style="background: rgb(230, 230, 230) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;&lt;span style="color: blue;"&gt;cd&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;tomcat/bin&lt;br /&gt;
tar&amp;nbsp;-zxvf&amp;nbsp;jsvc.tar.gz&lt;br /&gt;
&lt;/span&gt;&lt;span style="color: blue;"&gt;cd&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;jsvc-src&lt;br /&gt;
chmod&amp;nbsp;+x&amp;nbsp;configure&lt;br /&gt;
./configure&amp;nbsp;--with-java=$JAVA_HOME&lt;br /&gt;
make&lt;br /&gt;
&lt;/span&gt;&lt;span style="color: blue;"&gt;cd&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;native&lt;br /&gt;
gedit&amp;nbsp;Tomcat5.sh&lt;br /&gt;
--&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; color: black; font-family: 宋体;"&gt;根据需要修改下面文件的参数&lt;/span&gt;&lt;/div&gt;
&lt;div align="left" style="background: rgb(230, 230, 230) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;&lt;span style="color: black;"&gt;#&amp;nbsp;Adapt&amp;nbsp;the&amp;nbsp;following&amp;nbsp;lines&amp;nbsp;to&amp;nbsp;your&amp;nbsp;configuration&lt;br /&gt;
JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun&lt;br /&gt;
CATALINA_HOME=/home/user/tomcat/&lt;br /&gt;
DAEMON_HOME=/home/user/tomcat/&lt;br /&gt;
TOMCAT_USER=user&lt;br /&gt;
#&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; color: black; font-family: 宋体;"&gt;为tomcat设置一个启动用户，非root用户&lt;br /&gt;
#出于安全性考虑，如果是root用户，jsp执行权限太高，有被注入的问题&lt;br /&gt;
&lt;br /&gt;
#&amp;nbsp;for&amp;nbsp;multi&amp;nbsp;instances&amp;nbsp;adapt&amp;nbsp;those&amp;nbsp;lines.&lt;br /&gt;
TMP_DIR=/var/tmp&lt;br /&gt;
PID_FILE=/var/run/jsvc.pid&lt;br /&gt;
CATALINA_BASE=/home/user/tomcat/&lt;br /&gt;
&lt;br /&gt;
#CATALINA_OPTS=&amp;quot;-Djava.library.path=/home/jfclere/jakarta-tomcat-connectors/jni/native/.libs&amp;quot;&lt;br /&gt;
CLASSPATH=&lt;br /&gt;
$JAVA_HOME/lib/tools.jar:&lt;br /&gt;
$CATALINA_HOME/bin/commons-daemon.jar:&lt;br /&gt;
$CATALINA_HOME/bin/bootstrap.jar&lt;br /&gt;
&lt;br /&gt;
case&amp;nbsp;&amp;quot;$1&amp;quot;&amp;nbsp;in&lt;br /&gt;
&amp;nbsp;&amp;nbsp;start)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;Start&amp;nbsp;Tomcat&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$DAEMON_HOME/bin/jsvc-src/jsvc&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-user&amp;nbsp;$TOMCAT_USER&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-home&amp;nbsp;$JAVA_HOME&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-Dcatalina.home=$CATALINA_HOME&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-Dcatalina.base=$CATALINA_BASE&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-Djava.io.tmpdir=$TMP_DIR&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-wait&amp;nbsp;10&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-outfile&amp;nbsp;$CATALINA_HOME/logs/catalina.out&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-errfile&amp;nbsp;'&amp;amp;1'&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$CATALINA_OPTS&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-cp&amp;nbsp;$CLASSPATH&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;org.apache.catalina.startup.Bootstrap&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;To&amp;nbsp;get&amp;nbsp;a&amp;nbsp;verbose&amp;nbsp;JVM&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#-verbose&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;To&amp;nbsp;get&amp;nbsp;a&amp;nbsp;debug&amp;nbsp;of&amp;nbsp;jsvc.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#-debug&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;exit&amp;nbsp;$?&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12pt; color: green; font-family: 宋体;"&gt;;;&lt;br /&gt;
&lt;/span&gt;&lt;span style="font-size: 12pt; color: black; font-family: 宋体;"&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;stop)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;Stop&amp;nbsp;Tomcat&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$DAEMON_HOME/bin/jsvc-src/jsvc&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-stop&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;org.apache.catalina.startup.Bootstrap&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;exit&amp;nbsp;$?&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12pt; color: green; font-family: 宋体;"&gt;;;&lt;br /&gt;
&lt;/span&gt;&lt;span style="font-size: 12pt; color: black; font-family: 宋体;"&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;*)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;&amp;quot;Usage&amp;nbsp;tomcat.sh&amp;nbsp;start/stop&amp;quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;exit&amp;nbsp;1&lt;/span&gt;&lt;span style="font-size: 12pt; color: green; font-family: 宋体;"&gt;;;&lt;br /&gt;
&lt;/span&gt;&lt;span style="font-size: 12pt; color: black; font-family: 宋体;"&gt;esac&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;将修改的文件复制到/etc/init.d/中&lt;br /&gt;
cp Tomcat5.sh /etc/init.d/tomcat.sh&lt;br /&gt;
修改执行权限&lt;br /&gt;
sudo chmod +x tomcat.sh&lt;br /&gt;
这样tomcat就会随着系统自动启用&lt;br /&gt;
测试：&lt;br /&gt;
sudo /etc/init.d/tomcat.sh start&lt;br /&gt;
sudo /etc/init.d/tomcat.sh stop&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;em&gt;&amp;nbsp;&lt;/em&gt;&lt;/div&gt;
&lt;div&gt;&lt;em&gt;&amp;nbsp;&lt;/em&gt;&lt;/div&gt;
&lt;div style="margin: 13pt 0cm 13pt 21pt; text-indent: -21pt;"&gt;&lt;strong&gt;&lt;font size="4"&gt;&lt;a name="_Toc231399925"&gt;&lt;em&gt;&lt;span style="font-style: normal;"&gt;&lt;font size="5"&gt;8.&lt;/font&gt;&lt;span style="font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;em&gt;&lt;span style="font-style: normal; font-family: 宋体;"&gt;&lt;font size="5"&gt;加入第二块硬盘&lt;/font&gt;&lt;/span&gt;&lt;/em&gt;&lt;/a&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;strong&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;　　给硬盘分区&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;　　在slackware下有两个分区软件fdisk和cfdisk&lt;br /&gt;
&lt;br /&gt;
例如我们已经有一个硬盘了，现在添加另一个硬盘到系统&lt;br /&gt;
&lt;br /&gt;
那么我们根据命名规则知道这个新添加的硬盘应该是hdb。我们用下面命令给硬盘分区&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;fdisk /dev/hdb&lt;/span&gt;&lt;/div&gt;
&lt;div align="left" style="margin: 0cm 0cm 12pt;"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;　　你也可以用cfdisk来分区，命令如下&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;cfdisk /dev/hdb&lt;/span&gt;&lt;/div&gt;
&lt;div align="left" style="margin: 0cm 0cm 12pt;"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;strong&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;　　格式化硬盘&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;　　格式化成ext3格式&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;mkfs.ext3 /dev/hdb1&lt;/span&gt;&lt;/div&gt;
&lt;div align="left" style="margin: 0cm 0cm 12pt;"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;　　格式化成reiserfs的格式&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;mkfs.reiserfs /dev/hdb1&lt;/span&gt;&lt;/div&gt;
&lt;div align="left" style="margin: 0cm 0cm 12pt;"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;strong&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;　　让硬盘启动自动挂载&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;　　例如挂载/dev/hdb1分区到/mnt/hd目录下&lt;br /&gt;
&lt;br /&gt;
用vi编辑/etc/fstab文件，加入如下内容&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;/dev/dhb1&amp;nbsp; /mnt/hd&amp;nbsp; reiserfs defaults&amp;nbsp; 1&amp;nbsp; 1&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;em&gt;&amp;nbsp;&lt;/em&gt;&lt;/div&gt;
&lt;div&gt;&lt;em&gt;&amp;nbsp;&lt;/em&gt;&lt;/div&gt;
&lt;div style="margin: 13pt 0cm 13pt 21pt; text-indent: -21pt;"&gt;&lt;strong&gt;&lt;font size="4"&gt;&lt;a name="_Toc231399926"&gt;&lt;em&gt;&lt;span style="font-style: normal;"&gt;&lt;font size="5"&gt;9.&lt;/font&gt;&lt;span style="font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;em&gt;&lt;span style="font-style: normal; font-family: 宋体;"&gt;&lt;font size="5"&gt;中文环境问题&lt;/font&gt;&lt;/span&gt;&lt;/em&gt;&lt;/a&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;在/etc/environment这个文件里面可以设置全局的LANG变量&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;p&gt;
&lt;table width="100%" cellspacing="5" cellpadding="0" border="0" style="width: 100%;"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="border: medium none rgb(236, 233, 216); padding: 0.75pt; background-color: transparent;"&gt;
            &lt;div align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;$ cat /etc/environment &lt;br /&gt;
            PATH=&amp;quot;/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11: &lt;br /&gt;
            /usr/games&amp;quot; &lt;br /&gt;
            LANG=&amp;quot;zh_CN.UTF-8&amp;quot; &lt;br /&gt;
            LANGUAGE=&amp;quot;zh_CN:zh:en_US:en&amp;quot;&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;div align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;但是当我们sudo -i进root用户时, LANG又变成了C&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;# locale&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;LANG=C&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;LANGUAGE=C&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;LC_CTYPE=&amp;quot;C&amp;quot;&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;LC_NUMERIC=&amp;quot;C&amp;quot;&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;LC_TIME=&amp;quot;C&amp;quot;&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;LC_COLLATE=&amp;quot;C&amp;quot;&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;LC_MONETARY=&amp;quot;C&amp;quot;&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;LC_MESSAGES=&amp;quot;C&amp;quot;&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;LC_PAPER=&amp;quot;C&amp;quot;&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;LC_NAME=&amp;quot;C&amp;quot;&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;LC_ADDRESS=&amp;quot;C&amp;quot;&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;LC_TELEPHONE=&amp;quot;C&amp;quot;&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;LC_MEASUREMENT=&amp;quot;C&amp;quot;&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;LC_IDENTIFICATION=&amp;quot;C&amp;quot;&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;LC_ALL=&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;这是root的~/.profile里面的设置造成:&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;~# cat .profile&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;# Installed by Debian Installer:&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;# &amp;nbsp;no localization for root because zh_CN.UTF-8&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;# &amp;nbsp;cannot be properly displayed at the Linux console&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;LANG=C&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;LANGUAGE=C&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;p&gt;&lt;span style="font-size: 12pt; font-family: 宋体;"&gt;因为有些情况下显示有问题, 所有root中强制设置成了LANG=C.&lt;/span&gt;&lt;/p&gt;
        </description>
      
      
    
    
    
    <category>UNIX</category>
    
    <comments>http://www.searchfull.net:80/blog/2009/05/30/1243653558725.html#comments</comments>
    <guid isPermaLink="true">http://www.searchfull.net:80/blog/2009/05/30/1243653558725.html</guid>
    <pubDate>Sat, 30 May 2009 03:19:18 GMT</pubDate>
  </item>
  
  </channel>
</rss>
