Imagine the following scenario of an embedded environment:
Your system has a derby.properties file, a text file in the system directory, which you have created and named system_directory. Your databases have also been created in this directory. The properties file sets the following property:
You start up your application, being sure to set the derby.system.home property appropriately:
You then create a new table:
You shut down and then restart your application, setting the value of derby.storage.pageSize to 4096 programmatically,
as a parameter to the JVM command line:
You establish a connection to the database and set the value of the page
size for all new tables to 32768 as a database-wide property:
You then create a new table that automatically inherits the page size set
by the property:
You shut down the application, then restart, this time forgetting to set
the system-wide property programmatically (as a command-line option to the
JVM):
You then create another table:
What you have is a situation in which three different tables each get a different page size, even though the derby.properties file remained constant.
Remove the derby.properties file from the system or the database from its current location (forgetting to move the file with it), and you could get yet another value for a new table.
To avoid this situation, be consistent in the way you set properties.