9.3.3. Seam-managed persistence contexts and atomic conversations
dmartfw Oct 23, 2009 3:22 PMHello,
I'm trying to set auto flushing to manual using the components.xml:
<core:manager concurrent-request-timeout="10000" conversation-id-parameter="cid" conversation-timeout="10000" default-flush-mode="MANUAL" />
This does not work; but, I have had success in beginning a long running conversation with the flush mode set to manual:
@Begin(join=true, flushMode=FlushModeType.MANUAL)
I am using SEAM 2.2.0.GA along with Richfaces 3.3.1.GA running on the JBOSS AS 5.1.0.GA. I am curious if this could be a configuration setting that I am not aware of. Below are my components.xml and persistences.xml files. Getting this to work would be a huge time saver.
I appreciate any help
COMPONENTS.XML
<?xml version="1.0" encoding="UTF-8"?>
<components xmlns="http://jboss.com/products/seam/components"
xmlns:async="http://jboss.com/products/seam/async"
xmlns:p="http://jboss.com/products/seam/pdf"
xmlns:cache="http://jboss.com/products/seam/cache"
xmlns:core="http://jboss.com/products/seam/core"
xmlns:jms="http://jboss.com/products/seam/jms"
xmlns:mail="http://jboss.com/products/seam/mail"
xmlns:persistence="http://jboss.com/products/seam/persistence"
xmlns:security="http://jboss.com/products/seam/security"
xmlns:transaction="http://jboss.com/products/seam/transaction"
xmlns:web="http://jboss.com/products/seam/web"
xmlns:navigation="http://jboss.com/products/seam/navigation"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://jboss.com/products/seam/core http://jboss.com/products/seam/core-2.1.xsd
http://jboss.com/products/seam/transaction http://jboss.com/products/seam/transaction-2.1.xsd
http://jboss.com/products/seam/persistence http://jboss.com/products/seam/persistence-2.1.xsd
http://jboss.com/products/seam/security http://jboss.com/products/seam/security-2.1.xsd
http://jboss.com/products/seam/components http://jboss.com/products/seam/components-2.1.xsd
http://jboss.com/products/seam/web http://jboss.com/products/seam/web-2.1.xsd
http://jboss.com/products/seam/mail http://jboss.com/products/seam/mail-2.1.xsd
http://jboss.com/products/seam/async http://jboss.com/products/seam/async-2.1.xsd
http://jboss.com/products/seam/web http://jboss.com/products/seam/web-2.1.xsd
http://jboss.com/products/seam/navigation http://jboss.com/products/seam/navigation-2.1.xsd
http://jboss.com/products/seam/jms http://jboss.com/products/seam/jms-2.1.xsd
http://jboss.com/products/seam/cache http://jboss.com/products/seam/cache-2.1.xsd" >
<!--<core:init debug="false" jndi-pattern="java:comp/env/prod/#{ejbName}/local"/>-->
<core:init debug="false" jndi-pattern="prod/#{ejbName}/local"/>
<!-- Increased timeouts for concurrent request and conversation to support large uploads Kelly - 050808 -->
<core:manager concurrent-request-timeout="10000" conversation-id-parameter="cid" conversation-timeout="180000" default-flush-mode="MANUAL" />
<transaction:ejb-transaction/>
<persistence:entity-manager-factory auto-create="true" name="dbFactory" persistence-unit-name="prodDatabase" />
<persistence:managed-persistence-context auto-create="true"
entity-manager-factory="#{dbFactory}" name="entityManager" persistence-unit-jndi-name="java:/entityManager" />
<transaction:entity-transaction entity-manager="#{entityManager}"/> -->
<security:identity authenticate-method="#{loginManager.login}"/>
<mail:mail-session host="mailSrv.martin.com"/>
<async:timer-service-dispatcher/>
<factory auto-create="true" name="clientIp" value="#{facesContext.externalContext.request.remoteAddr}"/>
<factory auto-create="true" name="userSession" value="#{facesContext.externalContext.request.session}"/>
<factory auto-create="true" name="sessionId" value="#{facesContext.externalContext.request.session.id}"/>
<factory auto-create="true" name="request" value="#{facesContext.externalContext.request}"/>
<factory name="httpRequest" value="#{facesContext.externalContext.request}" auto-create="true"/>
<factory name="httpSession" value="#{facesContext.externalContext.request.session}" auto-create="true"/>
<component class="org.jboss.seam.async.ThreadPoolDispatcher" precedence="40"/>
<!--<web:context-filter url-pattern="/servlets/*"/> -->
<web:exception-filter url-pattern="*.seam"/>
<web:redirect-filter url-pattern="*.seam"/>
<!-- <cache:jboss-cache-provider configuration="META-INF/cache/ehcache.xml" /> -->
<jms:topic-connection auto-create="true" topic-connection-factory-jndi-name="java:/ConnectionFactory"/>
<jms:managed-topic-publisher auto-create="true" name="nodeSystemSender" topic-jndi-name="jms/PROD.NODE.SYSTEM"/>
<jms:managed-topic-publisher auto-create="true" name="comExecuteSender" topic-jndi-name="jms/PROD.NODE.COM.EXECUTE"/>
<jms:managed-topic-publisher auto-create="true" name="reqExecuteSender" topic-jndi-name="jms/PROD.NODE.REQUEST.EXECUTE"/>
</components>
PERSISTENCE.XML
<?xml version="1.0" encoding="UTF-8"?>
<!-- Persistence deployment descriptor -->
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version="1.0">
<persistence-unit name="prodDatabase">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<!-- use "java:" for jboss -->
<jta-data-source>java:jdbc/OracleDS</jta-data-source>
<properties>
<property name="jboss.entity.manager.factory.jndi.name" value="java:/entityManager" />
<property name="hibernate.hbm2ddl.auto" value="create-drop" />
<property name="hibernate.show_sql" value="false" />
<!-- This turns on the 2nd level cache -->
<property name="hibernate.cache.use_query_cache" value="true"/>
<property name="hibernate.jdbc.wrap_result_sets" value="true"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect" />
<property name="hibernate.transaction.flush_before_completion" value="true" />
<property name="connection.release_mode" value="after_statement"/>
<property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup" />
<property name="hibernate.cache.provider_class" value="org.hibernate.cache.EhCacheProvider" />
<property name="net.sf.ehcache.configurationResourceName" value="/cache/ehcache.xml" />
<property name="hibernate.cache.region_prefix" value=""/>
</properties>
</persistence-unit>
</persistence>