news 2026/5/16 8:27:04

TongWeb8.0 JNDI缓存

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
TongWeb8.0 JNDI缓存

TongWeb8.0.9.10和8.0.9.11版本默认开启了JNDI缓存,若遇到如下异常或线程阻塞在com.tongweb.naming.JndiCache上,则增加参数-Dtongweb.disableJndiCache=true关闭缓存。TongWeb8.0.9.12及之后版本默认关闭了JNDI缓存。

#部署应用异常 Caused by: java.lang.IllegalStateExcception: Recursive update at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java) at com.tongweb.naming.JndiCache.lookup(JndiCache.java:80) #访问阻塞在JndiCache上 "TW-8088-2" #86 daemon prio=5 os_prio=0 tid=0x00000289a7373800 nid=0x69f4 runnable [0x000000bb038fb000] java.lang.Thread.State: RUNNABLE at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1718) at com.tongweb.naming.JndiCache.lookup(JndiCache.java:80) at com.tongweb.tongejb.core.ivm.ContextHandler.lookup0(ContextHandler.java:47) at com.tongweb.tongejb.core.ivm.ContextHandler.lookup(ContextHandler.java:42) at com.tongweb.tongejb.core.ivm.naming.IvmContext.lookup0(IvmContext.java:192) at com.tongweb.tongejb.core.ivm.naming.IvmContext.lookup(IvmContext.java:159) at com.tongweb.tongejb.core.ivm.ContextHandler.lookupInternal(ContextHandler.java:71) at com.tongweb.tongejb.core.ivm.ContextHandler.lambda$lookup0$0(ContextHandler.java:47) at com.tongweb.tongejb.core.ivm.ContextHandler$$Lambda$164/1730914651.lookup(Unknown Source) at com.tongweb.naming.JndiCache.lambda$lookup$1(JndiCache.java:82) at com.tongweb.naming.JndiCache$$Lambda$166/28020301.apply(Unknown Source) at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660) - locked <0x00000000d8f16a28> (a java.util.concurrent.ConcurrentHashMap$ReservationNode) at com.tongweb.naming.JndiCache.lookup(JndiCache.java:80) at com.tongweb.tongejb.core.ivm.ContextHandler.lookup0(ContextHandler.java:47) at com.tongweb.tongejb.core.ivm.ContextHandler.lookup(ContextHandler.java:42) at javax.naming.InitialContext.lookup(InitialContext.java:417) "TW-8088-5" #89 daemon prio=5 os_prio=0 tid=0x0000022a45da0800 nid=0x7d9c waiting for monitor entry [0x0000006a471fb000] java.lang.Thread.State: BLOCKED (on object monitor) at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1674) - waiting to lock <0x00000000d9a443b0> (a java.util.concurrent.ConcurrentHashMap$ReservationNode) at com.tongweb.naming.JndiCache.lookup(JndiCache.java:80) at com.tongweb.tongejb.core.ivm.naming.IvmContext.lookup(IvmContext.java:160) at com.tongweb.tongejb.core.ivm.ContextHandler.lookup0(ContextHandler.java:62) at com.tongweb.tongejb.core.ivm.ContextHandler.lookup(ContextHandler.java:41) at javax.naming.InitialContext.lookup(InitialContext.java:417) at org.springframework.jndi.JndiTemplate$1.doInContext(JndiTemplate.java:155) at org.springframework.jndi.JndiTemplate.execute(JndiTemplate.java:87) at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:152) at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:179)

如果遇到在JNDI处栈溢出,或jstack时在JNDI处执行时间过长的情况,升级到TongWeb8.0.9.12及之后版本。

Caused by: java.lang.StackOverflowError at java.naming/javax.naming.Reference.get(Reference.java:225) at java.naming/javax.naming.LinkRef.getLinkName(LinkRef.java:105) at com.tongweb.naming.NamingContext.lookup0(NamingContext.java:796) at com.tongweb.naming.NamingContext.lookup(NamingContext.java:765) at com.tongweb.naming.NamingContext.lookup(NamingContext.java:139) at com.tongweb.naming.NamingContext.lookup0(NamingContext.java:793) at com.tongweb.naming.NamingContext.lookup(NamingContext.java:765) at com.tongweb.naming.NamingContext.lookup(NamingContext.java:152) at com.tongweb.tongejb.core.ivm.ContextHandler.lookup0(ContextHandler.java:49) at com.tongweb.tongejb.core.ivm.ContextHandler.lookup(ContextHandler.java:41) at java.naming/javax.naming.InitialContext.lookup(InitialContext.java:409) at com.tongweb.naming.NamingContext.lookup0(NamingContext.java:801) at com.tongweb.naming.NamingContext.lookup(NamingContext.java:765) at com.tongweb.naming.NamingContext.lookup(NamingContext.java:139) at com.tongweb.naming.NamingContext.lookup0(NamingContext.java:793) at com.tongweb.naming.NamingContext.lookup(NamingContext.java:765)
# 通过jstack查看lookup过多,占用时间长。 "TW-9060-4" #335 [2901931] daemon prio=5 os_prio=0 cpu=147357.79ms elapsed=291.56s tid=0x0000fffe5cd5d6d0 nid=2901931 runnable [0x0000fffe06eb3000] java.lang.Thread.State: RUNNABLE at java.lang.Throwable.fillInStackTrace(java.base@21.0.10/Native Method) at java.lang.Throwable.fillInStackTrace(java.base@21.0.10/Throwable.java:820) - locked <0x00000000b470d780> (a javax.naming.NameNotFoundException) at java.lang.Throwable.<init>(java.base@21.0.10/Throwable.java:273) at java.lang.Exception.<init>(java.base@21.0.10/Exception.java:67) at javax.naming.NamingException.<init>(java.naming@21.0.10/NamingException.java:127) at javax.naming.NameNotFoundException.<init>(java.naming@21.0.10/NameNotFoundException.java:50) at com.tongweb.tongejb.core.ivm.naming.IvmContext.lookup0(IvmContext.java:231) at com.tongweb.tongejb.core.ivm.naming.IvmContext.lookupInternal(IvmContext.java:168) at com.tongweb.tongejb.core.ivm.naming.IvmContext.lookup(IvmContext.java:162) at com.tongweb.tongejb.core.ivm.ContextHandler.lookup0(ContextHandler.java:65) at com.tongweb.tongejb.core.ivm.ContextHandler.lookup(ContextHandler.java:41) at com.tongweb.tongejb.core.ivm.naming.IvmContext.lookup0(IvmContext.java:201) at com.tongweb.tongejb.core.ivm.naming.IvmContext.lookupInternal(IvmContext.java:168) at com.tongweb.tongejb.core.ivm.naming.IvmContext.lookup(IvmContext.java:162) at com.tongweb.tongejb.core.ivm.ContextHandler.lookup0(ContextHandler.java:61) at com.tongweb.tongejb.core.ivm.ContextHandler.lookup(ContextHandler.java:41) at javax.naming.InitialContext.lookup(java.naming@21.0.10/InitialContext.java:409) at org.springframework.jndi.JndiTemplate.lambda$lookup$0(JndiTemplate.java:71) at org.springframework.jndi.JndiTemplate$$Lambda/0x00000070015e12a0.doInContext(Unknown Source) at org.springframework.jndi.JndiTemplate.execute(JndiTemplate.java:37) at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:71) at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:83) at org.springframework.jndi.JndiLocatorSupport.lookup(JndiLocatorSupport.java:96) at org.springframework.jndi.JndiLocatorDelegate.lookup(JndiLocatorDelegate.java:64) at org.springframework.jndi.JndiLocatorSupport.lookup(JndiLocatorSupport.java:78) at org.springframework.jndi.JndiLocatorDelegate.lookup(JndiLocatorDelegate.java:59) at org.springframework.jndi.JndiPropertySource.getProperty(JndiPropertySource.java:93)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/16 8:24:11

异常(try,throw,catch)

文章目录异常概念异常抛出与捕获栈展开重新抛出异常异常规范异常 概念 异常处理机制允许程序在运行时发现异常后抛出一个对象&#xff0c;会包含比c语言的错误码更全面的信息 抛出异常后会跳过后面的部分&#xff0c;跳转到异常处理模块 异常抛出与捕获 程序出现问题时会th…

作者头像 李华
网站建设 2026/5/16 8:22:04

组合技能构建复杂自动化:OpenClaw高级工作流

组合技能构建复杂自动化&#xff1a;OpenClaw高级工作流 版本说明&#xff1a;本文基于OpenClaw 2026.3.2版本编写。该版本经过充分验证&#xff0c;稳定可靠&#xff0c;且预装了49个内置技能&#xff0c;本文的演示将主要依赖这些技能。 在OpenClaw的官方教程中&#xff0c;高…

作者头像 李华
网站建设 2026/5/16 8:22:02

基于Terraform与Azure的Dify AI平台一键自动化部署实践

1. 项目概述&#xff1a;一键部署企业级AI应用平台最近在帮一个初创团队搭建他们的AI应用开发环境&#xff0c;他们想快速验证几个基于大语言模型的内部工具&#xff0c;比如智能客服和文档分析助手。需求很明确&#xff1a;需要一个能快速集成各种AI模型、支持可视化编排工作流…

作者头像 李华
网站建设 2026/5/16 8:20:03

内存管理 1

这一块知识只是了解就行&#xff0c;但没听太懂左值&#xff1a;有名字、能放在赋值号左边、能取地址比如&#xff1a;普通变量 a、对象 aa右值&#xff1a;没名字、临时的、用完就扔比如&#xff1a;字面量 10、A() 匿名临时对象、表达式结果不同区不同生命周期&#xff0c;不…

作者头像 李华
网站建设 2026/5/16 8:19:12

从零构建高效爬虫:开源技能库与实战指南

1. 项目概述&#xff1a;一个开源技能库的诞生与价值最近在GitHub上闲逛&#xff0c;发现了一个挺有意思的项目&#xff0c;叫ANVEAI/awesome-openclaw-skills。光看名字&#xff0c;awesome系列大家都不陌生&#xff0c;通常是某个领域优质资源的集合。但这个openclaw-skills就…

作者头像 李华