当前位置:文档之家› 数据库连接池dhcp配置

数据库连接池dhcp配置

数据库连接池dhcp配置
数据库连接池dhcp配置

https://www.doczj.com/doc/717558825.html,/topic/772507

最近在看一些dbcp的相关内容,顺便做一下记录,免得自己给忘记了。

1. 引入dbcp (选择1.4)

Java代码

1.

2. com.alibaba.external

3. https://www.doczj.com/doc/717558825.html,mons.dbcp

4. 1.4

5.

2. dbcp的基本配置

相关配置说明:

1.initialSize :连接池启动时创建的初始化连接数量(默认值为0)

2.maxActive:连接池中可同时连接的最大的连接数(默认值为8,调整为20,高峰单机器在20并

发左右,自己根据应用场景定)

3.maxIdle:连接池中最大的空闲的连接数,超过的空闲连接将被释放,如果设置为负数表示不限制

(默认为8个,maxIdle不能设置太小,因为假如在高负载的情况下,连接的打开时间比关闭的时间快,会引起连接池中idle的个数上升超过maxIdle,而造成频繁的连接销毁和创建,类似

于jvm参数中的Xmx设置)

4.minIdle:连接池中最小的空闲的连接数,低于这个数量会被创建新的连接(默认为0,调整为5,

该参数越接近maxIdle,性能越好,因为连接的创建和销毁,都是需要消耗资源的;但是不能太大,因为在机器很空闲的时候,也会创建低于minidle个数的连接,类似于jvm参数中的Xmn设置)

5.maxWait:最大等待时间,当没有可用连接时,连接池等待连接释放的最大时间,超过该时间限

制会抛出异常,如果设置-1表示无限等待(默认为无限,调整为60000ms,避免因线程池不够用,而导致请求被无限制挂起)

6.poolPreparedStatements:开启池的prepared(默认是false,未调整,经过测试,开启后的性

能没有关闭的好。)

7.maxOpenPreparedStatements:开启池的prepared 后的同时最大连接数(默认无限制,同上,未

配置)

8.minEvictableIdleTimeMillis:连接池中连接,在时间段内一直空闲,被逐出连接池的时间

9.(默认为30分钟,可以适当做调整,需要和后端服务端的策略配置相关)

10.removeAbandonedTimeout:超过时间限制,回收没有用(废弃)的连接(默认为 300秒,调整为

180)

11.removeAbandoned:超过removeAbandonedTimeout时间后,是否进行没用连接(废弃)的回收

(默认为false,调整为true)

removeAbandoned参数解释:

1.如果开启了removeAbandoned,当getNumIdle() < 2) and (getNumActive() > getMaxActive() -

3)时被触发.

2.举例当maxActive=20, 活动连接为18,空闲连接为1时可以触发"removeAbandoned".但是活动连

接只有在没有被使用的时间超过"removeAbandonedTimeout"时才被回收

3.logAbandoned:标记当连接被回收时是否打印程序的stack traces日志(默认为false,未调

整)

一般会是几种情况出现需要removeAbandoned:

1.代码未在finally释放connection , 不过我们都用sqlmapClientTemplate,底层都有链接释放

的过程

2.遇到数据库死锁。以前遇到过后端存储过程做了锁表操作,导致前台集群中连接池全都被block

住,后续的业务处理因为拿不到链接所有都处理失败了。

一份优化过的配置:

基本配置代码

1.

="close">

2.

3.

4. xxxx

5. xxxxx

6. 20

7. 1

8. 60000

9. 20

10. 3

11. true

12. 180

13. clientEncoding=GBK

perty>

14.

2. dbcp的链接validate配置

1.dbcp是采用了commons-pool做为其连接池管理,testOnBorrow,testOnReturn, testWhileIdle

是pool是提供的几种校验机制,通过外部钩子的方式回调dbcp的相关数据库链接

(validationQuery)校验

2.dbcp相关外部钩子类:PoolableConnectionFactory,继承于common-pool PoolableObjectFactory

3.dbcp通过GenericObjectPool这一入口,进行连接池的borrow,return处理

4.testOnBorrow : 顾明思义,就是在进行borrowObject进行处理时,对拿到的connection进行

validateObject校验

5.testOnReturn : 顾明思义,就是在进行returnObject对返回的connection进行validateObject

校验,个人觉得对数据库连接池的管理意义不大

6.testWhileIdle: 关注的重点,GenericObjectPool中针对pool管理,起了一个Evict的TimerTask

定时线程进行控制(可通过设置参数 timeBetweenEvictionRunsMillis>0),定时对线程池中的链

接进行validateObject校验,对无效的链接进行关闭后,会调用ensureMinIdle,适当建立链

接保证最小的minIdle连接数。

7.timeBetweenEvictionRunsMillis,设置的Evict线程的时间,单位ms,大于0才会开启evict检

查线程

8.validateQuery,代表检查的sql

9.validateQueryTimeout,代表在执行检查时,通过statement设置,

statement.setQueryTimeout(validationQueryTimeout)

10.numTestsPerEvictionRun,代表每次检查链接的数量,建议设置和maxActive一样大,这样每次

可以有效检查所有的链接.

Validate配置代码

1.true <

!-- 打开检查,用异步线程evict进行检查 -->

2. false

y>

3. false

y>

4. select sysdate from

dual

5. 1

roperty>

6. 30000

7. 20

property>

相关配置需求:

1.目前网站的应用大部分的瓶颈还是在I/O这一块,大部分的I/O还是在

数据库的这一层面上,每一个请求可能会调用10来次SQL查询,如果不走事务,一个请求会重复获取链接,如果每次获取链接都进行

validateObject,性能开销不是很能接受,可以假定一次SQL操作消毫

0.5~1ms(一般走了网络请求基本就这数)

2.网站异常数据库重启,网络异常断开的频率是非常低的,一般也就在数

据库升级,演习维护时才会进行,而且一般也是选在晚上,访问量相对比较低的请求,而且一般会有人员值班关注,所以异步的validateObject 是可以接受,但一个前提需要确保能保证在一个合理的时间段内,数据库能完成自动重联。

从代码层面简单介绍下dbcp的validate实现:

1. common-pools提供的PoolableObjectFactory,针对pool池的管理操作接口

Java代码

1.public interface PoolableObjectFactory {

2.

3. Object makeObject() throws Exception;

4.

5. void destroyObject(Object obj) throws Exception;

6.

7. boolean validateObject(Object obj);

8.

9. void activateObject(Object obj) throws Exception;

10.

11. void passivateObject(Object obj) throws Exception;

12.}

2. dbcp实现的pool从池管理操作

这里贴了一个相关validate代码,具体类可见:PoolableConnectionFactory.validateConnection()

Java代码

1.public class PoolableConnectionFactory implements PoolableObjec

