com.icitic.artery.exceptions.KeyedException: IC卡平台生成业务数据文件或请求签名文件错误!com.ibm.db2.jcc.b.SqlException: DB2 SQL Error: SQLCODE=-805, SQLSTATE=51002, SQLERRMC=NULLID.SYSLH203 0X5359534C564C3031, DRIVER=3.50.152
at com.icitic.iccard.gencard.util.LoggerException.loggerMessage(LoggerException.java:22)
at com.icitic.iccard.gencard.step.GenMkCardFilesStep.generateDataCertFile(GenMkCardFilesStep.java:149)
at com.icitic.iccard.gencard.step.GenMkCardFilesStep.doWork(GenMkCardFilesStep.java:83)
at com.icitic.artery.task.Stage.runOnce(Stage.java:177)
at com.icitic.artery.task.Stage.doWork(Stage.java:153)
at com.icitic.artery.task.Task.execute(Task.java:255)
at com.icitic.artery.task.Task.doWork(Task.java:183)
at com.icitic.artery.task.Task.run(Task.java:341)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:897)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:919)
at java.lang.Thread.run(Thread.java:736)
Caused by:
java.lang.RuntimeException: com.ibm.db2.jcc.b.SqlException: DB2 SQL Error: SQLCODE=-805, SQLSTATE=51002, SQLERRMC=NULLID.SYSLH203 0X5359534C564C3031, DRIVER=3.50.152
at com.icitic.iccard.gencard.AbstractGenerateFile.createFile(AbstractGenerateFile.java:261)
at com.icitic.iccard.gencard.step.GenMkCardFilesStep.generateDataCertFile(GenMkCardFilesStep.java:144)
... 9 more
Caused by:
com.ibm.db2.jcc.b.SqlException: DB2 SQL Error: SQLCODE=-805, SQLSTATE=51002, SQLERRMC=NULLID.SYSLH203 0X5359534C564C3031, DRIVER=3.50.152
at com.ibm.db2.jcc.b.wc.a(wc.java:55)
at com.ibm.db2.jcc.b.wc.a(wc.java:126)
at com.ibm.db2.jcc.b.tk.c(tk.java:1901)
at com.ibm.db2.jcc.t4.db.o(db.java:767)
at com.ibm.db2.jcc.t4.db.g(db.java:141)
at com.ibm.db2.jcc.t4.db.a(db.java:38)
at com.ibm.db2.jcc.t4.t.a(t.java:32)
at com.ibm.db2.jcc.t4.sb.h(sb.java:141)
at com.ibm.db2.jcc.b.tk.N(tk.java:1387)
at com.ibm.db2.jcc.b.uk.Kb(uk.java:2461)
at com.ibm.db2.jcc.b.uk.Pb(uk.java:2549)
at com.ibm.db2.jcc.b.uk.a(uk.java:1628)
at com.ibm.db2.jcc.b.uk.setObject(uk.java:1586)
at org.apache.commons.dbcp.DelegatingPreparedStatement.setObject(DelegatingPreparedStatement.java:163)
at com.icitic.iccard.gencard.jdbc.JdbcUtil.createStatement(JdbcUtil.java:216)
at com.icitic.iccard.gencard.dao.ICUseParaDaoImpl.getFWM(ICUseParaDaoImpl.java:169)
at com.icitic.iccard.gencard.AbstractGenerateFile.getFWM(AbstractGenerateFile.java:194)
at com.icitic.iccard.gencard.AbstractGenerateFile.builderWriteLine(AbstractGenerateFile.java:88)
at com.icitic.iccard.gencard.AbstractGenerateFile.createFile(AbstractGenerateFile.java:256)
... 10 more
16:14:56,748 DEBUG TaskEngine(567) | Save status for TaskContext [taskId=724a0df9-57ef-43b7-86a6-83db806a0834, taskName=makeCard_task, stageNo=2, stepNo=0, rowNo=0, continuously=true, status=Suspended]
16:14:56,753 DEBUG TaskEngine(567) | Save status for TaskContext [taskId=724a0df9-57ef-43b7-86a6-83db806a0834, taskName=makeCard_task, stageNo=2, stepNo=0, rowNo=0, continuously=true, status=Suspended]
16:14:56,759 DEBUG ArteryExecutor(91) | Thread[pool-Task-thread-10,5,main] end Task[name=makeCard_task], time=1195451248875ns
问题分析:
起初是感觉是数据库中的没有绑定。。。。。。。。。。。。。。。。。。。。。 然后用命令DB2 bind @db2ubind.lst blocking all grant public 执行,还是不行
数据量大的时候暴漏的问题
最后检查下代码:
原来是Preparestate对象使用完毕后,没有关闭,还有就是ResultSet用完后没有被关闭才引起该问题,希望搞技术的朋友写程序的时候一定要严谨