`
wj.king
  • 浏览: 70726 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

jboss,jbosscache,spring,mssql2000配置备忘

阅读更多
由于项目需要,要使用缓存作为验证系统,就产生了和数据库事务同步的需要,查来查去就觉得jbosscache可以,但是这个东西的中文资料太少,英文水平有差,看的头大,jta也是第一次运用,跌跌撞撞的现在有点眉目,先纪录下保存,还得继续配置。
一、jboss基本配置:
虚拟主机配置:
1、\server\default\deploy\jboss-web.deployer\server.xml设置host:
        <Host name="projectA"
           autoDeploy="false" deployOnStartup="false" deployXML="false"
           configClass="org.jboss.web.tomcat.security.config.JBossContextConfig">
        </Host>

2、设置\server\default\conf\jboss-service.xml文件的:
      <attribute name="URLs">
         deploy/,file:/E:/workspace/projectA
      </attribute>

    其中file:/E:/workspace/projectA为我的工程目录,里面有web.war文件夹作为jboss部署时候的选择文件夹(为什么非得要加这个后缀?而且如果这个文件夹或子文件夹有*.rar文件会报部署错误)

3、设置jboss-web.xml
    新增jboss-web.xml文件到projectA/web.war/WEB-INF下,内容如下
<?xml version="1.0"?>
<!DOCTYPE jboss-web>
<jboss-web>
	<context-root>/</context-root>
	<virtual-host>projectA</virtual-host>
</jboss-web>


4、设置mssql-xa-ds.xml:
    新增mssql-xa-ds.xml文件到/E:/workspace/projectA下(和web.war文件同一目录下,为什么也还不清楚,需要了解),内容如下(用的是jtds驱动):
<?xml version="1.0" encoding="UTF-8"?>

<datasources>
	<xa-datasource>
		<jndi-name>MSSQLXADS</jndi-name>
		<track-connection-by-tx />
		<use-java-context>false</use-java-context>
		<isSameRM-override-value>false</isSameRM-override-value>
		<xa-datasource-class>
			net.sourceforge.jtds.jdbcx.JtdsDataSource
		</xa-datasource-class>
		<xa-datasource-property name="ServerName">
			localhost
		</xa-datasource-property>
		<xa-datasource-property name="DatabaseName">
			dbname
		</xa-datasource-property>
		<xa-datasource-property name="Tds">8.0</xa-datasource-property>
		<user-name>sa</user-name>
		<password>sa</password>
		<!--
			You are recommended to use prepareSql=2 with true distributed transactions.
			If a temp stored procedure is created and then the container rolls back the 
			transaction, the driver's procedure cache will be out of line with the server.
		-->
		<xa-datasource-property name="PrepareSql">
			2
		</xa-datasource-property>
		<!--
			Set this property to true to cause the driver to emulate distributed transactions.
			False option only works for SQL Server 2000 with MSDTC and JtdsXA.DLL installed.
		-->
		<xa-datasource-property name="XaEmulation">
			false
		</xa-datasource-property>

		<min-pool-size>10</min-pool-size>
		<max-pool-size>60</max-pool-size>
		<idle-timeout-minutes>15</idle-timeout-minutes>
		<blocking-timeout-millis>5000</blocking-timeout-millis>
		<new-connection-sql>select 1</new-connection-sql>
		<check-valid-connection-sql>
			select 1
		</check-valid-connection-sql>
		<set-tx-query-timeout />
		<metadata>
			<type-mapping>MS SQLSERVER2000</type-mapping>
		</metadata>
	</xa-datasource>

</datasources>

    注意:需要把jtds包中\x86\XA下的JtdsXA.dll加入mssql(方法:拷贝到sqlserver的BINN里面,在查询分析器执行\x86\XA下的instjtds.sql)
    参考:http://wiki.jboss.org/wiki/Wiki.jsp?page=ConfigDataSources

二、spring配置使用jta
主要就是配置datasource,根据spring文档,直接copy设置即可,不过有个问题搞了满久,就是jee中的jndi的value设置只要和mssql-xa-ds.xml中的jndi-name相同即可,中间搞了满久加java:之类的都报错,后来恼火直接用就好了(JNDI没用过,要学的真tmd多)
大致配置如下:
	<jee:jndi-lookup id="dataSource" jndi-name="MSSQLXADS" />
	<bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager" />

PS:赞一个spring,呵呵,从jdbc的换到jta还真方便啊

三、jbosscache设置
jbosscache一开始就被网上很多介绍说一堆一堆的很神秘的配置吓倒,其实仔细看看英文文档,对照需要的功能,应该没那么恐怖的,不过现在还确实什么都不明白,事务啊,锁啊都是很晕,留着慢慢边应用边学习了,
由于并不需要集群,我只想要事务和锁,所以就用了local model的配置,大概配置如下
<?xml version="1.0" encoding="UTF-8"?>
<server>
	<mbean code="org.jboss.cache.jmx.CacheJmxWrapper"
		name="jboss.cache:service=Cache">

		<!-- Configure the TransactionManager -->
		<attribute name="TransactionManagerLookupClass">
			org.jboss.cache.transaction.GenericTransactionManagerLookup
		</attribute>

		<!-- Node locking level : SERIALIZABLE			
			REPEATABLE_READ (default)			
			READ_COMMITTED			
			READ_UNCOMMITTED			
			NONE             -->
		<attribute name="IsolationLevel">READ_COMMITTED</attribute>
		
		<!-- Lock parent before doing node additions/removes -->
		<attribute name="LockParentForChildInsertRemove">
			true
		</attribute>

		<!-- Valid modes are LOCAL (default)			
			REPL_ASYNC			
			REPL_SYNC			
			INVALIDATION_ASYNC			
			INVALIDATION_SYNC   -->
		<attribute name="CacheMode">LOCAL</attribute>

		<!-- Max number of milliseconds to wait for a lock acquisition -->
		<attribute name="LockAcquisitionTimeout">15000</attribute>

	</mbean>
</server>


简单使用方式:
public class CacheManagerJbossCacheImpl {
    private static final Log logger = LogFactory
            .getLog(CacheManagerJbossCacheImpl.class);
    private Cache<String, Object> cache;

    public void initCache() {
        logger.info("initCache CacheManagerJbossCacheImpl");
        CacheFactory factory = new DefaultCacheFactory();
        this.cache = factory.createCache(
                "com/projecta/cache/jbosscache-config.xml", true);
        cache.addCacheListener(new JbossCacheListener());
    }

    public void insertDepartmentToCache(Department d) {
        // Fqn<String> departmentFqn = Fqn.fromString("/department/" +
        // d.getBh());
        this.cache.put("/department/" + d.getBh(), d.getBh(), d);
        logger.info("put cache " + d.getBh());
    }

    public Department getDepartmentFromCache(String bh) {
        return (Department) this.cache.get("/department/" + bh, bh);
    }

    public void destoryCache() {
        this.cache.stop();
        this.cache.destroy();
    }

}

该类使用spring的bean设置init-method来启动initCache


暂时要解决的问题:
1、偶尔出现javax.transaction.xa.XAException: XAER_RMFAIL: The resource manager is unavailable错误,网上有资料,英文的,看的意思好像是说要配置连接池的大小,加上后好像没点出来,还得继续处理
2、jbosscache的文档还得读,英文的,痛苦,有没好心人翻译下额- -
3、jboss启动瘦身处理,以前都用的tomcat,第一次用jboss,好晕,不知如何下手
4、jta原理了解,jta是不是由容器提供一个事务管理器,然后每个参与事务的连接都由它管理?
5、jndi,,,,,,话说做过好久j2ee了,其实用到这些的机会少之又少,学吧
6、jbosscache是如何参与事务的???虽然测试已经通过,,,
还有?以后加,,,
分享到:
评论

相关推荐

    jboss-as-sprint-int-5.0.0.GA.jar 和 jboss-spring-int-vfs.jar

    `jboss-spring-int-vfs.jar`就是为了让Spring能够理解和利用JBoss的VFS,从而在JBoss环境下正确地处理文件资源,如加载配置文件、读写日志等。这个插件使得Spring应用无需关心具体的文件系统实现,只需遵循VFS接口,...

    jboss-spring-int-vfs.jar

    jboss-spring-int-vfs.jar

    jboss6 sqlserver 2000 数据库连接配置

    在IT行业中,数据库连接配置是开发和管理应用的重要环节,特别是对于企业级应用服务器如JBoss和数据库系统如SQL Server 2000。本文将详细介绍如何在JBoss 6中配置连接到SQL Server 2000的过程,以及与之相关的源码和...

    Jboss-Spring

    5. **Spring与JBoss AS的集成**:Spring在JBoss AS中的集成涉及到容器级别的配置,例如使用Spring的Bean管理替代或补充JBoss AS的EJB管理。此外,还可能包括Spring与JBoss交易管理、安全认证、消息队列等服务的整合...

    jboss-as-sprint-int-5.0.0.GA.jar jboss-spring-int-vfs.jar

    "jboss-as-sprint-int-5.0.0.GA.jar" 和 "jboss-spring-int-vfs.jar" 是与JBoss应用服务器相关的两个关键组件,主要用于Spring框架与JBoss服务器的集成以及虚拟文件系统(Virtual File System,VFS)的支持。...

    jboss配置入门,jboss的初级配置

    jboss配置入门 jboss系统是一种基于Java的应用服务器,具有高性能、可扩展、安全性强等特点。在本文中,我们将对jboss的基本配置进行介绍,包括其文件夹结构、配置文件、负载均衡配置等。 jboss文件夹结构 jboss的...

    MyEclipse中配置JBoss

    【标题】:“MyEclipse中配置JBoss” 在IT行业中,MyEclipse是一款深受开发者喜爱的集成开发环境(IDE),尤其对于Java EE项目开发来说,它提供了强大的支持。而JBoss则是一个开源的应用服务器,广泛用于部署和管理...

    jboss热部署配置

    JBoss是一款著名的开源Java应用...总之,JBoss的热部署配置涉及修改配置文件、选择合适的部署目录和类加载器策略,以及可能使用辅助工具。正确配置后,开发者可以高效地测试和调试应用程序,而不必频繁地重启服务器。

    JBoss篇:安装与配置

    JBoss篇:安装与配置 一、安装与配置 在本文中,我们将下载和安装 JBoss 4.2.1.GA 版本。下载地址为 http://sourceforge.net/project/showfiles.php?group_id=22866&package_id=16942&release_id=523619。下载完成...

    jboss服务器的详细配置

    JBoss连接数据库的配置通常位于`{jboss_home}\server\default\deploy`目录下的特定服务文件,如`mssql-service.xml`。要更改数据库连接,需要修改以下几个属性: 1. `ConnectionURL`:指定数据库服务器地址、端口和...

    spring-jboss整合

    通过Spring的JBOSS自定义命名空间,可以在Spring配置文件中直接定义和使用这些服务相关的Bean。 ##### 2.3 Load-time weaving(加载时织入) Load-time weaving是一种AOP技术,它能够在类加载到内存中时动态地插入...

    如何在spring中等价配置得到原本由jndi配置实现的数据源

    然而,有时我们可能希望在非Web环境下或不使用JNDI的情况下配置数据源,这时我们需要在Spring的配置文件中等价地实现JNDI的数据源配置。以下是如何在Spring中进行这种转换的详细步骤和知识点: 1. **理解JNDI配置**...

    JBoss在MyEclipse中的配置及说明

    - **Server Configuration**:这里可以配置JBoss的特定配置文件,如`standalone.xml`或`domain.xml`,以及相关的JVM参数。 - **Classpath**:定义服务器启动时的类路径,通常包括应用程序的库和依赖。 通过以上...

    [JBoss] JBoss AS 7 配置部署管理教程 (英文版)

    [Packt Publishing] JBoss AS 7 配置部署管理教程 (英文版) [Packt Publishing] JBoss AS 7 Configuration, Deployment and Administration (E-Book) ☆ 出版信息:☆ [作者信息] Francesco Marchioni [出版机构...

    jboss快速配置,简单配置使用

    ### JBoss快速配置详解 JBoss是一款开源的应用服务器,提供了丰富的功能和服务,广泛应用于企业级应用程序的开发与部署。本文将详细介绍如何进行JBoss的基本配置,包括控制台登录窗口的设置、连接数据库以及端口的...

    Apache+Jboss(Tomcat)集群配置

    Apache+Jboss(Tomcat)集群配置是一种常见的高可用性和负载均衡解决方案,它通过在前端部署Apache服务器,中间层配置多个Jboss或Tomcat应用服务器,后端连接统一的数据库来实现系统的扩展性和稳定性。以下是配置这个...

    jboss配置MySql的JNDI

    本文将深入解析如何在JBoss中配置MySQL的JNDI数据源,确保应用程序能够高效、稳定地访问数据库资源。 ### JBoss与JNDI的关联 JBoss作为一个高性能的Java应用服务器,提供了丰富的功能支持企业级应用开发。JNDI作为...

Global site tag (gtag.js) - Google Analytics