|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
java比较简单,没有C++的烦琐,但学习时最好有C++为基础.与JSP和SQL起应用,功能强大.散布式|观点|示例在java中有以下三种事件,
- 复杂的JDBC级的事件
- JTA-在EJB情况下,用户失掉事件并举行把持
- CMP-完整由容器把持事件,用户经由过程Bean设置文件来界说事件举动
二三种都撑持散布式事件,但只撑持Java情况下的散布式事件。
上面会商怎样在Java程序里完成散布式事件,即在统一个事件里会见多个数据源。实践上就是怎样利用JTA.
这里假定利用Oracle数据库,利用WebLogic部署使用,所要做的是以下几步:
1.设置
1.1确认数据库撑持散布式事件-oracle是撑持散布式事件的,JDBC驱动也撑持散布式事件
1.2在WebLogic里设置DataSource
1.2.1.设置毗连池,注重这里应当选择驱动是ThinXA而不是Thin
1.2.2.设置数据源,利用后面配好的XA的毗连池
2.程序完成
2.1.完成本人的Xid
importjavax.transaction.xa.*;
publicclassMyXidimplementsXid
{
protectedintformatId;
protectedbytegtrid[];
protectedbytebqual[];
publicMyXid()
{
}
publicMyXid(intformatId,bytegtrid[],bytebqual[])
{
this.formatId=formatId;
this.gtrid=gtrid;
this.bqual=bqual;
}
publicintgetFormatId()
{
returnformatId;
}
publicbyte[]getBranchQualifier()
{
returnbqual;
}
publicbyte[]getGlobalTransactionId()
{
returngtrid;
}
}2.2.经由过程JNDI找到WebLogic中设置好的数据源
publicXADataSourcegetXADataSource()
throwsException
{
InitialContextctx=newInitialContext(mgr.getProps());
XADataSourceds=(XADataSource)ctx.lookup("jdbc/xaDS");
returnds;
}2.3.利用XADataSource失掉XAConnection,利用XAConnection失掉XAResource,基于XAResource举行详细数据会见。假如我们这里lookup多个XADataSource,然后失掉多个XAResource,就能够完成多半据源的事件把持。
XADataSourcexaDS;
XAConnectionxaCon;
XAResourcexaRes;
Xidxid;
Connectioncon;
Statementstmt;
intret;
xaDS=getXADataSource();
xaCon=xaDS.getXAConnection();
xaRes=xaCon.getXAResource();
con=xaCon.getConnection();
stmt=con.createStatement();
xid=newMyXid(100,newbyte[]{0x01},newbyte[]{0x02});
try{
xaRes.start(xid,XAResource.TMNOFLAGS);
stmt.executeUpdate("insertintotest_tablevalues(100)");
xaRes.end(xid,XAResource.TMSUCCESS);
ret=xaRes.prepare(xid);
if(ret==XAResource.XA_OK){
xaRes.commit(xid,false);
}
}
catch(XAExceptione){
e.printStackTrace();
}
finally{
stmt.close();
con.close();
xaCon.close();
}
手机用到的是用j2me所编出来的小程序。 |
|