[EJB/JBoss] - Re: Transaction TransactionImpl time out ?
by alchemista
"jaap" wrote : I got the same errors after upgrading to 4.0.2 (from 3.2.6). It happens when a process it too slow and it exceeds the time-out of 5 minutes set in JBoss for transactions.
| The result is indeed very disturbing, JBoss sort of crashes, it will only serve error pages and sends thousands of ERROR e-mails (log4j is set up to do so) in only a few minutes of time. The only solution is to kill the JBoss process.
|
| I am not sure if the cause of this is new for JBoss 4, because for my implementation JBoss 4 is about 40% slower then JBoss 3, so that might be the cause of my time-out problem. But the solution is not very simple because you might think it could help to increase the time-out value (conf/jboss-service.xml). It doesn't. Somehow this value is not taken into account. And i am using Hibernate for the persistence, and i did not find a way to influence the time-out settings of a transaction programatically (the normal transactions can, but hibernate hides or disables these functions). So, i have reprogrammed the 'heavy pieces' of software. All intense calculations are performed before any transaction and that seems to have solved my problems.
|
| Jaap
I think the reason that editing that file is not sufficient is that it may not be persisted across restarts. I found from some other research that if you want to change the timeout setting across restarts, then:
You can edit the jboss-service.xml file in server/conf/templates to
persist values across restarts.
I haven't tested this myself yet, however.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4052891#4052891
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4052891
18Â years, 10Â months
[Persistence, JBoss/CMP, Hibernate, Database] - Re: relationships in jbosscmp-jdbc.xml
by paoletto
ok. i tried but i get a weird error. I followed jboss 3.2.7 developer guide.
the error is this:
| 12:35:25,352 ERROR [Account#findRelatedAccounts] Find failed
| java.sql.SQLException: Colonna non trovata: T0_A.DEPARTMENT in statement [SELECT t0_a.utente FROM DIPARTIMENTO t1_d, ACCOUNT t0_a WHERE ((t1_d.descrizione = ?)) AND t1_d.idDipartimento=t0_a.department]
|
it's weird because i mapped idDipartimento to dipartimento, not department. department should only be the cmr field :/
now my entities are:
| <entity >
| <description><![CDATA[Description for Account]]></description>
| <display-name>Entity Bean relativa agli Account di accesso</display-name>
|
| <ejb-name>Account</ejb-name>
|
| <local-home>servizioDipartimentale.interfaces.AccountLocalHome</local-home>
| <local>servizioDipartimentale.interfaces.AccountLocal</local>
|
| <ejb-class>servizioDipartimentale.ejb.AccountBean</ejb-class>
| <persistence-type>Container</persistence-type>
| <prim-key-class>java.lang.String</prim-key-class>
| <reentrant>False</reentrant>
| <cmp-version>2.x</cmp-version>
| <abstract-schema-name>Account</abstract-schema-name>
| <cmp-field >
| <description><![CDATA[Getter for CMP Field utente]]></description>
| <field-name>utente</field-name>
| </cmp-field>
| <cmp-field >
| <description><![CDATA[Getter for CMP Field pwd]]></description>
| <field-name>pwd</field-name>
| </cmp-field>
| <cmp-field >
| <description><![CDATA[Getter for CMP Field cognome]]></description>
| <field-name>cognome</field-name>
| </cmp-field>
| <cmp-field >
| <description><![CDATA[Getter for CMP Field nome]]></description>
| <field-name>nome</field-name>
| </cmp-field>
| <cmp-field >
| <description><![CDATA[Getter for CMP Field ruolo]]></description>
| <field-name>ruolo</field-name>
| </cmp-field>
| <cmp-field >
| <description><![CDATA[Getter for CMP Field tipo]]></description>
| <field-name>tipo</field-name>
| </cmp-field>
| <cmp-field >
| <description><![CDATA[Getter for CMP Field dipartimento]]></description>
| <field-name>dipartimento</field-name>
| </cmp-field>
| <primkey-field>utente</primkey-field>
|
| <query>
| <query-method>
| <method-name>findAll</method-name>
| <method-params>
| </method-params>
| </query-method>
| <ejb-ql><![CDATA[SELECT OBJECT(a) FROM Account AS a]]></ejb-ql>
| </query>
|
| <query>
| <query-method>
| <method-name>findRelatedAccounts</method-name>
| <method-params>
| <method-param>java.lang.String</method-param>
| </method-params>
| </query-method>
| <ejb-ql><![CDATA[SELECT OBJECT(a) FROM Dipartimento AS d, IN (d.accounts) as a WHERE d.descrizione = ?1]]></ejb-ql>
| <!--ejb-ql><![CDATA[SELECT OBJECT(a) FROM Account AS a WHERE a.Dipartimento.Descrizione = 'DIPARTIMENTO DI FISICA']]></ejb-ql-->
| </query>
|
| </entity>
|
| <entity >
| <description><![CDATA[Description for Dipartimento]]></description>
| <display-name>Name for Dipartimento</display-name>
|
| <ejb-name>Dipartimento</ejb-name>
|
| <local-home>servizioDipartimentale.interfaces.DipartimentoLocalHome</local-home>
| <local>servizioDipartimentale.interfaces.DipartimentoLocal</local>
|
| <ejb-class>servizioDipartimentale.ejb.DipartimentoBean</ejb-class>
| <persistence-type>Container</persistence-type>
| <prim-key-class>java.lang.Integer</prim-key-class>
| <reentrant>False</reentrant>
| <cmp-version>2.x</cmp-version>
| <abstract-schema-name>Dipartimento</abstract-schema-name>
| <cmp-field >
| <description><![CDATA[Getter for CMP Field idDipartimento]]></description>
| <field-name>idDipartimento</field-name>
| </cmp-field>
| <cmp-field >
| <description><![CDATA[Getter for CMP Field Descrizione]]></description>
| <field-name>descrizione</field-name>
| </cmp-field>
| <primkey-field>idDipartimento</primkey-field>
|
| <query>
| <query-method>
| <method-name>findAll</method-name>
| <method-params>
| </method-params>
| </query-method>
| <ejb-ql><![CDATA[SELECT OBJECT(a) FROM Dipartimento AS a]]></ejb-ql>
| </query>
|
| <!-- Write a file named ejb-finders-DipartimentoBean.xml if you want to define extra finders. -->
|
| </entity>
|
relationship
| <ejb-relation>
| <ejb-relation-name>Dipartimento-Account</ejb-relation-name>
| <ejb-relationship-role>
| <ejb-relationship-role-name>Department-has-accounts</ejb-relationship-role-name>
| <multiplicity>One</multiplicity>
| <relationship-role-source>
| <ejb-name>Dipartimento</ejb-name>
| </relationship-role-source>
| <cmr-field>
| <cmr-field-name>accounts</cmr-field-name>
| <cmr-field-type>java.util.Collection</cmr-field-type>
| </cmr-field>
| </ejb-relationship-role>
| <ejb-relationship-role>
| <ejb-relationship-role-name>Account-belongs-to-department</ejb-relationship-role-name>
| <multiplicity>Many</multiplicity>
| <cascade-delete/>
| <relationship-role-source>
| <ejb-name>Account</ejb-name>
| </relationship-role-source>
| <cmr-field>
| <cmr-field-name>department</cmr-field-name>
| </cmr-field>
| </ejb-relationship-role>
| </ejb-relation>
|
and in jbosscmp-jdbc
| <ejb-relation>
| <ejb-relation-name>Dipartimento-Account</ejb-relation-name>
| <foreign-key-mapping/>
|
| <ejb-relationship-role>
| <ejb-relationship-role-name>Department-has-accounts</ejb-relationship-role-name>
| <key-fields>
| <key-field>
| <field-name>idDocumento</field-name>
| <column-name>documento</column-name>
| </key-field>
| </key-fields>
| </ejb-relationship-role>
|
| <ejb-relationship-role>
| <ejb-relationship-role-name>Account-belongs-to-department</ejb-relationship-role-name>
| <key-fields/>
| </ejb-relationship-role>
| </ejb-relation>
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4052884#4052884
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4052884
18Â years, 10Â months