Uploaded image for project: 'JBeret'
  1. JBeret
  2. JBERET-22

[SQL Server] Bad persistence of exception in STEP_EXECUTION

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 1.0.0.CR2
    • 1.0.0.CR2
    • jberet-core
    • None
    • Hide

      Run a job that launch an exception of more than 5120 characters

      Show
      Run a job that launch an exception of more than 5120 characters

      Hello,

      Using SQL Server as JBeret jobs repository we have the following exception while persisting exception in STEP_EXECUTION table:

      2014-01-17 15:08:56,439 ERROR org.jberet JBERET000007: Failed to run job mister-sim.generate-input, , org.jberet.job.model.Job@7f253ac
      javax.batch.operations.BatchRuntimeException: JBERET000626: Failed to run UPDATE STEP_EXECUTION SET ENDTIME=?, BATCHSTATUS=?, EXITSTATUS=?, EXECUTIONEXCEPTION=?, PERSISTENTUSERDATA=?, READCOUNT=?, WRITECOUNT=?, COMMITCOUNT=?, ROLLBACKCOUNT=?, READSKIPCOUNT=?, PROCESSSKIPCOUNT=?, FILTERCOUNT=?, WRITESKIPCOUNT=?, READERCHECKPOINTINFO=?, WRITERCHECKPOINTINFO=? WHERE STEPEXECUTIONID=?
      	at org.jberet.repository.JdbcRepository.updateStepExecution(JdbcRepository.java:604)
      	at org.jberet.runtime.runner.StepExecutionRunner.run(StepExecutionRunner.java:159)
      	at org.jberet.runtime.runner.CompositeExecutionRunner.runStep(CompositeExecutionRunner.java:158)
      	at org.jberet.runtime.runner.CompositeExecutionRunner.runFromHeadOrRestartPoint(CompositeExecutionRunner.java:84)
      	at org.jberet.runtime.runner.JobExecutionRunner.run(JobExecutionRunner.java:55)
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
      	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:166)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      	at java.lang.Thread.run(Thread.java:722)
      Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: String or binary data would be truncated.
      	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:197)
      	at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1493)
      	at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:390)
      	at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:340)
      	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4575)
      	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1400)
      	at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:179)
      	at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:154)
      	at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeUpdate(SQLServerPreparedStatement.java:308)
      	at org.jberet.repository.JdbcRepository.updateStepExecution(JdbcRepository.java:602)
      	... 10 more
      

      The column EXECUTIONEXCEPTION should be set as varchar(max) or the exception should be truncated prior to the update statement execution.

            cfang@redhat.com Cheng Fang
            j.fougere Julien Fougere (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: