By default, Derby does not boot databases (and some core Derby classes) in the system at Derby startup but only at connection time. For multi-user systems, you might want to reduce connection time by booting one or all databases at startup instead.
For embedded systems, you might want to boot the database in a separate thread (either as part of the startup, or in a connection request).
For more information, see Shielding users from Derby class-loading events.