The Oracle Lite Blog

The Rekounas Blog about Oracle's Mobile Enterprise Application Platform

The Oracle Lite Blog header image 2

Setting up a Mobile Server for size and performance

December 15th, 2008 · 6 Comments

I set up my Nth Mobile Server/Oracle Application Server configuration this past weekend, and here is a list of modifications that I have made to my configuration files.

In the webtogo.ora file:
ADMIN_JDBC_URL={changed this to use a RAC URL. Not required in of the product as the installer handles this}
THIN_JDBC_URL={ditto for this URL}

The DISPLAY_CLIENT_DATA_SIZE is meant for OC4J and Webtogo application. If you are not using the customized workspace, Webtogo connects to the remote server and it attempts to determine the number of rows you will be downloading. This is useless, and time consuming. I turn it off.


The RESUME_CLIENT_TIMEOUT variable sets the socket timeout to the number of seconds you specify. Useful in cases where you are having performance issues and you do not want the user to get a network disconnect error.

MAX_THREADS is the number of threads that will concurrently run a MGP cycle. First try 1.5*CPU on the database server. Then back it down to 1*CPU if there are performance issues.

Over to device configuration for Win32, Webtogo, and OC4J:

[All Databases]

I am not sure if TIMEOUT_MAX is in of the product, but this was around to fix a bug in previous versions. Very similar to the RESUME_CLIENT_TIMEOUT. I set them both to the same value.

DEBUG enables debug of every sync. Very useful in development, but it may cause the overall performance on an initial sync to slow down, especially if you are syncing a large amount of data.

AUTO_COMMIT_COUNT helps in the processing phase. Again, if you are syncing a large amount of data and you are running into memory issues, this is the parameter you want to set to get around those issues. You don’t want to set this too low and you don’t want to set it too high. I usually play with 1000, 3000, or 5000.

If you are running into memory issues due to large initial syncs or large delete/insert scenarios, chances are you will need to set MaxSharedMemSize=256. This controls how many commands can be placed in shared memory, the larger the area, the more commands. Just take not that you will probably have to use AUTO_COMMIT_COUNT if you are using this variable.

Oracle Application Server configuration:
Not too many things here other than changing ports in httpd.conf and changing the following in opmn.xml
< data id=”java-options” value=”
-server$ORACLE_HOME/j2ee/mobileserver/config/java2.policy -Djava.awt.headless=true
-Xms2048M -Xmx2048M“/>

I always set Xms(Initial Java Heap Size) and Xmx(Maximum Java Heap Size) to be the same. In this case I set them to use 2GB.

Before I do my initial sync on a new server, I make sure these are always set. The other thing you may want to think about doing for your test servers are set them up with the same number of users your production servers will have. Even though you may not be able to test concurrent syncs within your environment, you will be able to see how MGP and your database handle the consolidation.


Tags: Java · Oracle Lite

6 responses so far ↓

  • 1 Christian wrote on Mar 31, 2009 at 5:45 am

    Hi Greg, could you please give a hint on your mobile device configuration?
    What’s DB_CHAR_ENCODING or NLS_LOCAL set to for your global apps??


  • 2 rekounas wrote on Mar 31, 2009 at 6:29 am

    We set it to:

    We only support binary sort and comparisons though. Like most systems, our application is based on numbers, so we don’t have too many full text searches, So this isn’t an issue.

  • 3 Santosh wrote on Nov 15, 2009 at 9:57 pm

    I am new to Oracle lite please can yu guide mw as to how I can get started with installing the server, do I need a Oracle server or will the oracle lite mobile server do…

  • 4 Lucilene wrote on Oct 8, 2015 at 2:43 am

    Considering you are tuning your web site, I think it’s good idea to enalbe new feature AQDM (Automatic Questions Diagnostic Monitor) and QTM (Questions Tuning Advisor) to find a questions that not using bind variable. Cause your system have only one shared server process (it’s you) , the only area to tune is your QGA. Try setting question_sharing to force to make little more space in the QGA for our questions.

  • 5 Coossetob wrote on Oct 31, 2017 at 12:10 am

  • 6 MichaelDuddy wrote on Dec 8, 2017 at 7:19 am

    Российский ФМ Проект Слушать эфир России!..
    Один из наиболее популярных проектов для радиолюбителей России.
    Обновляемый сервис “Ретарнсляторы России” один из наиболее популярных сервисов проекта, имеет Android мобильную версию и позволяет вам узнавать о ближайших укв ретрансляторах вашег орегиона даже не входя в интернет.

Leave a Comment