1/12
Contents
Title and Copyright Information
Preface
Audience
Documentation Accessibility
Related Documents
Conventions
1
Overview for Designing Mobile Applications
1.1
Introduction
1.2
Oracle Database Mobile Server Application Model and Architecture
1.2.1
Mobile Client Database
1.2.1.1
Berkeley DB
1.2.1.2
SQLite
1.2.2
Mobile Sync
1.2.3
Mobile Server
1.2.4
Message Generator and Processor (MGP)
1.2.5
Mobile Server Repository
1.2.6
Device Manager
1.3
Creating the Publish-Subscribe Model for Mobile Users
1.3.1
Defining the Weight and Conflict Resolution for Publication Items
1.3.2
Behavior and Requirements for Primary Keys, Foreign Keys and Not Null Fields in Publication Items
1.4
Mobile Development Kit (MDK)
1.4.1
Using the Mobile Database Workbench
1.4.2
Using the Packaging Wizard
1.5
Mobile Application Design
1.5.1
Steps for Designing Your Mobile Application
1.5.1.1
Design for Synchronization
1.5.1.2
Design for Sequences
1.5.2
Application Programming Interfaces
1.5.3
Application Deployment into the Mobile Environment
2
Synchronization
2.1
How Oracle Database Mobile Server Synchronizes
2.1.1
Mobile Client Database Created on First Synchronization
2.1.2
Using Multiple Databases for Application Data
2.1.3
Deciding on Automatic or Manual Synchronization
2.1.4
Deciding on Synchronization Refresh Option
2.1.4.1
Fast Refresh
2.1.4.2
Complete Refresh
2.1.4.3
Queue-Based Refresh
2.1.4.4
Forced Refresh
2.1.5
Synchronizing to a File With File-Based Sync
2.1.6
How Downloaded Data is Processed on the Mobile Client
2.1.7
How Updates Are Propagated to the Back-End Database
2.2
Enabling Automatic Synchronization
2.2.1
Enable Automatic Synchronization at the Publication Item Level
2.2.2
Managing Automatic Synchronization on the Mobile Client
2.2.3
Define the Rules Under Which the Automatic Synchronization Starts
2.2.3.1
Configure Publication-Level Automatic Synchronization Rules
2.2.3.2
Configure Platform-Level Automatic Synchronization Rules
2.2.4
Setting Data as High Priority in Automatic Synchronization
2.2.5
Enable the Server to Notify the Client to Initiate a Synchronization to Download Data
2.2.6
Retrieve Status for Automatic Synchronization Events
2.3
What is The Process for Setting Up a User For Synchronization?
2.3.1
Creating a Snapshot Definition Declaratively
2.3.1.1
Manage Snapshots
2.3.2
Creating the Snapshot Definition Programmatically
2.4
Creating Publications Using Oracle Database Mobile Server APIs
2.4.1
Defining a Publication With Java Consolidator Manager APIs
2.4.1.1
Create the Mobile Server User
2.4.1.2
Create Publications
2.4.1.3
Create Publication Items
2.4.1.4
Define Publication-Level Automatic Synchronization Rules
2.4.1.5
Data Subsetting: Defining Client Subscription Parameters for Publications
2.4.1.6
Create Publication Item Indexes
2.4.1.7
Adding Publication Items to Publications
2.4.1.8
Creating Client-Side Sequences for the Downloaded Snapshot
2.4.1.9
Subscribing Users to a Publication
2.4.1.10
Instantiate the Subscription
2.4.1.11
Bringing the Data From the Subscription Down to the Client
2.4.1.12
Modifying a Publication Item
2.4.1.13
Callback Customization for DML Operations
2.4.1.14
Restricting Predicate
2.5
Client Device Database DDL Operations
2.6
Customize the Compose Phase Using MyCompose
2.6.1
Create a Class That Extends MyCompose to Perform the Compose
2.6.2
Implement the Extended MyCompose Methods in the User-Defined Class
2.6.2.1
Implement the needCompose Method
2.6.2.2
Implement the doCompose Method
2.6.2.3
Implement the init Method
2.6.2.4
Implement the destroy Method
2.6.3
Use Get Methods to Retrieve Information You Need in the User-Defined Compose Class
2.6.3.1
Retrieve the Publication Name With the getPublication Method
2.6.3.2
Retrieve the Publication Item Name With the getPublicationItem Method
2.6.3.3
Retrieve the DML Table Name With the getPubItemDMLTableName Method
2.6.3.4
Retrieve the Primary Key With the getPubItemPK Method
2.6.3.5
Retrieve All Base Tables With the getBaseTables Method
2.6.3.6
Retrieve the Primary Key With the getBaseTablePK Method
2.6.3.7
Discover If Base Table Has Changed With the baseTableDirty Method
2.6.3.8
Retrieve the Name for DML Log Table With the getBaseTableDMLLogName Method
2.6.3.9
Retrieve View of the Map Table With the getMapView Method
2.6.4
Register the User-Defined Class With the Publication Item
2.7
Customize What Occurs Before and After Synchronization Phases
2.7.1
Customize What Occurs Before and After Every Phase of Each Synchronization
2.7.1.1
NullSync
2.7.1.2
BeforeProcessApply
2.7.1.3
AfterProcessApply
2.7.1.4
BeforeProcessCompose
2.7.1.5
AfterProcessCompose
2.7.1.6
BeforeProcessLogs
2.7.1.7
AfterProcessLogs
2.7.1.8
BeforeClientCompose
2.7.1.9
AfterClientCompose
2.7.1.10
BeforeSyncMapCleanup
2.7.1.11
AfterSyncMapCleanup
2.7.1.12
Example Using the Customize Package
2.7.1.13
Error Handling For CUSTOMIZE Package
2.7.2
Customize What Occurs Before and After Compose/Apply Phases for a Single Publication Item
2.8
Understanding Your Refresh Options
2.8.1
Fast Refresh
2.8.2
Complete Refresh for Views
2.8.3
Queue-Based Refresh
2.8.4
Forced Refresh
2.9
Synchronizing With Database Constraints
2.9.1
Synchronization And Database Constraints
2.9.2
Primary Key is Unique
2.9.3
Foreign Key Constraints
2.9.3.1
Set Update Order for Tables With Weights
2.9.3.2
Defer Constraint Checking Until After All Transactions Are Applied
2.9.4
Unique Key Constraint
2.9.5
NOT NULL Constraint
2.9.6
Generating Constraints on the Mobile Client
2.9.6.1
The assignWeights Method
2.10
Resolving Conflicts with Winning Rules
2.10.1
Resolving Errors and Conflicts on the Mobile Server Using the Error Queue
2.10.2
Viewing Client-Side Synchronization Conflicts from Automatic Synchronization
2.10.3
Customizing Synchronization Conflict Resolution Outcomes
2.11
Using the Sync Discovery API to Retrieve Statistics
2.11.1
getDownloadInfo Method
2.11.2
DownloadInfo Class Access Methods
2.11.3
PublicationSize Class
2.12
Customizing Synchronization With Your Own Queues
2.12.1
Customizing Apply/Compose Phase of Synchronization with a Queue-Based Publication Item
2.12.1.1
Queue Creation
2.12.1.2
Queue-Based PL/SQL Callouts
2.12.1.3
Create a Publication Item as a Queue
2.12.1.4
Register the PL/SQL Package Outside the Repository
2.12.2
Creating Data Collection Queues for Uploading Client Collected Data
2.12.2.1
Creating a Data Collection Queue
2.12.3
Selecting How and When to Notify Clients of Composed Data
2.13
Synchronization Performance
2.14
Troubleshooting Synchronization Errors
2.14.1
Foreign Key Constraints in Updatable Publication Items
2.14.1.1
Foreign Key Constraint Violation Example
2.14.1.2
Avoiding Constraint Violations with Table Weights
2.14.1.3
Avoiding Constraint Violations with BeforeApply and After Apply
3
APIs for Client and Database Administration
3.1
Deleting a Client Device
3.2
Register a Remote Oracle Database for Application Data
3.2.1
Set up a Remote Application Repository With the APPREPWIZARD Script
3.2.2
Register or Deregister a Remote Oracle Database for Application Data
3.2.3
Create Publication, Publication Item, Hints and Virtual Primary Keys on a Remote Database
3.2.4
Using Callbacks on Remote Databases
3.2.4.1
Customize Callbacks on the Remote Database
3.2.4.2
Publication Item Level Callbacks for the MGP Apply/Compose Phases
3.2.4.3
Customizing the Apply/Compose Phase for a Queue-Based Publication Item on a Remote Database
3.3
Create a Synonym for Remote Database Link Support For a Publication Item
3.3.1
Publishing Synonyms for the Remote Object Using CreatePublicationItem
3.3.2
Creating or Removing a Dependency Hint
3.4
Parent Tables Needed for Updateable Views
3.4.1
Creating a Parent Hint
3.4.2
INSTEAD OF Triggers
3.5
Manipulating Application Tables
3.5.1
Creating Secondary Indexes on Client Device
3.5.2
Virtual Primary Key
3.6
Facilitating Schema Evolution
3.6.1
Schema Evolution Involving a Primary Key
3.7
Set DBA or Operational Privileges for the Mobile Server
4
Managing Synchronization on the Mobile Client
4.1
Invoke Manual Synchronization on the Mobile Client
4.1.1
OSE Synchronization API for Applications on Mobile Clients
4.1.1.1
OSE Synchronization Java API
4.1.1.2
OSE Synchronization APIs For Native Applications
4.1.1.3
OSE .Net Synchronization API
4.1.2
SQLite Synchronization API for .Net Clients
4.1.3
OCAPI Synchronization API for the Mobile Client
4.1.3.1
OCAPI Synchronization APIs For C or C++ Applications
4.1.3.2
OCAPI Synchronization API for C#
4.1.3.3
mSync, OCAPI, and mSyncCom API
4.2
Manage Automatic Synchronization on the Mobile Client
4.2.1
OSE APIs for Managing Automatic Synchronization
4.2.1.1
JAVA APIs for the Sync Agent and Automatic Synchronization
4.2.1.2
Native APIs for the Sync Agent and Automatic Synchronization
4.2.1.3
The .Net APIs for the Sync Agent and Automatic Synchronization
4.2.1.4
OCAPI Sync Control APIs
4.2.2
OCAPI APIs for Retrieving Status on Automatic Synchronization
4.2.2.1
Retrieving Status for Automatic Synchronization in Java Applications
4.2.2.2
Retrieving Status for Automatic Synchronization in C and C++ Applications
4.2.2.3
Retrieving Status for Automatic Synchronization in C# Applications
4.2.2.4
Input Parameters for Retrieving Messages
4.2.3
OCAPI Notification APIs for the Automatic Synchronization Cycle Status
4.2.3.1
Automatic Synchronization Notification for C/C++ Application
4.2.3.2
Automatic Synchronization Notification for C# Application
4.2.3.3
Automatic Synchronization Notification for Java Applications
4.2.3.4
Input Parameters for Automatic Synchronization Notification
5
Using Mobile Database Workbench to Create Publications
5.1
Use MDW to Create Publications
5.2
Create a Project
5.3
Use the Quick Wizard to Create Your Publication
5.4
Create a Publication Item
5.4.1
Create SQL Statement for Publication Item
5.4.2
Create a Dependency Hint
5.4.3
Specify Parent Table and Primary Key Hints
5.5
Define the Rules Under Which the Automatic Synchronization Starts
5.5.1
Configure Publication-Level Automatic Synchronization Rules
5.5.2
Configure Platform-Level Automatic Synchronization Rules
5.5.2.1
Define System Event Rules for the Platform
5.5.2.2
Define Automatic Synchronization Conditions for the Platform
5.6
Create a Sequence
5.6.1
Configuring Sequences in MDW
5.6.2
Configuration Scenarios for Sequence Generation
5.6.3
Example of a Sequence
5.6.4
Example of a Client and Server Sharing a Sequence
5.7
Create and Load a Script Into The Project
5.7.1
Writing SQL Scripts
5.7.2
Load the Script Into the Project
5.8
Create a Publication
5.8.1
General Tab Configures Publication Name
5.8.2
Publication Item Tab Associates Publication Items With the Publication
5.8.2.1
Associating a Publication Item to this Publication
5.8.3
Sequence Tab Associates Existing Sequences With the Publication
5.8.4
Script Tab Associates Existing Scripts With the Publication
5.8.5
Event Tab Configures Automatic Synchronization Rules for this Publication
5.9
Import Existing Publications and Objects from Repository
5.9.1
Import Existing Publication from Repository
5.9.2
Import Existing Publication Item From the Repository
5.9.3
Import Existing Sequence From the Repository
5.9.4
Import an Existing Script From the Repository
5.10
Create a Virtual Primary Key
5.11
Test a Publication by Performing a Synchronization
5.12
Deploy the Publications in the Project to the Repository
6
Using the Packaging Wizard
6.1
Using the Packaging Wizard
6.1.1
Starting the Packaging Wizard
6.1.2
Specifying New Application Definition Details
6.1.3
Listing Application Files
6.1.4
Publish the Application
6.1.5
Editing Application Definition
6.1.6
Troubleshooting
6.2
Packaging Wizard Synchronization Support
7
Create and Manage Jobs with APIs
7.1
Managing Scheduled Jobs Using ConsolidatorManager APIs
7.2
Start a Standalone Job Engine In Separate JVM
7.3
Using the ConsolidatorManager APIs to Create Jobs
8
Customizing Oracle Database Mobile Server Security
8.1
Providing Your Own Authentication Mechanism for Authenticating Users for the Mobile Server
8.1.1
Implementing Your External Authenticator
8.1.1.1
Initialization for the External Authenticator
8.1.1.2
Destruction of the External Authenticator
8.1.1.3
The Authentication Method for the External Authenticator
8.1.1.4
The User Instantiation Method for the External Authenticator
8.1.1.5
Retrieve the User Name or the User Global Unique ID
8.1.1.6
Log Off User
8.1.1.7
Change User Password
8.1.2
Registering External Authenticator
8.1.3
User Initialization Scripts
Index
Scripting on this page enhances content navigation, but does not change the content in any way.