问题标签 [commonj]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 为什么 Weblogic 工作经理拒绝工作
我正在使用在 Web 逻辑环境中运行的 commonJ 工作管理器。
我的设置如下:
我的春季应用程序上下文
我在 WEB-INF 中的 web.xml 文件
和我在 WEB-INF 中的 weblogic.xml 文件
一段时间后,从 SOAP-UI 调用服务。我收到以下错误
我知道设置为最大值将被拒绝,但为什么不回收这些线程?即使我等待 15 分钟,我也无法提交新请求。我必须重新启动服务。
java - 使用 Commonj Work Manager 发送异步 HTTP 调用
我从进行顺序 HTTP 调用切换到 4 个 REST 服务,然后使用 commonj4 工作管理器任务执行器进行 4 个同时调用。我正在使用 WebLogic 12c。这个新代码适用于我的开发环境,但在负载条件下的测试环境中,有时在没有负载的情况下,结果映射不会填充所有结果。日志记录表明每个工作项确实收到了结果。这可能是 ConcurrentHashMap 的问题吗?在 IBM 的这个示例中,他们使用自己的 Work 版本,并且有一个 getData() 方法,尽管它不喜欢该方法确实存在于他们的类定义中。我遵循了一个不同的示例,该示例仅使用了 Work 类,但没有演示如何将数据从这些线程中获取到主线程中。我应该使用 execute() 而不是 schedule() 吗?API 似乎没有很好的文档记录。卡住的线程超时足够高。component.processInbound() 实际上包含 HTTP 调用的代码,但我的问题不存在,因为我可以切换回下面类的同步版本并且没有任何问题。
我的代码:
java - 如何在 WebSphere liberty profile server 8.5 中配置 spring commonj workManager
我正在尝试将 Spring Web 应用程序从 WebSphere 应用程序服务器 7 迁移到 WebSphere liberty profile 8.5。我在应用程序启动时收到“java.lang.NoClassDefFoundError: commonj/work/WorkException”。我使用功能管理器配置了数据源和公共库,但找不到配置 WorkManager 的方法。
有人可以告诉我如何实现这一目标吗?
这是异常日志:
spring - 如何在 Websphere 8 上为 Springs WorkManagerTaskExecutor 获取 JCA Workmanager
我们使用 Websphere 8 Application Server,我想在我们的 web 应用程序中使用服务器 workmanager。我正在尝试获取对 jca workmanager 的引用以javax.resource.spi.work.Workmanager
将其与 Springs 一起使用org.springframework.jca.work.WorkManagerTaskExecutor
。
web.xml 中的资源引用如下所示:
使用该配置,我得到以下异常:
它在这里说我的资源引用必须是类型com.ibm.websphere.asynchbeans.WorkManager
or commonj.work.WorkManager
。它们都不是从 JCA-Workmanager-Interface 扩展而来的。
如果我将资源类型切换为commonj.work.WorkManager
并在我的应用程序中使用 Springs org.springframework.scheduling.commonj.WorkManagerTaskExecutor
,一切正常。
要让 JCA Workmanager 与 Websphere 一起工作,我是否需要在服务器端配置一些特殊的东西?我还没有在管理控制台中找到任何设置来切换实现。Websphere 8 支持 Java EE 6,所以应该可以处理 JCA。
spring-integration - 跨 ExecutorChannel 线程的常见超时
我们的应用程序集成流程定义为拆分器 -> ws 网关 -> 聚合器。拆分器将请求拆分为帐号列表;以便为每个帐号发起一个 Web 服务调用,并将来自多个 Web 服务调用的响应聚合在聚合器中。拆分器和 ws 网关之间的通道由调度程序“commonj WorkManagerTaskExecutor”定义,以便每个 Web 服务调用在不同的线程。
我们为每个 web 服务调用添加了超时。但是我们想为整个过程设置一个超时。即所有的 web 服务调用都应该在 50 秒内完成,而不是为每个单独的调用设置 50 秒超时。commonj WorkManagerTaskExecutor,直接通过代码实现时,通过waitForAll(Collection workItems, long timeout_ms)方法提供此功能。有没有办法使用这个或类似的功能来实现我们的要求。
java - 使用 weblogic 工作管理器映射 commonj 工作管理器失败并出现 NameNotFoundException
我有一个(weblogic)单例服务,它使用 commonj workManagerTaskExecutor 来执行任务。我还在我的 weblogic 控制台中定义了一个名为 MyWorkManager 的工作管理器。现在我正在尝试将 commonj 工作管理器映射到 Weblogic 中的工作管理器,以便我可以在 workManagerTaskExecutor 中使用它。但是在我的应用程序代码中查找此工作管理器失败,NameNotFoundException 无法找到工作管理器。
我尝试遍历初始上下文对象,也找不到在其中注册的工作管理器。
我正在使用 Weblogic 10.3,对此我完全陌生。我究竟做错了什么?请帮帮我。
weblogic-application.xml
web.xml
java - jboss线程中的commonj workmanager不等待完成
我们在 jboss EAP 6.4.9.GA 和 jdk 1.7 中部署了 commonj workmanager rar。我们正在使用 workmanager 引用来创建多个线程以防多个文件上传。我们为 workmanager 设置了默认配置,最大线程、核心线程、队列长度的值为 50。我们在spring xml中定义了依赖为
在 Invoker 类中,提交工作
我看到的是 taskexecutor 没有等待任务完成,在下一步中,我们试图从 Work 对象中获取结果,它正在抛出异常
令人费解的是,在本地服务器上使用 jboss 6.2 服务器和 jdk 1.7 的设置相同。
你能告诉我可能出了什么问题吗?
我还添加了 WorkListener
我在监听器中获取 workAccepted 和 WorkStarted 的日志。workmanager deos 不等待线程完成。如果有任何替代方法可以使用监听器来实现等待线程完成?
java - 异常完成WorkEvent时如何通知主线程?
我正在使用IBM WorkManager (v8.0.0)来做一些与主线程异步的工作。
为此,我使用以下代码:
WorkEvent
只要毫无例外地完成,这工作就很好。但是当它以异常完成时,我想通知主线程停止向WorkManager
.
我以为我可以提出一个RunetimeException
通知主线程,但是分析日志我发现在主线程完成所有提交并调用 - 的 - 方法的那一刻引发了异常,WorkItems
这WorkManager
为时join
已WorkManager
晚(在大多数情况下50.000 项必须由WorkManager
) 完成。
WorkManager
那么,当在 中识别出异常时,如何中断我的主线程以阻止它向 提交更多项目workCompleted
?
java - 在 Websphere 中设置 CommonJ 定时器管理器
在 Web.xml 我有:
在我的java代码中:
因此,当我运行代码时,计时器成功启动,但在代码崩溃后立即出现以下异常:
javax.naming.ConfigurationException:NamingManager.getURLContext 找不到此方案的工厂:java
我不知道为什么。当我用这个更改查找时:TimerManager tm = (TimerManager) ic.lookup("java:/comp/env/tm/TimerManager");
这是最糟糕的,计时器永远不会启动,我确实有以下异常:
db.common.util.ServiceLocatorException: javax.naming.ConfigurationException: NamingManager.getURLContext 找不到该方案的工厂: 爪哇
请帮忙,非常重要。谢谢
java - 使用 WorkManager 在 Jetty 上启用编程并发
我设法将 CommonJ - JSR 237 Timer & WorkManager API ( http://commonj.myfoo.de )的自定义实现配置为JNDI
Jetty 6 和 8 上的资源,但它只能在全局范围内工作。
使用这个JNDI
资源的解决方案名称是wm/WorkManager
,我需要它java:comp/env/wm/WorkManager
,但由于限制,我不能java:comp/env
在全局 JNDI 名称中使用,因为它保留给应用程序范围的资源。
我创建了一个名为{jetty.home}/etc/jetty-wtm.xml
并添加到{jetty.home}/start.ini
.
这是jetty-wtm.xml
Jetty 6 的内容,对于更大的版本,它有点不同,但也可以:
我需要java:comp/env/{RESOURCE}
专门java:comp/env/wm/MyWorkManager
跨服务器维护标准 JNDI 命名,但标准WEB-INF\jetty-env.xml
配置文件不起作用。有任何想法吗?
更新:我已经jetty-env.xml
在 Jetty 9 中测试了本地配置文件,它按预期工作。似乎在低于 9JNDI
的版本中它不完全受支持。以下是配置文件内容: