2010-02-02 18 views
7

Mamy zadanie wyzwalane usługą timera w aplikacji JBoss 5.1.0.GA i problem polega na tym, że nie możemy zmienić czasu transakcji. To długie indeksowanie Lucene może trwać dłużej niż domyślny limit 300 sekund.Ustawienie limitu czasu transakcji JBoss?

Pytanie, jak zmienić wartość limitu czasu, dodając @TransactionTimeout (1800) do metody pracownika lub klasa nie ma żadnego efektu.

Edycja: Ustawienie to w deploy/transakcji jboss-beans.xml działa dobrze:

<property name="transactionTimeout">1800</property> 

ale adnotacja wydaje się nie mieć wpływu na obu zegara zainicjowanego lub normalnych bezpaństwowców EJB.

+0

'@ TransactionTimeout' nie jest standardową adnotacją JavaEE ... skąd to jest? – skaffman

+1

Jest to adnotacja JBoss. –

Odpowiedz

1

TransactionTimeout czy to jest MDB? mają inną adnotację. Łącze podaje różne opcje ustawiania czasu oczekiwania na transmisję poprzez kod na plikach konfiguracyjnych.

1

Możesz ręcznie zadeklarować limit czasu i utworzyć timer w Sezonie sesji.

Poniżej przykładowy kod mojego Stateless Bean:

public void createTimer(String timerName) { 
    //... 
    sessionContext.getTimerService().createTimer(timeLongValue, timerName); 
    //... 
} 

@Timeout 
public void timeOutHandler(Timer timer){ 
    // code 
} 
2

Spróbuj ustawić to w jboss-service.xml:

<!-- JBoss Transactions JTA --> 
    <mbean code="com.arjuna.ats.jbossatx.jta.TransactionManagerService" 
     name="jboss:service=TransactionManager"> 
     <attribute name="TransactionTimeout">120</attribute> <!-- timeout in seconds--> 
     <attribute name="ObjectStoreDir">${jboss.server.data.dir}/tx-object-store</attribute> 
    </mbean> 

ten jest oparty konfiguracji serwera, więc szukać conf/jboss-service.xml w katalogu twojego serwera.

7

Używam EJB3 z Jboss 5.1.0.GA i z powodzeniem ustawiono tę wartość w JBOSS_HOME/deploy/transaction-jboss-beans.xml.

Domyślne 300 w <property name="transactionTimeout">300</property>

0

określić limit czasu transakcji w element.This elementu <blocking-timeout-millis> wskazuje maksymalny czas w milisekundach, aby zablokować transakcję podczas oczekiwania na połączenie, a przed wyświetleniem wyjątek. Blokuje tylko podczas oczekiwania na zezwolenie na połączenie i nie wyświetla wyjątku podczas tworzenia nowego połączenia, które zajmuje wyjątkowo dużo czasu.

<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

niezwiązanych z Jboss ale można ustawić limit czasu Arjuna transakcji poprzez com.arjuna.ats.arjuna.coordinator.defaultTimeout = 60 nieruchomości.

Powiązane problemy