提问人:Grismak 提问时间:7/6/2022 最后编辑:James ZGrismak 更新时间:7/11/2022 访问量:42
XWM 内部闭合插座
Socket closed inside XWM
问:
我在一段代码中有一个 SQL 异常,该代码每天都在计划进程下工作。代码补丁如下:
log.info("*************inicio getFactsBajaRelsNoCerradas****************");
JSONArray facts = new JSONArray();
String query = "select nrelac, imprel, fact032, pfj032, no032, ap1032, ap2032, noc032 "
+ "from fiatc.sdt040 left join fiatc.gactb032 on cprof = fact032 "
+ "where scerrada = :relCerrada and sit032 = :sitFacturador ";
Map where = new HashMap<>();
where.put("relCerrada", Constants.NO);
where.put("sitFacturador", Constants.ESTAT_BAIXA);
Map in = JDBCUtil.jdbcExecuteQuery(Constants.CONNEXIO_SALUD, query, where);
Map out = XWM.execute(Constants.JDBC, Constants.EXECUTE_QUERY, in);
List<Map> valuesList = (List<Map>) out.get(Constants.VALUES);
for(Map mapValues : valuesList)
{
JSONObject facturador = new JSONObject();
facturador.put(Constants.NRELAC, mapValues.get(Constants.NRELAC).toString().trim());
facturador.put(Constants.IMPREL, mapValues.get(Constants.IMPREL).toString().trim());
facturador.put(Constants.FACT032, mapValues.get(Constants.FACT032).toString().trim());
facturador.put(Constants.PFJ032, mapValues.get(Constants.PFJ032).toString().trim());
facturador.put(Constants.NO032, mapValues.get(Constants.NO032) != null ? mapValues.get(Constants.NO032).toString().trim() : "");
facturador.put(Constants.AP1032, mapValues.get(Constants.AP1032) != null ? mapValues.get(Constants.AP1032).toString().trim() : "");
facturador.put(Constants.AP2032, mapValues.get(Constants.AP2032) != null ? mapValues.get(Constants.AP2032).toString().trim() : "");
facturador.put(Constants.NOC032, mapValues.get(Constants.NOC032) != null ? mapValues.get(Constants.NOC032).toString().trim() : "");
facts.put(facturador);
}
这应该没有连接问题,但今天我在登录中有一个套接字关闭异常:
Map out = XWM.execute(Constants.JDBC, Constants.EXECUTE_QUERY, in);
这是我的日志:
2022-07-06 07:00:27,262 [] INFO [es.fiatc.xwm.jdbc.ExecuteQuery.executeQuery]- Executing query: select nrelac, imprel, fact032, pfj032, no032, ap1032, ap2032, noc032 from fiatc.sdt040 left join fiatc.gactb032 on cprof = fact032 where scerrada = ? and sit032 = ?
2022-07-06 07:00:27,278 [] INFO [es.fiatc.xwm.jdbc.ExecuteQuery.executeQuery]- With params: [N, BA]
2022-07-06 07:01:30,020 [] ERROR [es.fiatc.xwm.jdbc.ExecuteQuery.execute]-
com.microsoft.sqlserver.jdbc.SQLServerException: Socket closed
at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:2435) ~[mssql-jdbc-6.2.2.jre8.jar:?]
at com.microsoft.sqlserver.jdbc.TDSChannel.read(IOBuffer.java:1991) ~[mssql-jdbc-6.2.2.jre8.jar:?]
at com.microsoft.sqlserver.jdbc.TDSReader.readPacket(IOBuffer.java:6310) ~[mssql-jdbc-6.2.2.jre8.jar:?]
at com.microsoft.sqlserver.jdbc.TDSCommand.startResponse(IOBuffer.java:7545) ~[mssql-jdbc-6.2.2.jre8.jar:?]
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:465) ~[mssql-jdbc-6.2.2.jre8.jar:?]
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:409) ~[mssql-jdbc-6.2.2.jre8.jar:?]
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7151) ~[mssql-jdbc-6.2.2.jre8.jar:?]
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2478) ~[mssql-jdbc-6.2.2.jre8.jar:?]
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:219) ~[mssql-jdbc-6.2.2.jre8.jar:?]
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:199) ~[mssql-jdbc-6.2.2.jre8.jar:?]
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQuery(SQLServerPreparedStatement.java:331) ~[mssql-jdbc-6.2.2.jre8.jar:?]
at org.apache.tomcat.dbcp.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:121) ~[tomcat-dbcp.jar:9.0.63]
at org.apache.tomcat.dbcp.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:121) ~[tomcat-dbcp.jar:9.0.63]
at es.fiatc.xwm.jdbc.ExecuteQuery.executeQuery(ExecuteQuery.java:83) ~[965bfc6983ba2d05e4f861434399d06b8091c0c4.1631203556828/:?]
at es.fiatc.xwm.jdbc.ExecuteQuery.execute(ExecuteQuery.java:39) ~[965bfc6983ba2d05e4f861434399d06b8091c0c4.1631203556828/:?]
at es.fiatc.xwm.jdbc.ExecuteQuery.execute(ExecuteQuery.java:53) [965bfc6983ba2d05e4f861434399d06b8091c0c4.1631203556828/:?]
at es.fiatc.xwm.mod.props.DefaultModule.execute(DefaultModule.java:100) [general-7.0.4.jar:?]
at es.fiatc.xwm.XWM.execute(XWM.java:148) [general-7.0.4.jar:?]
at es.fiatc.sld_facturadors.db.FacturadorsDB.getFactsBajaRelsNoCerradas(FacturadorsDB.java:996) [5e123940-6ba6-4fb5-a913-9044a66ae3ef/:?]
at es.fiatc.sld_facturadors.dao.CercaDAO.getFactsBajaRelsNoCerradas(CercaDAO.java:69) [5e123940-6ba6-4fb5-a913-9044a66ae3ef/:?]
at es.fiatc.sld_facturadors.actions.scheduler.FactsBajaRelsNoCerradasAction.execute(FactsBajaRelsNoCerradasAction.java:50) [5e123940-6ba6-4fb5-a913-9044a66ae3ef/:?]
at es.fiatc.xwm.mod.props.DefaultModule.execute(DefaultModule.java:100) [general-7.0.4.jar:?]
at es.fiatc.xwm.XWM.execute(XWM.java:148) [general-7.0.4.jar:?]
at es.fiatc.launcher.xwm.XWMJob.execute(XWMJob.java:33) [62b55c76-b327-4cf5-b4a6-1ac84589f545/:?]
at es.fiatc.launcher.ExecutionJob.run(ExecutionJob.java:38) [62b55c76-b327-4cf5-b4a6-1ac84589f545/:?]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_271]
Caused by: java.net.SocketException: Socket closed
at java.net.SocketInputStream.socketRead0(Native Method) ~[?:1.8.0_271]
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) ~[?:1.8.0_271]
at java.net.SocketInputStream.read(SocketInputStream.java:171) ~[?:1.8.0_271]
at java.net.SocketInputStream.read(SocketInputStream.java:141) ~[?:1.8.0_271]
at com.microsoft.sqlserver.jdbc.TDSChannel.read(IOBuffer.java:1981) ~[mssql-jdbc-6.2.2.jre8.jar:?]
... 24 more
关于为什么会发生这种情况的任何想法?这个时间表第一次给我们带来了问题。
我已经搜索了其他答案,所以我知道应该在某个地方关闭一个连接,但我们正在使用 XWM 与我们的 BBDD 连接,这就是为什么我对此有点迷茫,我有一种感觉,我缺少一些关键知识。
答:
0赞
Grismak
7/11/2022
#1
已经一个星期了,没有重复,我们怀疑这是超出我们管理范围的事情,比如服务器在通话的确切时刻出现故障或类似的事情。
不值得继续寻找它,所以我们把问题解决了,直到它再次发生。
评论