Bea Weblogic10.0M1およびWorkManager
-
12-09-2019 - |
質問
していますの実行に長い実行中のスレッドにBea WebLogic10.0M1サーバー環境です。私は利用しようとしたWorkManagersます。を自WorkManagerきを指定し自分のスレッドのタイムアウト(MaxThreadStuckTime)の代わりに調整するタイムアウトにできます。
私のセットアップとして
weblogic-ejb-jar.xml:
<?xml version="1.0" encoding="UTF-8"?>
<weblogic-ejb-jar xmlns="http://www.bea.com/ns/weblogic/90" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.bea.com/ns/weblogic/90 http://www.bea.com/ns/weblogic/90/weblogic-ejb-jar.xsd">
<weblogic-enterprise-bean>
<ejb-name>TestBean</ejb-name>
<resource-description>
<res-ref-name>myWorkManager</res-ref-name>
<jndi-name>wm/myWorkManager</jndi-name>
</resource-description>
</weblogic-enterprise-bean>
</weblogic-ejb-jar>
weblogic-application.xml:
<?xml version="1.0" encoding="UTF-8"?>
<weblogic xmlns="http://www.bea.com/ns/weblogic/90" xmlns:j2ee="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.bea.com/ns/weblogic/90
http://www.bea.com/ns/weblogic/90/weblogic.xsd">
<work-manager>
<name>myWorkManager</name>
<ignore-stuck-threads>1</ignore-stuck-threads>
</work-manager>
</weblogic>
やのあん:
import javax.annotation.Resource;
import javax.ejb.Stateful;
import weblogic.work.WorkManager;
@Stateful(mappedName = "TestBean")
public class TestBean implements TestBeanRemote {
@Resource(name = "myWorkManager")
private WorkManager myWorkManager;
public void test() {
myWorkManager.schedule(new Runnable() {
public void run() {
while (true) {
System.out.println("test: +++++++++++++++++++++++++");
try {
Thread.sleep(45000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
});
}
}
しよう展開こうとが、あなたのサーバーだったら、以下の例外:
[EJB:011026]The EJB container failed while creating the java:/comp/env namespace for this EJB deployment.
weblogic.deployment.EnvironmentException: [EJB:010176]The resource-env-ref 'myWorkManager' declared in the ejb-jar.xml descriptor has no JNDI name mapped to it. The resource-ref must be mapped to a JNDI name using the resource-description element of the weblogic-ejb-jar.xml descriptor.
いよいのかアクセス/利用WorkMangers日には、今もこしています。非常に悔しい!
感謝。
解決
を削除する必要があるのWorkManager refrenceから weblogic-ejb-jar.xml, このrefeneceるべきかもしれません ejb-jar.xml.
Gdpいものかどうか疑問を持つもWeblogicスキーマ定義"weblogic-ejb-jar.xsd"をするための参考の要素が必要することで知られているxsd検証。
なっくする要素
資源の説明 から weblogic-ejb-jar.xml
<weblogic-enterprise-bean>
<ejb-name>TestBean</ejb-name>
<resource-description>
<res-ref-name>myWorkManager</res-ref-name>
<jndi-name>wm/myWorkManager</jndi-name>
</resource-description>
</weblogic-enterprise-bean>
のように見えてしまうこ
weblogic-ejb-jar.xml
<weblogic-enterprise-bean>
<ejb-name>TestBean</ejb-name>
</weblogic-enterprise-bean>
おworkManager参照するejb-jar.xml こんな感じ。
ejb-jar.xml
<enterprise-beans>
<session>
<ejb-name>TestBean</ejb-name>
<ejb-class>com.xxx.TestBean</ejb-class> <!-- your package com.xxx-->
<resource-ref>
<res-ref-name>myWorkManager</res-ref-name>
<res-type>commonj.work.WorkManager</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</session>
</enterprise-beans>
今得WorkManagerからJNDIになっている
InitialContext ctx = new InitialContext();
this.workManager = (WorkManager) ctx.lookup("java:comp/env/myWorkManager");
私の知識を深注釈作業を均等にする。
@Resource(name = "myWorkManager")
私 weblogic-application.xml 感じるものとして、上記
<weblogic>
<work-manager>
<name>myWorkManager</name>
<ignore-stuck-threads>1</ignore-stuck-threads>
</work-manager>
これは私にとって..私の場合は必要なし共有できるフルコードです。
おWorkManagerの負荷でもWeblogic管理コンソール Home>導入—>yourApp—>モニタリング(タブ)—>ワタブ)"
他のヒント
必要なものの名称お仕事です。のとなっておりますので当社の耳のプロジェクトEarContent/META-INF/weblogic-application.xml
<wls:work-manager>
<wls:name>wmBatch</wls:name>
<wls:ignore-stuck-threads>true</wls:ignore-stuck-threads>
</wls:work-manager>
(だれすることができます。
およびその利用のためのアノテーションの設定マネージャー:
@MessageDriven(ejbName =..., dispatchPolicy = "wmBatch")
やが押されるわけではありません符号の周りの仕事です。あおまかせください。
BEAとともに、IBM)を開発してい枠組みを具体的には管理ンタは、Java EE環境です。見 CommonJ.
春の枠組みには、一部のコラ周辺のこの枠組み