[jboss-jira] [JBoss JIRA] (WFLY-5207) Timestamp rounding issues on Microsoft SQL Server

Kabir Khan (JIRA) issues at jboss.org
Wed Dec 6 11:21:29 EST 2017


     [ https://issues.jboss.org/browse/WFLY-5207?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Kabir Khan closed WFLY-5207.
----------------------------


> Timestamp rounding issues on Microsoft SQL Server
> -------------------------------------------------
>
>                 Key: WFLY-5207
>                 URL: https://issues.jboss.org/browse/WFLY-5207
>             Project: WildFly
>          Issue Type: Bug
>          Components: EJB
>    Affects Versions: 10.0.0.Beta2
>         Environment: all supported Microsoft SQL Server  versions (2008, 2012, 2014)
>            Reporter: Jan Martiska
>            Assignee: Jan Martiska
>            Priority: Critical
>             Fix For: 10.0.0.CR1
>
>
> The DATETIME datatype in SQL Server has a precision of ~0.003 seconds.
> It sometimes can happen that an EJB timer gets scheduled to a timestamp which will get rounded after its insertion into the database, because the timestamps are generated with precision to miliseconds.
> After that, the timer service will be unable to locate this row, because it attempts to select using WHERE NEXT_DATE=$timestamp, where $timestamp is the original unrounded java.sql.Timestamp, and this condition no longer holds true. 
> After a timer is scheduled to go off at such unfortunate timestamp, it will never go off again.
> The solution is to either truncate the milisecond part, or to use the newer DATETIME2 datatype, which has an accuracy of 100 nanoseconds (https://msdn.microsoft.com/en-us/library/bb677335.aspx). DATETIME2 is supported on SQL Server 2008+.



--
This message was sent by Atlassian JIRA
(v7.5.0#75005)


More information about the jboss-jira mailing list