您的位置:首页 > 数据库

weblogic数据库配置和使用

2008-09-11 18:24 330 查看

Data Sources属性honor global transactions 的作用

该属性在创建数据源时设置,一旦设置便不能更改。用来控制数据源支持的事务类型。如果准备使用XA协议来实现分布式事务和两阶段提交,他的值必须为TRUE。在以下情况下,必须启用HONOR GLABAL TRANSACTIONS属性:
应用程序使用JTA服务。
应用程序使用EJB容器管理事务。
应用程序使用分布式事务,比如在单个事务的作用域内更新多个资源管理器。

两阶段提交

JTA

利用weblogic建立到数据库的连接代码

Connection con = null;
try {
Hashtable env = new Hashtable();
env.put(InitialContext.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
env.put(InitialContext.PROVIDER_URL,"t3://localhost:7001");
// T3 是 BEA 的专用协议。
env.put(InitialContext.SECURITY_PRINCIPAL,"weblogic");
//这是weblogic中的用户帐号和密码,可以不填,则默认为guest
env.put(InitialContext.SECURITY_CREDENTIALS,"weblogic");
InitialContext ctx = new InitialContext(env);
System.err.println("1111111111111111");
ds = (DataSource)ctx.lookup("MySQLDataSource");
System.err.println("2222222222222222");
con = ds.getConnection();
System.err.println("3333333333333333");
} catch (Exception e) {
e.printStackTrace();
System.out.println(e.toString());
//在这里释放资源,如连接、结果集等,不要在finaly中放多于一个的close语句,因为如出现异常的话,会导致接下来的close语句无法执行。要放多个的话最好按下面的方法放置;

If(con!=null){
Try{
con.close();
ctx.close():
}catch(Exception e){
}
}
}

事务的四个基本属性(ACID)

原子性(atomiticity):
一致性( consistency):
隔离性(isolation):每个事务相对于其他事务都是独立的。
可持续性(durability):事务操作中的所有结果必须是可恢复的,并被永久存储。

建立weblogic jta事务的步骤

。建立事务。
Context ctx = null;
try {
ctx = new InitialContext();
Transaction tr = (Transaction)ctx.lookup("javax.transaction.UserTransaction");
} catch (Exception e) {
// TODO: handle exception
}
。启动事务。
tr.begin();
这样,任何使用数据库的操作都在事务的作用域之内。包括直接的JDBC调用,以及其他依靠JDBC的服务,包括EJB和JMS
。启用horno global transactions,定位一个DataSource
DataSource ds = (DataSource)ctx.lookup("mydatasource");
。建立一个数据库连接
Connection con = ds.getConnection();
。执行资源操作

。关闭连接

。完成事务

ms sqlserver在weblogic中的配置

驱动程序:com.microsoft.sqlserver.jdbc.SQLServerDriver
url:jdbc:sqlserver://localhost:端口号 //若不加端口号则默认端口号为1433

连接池connection属性的配置和说明

Inactive Connection Timeout:保留的非活动连接上的秒数,超过此时间 WebLogic Server 将回收此连接并将其释放回连接缓冲池。

Connection Reserve Timeout:连接预约超时,当向连接池中请求一个连接时,若在Connection Reserve Timeout时间后还没有得到可用的连接则请求超时。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