简体   繁体   English

JNDI 树:自定义工作管理器与默认工作管理器

[英]JNDI tree: custom work manager vs. default work manager

I have created a global scoped custom work manager 'WorkManagerHighPrio' via Weblogic console.我通过 Weblogic 控制台创建了一个全局范围的自定义工作管理器“WorkManagerHighPrio”。
Default work manager 'default' is listed in the JNDI tree and its reference is able to be looked up via java:global/wm/default .默认工作管理器“default”列在 JNDI 树中,可以通过java:global/wm/default查找其引用。 I wonder why my custom work manager is not listed in the JNDI tree, moreover the lookup URL is java:comp/env/wm/WorkManagerHighPrio .我想知道为什么我的自定义工作管理器没有在 JNDI 树中列出,而且查找 URL 是java:comp/env/wm/WorkManagerHighPrio

java:global vs. java:comp/env java:globaljava:comp/env

I checked in config.xml , both work managers are configured similarly:我签入了config.xml ,两个工作管理器的配置类似:

    <work-manager>
      <name>default</name>
      <target>app01_cluster</target>
      <min-threads-constraint>default_MinThreads</min-threads-constraint>
      <max-threads-constraint>default_MaxThreads</max-threads-constraint>
      <ignore-stuck-threads>false</ignore-stuck-threads>
    </work-manager>
    <work-manager>
      <name>WorkManagerHighPrio</name>
      <target>app01_cluster</target>
    </work-manager>

I need the custom work manager to be bounded in java:global/wm, as I need this work manager inside the resource adapter.我需要将自定义工作管理器绑定在 java:global/wm 中,因为我需要在资源适配器中使用这个工作管理器。

WorkManager wm = (WorkManager) ic.lookup("java:global/wm/default");

Inside the resource adapter application, I managed to retrieve reference of default workmanager via lookup, even though I get the next problem:在资源适配器应用程序中,我设法通过查找来检索默认工作管理器的引用,即使我遇到了下一个问题:

weblogic.work.j2ee.J2EEWorkManager cannot be cast to javax.resource.spi.work.WorkManager

I thought, if I lookup a work manager inside ra, it will automatically converted to javax.resource.spi.work.WorkManager , but I am wrong.我想,如果我在 ra 中查找工作管理器,它会自动转换为javax.resource.spi.work.WorkManager ,但我错了。

The "WorkManager" class you have to use is: commonj.work.WorkManager .您必须使用的“WorkManager” class 是: commonj.work.WorkManager

As mentioned in the docs:如文档中所述:

Work Manager API工作经理 API

The Work Manager API, commonj.work, provides a set of interfaces that allows an application to execute multiple work items concurrently within a container.工作管理器 API,commonj.work,提供了一组接口,允许应用程序在容器内同时执行多个工作项。

There is a simple "Work Manager Example" there too:那里也有一个简单的“工作管理器示例”:

https://docs.oracle.com/middleware/12212/wls/COMMJ/using_commonj.htm#GUID-72F860BE-9315-417E-B406-2C1ED17CE87F https://docs.oracle.com/middleware/12212/wls/COMMJ/using_commonj.htm#GUID-72F860BE-9315-417E-B406-2C1EDFED

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM