页面树结构
转至元数据结尾
转至元数据起始

正在查看旧版本。 查看 当前版本.

与当前比较 查看页面历史

« 前一个 版本 6 下一个 »

一、功能报错类异常场景

在使用系统过程中,出现以下几类异常,通常定义为功能类报错异常,可以采用本文档方案跟踪:

1.系统功能使用过程,有明确异常提醒的

1)场景一:界面弹出异常

点击【显示栈信息】或查看错误详情,可以看到详细错误日志(如报问题就是把这个复制之后报问题):

2)场景二:启动失败,日志有ERROR日志的,也算是异常提醒

3)场景三:ETL运行失败,在具体节点右键菜单-->查看日志

2.前端个别操作界面打开空白或没反应,但又不是系统整体无响应的

二、跟踪方法

2.1系统功能使用过程,有明确异常提醒的

2.1.1理解报错详情

无论是通过界面弹窗显示的提醒,还是启动过程看到的错误日志,都有个错误详情,也就是程序里的调用栈,调用栈结构:

  • 栈顶(最上方)最近调用的函数(最后执行的操作)。

  • 栈底(最下方)最初调用的函数(程序的起点)。

  • 错误通常出现在栈顶附近但根源可能在栈底方向。

栈中每个函数都会显示函数名、所在源码文件或包、源码文件行号,这些可有助于程序员定位程序异常,对于系统使用者主要关注错误描述。

调用栈伪代码
Exception in thread "main" java.lang.ArithmeticException: Division by zero 
	at com.Example.calculateTotal(Example.java:15)  
	at com.Example.processOrder(Example.java:5)  
	at com.Example.main(Example.java:20)  

上例调用路径:main() → processOrder() → calculateTotal(),错误发生在calculateTotal中。

相当于如果函数A调用函数B,函数B调用函数C,而错误发生在函数C中,调用栈会显示C → B → A 如果错误发生在C,但是B也封装了一个新异常抛出,相当于B也发生异常,就会出现两个错误调用栈:B→ A Caused by: C→ B→ A,而后一个C→ B→ A藏着真正的异常原因。

上例在processOrder捕捉calculateTotal的异常,封装为“计算订单总价失败”,错误详情就是类似如下:

调用栈伪代码
Exception in thread "main" java.lang.RuntimeException: 计算订单总价失败
	at com.Example.processOrder(Example.java:5)  
	at com.Example.main(Example.java:20)  
Caused by: java.lang.ArithmeticException: Division by zero 
	at com.Example.calculateTotal(Example.java:15)  
	at com.Example.processOrder(Example.java:8)  
	... 2 more 


这类异常跟踪口诀就是“从下往上看,Caused by 是根源;从上往下读,业务封装是表象。”

2.1.2跟踪排查步骤

1.聚焦错误描述:找到最后一个 Caused by,没Caused by的直接是调用栈顶部的错误信息

上例它指向最原始的错误(如 Division by zero)。

2.提炼错误关键字搜索,忽略变量名或具体的值

如上述案例的错误关键字就可以提炼为:

错误描述Division by zero(除数为0)

错误类型java.lang.RuntimeException

还有以下一个smartbi中的真实案例:

提炼的内容有:

错误描述获取数据库连接失败,Unknown server host name

错误类型java.sql.SQLException

上例'10.110.111.2251',属于具体值,变量值通常在搜索中无用的,不同系统会不同。

3.利用互联网资源搜索解决方案

1)直接在搜索引擎中搜索刚刚提炼的错误关键字

“获取数据库连接失败,Unknown server host name ”,如不知如何解决无法识别主机地址的异常,可互联网或AI搜索:



2)利用AI搜索

以下是AI搜索的效果(借助AI搜索,不提炼关键字,整个错误堆栈复制进去也可):

2.1.3上报问题

当出现明确异常提醒的情况,在借助互联网资源、官方WIKI文档、社区、或问题跟踪系统等搜索无法找到解决方案,需按以下方式上报异常:

在使用系统什么功能(复杂的需描述操作复现步骤),出现什么异常,异常详细信息,其中异常详细信息就是错误弹窗中【显示栈信息】/错误详情,点进去可复制里面含有版本号和详细的错误栈。

以下面这个系统功能异常为例:

错误描述:在把数据库添加到Smartbi,测试数据连接过程,出现连接报错

操作步骤:新建数据连接--->测试连接

异常详细信息

异常详细信息
BuildTime: 2025-03-05 10:02:00
TAG: Hotfix_Smartbi_PreviewV11_20250303 
Tid: f1d56d2a9376af43
HostName: crm-tomcat2
数据模型引擎: V2.0


获取数据库连接失败[cause Throwable ClassName:java.sql.SQLException]:获取数据库连接失败[cause Throwable ClassName:java.sql.SQLException]:Unknown server host name '11.10.111.2251'.,datasourceId=I8a8aedaa019564656465cd6c01956f4ef6555ce6
	at smartbi.connectionpool.ConnectionPool.lambda$doGetConnection$0(ConnectionPool.java:796)
	at ...(...)
	at smartbi.connectionpool.SmartbiPoolableConnection.doGetConnection(SmartbiPoolableConnection.java:120)
Caused by: java.sql.SQLException: 获取数据库连接失败[cause Throwable ClassName:java.sql.SQLException]:Unknown server host name '11.10.111.2251'.
	at smartbi.connectionpool.SmartbiPoolableConnection.doGetConnection(SmartbiPoolableConnection.java:120)
	at smartbi.connectionpool.ConnectionPool.lambda$doGetConnection$0(ConnectionPool.java:792)
	at smartbi.monitor.MetricHelper$.withSpan(MetricHelper.scala:136)
	at smartbi.monitor.MetricHelper.withSpan(MetricHelper.scala)
	at smartbi.connectionpool.ConnectionPool.doGetConnection(ConnectionPool.java:755)
	at smartbi.connectionpool.ConnectionPool.driverConnect(ConnectionPool.java:628)
	at smartbi.connectionpool.ConnectionPool.getConnection(ConnectionPool.java:906)
	at smartbi.connectionpool.ConnectionPool.getConnection(ConnectionPool.java:854)
	at smartbi.freequery.basicdata.DataSourceHandleHelper.testConnection(DataSourceHandleHelper.java:167)
	at smartbi.freequery.basicdata.MetaDataServiceImpl.testConnection(MetaDataServiceImpl.java:566)
	at smartbi.freequery.client.datasource.DataSourceService.testConnectionList(DataSourceService.java:450)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at smartbi.framework.rmi.ClientService.executeInternal(ClientService.java:188)
	at smartbi.framework.rmi.ClientService.execute(ClientService.java:166)
	at smartbi.framework.rmi.RMIServlet.processExecute(RMIServlet.java:233)
	at smartbi.framework.rmi.RMIServlet.doPost(RMIServlet.java:144)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at smartbi.extension.ExtensionFilter$1.doFilter(ExtensionFilter.java:249)
	at smartbi.extension.ExtensionFilter$2.doFilter(ExtensionFilter.java:276)
	at smartbi.aichat.AIChatFilter.doFilter(AIChatFilter.java:56)
	at smartbi.extension.ExtensionFilter$2.doFilter(ExtensionFilter.java:276)
	at smartbi.security.patch.PatchFilter.doFilter(PatchFilter.java:77)
	at smartbi.extension.ExtensionFilter$2.doFilter(ExtensionFilter.java:276)
	at smartbi.dingding.DDLoginFilter.doFilter(DDLoginFilter.java:103)
	at smartbi.extension.ExtensionFilter$2.doFilter(ExtensionFilter.java:276)
	at smartbi.dingding.filter.DDLoginFilter.doFilter(DDLoginFilter.java:184)
	at smartbi.extension.ExtensionFilter$2.doFilter(ExtensionFilter.java:276)
	at smartbi.chat.robots.filter.RobotImgExportFilter.doFilter(RobotImgExportFilter.java:50)
	at smartbi.extension.ExtensionFilter$2.doFilter(ExtensionFilter.java:276)
	at smartbi.cas.auth.AutoLoginFilter.doFilter(AutoLoginFilter.java:71)
	at smartbi.extension.ExtensionFilter$2.doFilter(ExtensionFilter.java:276)
	at org.jasig.cas.client.util.AssertionThreadLocalFilter.doFilter(AssertionThreadLocalFilter.java:54)
	at smartbi.extension.ExtensionFilter$2.doFilter(ExtensionFilter.java:276)
	at org.jasig.cas.client.util.HttpServletRequestWrapperFilter.doFilter(HttpServletRequestWrapperFilter.java:86)
	at smartbi.extension.ExtensionFilter$2.doFilter(ExtensionFilter.java:276)
	at org.jasig.cas.client.validation.AbstractTicketValidationFilter.doFilter(AbstractTicketValidationFilter.java:221)
	at smartbi.extension.ExtensionFilter$2.doFilter(ExtensionFilter.java:276)
	at org.jasig.cas.client.authentication.AuthenticationFilter.doFilter(AuthenticationFilter.java:195)
	at smartbi.extension.ExtensionFilter$2.doFilter(ExtensionFilter.java:276)
	at org.jasig.cas.client.session.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:76)
	at smartbi.extension.ExtensionFilter$2.doFilter(ExtensionFilter.java:276)
	at smartbi.extension.ExtensionFilter.doFilterInternal(ExtensionFilter.java:279)
	at smartbi.extension.ExtensionFilter.doFilter(ExtensionFilter.java:127)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at smartbi.freequery.filter.GZIPFilter.doFilter(GZIPFilter.java:265)
	at smartbi.freequery.filter.Filter.doFilter(Filter.java:33)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at smartbi.framework.rmi.TransactionFilter.doFilter(TransactionFilter.java:87)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at smartbi.freequery.filter.CheckIsLoggedFilter.doFilter(CheckIsLoggedFilter.java:198)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at smartbi.freequery.filter.CheckRefererFilter.doFilter(CheckRefererFilter.java:45)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at smartbi.freequery.filter.CheckHttpMethodFilter.doFilter(CheckHttpMethodFilter.java:62)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at smartbi.freequery.filter.TraceFilter.doFilter(TraceFilter.java:68)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at smartbi.freequery.filter.LogFilter.doFilter(LogFilter.java:112)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at smartbi.framework.RedisSessionFilter.doFilter(RedisSessionFilter.java:58)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at smartbi.freequery.filter.DisableUrlSessionFilter.doFilter(DisableUrlSessionFilter.java:81)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at smartbi.framework.SmartbiApplicationFilter.doFilter(SmartbiApplicationFilter.java:71)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:770)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:748)
