11
votes

Réglage du délai d'expiration de transaction JBoss?

Nous avons une tâche déclenchée du service de minuterie dans l'application JBoss 5.1.0.ga et le problème est que nous ne pouvons pas modifier le temps de transaction. Cette longue indexation de Lucene peut prendre plus de temps que la limite de 300 secondes par défaut.

La question est de savoir comment modifier la valeur du délai d'attente, l'ajout @TransactionTimeout (1800) à la méthode ouvrière ou la classe n'avait aucun effet.

EDIT: réglage de la réglage / transaction-jboss- haricots.xml fonctionne bien: xxx

mais l'annotation ne semble pas avoir effet sur l'une ou l'autre minuterie initiée ou la normale EJBS apatrides.


2 commentaires

@TransactionTimeout n'est pas une annotation Javae standard ... D'où vient-il?


C'est une annotation spécifique JBoss.


7 Réponses :


2
votes

TransactionTimeout est-ce un MDB? Ils ont une annotation différente. Le lien donne aux différentes options pour définir le délai de transation soit via le code sur les fichiers de configuration.


0 commentaires

2
votes

Vous pouvez déclarer manuellement la période de délai d'attente et créer une minuterie dans le haricot de session.

ci-dessous est un échantillon de code de mon haricot apatride: xxx


0 commentaires

4
votes

Essayez de régler ceci dans jboss-service.xml : xxx

Il s'agit d'une configuration basée sur le serveur, alors recherchez Conf / JBoss Service. xml sous votre répertoire de serveur.


0 commentaires

9
votes

J'utilise ejb3 avec jboss 5.1.0.ga et avez défini avec succès Cette valeur dans jboss_home / déployé / transaction-jboss-haricons.xml .

La valeur par défaut était de 300 dans 300


0 commentaires

1
votes

Spécifiez le délai de transaction dans l'élément code> élément.Cet élément indique le temps maximum en millisecondes pour bloquer une transaction en attente d'une connexion et avant d'afficher une exception. Ce blocage uniquement lors de l'attente d'un permis pour une connexion et n'affiche pas une exception si la création d'une nouvelle connexion prenant une durée limitée inordinaire.

<subsystem xmlns="urn:jboss:domain:datasources:4.0">
            <datasources>
                <datasource jndi-name="java:jboss/xyz" pool-name="abc" enabled="true" use-java-context="true">
                    <connection-url>jdbc:sqlserver://xx.xx.xxx.xxx:1433;databaseName=xxxx</connection-url>
                    <driver>SQLServerDriver</driver>
                    <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
                    <pool>
                        <min-pool-size>50</min-pool-size>
                        <max-pool-size>150</max-pool-size>
                        <prefill>false</prefill>
                    </pool>
                    <security>
                        <user-name>xxx</user-name>
                        <password>xxx</password>
                    </security>
                    <timeout>
                        <blocking-timeout-millis>36000</blocking-timeout-millis>
                    </timeout>
                </datasource>
                <datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">
                    <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>
                    <driver>h2</driver>
                    <security>
                        <user-name>sa</user-name>
                        <password>sa</password>
                    </security>
                </datasource>
                <drivers>
                    <driver name="SQLServerDriver" module="com.microsoft.sqlserver">
                        <xa-datasource-class>com.microsoft.sqlserver.jdbc.SQLServerDataSource</xa-datasource-class>
                    </driver>
                    <driver name="h2" module="com.h2database.h2">
                        <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
                    </driver>
                </drivers>
            </datasources>
        </subsystem>


0 commentaires

2
votes

non lié à jboss mais vous pouvez définir le délai d'expiration de transaction arjuna via com.arjuna.ats.arjuna.coordinator.defaulttimeout = 60 biens.


0 commentaires

8
votes

Délai de transaction, paramètres par défaut dans la version de JBoss EPA 7.1 est 300.

Écran portail JBoss P>

Ajouter cette ligne ( code>) ajoutez le fichier de configuration dans le chemin " .. autonome / configuration / standalone.xml strong>" P>

                                    ....
<subsystem xmlns="urn:jboss:domain:transactions:4.0">
            <core-environment>
                <process-id>
                    <uuid/>
                </process-id>
            </core-environment>
            <recovery-environment socket-binding="txn-recovery-environment" status-socket-binding="txn-status-manager"/>
            <coordinator-environment enable-tsm-status="true" default-timeout="1200"/>
            <object-store path="tx-object-store" relative-to="jboss.server.data.dir"/>
 </subsystem>


0 commentaires