2016-05-31 30 views
2

是否可以指定哪個commonj.work.WorkManager應該用於處理標記爲@Asynchronous的方法?定義@Asynchronous方法時指定工作管理器

在WebLogic 12.1.3應用我提高,我們以前定義的工作管理和使用注射它們:

@Resource(mappedName = "vm/myWorkManager") 
private WorkManager myWorkManager; 

...和調度異步工作方式就像這樣:

rjscWorkManager.schedule(new DetailWork(businessId)); 

我想定義@Asynchronous方法,以便異步代碼可以從CDI注入中受益,但是我也想控制有多少線程分配給工作。這隻能通過定義一個應用程序範圍的工作管理器來實現嗎?我沒有在EJB規範或與@Asynchronous和工作管理器有關的WebLogic文檔中看到任何內容。

回答

2

您可以通過在的weblogic-ejb-jar.xml中分配EJB到工作管理器限制分配給@Asynchronous方法的線程數:

<?xml version="1.0" encoding="UTF-8"?> 
<weblogic-ejb-jar 
    xmlns="http://xmlns.oracle.com/weblogic/weblogic-ejb-jar" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd http://xmlns.oracle.com/weblogic/weblogic-ejb-jar http://xmlns.oracle.com/weblogic/weblogic-ejb-jar/1.2/weblogic-ejb-jar.xsd"> 

    <!-- Define which work manager the EJB(s) should use --> 
    <weblogic-enterprise-bean> 
    <ejb-name>MyService</ejb-name> 
    <dispatch-policy>myWorkManager</dispatch-policy> 
    </weblogic-enterprise-bean> 

    <!-- Other EJBs could use the same work manager... --> 

    <!-- Define the work manager --> 
    <work-manager> 
    <!-- Name --> 
    <name>myWorkManager</name> 
    <!-- Min Threads - Guarantees the minimum number of threads the server will allocate to requests --> 
    <min-threads-constraint> 
     <name>myWorkManager-MinThreads-Constraint</name> 
     <count>5</count> 
    </min-threads-constraint> 
    <!-- Max Threads - Guarantees the maximum number of threads the server will allocate to requests --> 
    <max-threads-constraint> 
     <name>myWorkManager-MaxThreads-Constraint</name> 
     <count>100</count> 
    </max-threads-constraint> 
    <!-- Capacity - Causes the server to reject requests only when it has reached its capacity --> 
    <capacity> 
     <name>myWorkManager-Capacity-Constraint</name> 
     <count>-1</count> 
    </capacity> 
    </work-manager> 
</weblogic-ejb-jar> 

更多細節可以在這裏找到:

https://roundwheeltech.wordpress.com/2016/06/07/assigning-ejbs-to-work-managers/

相關問題