Caused by: 获取数据库连接失败[cause Throwable ClassName:java.sql.SQLException]:Unknown server host name '11.10.111.2251'.
	at smartbi.connectionpool.SmartbiDriverConnectionFactory.createConnectionInner(SmartbiDriverConnectionFactory.java:68)
	at ...(...)
	at smartbi.connectionpool.SmartbiDriverConnectionFactory.createConnectionInner(SmartbiDriverConnectionFactory.java:62)
Caused by: java.sql.SQLException: Unknown server host name '11.10.111.2251'.
	at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:412)
	at net.sourceforge.jtds.jdbc.ConnectionJDBC3.<init>(ConnectionJDBC3.java:50)
	at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:185)
	at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
	at smartbi.connectionpool.SmartbiDriverConnectionFactory.createConnectionInner(SmartbiDriverConnectionFactory.java:62)
	at smartbi.connectionpool.SmartbiDriverConnectionFactory.createConnection(SmartbiDriverConnectionFactory.java:114)
	at smartbi.connectionpool.SmartbiPoolableConnectionFactory.makeObjectInternal(SmartbiPoolableConnectionFactory.java:224)
	at smartbi.connectionpool.SmartbiPoolableConnection.doGetConnection(SmartbiPoolableConnection.java:110)
	at smartbi.connectionpool.ConnectionPool.lambda$doGetConnection$0(ConnectionPool.java:792)
	at smartbi.monitor.MetricHelper$.withSpan(MetricHelper.scala:136)
	at smartbi.monitor.MetricHelper.withSpan(MetricHelper.scala)
	at smartbi.connectionpool.ConnectionPool.doGetConnection(ConnectionPool.java:755)
	at smartbi.connectionpool.ConnectionPool.driverConnect(ConnectionPool.java:628)
	at smartbi.connectionpool.ConnectionPool.getConnection(ConnectionPool.java:906)
	at smartbi.connectionpool.ConnectionPool.getConnection(ConnectionPool.java:854)
	at smartbi.freequery.basicdata.DataSourceHandleHelper.testConnection(DataSourceHandleHelper.java:167)
	at smartbi.freequery.basicdata.MetaDataServiceImpl.testConnection(MetaDataServiceImpl.java:566)
	at smartbi.freequery.client.datasource.DataSourceService.testConnectionList(DataSourceService.java:450)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at smartbi.framework.rmi.ClientService.executeInternal(ClientService.java:188)
	at smartbi.framework.rmi.ClientService.execute(ClientService.java:166)
	at smartbi.framework.rmi.RMIServlet.processExecute(RMIServlet.java:233)
	at smartbi.framework.rmi.RMIServlet.doPost(RMIServlet.java:144)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at smartbi.extension.ExtensionFilter$1.doFilter(ExtensionFilter.java:249)
	at smartbi.extension.ExtensionFilter$2.doFilter(ExtensionFilter.java:276)
	at smartbi.aichat.AIChatFilter.doFilter(AIChatFilter.java:56)
	at smartbi.extension.ExtensionFilter$2.doFilter(ExtensionFilter.java:276)
	at smartbi.security.patch.PatchFilter.doFilter(PatchFilter.java:77)
	at smartbi.extension.ExtensionFilter$2.doFilter(ExtensionFilter.java:276)
	at smartbi.dingding.DDLoginFilter.doFilter(DDLoginFilter.java:103)
	at smartbi.extension.ExtensionFilter$2.doFilter(ExtensionFilter.java:276)
	at smartbi.dingding.filter.DDLoginFilter.doFilter(DDLoginFilter.java:184)
	at smartbi.extension.ExtensionFilter$2.doFilter(ExtensionFilter.java:276)
	at smartbi.chat.robots.filter.RobotImgExportFilter.doFilter(RobotImgExportFilter.java:50)
	at smartbi.extension.ExtensionFilter$2.doFilter(ExtensionFilter.java:276)
	at smartbi.cas.auth.AutoLoginFilter.doFilter(AutoLoginFilter.java:71)
	at smartbi.extension.ExtensionFilter$2.doFilter(ExtensionFilter.java:276)
	at org.jasig.cas.client.util.AssertionThreadLocalFilter.doFilter(AssertionThreadLocalFilter.java:54)
	at smartbi.extension.ExtensionFilter$2.doFilter(ExtensionFilter.java:276)
	at org.jasig.cas.client.util.HttpServletRequestWrapperFilter.doFilter(HttpServletRequestWrapperFilter.java:86)
	at smartbi.extension.ExtensionFilter$2.doFilter(ExtensionFilter.java:276)
	at org.jasig.cas.client.validation.AbstractTicketValidationFilter.doFilter(AbstractTicketValidationFilter.java:221)
	at smartbi.extension.ExtensionFilter$2.doFilter(ExtensionFilter.java:276)
	at org.jasig.cas.client.authentication.AuthenticationFilter.doFilter(AuthenticationFilter.java:195)
	at smartbi.extension.ExtensionFilter$2.doFilter(ExtensionFilter.java:276)
	at org.jasig.cas.client.session.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:76)
	at smartbi.extension.ExtensionFilter$2.doFilter(ExtensionFilter.java:276)
	at smartbi.extension.ExtensionFilter.doFilterInternal(ExtensionFilter.java:279)
	at smartbi.extension.ExtensionFilter.doFilter(ExtensionFilter.java:127)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at smartbi.freequery.filter.GZIPFilter.doFilter(GZIPFilter.java:265)
	at smartbi.freequery.filter.Filter.doFilter(Filter.java:33)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at smartbi.framework.rmi.TransactionFilter.doFilter(TransactionFilter.java:87)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at smartbi.freequery.filter.CheckIsLoggedFilter.doFilter(CheckIsLoggedFilter.java:198)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at smartbi.freequery.filter.CheckRefererFilter.doFilter(CheckRefererFilter.java:45)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at smartbi.freequery.filter.CheckHttpMethodFilter.doFilter(CheckHttpMethodFilter.java:62)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at smartbi.freequery.filter.TraceFilter.doFilter(TraceFilter.java:68)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at smartbi.freequery.filter.LogFilter.doFilter(LogFilter.java:112)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at smartbi.framework.RedisSessionFilter.doFilter(RedisSessionFilter.java:58)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at smartbi.freequery.filter.DisableUrlSessionFilter.doFilter(DisableUrlSessionFilter.java:81)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at smartbi.framework.SmartbiApplicationFilter.doFilter(SmartbiApplicationFilter.java:71)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:770)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.net.UnknownHostException: 11.10.111.2251
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
	at sun.reflect.GeneratedMethodAccessor136.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at net.sourceforge.jtds.jdbc.SharedSocket.createSocketForJDBC3(SharedSocket.java:297)
	at net.sourceforge.jtds.jdbc.SharedSocket.<init>(SharedSocket.java:247)
	at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:322)
	... 108 more