tFactory {

2.

3.......

4.public boolean validateObject(Object obj) { //验证

validateObject

5. if(obj instanceof Connection) {

6. try {

7. validateConnection((Connection) obj);

8. return true;

9. } catch(Exception e) {

10. return false;

11. }

12. } else {

13. return false;

14. }

15. }

16.public void validateConnection(Connection conn) throws SQLExcep

tion {

17. String query = _validationQuery;

18. if(conn.isClosed()) {

19. throw new SQLException("validateConnection: connect

ion closed");

20. }

21. if(null != query) {

22. Statement stmt = null;

23. ResultSet rset = null;

24. try {

25. stmt = conn.createStatement();

26. if (_validationQueryTimeout > 0) {

27. stmt.setQueryTimeout(_validationQueryTimeou

t);

28. }

29. rset = stmt.executeQuery(query);

30. if(!rset.next()) {

31. throw new SQLException("validationQuery did

n't return a row");

32. }

33. } finally {

34. if (rset != null) {

35. try {

36. rset.close();

37. } catch(Exception t) {

38. // ignored

39. }

40. }

41. if (stmt != null) {

42. try {

43. stmt.close();

44. } catch(Exception t) {

45. // ignored

46. }

47. }

48. }

49. }

50. }

51.

52.....

53.

54.}

3. pool池的evict调用代码:GenericObjectPool (apache commons pool version 1.5.4)

Java代码

1.protected synchronized void startEvictor(long delay) { //启动

Evictor为TimerTask

2. if(null != _evictor) {

3. EvictionTimer.cancel(_evictor);

4. _evictor = null;

5. }

6. if(delay > 0) {

7. _evictor = new Evictor();

8. EvictionTimer.schedule(_evictor, delay, delay);

9. }

10. }

11.

12.for (int i=0,m=getNumTests();i

13. final ObjectTimestampPair pair;

14. .......

15. boolean removeObject = false;

16. // 空闲链接处理

17. final long idleTimeMilis = System.currentTimeMillis

() - pair.tstamp;

18. if ((getMinEvictableIdleTimeMillis() > 0) &&

19. (idleTimeMilis > getMinEvictableIdleTimeMil

lis())) {

20. removeObject = true;

21. } else if ((getSoftMinEvictableIdleTimeMillis() > 0

) &&

22. (idleTimeMilis > getSoftMinEvictableIdleTim

eMillis()) &&

23. ((getNumIdle() + 1)> getMinIdle())) {

24. removeObject = true;

25. }

26. // testWhileIdle sql 检查处理

27. if(getTestWhileIdle() && !removeObject) {

28. boolean active = false;

29. try {

30. _factory.activateObject(pair.value);

31. active = true;

32. } catch(Exception e) {

33. removeObject=true;

34. }

35. if(active) {

36. if(!_factory.validateObject(pair.value)) {

37. removeObject=true;

38. } else {

39. try {

40. _factory.passivateObject(pair.value

);

41. } catch(Exception e) {

42. removeObject=true;

43. }

44. }

45. }

46. }

47. // 真正关闭

48. if (removeObject) {

49. try {

50. _factory.destroyObject(pair.value);

51. } catch(Exception e) {

52. // ignored

53. }

54. }

55. ........

注意:目前dbcp的pool的实现是使用了公用的apache common pools进行扩展处理,所以和原生的连接池处理,代码看上去有点别扭,感觉自动重连这块异

常处理不怎么好,我也就只重点关注了这部分代码而已 .

3. dbcp的链接自动重链相关测试

相关场景:

1.数据库意外重启后,原先的数据库连接池能自动废弃老的无用的链接,建

立新的数据库链接

2.网络异常中断后,原先的建立的tcp链接,应该能进行自动切换

测试需求1步骤

1.建立一testCase代码

2.配置mysql数据库

3.循环执行在SQL查询过程

4.异常重启mysql数据库

测试需求2步骤

1.建立一testCase代码

2.配置mysql数据库

3.循环执行在SQL查询过程

4.通过iptables禁用网络链接

/sbin/iptables -A INPUT -s 10.16.2.69 -j REJECT

/sbin/iptables -A FORWARD -p tcp -s 10.16.2.69 --dport 3306 -m state --state NEW,ESTABLISHED -j DROP

5. iptables -F 清空规则,恢复链接通道。

测试需求问题记录

分别测试了两种配置,有validateObject的配置和没有validateObject的相关配置。

1. 没有validate配置

问题一:异常重启mysql数据库后,居然也可以自动恢复链接,sql查询正常跟踪了一下代码,发现这么一个问题:

1.在数据库关闭的时候,client中pool通过borrowObject获取一个异常

链接返回给client

2.client在使用具体的异常链接进行sql调用出错了,抛了异常

3.在finally,调用connection.close(),本意是应该调用pool通过

returnObject返回到的池中,但在跟踪代码时,未见调用

GenericObjectPool的returnObject

4.继续查,发现在dbcp在中PoolingDataSource(实现DataSource接口)调

用 PoolableConnection(dbcp pool相关的delegate操作)进行相应关闭时,会检查_conn.isClosed(),针对DataSource如果isClosed返回为

true的则不调用returnObject,直接丢弃了链接

解释:

?正因为在获取异常链接后,因为做了_conn.isClosed()判断,所以异常链接并没有返回到连接池中,所以到数据库重启恢复后,每次都是调用pool 重新构造一个新的connection,所以后面就正常了

?_conn.isClosed()是否保险,从jdk的api描述中: A connection is closed if the method close has been called on it or if certain fatal errors have occurred. 里面提供两种情况,一种就是被调用了closed

方法,另一种就是出现一些异常也说的比较含糊。

问题二:validateObject调用时,dbcp设置的validationQueryTimeout居然没效果

看了mysql statement代码实现,找到了答案。

mysql com.mysql.jdbc.statemen 部分代码

timeout时间处理:

Java代码

1.timeoutTask = new CancelTask();

2.//通过TimerTask启动一定时任务

3.Connection.getCancelTimer().schedule(timeoutTask, this.timeout

InMillis);

对应的CancelTask的代码:

Java代码

1.class CancelTask extends TimerTask {

2.

3. long connectionId = 0;

4.

5. CancelTask() throws SQLException {

6. connectionId = connection.getIO().getThreadId();

7. }

8.

9. public void run() {

10.

11. Thread cancelThread = new Thread() {

12.

13. public void run() {

14. Connection cancelConn = null;

15. java.sql.Statement cancelStmt = null;

16.

17. try {

18. cancelConn = connection.duplicate();

19. cancelStmt = cancelConn.createStatement

();

20. // 简单暴力,再

发起一条KILL SQL,关闭先前的sql thread id

21. cancelStmt.execute("KILL QUERY " + conn

ectionId);

22. wasCancelled = true;

23. } catch (SQLException sqlEx) {

24. throw new RuntimeException(sqlEx.toStri

ng());

25. } finally {

26. if (cancelStmt != null) {

27. try {

28. cancelStmt.close();

29. } catch (SQLException sqlEx) {

30. throw new RuntimeException(sqlE

x.toString());

31. }

32. }

33.

34. if (cancelConn != null) {

35. try {

36. cancelConn.close();

37. } catch (SQLException sqlEx) {

38. throw new RuntimeException(sqlE

x.toString());

39. }

40. }

41. }

42. }

43. };

44.

45. cancelThread.start();

46. }

47. }

原因总结一句话: queryTimeout的实现是通过底层数据库提供的机制,比如KILL QUERY pid. 如果此时的网络不通,出现阻塞现象,对应的kill命令也发不出去,所以timeout设置的超时没效果。

4.最后

最后还是决定配置testWhileIdle扫描,主要考虑:

1.pool池中的链接如果未被使用,可以通过testWhileIdle进行链接检查,

避免在使用时后总要失败那么一次,可以及时预防

2.配合连接池的minEvictableIdleTimeMillis(空闲链接),

removeAbandoned(未释放的链接),可以更好的去避免因为一些异常情况引起的问题,防范于未然。比如使用一些分布式数据库的中间件,会有空闲链接关闭的动作,动态伸缩连接池,这时候需要能及时的发现,避免请求失败。

3.testOnBorrow个人不太建议使用,存在性能问题,试想一下连接一般会

在什么情况出问题,网络或者服务端异常终端空闲链接,网络中断你

testOnBorrow检查发现不对再取一个链接还是不对,针对空闲链接处理异常关闭,可以从好业务端的重试策略进行考虑,同时配置客户端的空闲链接超时时间,maxIdle,minIdle等。

--------------------------------------------

新加的内容:

5.dbcp密码加密处理

以前使用jboss的jndi数据源的方式,是通过配置oracle-ds.xml,可以设置EncryptDBPassword,引用jboss login-config.xml配置的加密配置。

Java代码

1.

2.

3.

4. ${username}

ule-option>

5. ${password_encry

pt}

6. jboss.jca:service=LocalTxCM,name=${jndiName}

7.

8.

9.

为了能达到同样的效果,切换为spring dbcp配置时,也有类似密码加密的功能,运行期进行密码decode,最后进行数据链接。

实现方式很简单,分析jboss的对应SecureIdentityLoginModule的实现,无非就是走了Blowfish加密算法,自己拷贝实现一份。

Java代码

1.private static String encode(String secret) throws NoSuchPaddin

gException, NoSuchAlgorithmException,

2. InvalidKeyExcept

ion, BadPaddingException, IllegalBlockSizeException {

3. byte[] kbytes = "jaas is the way".getBytes();

4. SecretKeySpec key = new SecretKeySpec(kbytes, "Blowfish

");

5.

6. Cipher cipher = Cipher.getInstance("Blowfish");

7. cipher.init(Cipher.ENCRYPT_MODE, key);

8. byte[] encoding = cipher.doFinal(secret.getBytes());

9. BigInteger n = new BigInteger(encoding);

10. return n.toString(16);

11. }

12.

13. private static char[] decode(String secret) throws NoSuchPa

ddingException, NoSuchAlgorithmException,

14. InvalidKeyExcept

ion, BadPaddingException, IllegalBlockSizeException {

15. byte[] kbytes = "jaas is the way".getBytes();

16. SecretKeySpec key = new SecretKeySpec(kbytes, "Blowfish

");

17.

18. BigInteger n = new BigInteger(secret, 16);

19. byte[] encoding = n.toByteArray();

20.

21. Cipher cipher = Cipher.getInstance("Blowfish");

22. cipher.init(Cipher.DECRYPT_MODE, key);

23. byte[] decode = cipher.doFinal(encoding);

24. return new String(decode).toCharArray();

25. }

最后的配置替换为:

Xml代码

1.

2.......

3.

4.

5.

6.

7.

8.........

9.

--------------------------------------------

新加的内容:

6.数据库重连机制

常见的问题:

1. 数据库意外重启后,原先的数据库连接池能自动废弃老的无用的链接,建立新的数据库链接

2. 网络异常中断后,原先的建立的tcp链接,应该能进行自动切换。比如网站演习中的交换机重启会导致网络瞬断

3. 分布式数据库中间件,比如amoeba会定时的将空闲链接异常关闭,客户端会出现半开的空闲链接。

大致的解决思路:

1. sql心跳检查

主动式 ,即我前面提到的sql validate相关配置

2. 请求探雷

牺牲小我,完成大我的精神。拿链接尝试一下,发现处理失败丢弃链接,探雷的请求总会失败几个,就是前面遇到的问题一,dbcp已经支持该功能,不需要额外置。

3. 设置合理的超时时间,

解决半开链接. 一般数据库mysql,oracle都有一定的链接空闲断开的机制,而且当你使用一些分布式中间件(软件一类的),空闲链接控制会更加严格,这时候设置合理的超时时间可以有效避免半开链接。

一般超时时间,dbcp主要是minEvictableIdleTimeMillis(空闲链接) , removeAbandonedTimeout(链接泄漏)。可以见前面的参数解释。

关于DBCP数据库连接池配置整理

1.简介 DBCP(DataBase Connection Pool),数据库连接池。是 apache 上的一个 java 连接池项目,也是tomcat 使用的连接池组件。单独使用dbcp需要3个包:common-dbcp.jar,common-pool.jar,common-collections.jar由于建立数据库连接是一个非常耗时耗资源的行为,所以通过连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就行,用完后再放回去。 dbcp提供了数据库连接池可以在spring,iBatis,hibernate中调用dbcp完成数据库连接,框架一般都提供了dbcp连接的方法; tomcat中也提供了dbcp的jndi设置方法,也可以不在框架中使用dbcp,单独使用dbcp 需要3个包:common-dbcp.jar,common-pool.jar,common-collections.jar 2.参数说明 翻译自https://www.doczj.com/doc/717558825.html,

这里可以开启PreparedStatements池. 当开启时, 将为每个连接创建一个statement 池,并且被下面方法创建的PreparedStatements将被缓存起来: ●public PreparedStatement prepareStatement(String sql) ●public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) 如果容许则可以使用下面的方式来获取底层连接: Connection conn = ds.getConnection(); Connection dconn = ((DelegatingConnection) conn).getInnermostDelegate(); ... conn.close() 默认false不开启, 这是一个有潜在危险的功能, 不适当的编码会造成伤害.(关闭底层 连接或者在守护连接已经关闭的情况下继续使用它).请谨慎使用,并且仅当需要直接访问驱动的特定功能时使用. 注意: 不要关闭底层连接, 只能关闭前面的那个 如果开启"removeAbandoned",那么连接在被认为泄露时可能被池回收. 这个机制在(getNumIdle() < 2) and (getNumActive() > getMaxActive() - 3)时被触发。 举例当maxActive=20, 活动连接为18,空闲连接为1时可以触发"removeAbandoned".但是活动连接只有在没有被使用的时间超过"removeAbandonedTimeout"时才被删除,默认300秒.在resultset中游历不被计算为被使用。 3.使用注意点

华为路由器dhcp简单配置实例

华为路由器dhcp简单配置实例 session 1 DHCP的工作原理 DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段,在RFC 2131中有详细的描述。DHCP有3个端口,其中UDP67和UDP68为正常的DHCP 服务端口,分别作为DHCP Server和DHCP Client的服务端口;546号端口用于DHCPv6 Client,而不用于DHCPv4,是为DHCP failover服务,这是需要特别开启的服务,DHCP failover是用来做“双机热备”的。 DHCP协议采用UDP作为传输协议,主机发送请求消息到DHCP服务器的67号端口,DHCP服务器回应应答消息给主机的68号端口,DHCP的IP地址自动获取工作原理及详细步骤如下: 1、DHCP Client以广播的方式发出DHCP Discover报文。 2、所有的DHCP Server都能够接收到DHCP Client发送的DHCP Discover报文,所有的DHCP Server都会给出响应,向DHCP Client发送一个DHCP Offer报文。DHCP Offer报文中“Your(Client) IP Address”字段就是DHCP Server 能够提供给DHCP Client使用的IP地址,且DHCP Server会将自己的IP地址放在“option”字段中以便DHCP Client 区分不同的DHCP Server。DHCP Server在发出此报文后会存在一个已分配IP地址的纪录。 3、DHCP Client只能处理其中的一个DHCP Offer报文,一般的原则是DHCP Client处理最先收到的DHCP Offer报文。DHCP Client会发出一个广播的DHCP Request报文,在选项字段中会加入选中的DHCP Server的IP地址和需要的IP地址。 4、DHCP Server收到DHCP Request报文后,判断选项字段中的IP地址是否与自己的地址相同。如果不相同,DHCP Server不做任何处理只清除相应IP地址分配记录;如果相同,DHCP Server就会向DHCP Client响应一个DHCP ACK 报文,并在选项字段中增加IP地址的使用租期信息。 5、DHCP Client接收到DHCP ACK报文后,检查DHCP Server分配的IP地址是否能够使用。如果可以使用,则DHCP Client成功获得IP地址并根据IP地址使用租期自动启动续延过程;如果DHCP Client发现分配的IP地址已经被使用,则DHCP Client向DHCPServer发出DHCP Decline报文,通知DHCP Server禁用这个IP地址,然后DHCP Client 开始新的地址申请过程。 6、DHCP Client在成功获取IP地址后,随时可以通过发送DHCP Release报文释放自己的IP地址,DHCP Server收到DHCP Release报文后,会回收相应的IP地址并重新分配。

hibernate配置数据库连接池的三种方法

?数据库连接池的概念(是什么,做什么用的,有什么好处) ?首先,我们还是老套的讲讲连接池的基本概念,概念理解清楚了,我们也知道后面是怎么回事了。?以前我们程序连接数据库的时候,每一次连接数据库都要一个连接,用完后再释放。如果频繁的数据库操作,就会导致性能很低。连接池的出现,为开发过程提供了一个很好的管理平台。当程序中需要建立数据库连接时,只须从内存中取一个来用而不用新建。同样,使用完毕后,只需放回内存即可。而连接的建立、断开都有连接池自身来管理。同时,我们还可以通过设置连接池的参数来控制连接池中的连接数、每个连接的最大使用次数等等。通过使用连接池,将大大提高程序效率,同时,我们可以通过其自身的管理机制来监视数据库连接的数量、使用情况等。 ?而Hibernate的出现把连接池的使用引入了一个新的利用方式,让你充分享受配置化给开发带来的便利。 1 C3P0 (以验证可用) 只需在hibernate.cfg.xml中加入 omdssd_admin omdssd_hskj jdbc:oracle:thin:@10.142.1.138:1521:omds oracle.jdbc.driver.OracleDriver org.hibernate.dialect.Oracle9Dialect true true oracle10g_112 org.hibernate.connection.C3P0ConnectionProvider 5 //连接池中数据库连接的最小数目 30 //连接池中数据库连接的最大数目 1800 //设定数据库连接的过期时间,以秒为单位 50 //可以被缓存的PreparedStatement实例的最大数目。缓存适量的PreparedStatement实例,能够大大提高Hibernate的性能。 120//在使数据库连接自动生效之前处于空闲状态的时间,以秒为单位

配置Oracle数据库连接串

配置Oracle数据库连接串 1、点击:开始—>程序—>Oracle - OraHome81—>Network Administration—>Net8 Configuration Assistant 启动 Net8 Configuration Assistant如下图: (图ORCL_01) 2、选择本地网络服务名配置,点击下一步。 (图ORCL_02) 3、选择添加,点击下一步

(图ORCL_03) 4、选择Oracle8i数据库或服务,点击下一步 (图ORCL_04) 5、在上图中输入全局数据库名,(勿必与安装ORACLE服务器时输入的全局数据库名一致。如:ORCL)点击下一步。 (图ORCL_05)

6、选择TCP协议,点击下一步。 (图ORCL_06) 7、填入实际数据库服务器的主机名(请使用IP地址),如主机名为:192.168.0.1, 选择请使用标准端口号1521, 点击下一步。 (图ORCL_07) 8、选择:是,进行测试,点击下一步。

(图ORCL_08) 9、在上图中如果提示测试不成功,请点击后退按钮,检查在图ORCL_04中输入的全书数据库名是否正确,检查图ORCL_05中选择的是否是TCP协议,检查图ORCL_06中输入的主机名(IP地址)是否正确。 如果上图中提示测试成功,则点击下一步。(请确保测试成功) (图ORCL_09) 10、在上图中输入网络服务名为:Ecom1.3 (请确保输入为Ecom1.3) 点击下一步。

(图ORCL_10)11、在上图中选择否,点击下一步。 (图ORCL_11)12、点击下一步。

DHCP服务器的配置与验证

虚拟机上DHCP服务器的配置与验证 一、实验目的 1.了解DHCP的基本概念和服务器的新特性 2.掌握DHCP服务器的安装与配置 3.掌握DHCP的运行方式 4.掌握DHCP客户机的设置 5.掌握ipconfig/all 、ipconfig/release 、ipconfig/renew等命令的使用 二、实验设备与环境 1.Windows 2003操作系统主机一台,Windows 2003安装光盘一张,Windows X P 客户机若干台,二层交换机或集线器一台,T568B网线若干根 2.Windows X P 主机一台,VMWARE软件一套,Windows 2003服务器虚拟主机一套,Windows XP 虚拟主机若干套 三、实验内容、程序清单及运行结果 DHCP服务基本介绍----- DHCP(Dynamic Host Configuration Protocol)动态主机配置协议服务器的主要作用是对IP地址进行集中管理和配置,即子网中的所有IP地址及相关配置参数都存储在DHCP 服务器的数据库中。当客户机初次访问网络时,DHCP服务器会自动为其分配IP地址、子网掩码、首先DNS服务器地址和默认的网关参数,以实现IP地址动态分配,解决IP地址不足和TCP/IP配置麻烦。当客户机在不同的子网之间移动时,原有的IP地址及相关的配置信息将不再合法,客户机在重新启动时就会被重新分配IP地址及相关配置参数。 在没有DHCP服务的网络中,网络管理员必须采用手动分配的方式对每台客户机进行配置,此时的IP位静态分配的,需要网络管理员记录哪些IP地址可以使用,哪些地址已经使用,当网络中的客户机变动时,就需要变动这些记录如果网络管理员未能及时更新这些记录就会过期,会导致某些IP地址因无人使用而空闲。而DHCP服务器可以及时将未使用的IP 地址自动回收。 动态分配IP地址的好处就是可以解决IP地址不够用的问题。因为IP地址是动态分配的,而不是固定给某个客户机使用的,所以,只要有空闲的IP地址可用,DHCP客户机就可从DHCP服务器取得IP地址。当客户机不需要使用此地址时,就有DHCP服务器收回,并提供给其他的DHCP客户机使用。动态分配IP地址的另一个好处是用户不必自己设置IP地址、DNS服务器地址、网关地址等网络属性,也无需绑定IP地址与MAC地址,不存在盗用IP地址问题,因此,可以减少管理员维护工作量,用户也不必关心网络地址个概念和配置。 实验内容及详细步骤: 1、在一台装有Windows XP操作系统的电脑上下载并安装虚拟机软件VMware Workstation(虚拟机) V6.5.0.1。 2、启动已经安装好的虚拟机软件,并在该虚拟机软件上安装一个Windows Server 2003

DHCPv6配置

DHCPv6配置手册

目录 第1章简介 (1) 第2章IP LOCAL POOL配置 (2) 2.1 简介 (2) 2.2 基本指令描述 (2) 第3章DHCPV6配置 (4) 3.1 简介 (4) 3.2 基本指令描述 (4) 3.3 应用实例 (8) 3.3.1 应用实例一 (8) 3.3.2 应用实例二 (9) 3.3.3 应用实例三 (10) 3.4 监控和调试 (11) 3.4.1 监控命令 (11) 3.4.2 监控命令实例 (11) 3.4.3 调试命令 (12) 3.4.4 调试命令实例 (13)

第1章简介 IPv6 主机可以使用多种方法来配置地址: 无状态地址自动配置:用于对链接本地地址和其他非链接本地地址两者进行配置,方法是与相邻路由器交换路由器请求(RS)和路由器公告(RA)消息。 有状态地址自动配置:通过使用如DHCP的配置协议,用来配置非链接本地地址。 动态主机配置协议(DHCP)设计用来处理向计算机分配IP地址和其他网络信息,以便计算机可以在网络上自动通信。DHCP for IPv6 (DHCPv6)可以向IPv6主机提供有状态的地址配置或无状态的配置设置。 类似于DHCP for IPv4,DHCPv6基础结构的组件由下列各项构成:请求配置的DHCPv6客户端、提供配置的DHCPv6服务器、以及DHCPv6中继代理(当客户端位于不具备DHCPv6 服务器的子网上时,它在客户端和服务器之间传递信息)。 本文主要讲述DHCPv6在迈普设备中的配置方法。 本章主要内容: ●IP Local Pool配置 ●DHCPv6配置

01关于数据库连接池和动态数据源的实现课案

关于数据库连接池和动态数据源的实现、使用 对于一个简单的数据库应用,由于数据库的访问不是很频繁。这时可以很简单地在需要访问数据库时,就新创建一个连接,用完后就关闭它,这样就不会带来更多的性能上的开销。但是对于复杂的数据库应用,情况就完全不同了。频繁的建立、关闭连接,会极大的减低系统的性能,因为对于连接的使用成了系统性能的瓶颈。这就意味我们需要去考虑怎样把一个连接多次使用。 连接复用,通过建立数据库的连接池以及一套连接使用的管理策略,使得一个数据库连接可以得到高效、安全的复用,避免了数据库连接频繁建立、关闭给系统带来的开销。外部使用者可以通过getConnection方法获取连接,使用完毕之后再通过releaseConnection 方法将连接返回,注意此时的连接并没有关闭,而是由连接池管理器回收,并为下一次使用做好准备。 一般的数据库连接池,是使用配置文件在项目启动的使用加载配置文件,根据文件中描述,生成对应的数据库连接池。连接池有许多的属性比如:连接池的初始化连接处、连接池的最大连接数、每次的自增连接数、最大空闲连接数等等 数据库连接池技术带来的优势: 1.资源重用 由于数据库连接得到重用,避免了频繁创建、释放连接引起的大量性能开销。在减 少系统消耗的基础上,另一方面也增进了系统运行环境的平稳性(减少内存碎片以 及数据库临时进程/线程的数量) 2.更快的系统响应速度 数据库连接池在初始化过程中,往往已经创建了若干数据库连接置于池中备用,此 时连接的初始化工作均已完成,对于业务处理而言,直接利用现有的可以连接,避 免了数据库连接初始化和释放过程的时间开销,从而缩短了系统整体的响应时间。 3. 统一的连接管理,避免数据库连接泄露 在较为完备的数据库连接池实现中可以根据预先的连接占用超时设定,强制回收被 占用的连接。从而避免常规数据库连接操作中可能出现的资源泄露。 一个数据库连接池的实现 1.前言 数据库应用,在许多软件系统中经常用到,是开发中大型系统不可缺少的辅助。但如果对数据库资源没有很好地管理(如:没有及时回收数据库的游标(ResultSet)、Statement、连接(Connection)等资源),往往会直接导致系统的稳定。这类不稳定因素,不单单由数据库或者系统本身一方引起,只有系统正式使用后,随着流量、用户的增加,才会逐步显露。 在基于Java开发的系统中,JDBC是程序员和数据库打交道的主要途径,提供了完备的数据库操作方法接口。但考虑到规范的适用性,JDBC只提供了最直接的数据库操作规范,对数据库资源管理,如:对物理连接的管理及缓冲,期望第三方应用服务器(Application Server)的提供。下面以JDBC规范为基础,介绍相关的数据库连接池机制,并就如果以简单的方式,实现有效地管理数据库资源介绍相关实现技术。

DHCP服务器的搭建实验报告

实验1 :DHCP服务器的搭建 实验目标: 通过完成本实验内容,我们的学员将能够: 1、安装DHCP服务。 2、配置DHCP服务器。 实验设备要求: 1、要求保证一人一台计算机。 2、计算机最低配置:C1.7以上的CPU,内存建议512MB,硬盘10G以上; 3、Windows Server 2003系统。 实验拓扑:

实验步骤: ?安装DHCP服务 1、打开“控制面板”,双击“添加或删除程序”。 2、在“添加或删除程序”面板中,单击“添加“Windows组件”。 3、在“Windows组件”页中,单击“网络服务”,然后单击“详细资料”。 4、在“网络服务”对话框中,在“网络服务的子部件”中,选择“动态主机配置协议(DHCP)”复选框,然后单击“确定”按钮。如图8-1所示。 图8-1 5、然后单击“下一步”按钮。按照向导提示,完成DHCP服务的安装。 ?创建和配置作用域 1、从“管理工具”菜单中打开DHCP。 2、在控制台树中,单击Server(你的计算机的名称),右键单击Server,然后单击“新作用域”。如图8-2所示。

______________________________________________________________________________________________________________ 图8-2 3、在“新作用域”向导中,单击“下一步”按钮。 4、在“作用域名称”页中,在“名称”中,键入Server,然后单击“下一步”按钮。 5、在“IP地址范围”页中,在“开始IP地址”框中,键入192.168.0.1。在“终止IP地址”框中,键入192.168.0.254。如图8-3所示。 精品资料

DHCP配置示例dhcpd.conf

一、dhcpd.conf ## dhcpd.conf # Managed by Ansible # Do not edit manually # option definitions common to all supported networks... option domain-name "https://www.doczj.com/doc/717558825.html,"; option domain-name-servers https://www.doczj.com/doc/717558825.html,; #DHCP options #DHCP parameters # Classes # Subnets subnet 172.20.254.0 netmask 255.255.255.0 { range 172.20.254.177 172.20.254.185; option routers 172.20.254.1; option broadcast-address 172.20.254.255; } # Hosts # Shared networks 二、dhcpd.conf.sample root@cqu_freebsd_006:/usr/local/etc # vim dhcpd.conf.sample # dhcpd.conf # Sample configuration file for ISC dhcpd # option definitions common to all supported networks... option domain-name "https://www.doczj.com/doc/717558825.html,"; option domain-name-servers https://www.doczj.com/doc/717558825.html,, https://www.doczj.com/doc/717558825.html,; default-lease-time 600; max-lease-time 7200; # Use this to enble / disable dynamic dns updates globally. #ddns-update-style none; # If this DHCP server is the official DHCP server for the local

DHCP服务器配置实验

一实验目的 1.了解DHCP的基本概念和服务器的新特性 2.掌握DHCP服务器的安装与配置 3.掌握DHCP的运行方式 4.掌握DHCP客户机的设置 5.掌握ipconfig/all 、ipconfig/release 、ipconfig/renew等命令的使用 二实验设备与环境(1或2) 1.Windows 2003操作系统主机一台,Windows 2003安装光盘一张,windows XP 客户机若干台,二层交换机或集线器一台,T568B网线若干根 2.windows XP 主机一台,VMWARE软件一套,windows 2003服务器虚拟主机一套,windows XP 虚拟主机若干套 三实验主要内容 IP Address: 192.168.1.1/24 Ip pools: 192.168.1.1~192.168.1.254/24 排除: 192.168.1.1~192.168.1.5 192.168.1.10 网关: 192.168.1.1 DNS服务器: 192.168.1.1 实验扩展:

实验方法: 1.登录FTP://17 2.17.21.252,从常用软件目录下下载VMware-workstation-5.5.1.rar,并安装。 2.登录FTP://172.17.21.252,从操作系统目录下下载Windows Server 2003 Enterprise Edition.rar和WindowsXP_1.rar解压缩或者这两个目录下的文件。 3.运行VMware-workstation-5.5.1,从"文件file"—>"打开open",打开"Windows Server 2003 Enterpr ise Edition.vmx"和"Windows XP Professional.vmx" 4.运行虚拟机。 5.在Windows Server 2003 Enterprise Edition 下进行实验。

华为交换机基于全局的DHCP配置案例

同网段内配置基于全局地址池的DHCP服务器示例 组网需求 如图1所示,某企业有两个处于同一网络内的办公室,为了节省资源,两个办公室内的主机由SwitchA作为DHCP服务器统一分配IP地址。 办公室1所属的网段为10.1.1.0/25,主机都加入VLAN10,办公室1的主机只使用DNS服务,不使用NetBIOS服务,地址租期为10天;办公室2所属的网段为10.1.1.128/25,主机都加入VLAN20,办公室2的主机使用DNS服务和NetBIOS服务,地址租期为2天。 在SwitchA上配置全局地址池,并采取动态地址分配方式为两个办公室的主机分配IP地址。 图1 配置基于全局地址池的DHCP服务器组网图 配置思路 DHCP服务器的配置思路如下: 1.在SwitchA上创建两个全局地址池,并配置各自的地址池相关属性,实现根据不同需求, 为办公室1和办公室2动态分配地址。 2.在SwitchA上配置VLANIF接口下本地DHCP服务器的地址分配方式,实现DHCP服务器从 全局地址池中给客户端分配IP地址。 操作步骤 1.启动DHCP服务 2. system-view 3.[HUAWEI] sysname SwitchA [SwitchA] dhcp enable 4.创建地址池并配置相关属性

# 配置IP地址池1的属性(地址池范围、DNS地址、出口网关和地址池租期)。 [SwitchA] ip pool 1 [SwitchA-ip-pool-1] network 10.1.1.0 mask 255.255.255.128 [SwitchA-ip-pool-1] dns-list 10.1.1.2 [SwitchA-ip-pool-1] gateway-list 10.1.1.1 [SwitchA-ip-pool-1] excluded-ip-address 10.1.1.2 [SwitchA-ip-pool-1] excluded-ip-address 10.1.1.4 [SwitchA-ip-pool-1] lease day 10 [SwitchA-ip-pool-1] quit # 配置IP地址池2的属性(地址池范围、DNS地址、出口网关、NetBIOS地址和地址池租期)。 [SwitchA] ip pool 2 [SwitchA-ip-pool-2] network 10.1.1.128 mask 255.255.255.128 [SwitchA-ip-pool-2] dns-list 10.1.1.2 [SwitchA-ip-pool-2] nbns-list 10.1.1.4 [SwitchA-ip-pool-2] gateway-list 10.1.1.129 [SwitchA-ip-pool-2] lease day 2 [SwitchA-ip-pool-2] quit 5.配置VLANIF接口下地址分配方式 # 配置接口GigabitEthernet0/0/1和GigabitEthernet0/0/2分别加入相应的VLAN。 [SwitchA] vlan batch 10 20 [SwitchA] interface gigabitethernet 0/0/1 [SwitchA-GigabitEthernet0/0/1] port hybrid pvid vlan 10 [SwitchA-GigabitEthernet0/0/1] port hybrid untagged vlan 10 [SwitchA-GigabitEthernet0/0/1] quit [SwitchA] interface gigabitethernet 0/0/2 [SwitchA-GigabitEthernet0/0/2] port hybrid pvid vlan 20 [SwitchA-GigabitEthernet0/0/2] port hybrid untagged vlan 20 [SwitchA-GigabitEthernet0/0/2] quit # 配置VLANIF10接口下的客户端从全局地址池中获取IP地址。 [SwitchA] interface vlanif 10 [SwitchA-Vlanif10] ip address 10.1.1.1 255.255.255.128 [SwitchA-Vlanif10] dhcp select global [SwitchA-Vlanif10] quit # 配置VLANIF20接口下的客户端从全局地址池中获取IP地址。 [SwitchA] interface vlanif 20 [SwitchA-Vlanif20] ip address 10.1.1.129 255.255.255.128 [SwitchA-Vlanif20] dhcp select global

DHCP服务器配置的实验报告

信息科学与技术学院实验报告 一、实验目的及要求 目的: 1.了解DHCP 服务的基本概念,工作原理 2.学会安装DHCP服务器; 3.配置与管理DHCP服务器。 要求: 理解DHCP服务器和客户端的工作原理。 按照步骤完成DHCP服务器的配置。 理解每一步的实验的作用。 二、实验仪器、设备或软件 安装了Windows Server 2003的PC机或者是虚拟机 三、实验内容及原理 DHCP是Dynamic Host Configuration Protocol(动态主机配置协议)的缩写,DHCP 是一个简化主机IP地址分配管理的TCP/IP 标准协议。用户可以利用DHCP服务器管理动态的IP地址分配及其他相关的环境配置工作(如:DNS、WINS、Gateway的设置)。在使用TCP/IP协议的网络上,每一台计算机都拥有唯一的计算机名和IP 地址。IP地址(及其子网掩码)用于鉴别它所连接的主机和子网,当用户将计算机 从一个子网移动到另一个子网的时候,一定要改变该计算机的IP地址。如采用静态IP 地址的分配方法将增加网络管理员的负担,而DHCP是计算机向DHCP服务器临时申请一个IP 地址,并且在一定时期内租用该号码,这就大大减少了在管理上 所耗费的时间。 DHCP提供了安全、可靠且简单的TCP/IP网络配置,确保不会发生地址冲突,并且 通过地址分配的集中管理预留IP地址。DHCP提供了计算机IP地址的动态配置,系统管理员通过限定租用时间来控制IP地址的分配。 在使用DHCP时,整个网络至少有一台服务器上安装了DHCP服务,其他要使用DHCP 功能的工作站也必须设置成利用DHCP获得IP地址

Cisco交换机DHCP+Snooping功能详解+实例

一、采用DHCP服务的常见问题 架设DHCP服务器可以为客户端自动分配IP地址、掩码、默认网关、DNS服务器等网络参数,简化了网络配置,提高了管理效率。但在DHCP服务的管理上存在一些问题,常见的有: ●DHCP Server的冒充 ●DHCP Server的DOS攻击,如DHCP耗竭攻击 ●某些用户随便指定IP地址,造成IP地址冲突 1、DHCP Server的冒充 由于DHCP服务器和客户端之间没有认证机制,所以如果在网络上随意添加一台DHCP服务器,它就可以为客户端分配IP地址以及其他网络参数。只要让该DHCP服务器分配错误的IP地址和其他网络参数,那就会对网络造成非常大的危害。 2、DHCP Server的拒绝服务攻击 通常DHCP服务器通过检查客户端发送的DHCP请求报文中的CHADDR(也就是Client MAC address)字段来判断客户端的MAC地址。正常情况下该CHADDR字段和发送请求报文的客户端真实的MAC地址是相同的。攻击者可以利用伪造MAC 的方式发送DHCP请求,但这种攻击可以使用Cisco 交换机的端口安全特性来防止。端口安全特性(Port Security)可以限制每个端口只使用唯一的MAC地址。但是如果攻击者不修改DHCP请求报文的源MAC地址,而是修改DHCP报文中的CHADDR字段来实施攻击,那端口安全就不起作用了。由于DHCP服务器认为不同的CHADDR值表示请求来自不同的客户端,所以攻击者可以通过大量发送伪造CHADDR的DHCP请求,导致DHCP服务器上的地址池被耗尽,从而无法为其他正常用户提供网络地址,这是一种DHCP耗竭攻击。DHCP耗竭攻击可以是纯粹的DOS 攻击,也可以与伪造的DHCP服务器配合使用。当正常的DHCP服务器瘫痪时,攻击者就可以建立伪造的DHCP服务器来为局域网中的客户端提供地址,使它们将信息转发给准备截取的恶意计算机。甚至即使DHCP请求报文的源MAC地址和

华为5700 dhcp配置实例

同网段内配置基于接口地址池的DHCP服务器示例 组网需求 如图1所示,某企业有两个处于同一网络内的办公室,为了节省资源,两个办公室内的主机由SwitchA作为DHCP服务器统一分配IP地址。 办公室1所属的网段为10.1.1.0/24,主机都加入VLAN10,办公室1使用DNS服务和NetBIOS服务,地址租期30天;办公室2所属的网段为10.1.2.0/24,主机都加入VLAN11,办公室2不使用DNS服务和NetBIOS服务,地址租期20天。 配置思路 基于VLANIF接口地址池的DHCP服务器的配置思路如下: 1. 在SwitchA上创建两个接口地址池并配置地址池相关属性,实现DHCP服务器可以根据 不同需求,从不同的接口地址池中选择合适的IP地址及其配置参数分配给办公室主机。 2. 在SwitchA上配置VLANIF接口基于接口地址池的地址分配方式,实现DHCP服务器从 基于接口的地址池中选择IP地址分配给办公室主机。 操作步骤 1. 使能DHCP服务 2. system-view 3. [HUAWEI] sysname SwitchA [SwitchA] dhcp enable 4. 配置接口加入VLAN # 配置GE0/0/1接口加入VLAN10。 [SwitchA] vlan batch 10 to 11 [SwitchA] interface gigabitethernet 0/0/1 [SwitchA-GigabitEthernet0/0/1] port hybrid pvid vlan 10 [SwitchA-GigabitEthernet0/0/1] port hybrid untagged vlan 10 [SwitchA-GigabitEthernet0/0/1] quit # 配置GE0/0/2加接口入VLAN11。 [SwitchA] interface gigabitethernet 0/0/2 [SwitchA-GigabitEthernet0/0/2] port hybrid pvid vlan 11 [SwitchA-GigabitEthernet0/0/2] port hybrid untagged vlan 11

实验-DHCP服务器的配置与管理实训

实验十 DHCP服务器的配置与管理实训 班级:姓名: 【实训目的】 (1)理解DHCP的运行原理。 (2)掌握DHCP服务器的安装及使用。 (3)掌握DHCP服务器和DHCP客户端的相关配置。 【实训环境】 硬件:计算机 软件:Vmware 平台:Vmware安装Windows Server 2003(2台)虚拟机之间搭建平台。 【实训任务】 选择其中一台计算机(域控制器)建立DHCP服务器,分配网络参数如下:静态IP地址:192.168.215.100; 作用域分配IP地址:192.168.215.1~192.168.215.254; 排除IP地址:192.168.215.1~192.168.215.10; 保留IP地址:192.168.215.100 【实训过程】(实验步骤、记录、数据、分析) 一、安装DHCP服务器 1、选择“开始”→“控制面板”→“添加或删除程序”→“添加/删除组件”, 选中打开“Windows组件向导”,找到“网络服务”并选中; 2、点击“详细信息”取消全部选项只选中“动态主机配置协议”,单击确定, 单击下一步,进行安装DHCP组件; 3、通过“开始”→“管理工具”→“DHCP”,打开DHCP控制台窗口。 4、右击服务器名,选择“授权”并刷新。

二、建立IP作用域 1、在DHCP主窗口中,右击DHCP服务器,选择“新建作用域”选项; 2、出现“欢迎使用新建作用域向导”画面时,单击“下一步”,为此作用域设 定一个名称并输入说明文字; 3、单击“下一步”开始填写IP地址范围(起始IP地址与结束IP地址);

4、填写完成之后再单击“下一步”,输入排除客户端使用的IP地址并单击“添 加”(此地址是不分配给DHCP客户的IP地址); 5、单击“下一步”,设置IP地址的租用期限,默认为8天,取默认值;

H3C三层交换机DHCP配置实例(H3C网络设备)

DHCP 典型配置 【需求】 DHCP 的主要用途是:通过DHCP服务器的协助来控管各个客户机(执行中的用户端)上不可缺少的网络配置参数,包括DNS(Domain Name Service 域名服务),WINS (Windows Internet Name Service Windows互联网名字服务)等。 【组网图】

【验证】 在PC上执行“ipconfig”,该PC已经通过DHCP自动获取IP地址、网关、域名信息。C:\>ipconfig Windows IP Configuration Ethernet adapter 本地连接: Connection-specific DNS Suffix . : https://www.doczj.com/doc/717558825.html, IP Address. . . . . . . . . . . . : 192.168.0.3 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 192.168.0.1 【提示】 1、只给出DHCP server上最基本的配置,其它可选配置可以查看《操作手册》5.1.2DHCP Relay典型配置 【需求】 路由器进行DHCP Relay,将DHCP报文进行中继。 【组网图】

ip address 10.0.0.2 255.255.255.252 # interface NULL0 # ip route-static 0.0.0.0 0.0.0.0 10.0.0.1 preference 60 # user-interface con 0 user-interface vty 0 4 # return 【提示】 1、DHCP Server可以使用PC Server,也可以使用路由器充当。 2、当使用路由器作为DHCP Server的配置,和上一节的配置类似。 5.1.3DHCP Client典型配置 【需求】 路由器作为DHCP Client,获取接口的动态IP地址。 主要用在使用路由器的以太网接口通过LAN方式接入公网的组网。【组网图】 RouterA配置脚本 # sysname RouterA # radius scheme system # domain system # interface Ethernet1/0/0 ip address dhcp-alloc /配置DHCP方式获取地址/ # interface Ethernet1/0/1 ip address 192.168.0.1 255.255.255.0 #

数据库连接参考资料

12.2. JDBC与数据库(SQL Server 2005)的连接 Java可以与多种关系数据库进行连接,本书中以常用数据库系统Microsoft SQL Server 2005为例,讲述Java如何与数据库连接以及如何完成数据处理。 12.1需准备的软件 要通过JDBC完成java与SQL Server 2005的连接,所需要的软件有:SQL Server 2005、JDK和SQL Server 2005 driver for JDBC。 将JDBC解压缩到任意位置,比如解压到C盘program files或D:\java下面,并在安装目录里找到sqljdbc.jar文件,得到其路径并配置环境变量。在环境变量classpath 后面追加路径D:\jdbc\sqljdbc_1.2\enu\sqljdbc.jar即可。要注意的是在classpath的值域中一定要有一个路径“.”,表示当前目录。这样在进行自动搜索classpath指定目录中的class文件时,才不会落下当前目录中的class文件。 12.2连接配置 1. 设置SQLEXPRESS服务 (1)打开SQL Server Configuration Manager(配置管理器),在SQL Server Configuration Manager窗口中,点击“SQL Server 2005网络配置”下的“SQLEXPRESS的协议”,双击TCP/IP,在打开的“TCP/IP属性窗口”中的“IP地址卡”中,把IP地址中的IP all中的TCP 端口设置为1433。如下图所示: 图12-1 配置SQLEXPRESS协议 (2)在“SQLSERVER 2005 服务”中,重新启动SQL Server 2005服务中的SQLEXPRESS 服务器。右击SQLEXPRESS,点击停止,然后右击再SQLEXPRESS,点击启动。 (3)关闭SQL Server Configuration Manager。 2.登录和验证设置 (1)关于登录名的密码改变: 启动SQL Server Management Studio Express,依次选择“安全性”-->“登录名”-->“sa”,右击“sa”,在“登录属性-sa”页面,选择“状态”,将登录由“禁用”改为“启用”。在“常规”页面可设置sa登录密码或取消登录密码。设置完毕,单击确定。如下图所示:

数据库连接池配置的几种方法

今天遇到了关于数据源连接池配置的问题,发现有很多种方式可以配置,现总结如下,希望对大家有所帮助:(以Mysql数据库为例) 一,Tomcat配置数据源: 方式一:在WebRoot下面建文件夹META-INF,里面建一个文件context.xml,内容如下: 方式二:在tomcat6.0的目录conf下面的context.xml中,修改原来的context标签,改成内容如下: WEB-INF/web.xml 方式三:在配置虚拟目录时,也就是在配置conf下面的server.xml时,在context标签内改成如下形式:

相关主题
文本预览
相关文档 最新文档