You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-user@db.apache.org by "Dag H. Wanvik" <da...@oracle.com> on 2011/06/07 14:05:00 UTC

Re: Disappearing service.properties file

"Brett Mason" <b....@adinstruments.com> writes:

> It does seem that Cases 1 & 2 are fairly easy to reproduce by terminating
> the Java process while it is updating service.properties. I've included some
> sample code which will trigger the problem quite reliably when it is
> terminated on the following environments:
>
> Windows 7 64-bit, Sun 32-bit JRE 1.6u20, Derby 10.6.1.0
> Windows 7 64-bit, Sun 32-bit JDK 1.6u25, Derby 10.8.1.2
> Debian Linux 5.0, 32-bit, Sun JRE 1.6u20, Derby 10.6.1.0 (running within
> Virtual Box)
>
> Is this issue worth reporting as a bug?
>
> Are there other scenarios where the file might be updated as part of
> "normal" database usage? Particularly for regular INSERT/UPDATE/DELETE
> statements, but also maintenance procedures such as SYSCS_BACKUP_DATABASE,
> SYSCS_CHECK_TABLE, SYSCS_COMPRESS_TABLE, SYSCS_UPDATE_STATISTICS.

Please file a JIRA issue for this so we can discuss it in the community
with a view to improving the way we handle these transactional propery
settings. I don't think INSERT/UPDATE/DELETE are subject to this
scenario, but backup/restore may be. As for statistics, I don't think so
from my preliminary investigation, but I am not 100% sure yet.

Dag

>
> Thanks,
> Brett.
>
>
>
> import java.sql.*;
> import org.apache.derby.jdbc.*;
>
> public class DerbyLogArchiveModeTest {
>     
>     public static void main(String[] args) {
>         final EmbeddedDataSource ds = new EmbeddedDataSource();
>         ds.setDatabaseName("derbyTest");
>         ds.setCreateDatabase("create");
>
>         try {
>             final Connection conn = ds.getConnection();
>
>             try {
>                 final Statement stmt = conn.createStatement();
>
>                 try {
>                     while (true) {
>                         stmt.execute("call
> SYSCS_UTIL.SYSCS_DISABLE_LOG_ARCHIVE_MODE(1)");
>                     }
>                 } finally {
>                     stmt.close();
>                 }
>             } finally {
>                 conn.close();
>             }
>         } catch (SQLException e) {
>             e.printStackTrace();
>         }
>     }
> }

RE: Disappearing service.properties file

Posted by Brett Mason <b....@adinstruments.com>.
Thanks,

Logged as DERBY-5283.

Cheers,
Brett.

-----Original Message-----
From: Dag H. Wanvik [mailto:dag.wanvik@oracle.com] 
Sent: Wednesday, 8 June 2011 00:05
To: Derby Discussion
Subject: Re: Disappearing service.properties file

"Brett Mason" <b....@adinstruments.com> writes:

> It does seem that Cases 1 & 2 are fairly easy to reproduce by terminating
> the Java process while it is updating service.properties. I've included
some
> sample code which will trigger the problem quite reliably when it is
> terminated on the following environments:
>
> Windows 7 64-bit, Sun 32-bit JRE 1.6u20, Derby 10.6.1.0
> Windows 7 64-bit, Sun 32-bit JDK 1.6u25, Derby 10.8.1.2
> Debian Linux 5.0, 32-bit, Sun JRE 1.6u20, Derby 10.6.1.0 (running within
> Virtual Box)
>
> Is this issue worth reporting as a bug?
>
> Are there other scenarios where the file might be updated as part of
> "normal" database usage? Particularly for regular INSERT/UPDATE/DELETE
> statements, but also maintenance procedures such as SYSCS_BACKUP_DATABASE,
> SYSCS_CHECK_TABLE, SYSCS_COMPRESS_TABLE, SYSCS_UPDATE_STATISTICS.

Please file a JIRA issue for this so we can discuss it in the community
with a view to improving the way we handle these transactional propery
settings. I don't think INSERT/UPDATE/DELETE are subject to this
scenario, but backup/restore may be. As for statistics, I don't think so
from my preliminary investigation, but I am not 100% sure yet.

Dag

>
> Thanks,
> Brett.
>
>
>
> import java.sql.*;
> import org.apache.derby.jdbc.*;
>
> public class DerbyLogArchiveModeTest {
>     
>     public static void main(String[] args) {
>         final EmbeddedDataSource ds = new EmbeddedDataSource();
>         ds.setDatabaseName("derbyTest");
>         ds.setCreateDatabase("create");
>
>         try {
>             final Connection conn = ds.getConnection();
>
>             try {
>                 final Statement stmt = conn.createStatement();
>
>                 try {
>                     while (true) {
>                         stmt.execute("call
> SYSCS_UTIL.SYSCS_DISABLE_LOG_ARCHIVE_MODE(1)");
>                     }
>                 } finally {
>                     stmt.close();
>                 }
>             } finally {
>                 conn.close();
>             }
>         } catch (SQLException e) {
>             e.printStackTrace();
>         }
>     }
> }