Search This Blog

Wednesday, November 28, 2012

java.sql.SQLException: Year out of range. when using database Audit Store

Applies to:

Oracle Access Manager - Version 11.1.1.5.0 and later
Information in this document applies to any platform.

Symptoms

When configured Audit log storage as database as per "http://docs.oracle.com/cd/E14571_01/core.1111/e10043/audpolicy.htm#" all data is going fine in table IAU_BASE but after some time errors like
[2012-04-10T14:07:54.279+01:00] [oam_server1] [ERROR] [] [] [tid: AuditLoaderRunner] [userId: ] [ecid: a9c385d0a9a28e67:2214479:136963cb7ee:-8000-0000000000000004,0] IAU:IAU-5047: Problem in transferring audit record from file:E:\Oracle\Middleware\user_projects\domains\base_domain\servers\oam_server1\logs\auditlogs\OAM\audit.log position:2,138,186 will retry in next cycle. caught exception oracle.security.audit.AuditException: java.sql.SQLException: Year out of range.[[
at oracle.security.audit.ajl.loader.OracleDatabaseRepository.write(OracleDatabaseRepository.java:360)
at oracle.security.audit.ajl.loader.JDBCLogWriter.write(JDBCLogWriter.java:101)
at oracle.security.audit.ajl.loader.AuditLoader.readMessages(AuditLoader.java:483)
at oracle.security.audit.service.AuditLoaderManager.readMessages(AuditLoaderManager.java:82)
at oracle.security.audit.service.AuditLoaderManager$Runner.run(AuditLoaderManager.java:151)
Caused by: java.sql.SQLException: Year out of range.
at oracle.jdbc.driver.DateCommonBinder.setOracleCYMD(OraclePreparedStatement.java:24253)
at oracle.jdbc.driver.TimestampBinder.bind(OraclePreparedStatement.java:24633)
at oracle.jdbc.driver.OraclePreparedStatement.setupBindBuffers(OraclePreparedStatement.java:3269)
at oracle.jdbc.driver.OraclePreparedStatement.processCompletedBindRow(OraclePreparedStatement.java:2466)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3747)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3887)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeUpdate(OraclePreparedStatementWrapper.java:1508)
at weblogic.jdbc.wrapper.PreparedStatement.executeUpdate(PreparedStatement.java:172)
at oracle.security.audit.ajl.loader.OracleDatabaseRepository.write(OracleDatabaseRepository.java:321)
... 4 more

]]
appear.


If we delete the file OAM_Domain\servers\oam_server1\logs\auditlogs\OAM\audit.log manually, the server is working fine again but after some time it gives the same above error.

Cause


This issue is treated in OPSS Bug 13436847 - Audit data to database no longer works; audit data to file is working

 

Solution

 The problem is fixed in patch# 13436847 available @ https://updates.oracle.com/download/13436847.html .

References

BUG:13436847 - AUDIT DATA TO DATABASE NO LONGER WORKS; AUDIT DATA TO FILE IS WORKING

1 comment:

Anonymous said...

Can you please mention issue resolution here in blog, i could not able to access this BUG link