UltraLiteJ unterstützt Datenbanken im Arbeitsspeicher (nicht beständige) und im Gerätespeicher (beständig), einschließlich
BlackBerry-Speicher (interner Flash) und SD-Karten.
Transaktionen sind ein Satz von Vorgängen zwischen Festschreibungen oder Rollbacks. Bei beständigen Datenbankspeichern werden
durch das Festschreiben alle Änderungen seit dem letzten Festschreiben oder Rollback permanent gespeichert. Ein Rollback setzt
die Datenbank in den Zustand zurück, der beim Aufruf des letzten Festschreibens aktuell war.
Jede Transaktion und jeder Vorgang auf Zeilenebene in UltraLiteJ ist atomar (nicht teilbar). Beim Einfügen von Daten in mehrere
Spalten werden Daten entweder in alle betreffenden Spalten oder in keine der betreffenden Spalten eingefügt.
UltraLiteJ verwendet Isolationsstufe null (Read uncommitted), um ein Höchstmaß an Parallelität zu gewährleisten.
Sperren
Zwei verschiedene Verbindungen können dieselbe Zeile nicht gleichzeitig ändern. Wenn zwei Verbindungen versuchen, auf
dieselbe Zeile zuzugreifen, erhält die zweite Verbindung eine Fehlermeldung und darf die Zeile erst wieder ändern, wenn die
erste Verbindung ihre aktuelle Transaktion festschreibt oder zurücksetzt.
Sichtbarkeit
Der Vorgang einer Verbindung in der Datenbank wird sofort für andere Verbindungen sichtbar.
Beständige Speicher sind seitenbasiert; UltraLiteJ arbeitet mit Seiten im Cache. Im Cache wird ein Arbeitssatz von Seiten
untergebracht und über ein First-in-First-out-Schema (FIFO) verwaltet. Aktuell verwendete Seiten werden im Cache gesperrt,
damit sie nicht ausgelagert werden.
Sie können die Größe des UltraLiteJ-Caches konfigurieren.
UltraLiteJ kann "lazy load"-Indizes (bei Bedarf geladen) und -Zeilenseiten verwenden, um das Starten einer beständigen Datenbank
zu verbessern. Indizes und Zeilenseiten werden erst geladen, wenn auf sie erstmals von einer Anwendung zugegriffen wird.
Bei kleinen Datenbanken behält UltraLiteJ Kopien aller Zeilen- und Indexseiten im Speicher.
Bei größeren Datenbanken kann die Datenbank jedes Mal, wenn sie geöffnet wird, so konfiguriert werden, dass die Anzahl der
Zeilen und Indexseiten, die sich zu einem bestimmten Zeitpunkt im Speicher befinden, begrenzt ist.
Verschlüsselung wird unter Verwendung der setEncryption-Methode eines Configuration-Objekts eingestellt, das ein EncryptionControl-Objekt
nimmt, um Seiten zu verschlüsseln und zu entschlüsseln. Sie müssen Ihr eigenes Verschlüsselungs-Steuerelement bereitstellen.
Als MobiLink-Synchronisationsclient verfügt UltraLiteJ über ein integriertes, Transaktionslog-basiertes System zur Änderungsverfolgung,
sodass Datenbankänderungen synchronisiert werden können.
Die Datensynchronisation kann mithilfe von HTTP- oder HTTPS-Netzwerkprotokollen durchgeführt werden. Die HTTPS Synchronisation
stellt eine sichere Verschlüsselung für den MobiLink-Server zur Verfügung.
UltraLiteJ stellt ein Publikationsmodell bereit, das Ihnen die Synchronisation von ausgewählten Tabellen und ausgewählten
Zeilen in diesen Tabellen aus Ihrer Datenbank ermöglicht, um eine effiziente Nutzung der Netzwerkressourcen zu gewährleisten.
UltraLiteJ verwendet Unicode (in der Datenbank als UTF-8 kodiert). Die Kollatierung ist die Standardsortierreihenfolge für
Java. Sie entspricht der UTF8BIN-Kollatierung, die von SQL Anywhere unterstützt wird. Während der Synchronisation mit einem
MobiLink-Server wird MobiLink von UltraLiteJ informiert, dass es UTF8-Zeichensatz und -Kollatierung verwendet.