Forums: Open Discussion (Thread #33759)

【バッチFW】処理エラー内容解析 (2013-03-28 16:03 by Anonymous #67900)

お世話になります。
バッチFWで作成したジョブをここ数年使用しているのですが、本日未明の処理がエラーでストップしておりました。
エラーログを確認し原因調査をおこなっているのですがこれといった確信に至っていません。
尚、同ジョブはその後3度めの試みで正常に処理されました。
原因が分からないと今後も同様の現象が起こり得るのではないかと危惧しているところです。
エラーログの内容は下記のとおりなのですが、この内容で何が原因かを探る手立てのヒントをいただければと思います。

(エラーログ)
[2013/03/28 00:00:31] [StandardJobExceptionHandler] [ERROR] Error JobID: HOGE
jp.terasoluna.fw.batch.core.BLogicException: org.springframework.jdbc.UncategorizedSQLException: SqlMapClient operation; uncategorized SQLException for SQL []; SQL state [XX000]; error code [0];
--- The error occurred in hoge/hoge_sqlMap.xml.
--- The error occurred while applying a parameter map.
--- Check the sethogeData-InlineParameterMap.
--- Check the statement (update failed).
--- Cause: org.postgresql.util.PSQLException: ERROR: compressed data is corrupt; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred in hoge/hoge_sqlMap.xml.
--- The error occurred while applying a parameter map.
--- Check the sethogeData-InlineParameterMap.
--- Check the statement (update failed).
--- Cause: org.postgresql.util.PSQLException: ERROR: compressed data is corrupt
at jp.terasoluna.fw.batch.core.StandardBLogicExecutor.executeBLogic(StandardBLogicExecutor.java:118)
at jp.terasoluna.fw.batch.core.JobWorker.work(JobWorker.java:157)
at jp.terasoluna.fw.batch.core.JobWorker.work(JobWorker.java:68)
at jp.terasoluna.fw.batch.springsupport.transaction.TransactionalWorker.work(TransactionalWorker.java:69)
at jp.terasoluna.fw.batch.springsupport.transaction.TransactionalWorker.work(TransactionalWorker.java:43)
at jp.terasoluna.fw.batch.standard.QueueProcessor.process(QueueProcessor.java:127)
at jp.terasoluna.fw.batch.standard.RunnableQueueProcessor.run(RunnableQueueProcessor.java:108)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: org.springframework.jdbc.UncategorizedSQLException: SqlMapClient operation; uncategorized SQLException for SQL []; SQL state [XX000]; error code [0];
--- The error occurred in hoge/hoge_sqlMap.xml.
--- The error occurred while applying a parameter map.
--- Check the sethogeData-InlineParameterMap.
--- Check the statement (update failed).
--- Cause: org.postgresql.util.PSQLException: ERROR: compressed data is corrupt; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred in hoge/hoge_sqlMap.xml.
--- The error occurred while applying a parameter map.
--- Check the sethogeData-InlineParameterMap.
--- Check the statement (update failed).
--- Cause: org.postgresql.util.PSQLException: ERROR: compressed data is corrupt
at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.translate(SQLStateSQLExceptionTranslator.java:120)
at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.translate(SQLErrorCodeSQLExceptionTranslator.java:276)
at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:196)
at org.springframework.orm.ibatis.SqlMapClientTemplate.update(SqlMapClientTemplate.java:381)
at jp.terasoluna.fw.dao.ibatis.UpdateDAOiBatisImpl.execute(UpdateDAOiBatisImpl.java:189)
at jp.co.nttdata.hoge.HOGEBLogic.execute(HOGEBLogic.java:49)
at jp.co.nttdata.hoge.HOGEBLogic.execute(HOGEBLogic.java:19)
at jp.terasoluna.fw.batch.core.StandardBLogicExecutor.executeBLogic(StandardBLogicExecutor.java:110)
... 12 more
Caused by: com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred in hoge/hoge_sqlMap.xml.
--- The error occurred while applying a parameter map.
--- Check the sethogeData-InlineParameterMap.
--- Check the statement (update failed).
--- Cause: org.postgresql.util.PSQLException: ERROR: compressed data is corrupt
at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeUpdate(GeneralStatement.java:91)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.update(SqlMapExecutorDelegate.java:505)
at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.update(SqlMapSessionImpl.java:90)
at org.springframework.orm.ibatis.SqlMapClientTemplate$10.doInSqlMapClient(SqlMapClientTemplate.java:383)
at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:193)
... 17 more
Caused by: org.postgresql.util.PSQLException: ERROR: compressed data is corrupt
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1592)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1327)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:193)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:452)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:351)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:344)
at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:169)
at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:169)
at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeUpdate(SqlExecutor.java:81)
at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.sqlExecuteUpdate(GeneralStatement.java:200)
at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeUpdate(GeneralStatement.java:78)
... 21 more

Reply to #67900×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login

RE: 【バッチFW】処理エラー内容解析 (2013-03-28 18:08 by taromaru #67902)

> Caused by: org.postgresql.util.PSQLException: ERROR: compressed data is corrupt
> at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1592)
> at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1327)
> at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:193)

PostgreSQLのサーバ側が、
「ERROR: compressed data is corrupt」というエラーメッセージを返しています。
その際、SQL state (「XX000」の部分)も返しているので、そこから追ってみてはいかがでしょう。

なお、「ERROR: compressed data is corrupt」というエラーが出る事象に関しては、
CALgnk9rw3DsaQ9RoSAsMJpz08iimKtevBhLFzNws9dF3puFVdA@mail.gmail.com" rel="nofollow" target="_top">http://www.postgresql.org/message-id/CALgnk9rw3DsaQ9RoSAsMJpz08iimKtevBhLFzNws9dF3puFVdA@mail.gmail.com
というものを見つけました。

インデックスが張ってある列の、値の組み合わせで稀に発生するようです。
これには、REINDEXで問題が無くならないか?というコメントがついていますが、
その後どうなったのかはコメントがついていません。
Reply to #67900

Reply to #67902×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login

RE: 【バッチFW】処理エラー内容解析 (2013-03-28 18:23 by taromaru #67903)

URLに「http」と「@」が入っているためか、リンクが壊れてしまっているようです。

http://www」から「.com」までの部分をコピーして、アドレスバーに貼り付けてください。
Reply to #67902

Reply to #67903×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login

RE: 【バッチFW】処理エラー内容解析 (2013-03-28 18:35 by Anonymous #67904)

taromaruさん

早速アドバイスいただきありがとうございます。
ご指摘いただいた部分から追ってみたいと思います。
Reply to #67900

Reply to #67904×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login