﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-断点-随笔分类-WebLogic 10 知识</title><link>http://www.blogjava.net/tfzhu/category/45706.html</link><description>每天进步一点点！</description><language>zh-cn</language><lastBuildDate>Sun, 25 Jul 2010 13:35:36 GMT</lastBuildDate><pubDate>Sun, 25 Jul 2010 13:35:36 GMT</pubDate><ttl>60</ttl><item><title>WebLogic JDBC-JDBC 事务</title><link>http://www.blogjava.net/tfzhu/archive/2010/07/25/327094.html</link><dc:creator>断点</dc:creator><author>断点</author><pubDate>Sun, 25 Jul 2010 13:18:00 GMT</pubDate><guid>http://www.blogjava.net/tfzhu/archive/2010/07/25/327094.html</guid><wfw:comment>http://www.blogjava.net/tfzhu/comments/327094.html</wfw:comment><comments>http://www.blogjava.net/tfzhu/archive/2010/07/25/327094.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tfzhu/comments/commentRss/327094.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tfzhu/services/trackbacks/327094.html</trackback:ping><description><![CDATA[<p><span style="font-size: 12pt"><span style="color: #0000ff"><span style="font-size: 12pt">1、当处理多个访问相同数据的用户时，通常可能出现三种问题:<br />
</span></span>脏读<br />
当应用程序使用了被另一个应用程序修改过的数据，而这个数据处于未提交状态时，就会发生脏读。第二个应用程序随后会请求回滚被其修改的数据。第一个事务使用的数据就会</span><span style="font-size: 12pt">被损坏，或者&#8220;变脏&#8221;。<br />
<br />
不可重复的读<br />
当一个事务获得了数据，而该数据随后被一个单独的事务所更改时，若第一个事务再次读取更改后的数据，就会发生不可重复的读。这样，第一个事务进行了一个不可重复的读。<br />
<br />
虚读<br />
当事务通过某种查询获取了数据，另一个事务修改了部分该数据，原来的事务第二次获取该数据时，就会发生虚读。第一个事务现在会有不同的结果集，它可能包含虚读。</span></p>
<p><span style="font-size: 12pt">&nbsp;</span></p>
<p><span style="font-size: 12pt"><span style="color: #0000ff"><span style="font-size: 12pt">2、Java.sql.Connection接口定义的隔离级别</span></span><br />
TRANSACTION_NONE 说明不支持事务<br />
TRANSACTION_READ_UNCOMMITTED 说明在提交前一个事务可以看到另一个事务的变化。这样脏读、不可重复的读和虚读都是允许的。<br />
TRANSACTION_READ_COMMITTED 说明读取未提交的数据是不允许的。这个级别仍然允许不可重复的读和虚读产生。<br />
TRANSACTION_REPEATABLE_READ 说明事务保证能够再次读取相同的数据而不会失败，但虚读仍然会出现。<br />
TRANSACTION_SERIALIZABLE 是最高的事务级别，它防止脏读、不可重复的读和虚读。 </span></p>
<p><br />
<span style="font-size: 12pt"><span style="color: #0000ff"><span style="font-size: 12pt">3、事务的隔离级别</span></span><br />
在J2EE中，通过java.sql.Connection接口设置事务隔离级别，这一接口为连接的隔离级别提供了getter()和setter()<br />
Int getTransactionIsolation() throws SQLException<br />
void setTransactionIsolation() throws SQLException<br />
Connection对象负责事务，一旦收到事务请求，事务将自动提交，因为Connection对象已定义为自动提交方式，可通过setAutoCommit(false)禁用自动提交模式<br />
另外java.sql.DatabaseMetaData接口为数据存储提供支持的隔离级别查找方法：getTransactionIsolation(),supportsTransactionIsolationLevel()<br />
对多个库操作的分布式事务必须在所有库中执行同一个隔离级别，否则会出现意想不到的结果</span></p>
<p><br />
<span style="font-size: 12pt"><span style="color: #0000ff"><span style="font-size: 12pt">4、事务提交和回滚</span></span><br />
为了完成提交事务和回滚事务，JDBC API包括了两个方法作为 Connection 接口的一部分。若将 Connection 对象名称指定为 con，通过调用 con.commit(); 可以保存程序状态；</span></p>
<p><span style="font-size: 12pt">通过调用 con.rollback(); 可以返回到以前保存的状态。如果数据库实际运行操作时有错误发生，这两个方法都会抛出 SQLExceptions，所以您需要在 try ... catch 块中包装</span><span style="font-size: 12pt">它们。</span></p>
<p><br />
<span style="font-size: 12pt"><span style="color: #0000ff"><span style="font-size: 12pt">5、批处理和事务</span></span><br />
缺省情况下，JDBC 驱动程序运行在被称为自动提交的模式下,可禁用自动提交模式<br />
con.setAutoCommit(false);<br />
批处理操作中通过在一次单独的操作（或批处理）中执行多个数据库更新操作<br />
{con.setAutoCommit(false) ; <br />
Statement stmt = connection.createStatement() ; stmt.addBatch("INSERT INTO people VALUES('Joe Jackson', 0.325, 25, 105) ; stmt.addBatch("INSERT INTO people </span></p>
<p><span style="font-size: 12pt">VALUES('Jim Jackson', 0.349, 18, 99) ; stmt.addBatch("INSERT INTO people VALUES('Jack Jackson', 0.295, 15, 84) ; <br />
int[] updateCounts = stmt.executeBatch() ; con.commit() ; </span></p>
<img src ="http://www.blogjava.net/tfzhu/aggbug/327094.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tfzhu/" target="_blank">断点</a> 2010-07-25 21:18 <a href="http://www.blogjava.net/tfzhu/archive/2010/07/25/327094.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>WebLogic JDBC-WLS JDBC的管理</title><link>http://www.blogjava.net/tfzhu/archive/2010/07/25/327093.html</link><dc:creator>断点</dc:creator><author>断点</author><pubDate>Sun, 25 Jul 2010 13:16:00 GMT</pubDate><guid>http://www.blogjava.net/tfzhu/archive/2010/07/25/327093.html</guid><wfw:comment>http://www.blogjava.net/tfzhu/comments/327093.html</wfw:comment><comments>http://www.blogjava.net/tfzhu/archive/2010/07/25/327093.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tfzhu/comments/commentRss/327093.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tfzhu/services/trackbacks/327093.html</trackback:ping><description><![CDATA[<p><span style="font-size: 12pt">Initial Capacity：池的连接数量，在启动时创建<br />
Maximun Capacity：这是池可以打开的连接的最大数量<br />
Capacity Increment：成组地打开增量连接<br />
Login Delay Seconds：池驱动程序在启动时打开每一个新的连接需要等待的时间<br />
Refresh Period(刷新周期)<br />
Supports Local Transaction：只用于XA连接池<br />
Allow Shrinking and Shrink Period(允许收缩和收缩期)：如果池的数量太大，超过了初始，且如果任何一个连接在收缩期内空闲，那么空闲的连接将在收缩期末关闭</span></p>
<p><br />
<span style="font-size: 12pt">监控JDBC连接池：<br />
Waiters Hight字段指明了最多有多少客户等待数据库连接<br />
Waiters字段告诉你当前有多少客户正在等待连接<br />
Connections Hight字段给出最大的并发连接数。<br />
Wait Seconds Hight字段显示了客户等待数据库连接的最长时间<br />
</span></p>
<img src ="http://www.blogjava.net/tfzhu/aggbug/327093.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tfzhu/" target="_blank">断点</a> 2010-07-25 21:16 <a href="http://www.blogjava.net/tfzhu/archive/2010/07/25/327093.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>WebLogic JDBC-JDBC Connection</title><link>http://www.blogjava.net/tfzhu/archive/2010/07/25/327092.html</link><dc:creator>断点</dc:creator><author>断点</author><pubDate>Sun, 25 Jul 2010 13:13:00 GMT</pubDate><guid>http://www.blogjava.net/tfzhu/archive/2010/07/25/327092.html</guid><wfw:comment>http://www.blogjava.net/tfzhu/comments/327092.html</wfw:comment><comments>http://www.blogjava.net/tfzhu/archive/2010/07/25/327092.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tfzhu/comments/commentRss/327092.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tfzhu/services/trackbacks/327092.html</trackback:ping><description><![CDATA[<p><span style="font-size: 12pt"><span style="color: red"><span style="font-size: 12pt; color: #0000ff">1、连接：<br />
</span></span>直接连接(direct connection)<br />
池连接(pooled connection)<br />
连接复用 ,避免了数据库连接频繁建立、关闭的开销 ；<br />
对JDBC中的原始连接进行了封装 ,隔离了应用的本身的处理逻辑和具体数据库访问逻辑 。<br />
</span><br />
<span style="font-size: 12pt"><span style="color: #0000ff"><span style="font-size: 12pt">2、什么是连接池？</span></span><br />
连接池是在Weblogic启动时候预先建立的数据库连接，由Weblogic在运行时负责维护。<br />
可以减少程序每次数据库请求都要新创建数据库物理连接的时间及资源。<br />
对数据库属性的更改只需通过控制台进行，不需改动客户端代码</span></p>
<p><span style="font-size: 12pt">MultiPool<br />
可以使用MultiPool为高用户访问量提供数据库负载均衡，它使用简单的循环算法将连接请求平衡分配MultiPool中的每一个池。</span></p>
<p><span style="font-size: 12pt">多池的作用：为防数据库连接失败提供冗余,备份或高有效池；为高用户访问量提供数据库负载均衡，负载均衡池。<br />
备份池：一个备份池由一个有顺序的连接池列表组成。<br />
负载均衡池：使用简单的循环算法将连接请求平衡地分到在列表中的每一个池。<br />
<br />
<span style="color: #0000ff"><span style="font-size: 12pt">3、</span><span style="font-size: 12pt">DataSource</span></span></span><span style="font-size: 12pt"><br />
数据源对应一个数据库连接池。客户程序可以通过数据源绑定的JNDI名字得到该数据源的引用，并通过数据源对象得到数据库连接。</span></p>
<p><span style="font-size: 12pt">JDBC的API：<br />
java.sql.DriverManager&nbsp;<br />
java.sql.Connection&nbsp;<br />
java.sql.ResultSet&nbsp;<br />
Javax.sql.RowSet:<br />
javax.sql.Statement&nbsp;　<br />
java.sql.PreparedStatement:用于执行预编译的SQL语句<br />
<span style="color: #0000ff"><span style="color: #008000">java.sql.CallableStatement:用于执行在数据库中定义的存储过程&nbsp;</span>　</span>　<br />
Javax.sql.DataSource是java.sql.Connectioin对象的工厂并使用一个JNDI服务注册它.</span></p>
<img src ="http://www.blogjava.net/tfzhu/aggbug/327092.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tfzhu/" target="_blank">断点</a> 2010-07-25 21:13 <a href="http://www.blogjava.net/tfzhu/archive/2010/07/25/327092.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>WebLogic JDBC-JDBC Driver</title><link>http://www.blogjava.net/tfzhu/archive/2010/07/25/327091.html</link><dc:creator>断点</dc:creator><author>断点</author><pubDate>Sun, 25 Jul 2010 13:11:00 GMT</pubDate><guid>http://www.blogjava.net/tfzhu/archive/2010/07/25/327091.html</guid><wfw:comment>http://www.blogjava.net/tfzhu/comments/327091.html</wfw:comment><comments>http://www.blogjava.net/tfzhu/archive/2010/07/25/327091.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tfzhu/comments/commentRss/327091.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tfzhu/services/trackbacks/327091.html</trackback:ping><description><![CDATA[<p><span style="font-size: 12pt"><span style="color: #0000ff"><span style="font-size: 12pt">1、Type 1类型驱动，JDBC-ODBC桥</span></span><br />
通常运行Windows平台，需要在客户端安装ODBC驱动，早期Java访问数据库的主要方式，效率较低。</span></p>
<p><span style="font-size: 12pt">适用于快速的原型系统，没有提供JDBC驱动的数据库如Access&nbsp;,由于包含多个驱动程序层，其性能一般不适合生产系统<br />
Java--&gt;JDBC-ODBC&nbsp;Bridge----&gt;JDBC-ODBC&nbsp;Library---&gt;ODBC&nbsp;Driver--&gt;Database<br />
驱动程序的类名称是 sun.jdbc.odbc.JdbcOdbcDriver<br />
JDBC URL 的形式为 jdbc:odbc:dsn(dsn 是使用 ODBC 管理员注册数据库的数据源名称)<br />
不是100%JAVA程序，与ODBC之间的接口采用非JAVA方式调用，因此不能在APPLET中使用<br />
{<br />
String url = "jdbc:odbc:jdbc" ; <br />
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); <br />
Connection con = DriverManager.getConnection(url, "java", "sun"); <br />
}</span></p>
<p><br />
<span style="font-size: 12pt; color: #0000ff">2、Type 2类型驱动，需要在客户端安装数据库的本地驱动，JDBC请求会转换为对数据库本地API的调用。</span></p>
<p><span style="font-size: 12pt">利用开发商提供的本地库来直接与数据库通信。<br />
Java--&gt;JDBC-Driver--&gt;DB Client Library--&gt;Database<br />
绕过了ODBC层，性能优于Type1<br />
也称为部分 Java 驱动程序，因为它们直接将 JDBC API 翻译成具体数据库的API<br />
使用第二种模型将开发者限制在数据库厂商的客户机库支持的客户机平台和操作系统<br />
Oracle的OCI驱动就属于Type2<br />
<br />
<span style="color: #0000ff"><span style="font-size: 12pt">3、</span><span style="font-size: 12pt">Type 3类型驱动，DBC请求通过网络服务器层实现，在网络服务器层可以实现负载均衡，连接池管理等。</span></span></span></p>
<p><span style="font-size: 12pt">第三种驱动程序是纯 Java 驱动程序，它将 JDBC API 转换成独立于数据库的协议。JDBC 驱动程序并没有直接和数据库进行通讯；它和一个中间件服务器通讯，然后这个中间件服</span><span style="font-size: 12pt">务器和数据库进行通讯。这种额外的中间层次提供了灵活性：可以用相同的代码访问不同的数据库，因为中间件服务器隐藏了 Java 应用程序的细节。要转到不同的数据库，您只</span><span style="font-size: 12pt">需在中间件服务器上改变参数。（有一点需要注意：中间件服务器必须支持您访问的数据库格式。） <br />
第三种驱动程序的缺点是，额外的中间层次可能有损整体系统性能。另一方面，如果应用程序需要和不同的数据库格式进行交互，第三种驱动程序是个有效的方法，因为不管底层</span><span style="font-size: 12pt">的数据库是什么，都使用同样的 JDBC 驱动程序。另外，因为中间件服务器可以安装在专门的硬件平台上，可以利用总的结果进行一些优化。 <br />
Java---&gt;Jdbc&nbsp;Driver(Type3&nbsp;jdbc&nbsp;driver)-----&gt;java&nbsp;middleware---&gt;JDBC&nbsp;Driver----&gt;Database<br />
Weblogic的Pool驱动程序就是一个Type3的JDBC驱动程序。</span></p>
<p><br />
<span style="font-size: 12pt"><span style="color: #0000ff"><span style="font-size: 12pt">4、Type 4类型驱动，为纯Java实现，不需要任何客户端设置。<br />
</span></span>OCI驱动程序利用Java本地化接口（JNI），通过Oracle客户端软件与数据库进行通讯。Thin驱动程序是纯Java驱动程序，它直接与数据库进行通讯。 <br />
<br />
</span><span style="font-size: 12pt"><span style="color: #0000ff"><span style="font-size: 12pt">JDBC应用的两种架构<br />
</span></span>两层架构：客户程序直接对数据库发起JDBC请求，Type1、2、4支持两层架构。<br />
多层架构：客户程序将JDBC请求发送到中间层，中间层再将请求发送到数据库。<br />
</span></p>
<img src ="http://www.blogjava.net/tfzhu/aggbug/327091.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tfzhu/" target="_blank">断点</a> 2010-07-25 21:11 <a href="http://www.blogjava.net/tfzhu/archive/2010/07/25/327091.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>调优简介</title><link>http://www.blogjava.net/tfzhu/archive/2010/07/25/327084.html</link><dc:creator>断点</dc:creator><author>断点</author><pubDate>Sun, 25 Jul 2010 09:02:00 GMT</pubDate><guid>http://www.blogjava.net/tfzhu/archive/2010/07/25/327084.html</guid><wfw:comment>http://www.blogjava.net/tfzhu/comments/327084.html</wfw:comment><comments>http://www.blogjava.net/tfzhu/archive/2010/07/25/327084.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tfzhu/comments/commentRss/327084.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tfzhu/services/trackbacks/327084.html</trackback:ping><description><![CDATA[<p><span style="font-size: 12pt">通常应用系统会根据用户数、并发数、用户的行为等等来确定具体的性能目标，如果确定应用程序不能满足性能目标，那么就需要优化、重构程序并调整JVM、应用服务器、数据库、</span><span style="font-size: 12pt">OS 或者改变硬件配置等等。<br />
<br />
</span><span style="font-size: 12pt"><span style="color: #0000ff"><span style="font-size: 12pt">影响Java 性能的主要因素：</span></span><br />
硬件，如CPU、内存、体系结构等等<br />
操作系统<br />
数据库系统<br />
JVM<br />
应用服务器<br />
数据库服务器<br />
网络环境<br />
应用架构及程序编写水平<br />
<br />
</span><span style="font-size: 12pt"><span style="color: #0000ff"><span style="font-size: 12pt">性能调整的步骤：</span></span><br />
1、 使用工具测试系统是否满足性能目标<br />
2、 发现性能瓶颈<br />
3、 假设瓶颈的原因<br />
4、 测试你的假设<br />
5、 如果假设成立，更改这一部分<br />
6、 测试确定更改是否可以提高性能，衡量性能提高的程度<br />
7、重复以上步骤，直到获得可以接受的性能。<br />
<br />
</span><span style="font-size: 12pt"><span style="color: #0000ff"><span style="font-size: 12pt">J2EE性能不好时的现象，主要表现在对客户端的请求响应很慢：</span></span><br />
一向很慢：应用的响应总是很慢，改变环境(如应用负载、数据库的连接池数量等等)，对响应时间的</span><span style="font-size: 12pt">影响不大。<br />
<br />
越来越慢：在相同的负载情况下，随着系统运行的时间的增长，系统越来越慢，这可能是系统已到达</span><span style="font-size: 12pt">极限或是系统死锁和错误引起的。<br />
<br />
低于负载时会越来越慢(Slower and slower under load):.<br />
<br />
偶尔的挂起或异常错误(Sporadic hangs or aberrant errors):有时这可能是由于负载的变化或其他</span><span style="font-size: 12pt">情况引起的可以预测的死锁(Foreseeable lock ups): 挂起或最初只有少量错误，但随着时间的推移</span><span style="font-size: 12pt">整个系统都锁上了，典型地这可能是为的适应"management by restarts.&#8220;<br />
<br />
突发性的混乱(Sudden chaos): 系统已运行了一段时间(如一个小时或可能是三、四天)，性能稳定并</span><span style="font-size: 12pt">可以接受, 突然没有任何理由，开始出错或死锁了。</span></p>
<p><br />
<span style="font-size: 12pt"><span style="color: #0000ff"><span style="font-size: 12pt">监控工具：</span></span><br />
WebLogic Server的控制台<br />
cpu<br />
内存<br />
JDBC<br />
辅助的工具<br />
Jprobe<br />
Optimizit<br />
Vtune<br />
TowerJ Performance</span></p>
<img src ="http://www.blogjava.net/tfzhu/aggbug/327084.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tfzhu/" target="_blank">断点</a> 2010-07-25 17:02 <a href="http://www.blogjava.net/tfzhu/archive/2010/07/25/327084.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>WebLogic 简介</title><link>http://www.blogjava.net/tfzhu/archive/2010/07/25/327080.html</link><dc:creator>断点</dc:creator><author>断点</author><pubDate>Sun, 25 Jul 2010 08:03:00 GMT</pubDate><guid>http://www.blogjava.net/tfzhu/archive/2010/07/25/327080.html</guid><wfw:comment>http://www.blogjava.net/tfzhu/comments/327080.html</wfw:comment><comments>http://www.blogjava.net/tfzhu/archive/2010/07/25/327080.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tfzhu/comments/commentRss/327080.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tfzhu/services/trackbacks/327080.html</trackback:ping><description><![CDATA[<p><span style="font-size: 12pt"><span style="color: #0000ff"><span style="font-size: 12pt">WebLogic Server 10的下载地址：<br />
http://www.oracle.com/technology/software/products/ias/htdocs/wls_main.html</span></span></span></p>
<p><span style="font-size: 12pt"><span style="color: #0000ff"><span style="font-size: 12pt">1、域（Domains）</span></span><br />
域是管理的单元或边界；<br />
作为一个单元来管理的，并相互关联的一组Weblogic 服务器资源被称为域；<br />
域由单一的管理服务器来管理。</span></p>
<p><span style="font-size: 12pt"><span style="color: #0000ff"><span style="font-size: 12pt">2、机器（Machines）</span></span><br />
可以对应到服务器所在的物理硬件；<br />
可以是Unix或non-Unix类型；<br />
可以用来远程管理和监控；</span></p>
<p><span style="font-size: 12pt"><span style="color: #0000ff"><span style="font-size: 12pt">3、服务器（Servers）</span></span><br />
服务器是执行在单一Java虚拟机 （JVM）中weblogic.Server类的实例。 <br />
服务器：最多和一个WLS机器关联；占用一定数量的RAM ；是多线程的。<br />
</span><br />
<span style="font-size: 12pt"><span style="color: #0000ff"><span style="font-size: 12pt">4、管理服务器(Administration server)</span></span><br />
对整个域的集中控制<br />
XML配置存储库的保存者<br />
日志信息的集中保存</span></p>
<p><span style="font-size: 12pt"><span style="color: #0000ff"><span style="font-size: 12pt">5、被管理服务器(Managed Server) <br />
</span></span>WebLogicServer的一个实例；<br />
从管理服务器远程加载配置信息&#8216;；<br />
可以是也可以不是集群的一部分。<br />
</span><br />
<span style="font-size: 12pt"><span style="color: #0000ff"><span style="font-size: 12pt">6、集群 （Clustering）<br />
</span></span>WebLogic集群技术指通过一组服务器共同 工作，在多台机器间复制应用表示层和应用逻辑层的能力，</span><span style="font-size: 12pt">实现关键业务系统的负载分布，消除个别故障点；集群用来实现负载均衡和容错。</span></p>
<img src ="http://www.blogjava.net/tfzhu/aggbug/327080.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tfzhu/" target="_blank">断点</a> 2010-07-25 16:03 <a href="http://www.blogjava.net/tfzhu/archive/2010/07/25/327080.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>J2EE技术及相关服务器介绍</title><link>http://www.blogjava.net/tfzhu/archive/2010/07/25/327079.html</link><dc:creator>断点</dc:creator><author>断点</author><pubDate>Sun, 25 Jul 2010 07:50:00 GMT</pubDate><guid>http://www.blogjava.net/tfzhu/archive/2010/07/25/327079.html</guid><wfw:comment>http://www.blogjava.net/tfzhu/comments/327079.html</wfw:comment><comments>http://www.blogjava.net/tfzhu/archive/2010/07/25/327079.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tfzhu/comments/commentRss/327079.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tfzhu/services/trackbacks/327079.html</trackback:ping><description><![CDATA[<p><span style="font-size: 12pt"><span style="color: #0000ff"><span style="font-size: 12pt">1、J2EE应用开发的核心组件。</span></span><br />
Servlet： 处理HTTP请求，产生响应。<br />
JSP：Java Server Pages ，同Servlet。其中包含了HTML和JSP标签、Java代码和其他信息。<br />
EJB：EJB服务端组件模型简化了具有交互性、扩展性和移植性中间组件的开发。EJB一般用于实现系统的业务逻辑。<br />
</span><br />
<span style="font-size: 12pt"><span style="color: #0000ff"><span style="font-size: 12pt">2、J2EE的相关技术</span></span><br />
核心：Servlet 、JSP、EJB<br />
数据库：JDBC<br />
命名和目录服务：JNDI<br />
消息服务：JMS( Java Message Service )<br />
Email：Java Mail<br />
分布式计算：RMI、RMI-IIOP<br />
事务：JTA（Java Transaction API）<br />
数据格式化：XML、HTML、XSL<br />
协议：TCP/IP、HTTP(S)、IIOP、SSL<br />
安全：JAAS<br />
<br />
</span><span style="font-size: 12pt"><span style="color: #0000ff"><span style="font-size: 12pt">3、J2EE的4层结构</span></span><br />
客户层（浏览器）<br />
Web层（HTML、Servlet、JSP）<br />
业务层（EJB）<br />
EIS层（关系数据库）<br />
<br />
<span style="color: #0000ff"><span style="font-size: 12pt">4、</span><span style="font-size: 12pt">J2EE的Application Server：</span></span></span><span style="font-size: 12pt"><br />
Tomcat<br />
BEA Weblogic<br />
IBM Websphere<br />
Oracle Application Server<br />
Sun Java System<br />
Jboss<br />
Borland AppServer <br />
Sybase Application Server<br />
HP Application Server <br />
Apusic <br />
</span><br />
<span style="font-size: 12pt"><span style="color: #0000ff"><span style="font-size: 12pt">5、集成开发工具：</span></span><br />
Borland：JBuilder<br />
Oracle ：JDeveloper<br />
Bea ：WebLogic Workshop<br />
IBM：Websphere Studio<br />
Sun：NetBeans <br />
MyEclipse<br />
</span><br />
<span style="font-size: 12pt">在小型的应用系统或者有特殊需要的系统中，可以使用一个免费的Web服务器Tomcat，该服务器支持全部JSP以及Servlet规范，但是目前还不支持EJB。<br />
</span><br />
<span style="font-size: 12pt">在Java相关的开发领域中，常用的是3种数据库：Oracle、DB2和MySQL。有时候也使用微软公司的SQL Server数据库服务器 。</span></p>
<img src ="http://www.blogjava.net/tfzhu/aggbug/327079.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tfzhu/" target="_blank">断点</a> 2010-07-25 15:50 <a href="http://www.blogjava.net/tfzhu/archive/2010/07/25/327079.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>