2010-02-02 31 views
7

Chúng tôi có nhiệm vụ kích hoạt dịch vụ hẹn giờ trong ứng dụng JBoss 5.1.0.GA và vấn đề là chúng tôi không thể thay đổi thời gian giao dịch. Việc lập chỉ mục Lucene dài này có thể mất nhiều thời gian hơn giới hạn 300 giây mặc định.Cài đặt thời gian chờ giao dịch JBoss?

Câu hỏi đặt ra là làm cách nào để thay đổi giá trị thời gian chờ, thêm @TransactionTimeout (1800) vào phương thức của nhân viên hoặc lớp không có bất kỳ ảnh hưởng nào.

Chỉnh sửa: Thiết lập này trong triển khai/giao dịch JBoss-beans.xml hoạt động tốt:

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

nhưng chú thích dường như không có hiệu lực thi hành hoặc hẹn giờ khởi xướng hoặc EJB không quốc tịch thường.

+0

'@ TransactionTimeout' không phải là chú thích JavaEE chuẩn ... từ đó ở đâu? – skaffman

+1

Đây là chú thích JBoss cụ thể. –

Trả lời

1

TransactionTimeout là một MDB? họ có chú thích khác. Liên kết này cung cấp các tùy chọn khác nhau để đặt thời gian chờ chuyển đổi qua mã trên các tệp cấu hình.

1

Bạn có thể tự khai báo khoảng thời gian chờ và tạo bộ hẹn giờ trong Session Bean.

Dưới đây là mẫu mã của Stateless Bean của tôi:

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

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

Hãy thử thiết lập này trong 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> 

Đây là một cấu hình máy chủ dựa, vì vậy hãy tìm conf/jboss-service.xml trong thư mục máy chủ của bạn.

7

Tôi đang sử dụng EJB3 với Jboss 5.1.0.GA và đã đặt thành công giá trị này trong JBOSS_HOME/deploy/transaction-jboss-beans.xml.

Giá trị mặc định là 300 trong <property name="transactionTimeout">300</property>

0

Chỉ định thời gian chờ giao dịch trong các yếu tố <blocking-timeout-millis> element.This cho biết thời gian tối đa trong mili giây để chặn một giao dịch trong khi chờ đợi một kết nối và trước khi hiển thị một ngoại lệ. Chỉ chặn trong khi chờ giấy phép kết nối và không hiển thị ngoại lệ nếu tạo kết nối mới mất một thời gian dài không chính xác.

<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

Không liên quan đến Jboss nhưng bạn có thể thiết lập thời gian chờ giao dịch Arjuna qua com.arjuna.ats.arjuna.coordinator.defaultTimeout = 60 bất động sản.

Các vấn đề liên quan