Previous Topic

Next Topic

Book Contents

Book Index

Storage properties

Lists the system properties that can be used to adjust the parameters of framework storage.

System property

Default value

Description

mbs.storage.allowroot

com.prosyst.fsbrowser; com.prosyst.httpfsbrowser

Contains a list of symbolic names separated with semi-colons, of the bundles which are allowed to access the root directory of the framework storage.

mbs.storage.delete

false

Removes or preserves the storage directory at startup. If set to true, the storage folder is deleted.

mbs.storage.delete.subarchives

false

If true, makes the framework delete all sub archives included in the bundle class path from the bundle JAR after they are extracted. Enabling this function can significantly reduce the size of the framework storage.

This property is not valid when using the standard serverXxx.jar. To make it work, serverXxx.jar should be recompiled using the JMM Java Preprocessor option deflate. As the framework source files are not included in the installation, the recompiled serverXxx.jar is available only upon request.

mbs.storage.grbnotsave

false

Specifies if the list with files to be deleted from the storage should be saved after every modification (adding or removing a file).

mbs.storage.root

storage

The name of the root storage folder.

mbs.storage.trustedRoot

../../../

Specifies the directory which the framework will consider as trusted storage root - the checksums of the installed bundles stored outside this directory will be compared on each framework restart, and those whose checksums do not match will be uninstalled. In addition, all extension bundles must be installed in this storage so that they are loaded in the framework. The property value should end with a path separator ("/").

mbs.storage.zip.jdk13

true

If true, fixes some ZIP problems in most of the JDK 1.1/CDC Foundation1.1/JDK 1.2 compliant JVMs, like Aonix Perc® Ultra, Skelmir CEE-J® VM, Oracle JDK 1.1, etc.

mbs.update.keep

false

Specifies whether the data files in the framework storage should be kept, when a bundle is updated, or not. If this property has no value, then false is considered as a default value.

mbs.keepmf

true

Turns on the framework cache of bundles' manifests. Otherwise, they are read from the JARs every time Bundle.getHeaders is called.

mbs.storage.url

If set, this property specifies a URL from where a built storage can be taken. This property should point to a valid ZIP file. The root of the ZIP file should contain the data and bundles sub-folders of the original storage.

mbs.storage.native

jdk12

Specifies how to store native libraries in the storage directory. The value of this property can be jdk11 or jdk12.

  • If it is jdk12, native libraries are placed in separate sub-directories within the data directories allocated for each installed bundle in the framework storage. The native libraries of a bundle are saved into <storage_root>/data/<bundle_id>/<bundle_version>/native. Use jdk12 when you have 1.2 compatible VM (you have the findLibrary method in a class loader).
  • If it is jdk11, native libraries are stored in the native sub folder of the framework storage. A path to this folder is automatically added in the environment. Use jdk11 when you have 1.1 compatible VM. In this case, the path is set to the <storage_root>/native folder so the loadLibrary method can work correctly.

mbs.storage.nativedir

Specifies the directory to which native libraries are extracted from bundle JARs. This property is vital when the jdk11 native mode is used and there is no PATH environment variable, which is the case with WinCE.

mbs.storage.keepgarbage

false

Turns on/off keeping storage garbage at framework startup.

mbs.storage.storeTime

3000

Specifies the time in milliseconds to wait before storing persistently the bundle states. This property is used for optimizing file operations in the storage.

mbs.storage.norename

false

Specifies if the flat RAM file system the flash manager will operate on does not support renaming.

mbs.storage.ramroot

Indicates the root directory of the temporary RAM storage, in which the flash manager will transfer files from the flash persistent storage.

mbs.storage.forbiddenChars

':', '*', '?', '\"', '<', '>', '|'

Defines the comma-separated set of characters forbidden for filenames in the operating system. If one of these characters is encountered in a bundle location, it is replaced with the ^ symbol in the storage.

mbs.storage.maxFileName

255

Defines the maximum number of characters that your file system allows for a bundle JAR filename in the framework storage.

Be aware of Maximum Filename Length per File System to avoid problems with non-supported values. For more specific environments contact your OS vendor. Change the default value of 255 with the number your file system permits. For example, if you are using QNX operating system this property should have value less than 48.

mbs.storage.maxOpened

By default our framework keeps all installed bundle files (.jar) open to speed up any classloading requests. By changing this property you can control the maximum number of .jar bundle files that should be kept open simultaneously.

mbs.storage.flashmgr.replace

false

Specifies if a temporary file is scheduled twice for flush in the queue of the flash manager, the second instance will replace the first one (the flush operation is not executed yet). The default is false – which means that the file will not be replaced and thus will be synchronized twice.

mbs.storage.flashmgr.flatram

false

Indicates if the RAM file system, used with the framework flash manager, is "flat".

mbs.storage.updateOnBundlesChange

false

If true, the bundles list in boot.ini will be checked for changes on framework start. In case a bundle has been removed from boot.ini, it will be uninstalled. Refer to Rebooting the Runtime after Changes in a Startup Bundles List.

mbs.storage.deleteSubDirsOnly

false

If true, and the framework is started with the option to delete the storage, the bundles and data sub-directories will be removed, without removing the entire storage directory.

mbs.storage.ignore.nobundlesdir

false

For compatibility issues, the framework will report an error and crash when you try to start a current version of the framework over an existing storage folder created by older versions in which the folder storage/bundles does not exist, like in mBS SDK 7.3. Setting this property to true will make the framework continue with its normal startup sequence.