2009-08-20 17 views
27

Tôi đối mặt với những ngoại lệ sau đây:
weblogic.transaction.internal.TimedOutException: Giao dịch timed out sau 300 giâyWebLogic giao dịch Timeout: làm thế nào để thiết lập trong quản trị giao diện điều khiển trong WebLogic AS 8.1

này được thiết lập trong Stateless Session EJB Bean là javax.transaction.UserTransaction jtaTransaction.setTransactionTimeout (300) nhưng tôi không thể tìm ra, ở đâu trong bảng điều khiển ứng dụng để đặt thuộc tính này.

+0

Nếu bạn không thể thiết lập thời gian chờ với giao diện điều khiển, xem [câu trả lời này] (http://stackoverflow.com/a/17580412/1782379). – bsiamionau

Trả lời

37

Sau khi đăng nhập, trên trang chủ của Server Console bạn sẽ thấy 3 phần:

  • Thông tin và Tài nguyên
  • Configurations miền
  • Dịch vụ Configurations

Dưới Dịch vụ Cấu hình có tiểu mục Các dịch vụ khác. Nhấp vào liên kết JTA Cấu hình dưới Các dịch vụ khác. Thời gian chờ giao dịch phải là cài đặt hàng đầu trên trang được hiển thị, được gắn nhãn Thời gian chờ thời gian chờ.

Weblogic Console screenshot

24

Đã cùng một vấn đề, nhờ mikej.

Trong WLS 10,3 cấu hình này có thể được tìm thấy trong Dịch vụ> JTA trình đơn, hoặc nếu bạn bấm vào tên miền (mục đầu tiên trong menu) - trên Configuration> JTA tab.

alt text

0

Có thể ở cấp ứng dụng. Nhấp vào EJB trong triển khai (như Trang chủ>> Tóm tắt các triển khai>). Nhấp vào tab Configuration và có "giao dịch Timeout:"

+0

Không có điều gì ở đó ... đó là thời gian chờ của phiên – Cris

3

Trong WebLogic 9.2 cấu hình thông qua giao diện điều khiển như sau:

enter image description here

tôi tin rằng các giá trị mặc định là 60. Hãy nhớ sử dụng nút Release Configuration sau khi bạn chỉnh sửa trường.

0

Nếu bạn không muốn thay đổi thời gian chờ mặc định trên toàn miền, tùy chọn tốt nhất của bạn là thay đổi bộ mô tả triển khai bằng cách đặt thuộc tính thời gian chờ-giây trong weblogic-ejb-jar.xml - xem http://docs.oracle.com/cd/E11035_01/wls100/jta/trxejb.html

Điều này ghi đè mặc định "Hết thời gian chờ", chỉ dành cho EJB cụ thể này, trong khi để lại tất cả EJB khác không bị ảnh hưởng.

0

Liên kết ở trên khá lỗi thời. Đối với WebLogic 12c, bạn có thể xác định thời gian chờ giao dịch trong bộ mô tả giao dịch cho mỗi EJB trong bộ mô tả triển khai WebLogic weblogic-ejb-jar.xml, xem weblogic-ejb-jar.xml Deployment Descriptor Reference.

Đối với một thông điệp điều khiển được nó trông như thế này:

<weblogic-enterprise-bean> 
    <ejb-name>TestMessageBeanLow</ejb-name> 
    <message-driven-descriptor> 
     <pool> 
      <max-beans-in-free-pool>1</max-beans-in-free-pool> 
     </pool> 
     <destination-jndi-name>jms/ActiveMQ/TestRequestQueue_LOW</destination-jndi-name> 
     <connection-factory-jndi-name>jms/ActiveMQ/TestConnectionFactory</connection-factory-jndi-name> 
    </message-driven-descriptor> 
    <transaction-descriptor> 
     <trans-timeout-seconds>60</trans-timeout-seconds> 
    </transaction-descriptor> 
    <resource-description> 
     <res-ref-name>jms/ConnectionFactory</res-ref-name> 
     <jndi-name>jms/ActiveMQ/TestConnectionFactory</jndi-name> 
    </resource-description> 
</weblogic-enterprise-bean> 

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