如不方便复制详情,也可通过拍照等手段,关键需要参照前面跟踪排查手段,把关键错误信息要上报发回(通常是错误详情的开始一页,以及最后一个Caused by:部分及上下文)。

上报途径可参照系统功能导航页:

2.2.2前端个别操作界面打开空白或点击没反应,但又不是系统整体无响应的

这类异常通常是浏览器端出现脚本异常,或服务端返回不合前端预期带来的前端异常,通常此时可通过浏览器开发者工具查看是否有脚本异常,把此脚本异常上报发回。

每个浏览器的开发者工具打开可能有所不同,可互联网搜索“浏览器名 开发者工具打开方式”,如chrome,就是右上角工具-->更多工具-->开发者工具,切换到控制台看脚本异常。

上报问题除了这个错误截图,需描述重现操作步骤。

三、常见问题

1.上报问题时仅截取错误弹窗,未附上重现步骤、错误详情

错误弹窗内的错误描述经常是不全的,或其并非根因,需要看错误详情中的底部Caused by,如未附上错误详情,通常开发人员无法定位问题。

面对系统的一些未知异常,如报“系统检查错误”,虽有错误详情及代码位置,但依然需要借助重现才能解决问题,所以能重现的问题,上报时告知重现步骤可提高解决效率。

2.互联网搜索解决方案时,未提炼错误描述,把变量名具体值带入搜索

功能类的异常提醒,需大概理解错误描述内容,提炼里面的错误描述及业务关键字,因为带入太多无意义信息,可能让搜索效果大打折扣。如在百度搜索:“获取数据库连接失败[cause Throwable ClassName:java.sql.SQLException]:获取数据库连接失败[cause Throwable ClassName:java.sql.SQLException]:Unknown server host name '11.10.111.2251'.,datasourceId=I8a8aedaa019564656465cd6c01956f4ef6555ce6”,效果会远不如:“获取数据库连接失败,Unknown server host name”。

如果是借助AI搜索,因其本身会理解用户意图,这个问题可忽略。

3.忽略借助AI搜索,提升问题解决效率

很多AI,如DeepSeek、豆包,不仅可以输入文字搜索,也可粘帖图片,接收图片搜索,在不知道错误描述在说什么不知如何提炼关键词时,可借助AI搜索原因及解决方案。

  • 无标签