<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>The Oracle Lite Blog</title>
	<atom:link href="http://www.rekounas.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.rekounas.org</link>
	<description>The Rekounas Blog about Oracle Lite and Mobile Server Technologies and Solutions</description>
	<pubDate>Tue, 09 Mar 2010 16:27:28 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Gaining performance out of Queue-Based refresh</title>
		<link>http://www.rekounas.org/2010/03/09/gaining-performance-out-of-queue-based-refresh/</link>
		<comments>http://www.rekounas.org/2010/03/09/gaining-performance-out-of-queue-based-refresh/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 10:44:50 +0000</pubDate>
		<dc:creator>rekounas</dc:creator>
		
		<category><![CDATA[Oracle Lite]]></category>

		<guid isPermaLink="false">http://www.rekounas.org/?p=99</guid>
		<description><![CDATA[We have all been there.  Users start synching, MGP kicks in, some junior SQL developer has written a poorly executing batch job (yeah, I am blaming the junior PL/SQL guy) and all of the sudden, everything comes to a halt. Your online community can&#8217;t perform any transactions, your syncing users are just sitting there twiddling [...]]]></description>
			<content:encoded><![CDATA[<p>We have all been there.  Users start synching, MGP kicks in, some junior SQL developer has written a poorly executing batch job (yeah, I am blaming the junior PL/SQL guy) and all of the sudden, everything comes to a halt. Your online community can&#8217;t perform any transactions, your syncing users are just sitting there twiddling their thumbs, support staff is getting all kinds of alerts and calls, the poorly written PL/SQL batch job that the junior developer wrote isn&#8217;t finishing, and management is coming to you looking for answers because this is the 3rd time in the last month that this scenario has happened&#8230; the perfect storm!</p>
<p>What do you do?  You could tune the existing queries for your publication items to improve sync and MGP performance.  Of course, there is always that poorly written and timed PL/SQL that the junior guy wrote that is inserting/deleting 1 million records in one of your core tables that you are synchronizing to your application, and just when you notice this happening along with syncing or MGP, you notice transactions in C$ALL_CLIENT_ITEMS is blocking all kinds of sessions.  Oracle recommends setting the following in webtogo.ora</p>
<p>SKIP_INQ_CHK_BFR_COMPOSE=NO<br />
DO_APPLY_BFR_COMPOSE=NO</p>
<p>I prefer going to queue based synchronization for situations like this.  Why?   The first things is that it removes triggers on those tables that are usually affected by the blocking locks.  Secondly, if you have bulk operations on a table, the MGP LOG process can get bogged down with logging all the transactions and you often see deadlocks when this happens not to mention blocking locks if the deadlock doesn&#8217;t cancel out the MGP process quickly enough.</p>
<p>I am assuming if you are reading this, you are probably familiar with the Mobile Workbench and have created your publication items via that mechanism and felt really good about the fact that you don&#8217;t have to write all kinds of stored procedures to perform your synchronizations.  Well, roll up your sleeves, because you will have to write some PL/SQL to get a queue-based refresh working.  In the mobile development kit, there is a tutorial on how to go about creating a queue-based item (Location %ORACLE_HOME%\Mobile\Sdk\samples\Sync\win32\QBasedPI\)</p>
<p>There is a readme.txt in that folder.  I am not going to repost the tutorial, but I will talk about the aspects you should be aware of.  The tutorial basically give a complete-refresh example. This would not be the best example for most applications as there are also bi-directional publication items that you need to worry about.  The real piece of the code you should be concentrating on is the DOWNLOAD_INIT within the package.  This is your download logic.  Your logic should contain the following logic:</p>
<ul>
<li>handles physical deletes</li>
<li>handles inserts</li>
<li>handles update</li>
<li>handles logical deletes</li>
</ul>
<p>Their example only handles inserts.  If you want your publication item to perform incremental syncs, you will need to have a mechanism in that table that indicates records that need to be updated, inserted, or deleted. Here is a template of the mechanism I use.  In our tables, we have an AUDIT_DATE field.  A timestamp or date field is really useful in determining if a record has been updated.  Of course, you may need a trigger on the table or trust those junior developers to have code in place to update that AUDIT_DATE field.</p>
<p>The physical delete:<br />
<code>DELETE CTM$CTM$&lt;TABLE_NAME&gt;<br />
WHERE CLID$$CS = CLIENTID AND DMLTYPE$$ = 'D';</code></p>
<p>The insert logic:<br />
<code>INSERT INTO CTM$&lt;TABLE_NAME&gt;(CLID$$, FIELDS1, FIELDS2, DMLTYPE$$, TRANSID$$)<br />
SELECT CLIENTID, FIELDS1, FIELDS2, 'I', CURR_TRAN FROM &lt;TABLE_NAME&gt;<br />
WHERE NOT EXISTS (SELECT 'X' FROM CTM$&lt;TABLE_NAME&gt;<br />
WHERE &lt;MATCH PRIMARY KEYS HERE&gt;)</code></p>
<p>The update logic:<br />
<code>UPDATE CTM$&lt;TABLE_NAME&gt;</code></p>
<p>The logical delete:<br />
<code>UPDATE CTM$&lt;TABLE_NAME&gt;<br />
SET TRANID$$ = CURR_TRAN,<br />
DMLTYPE$$ = &#8216;D&#8217;<br />
WHERE AUDIT_DATE &lt; TO_CHAR( ADD_MONTHS( SYSDATE, -6 )) AND CLID$$CS = CLIENTID;</code></p>
<p>Now, in my example, I just keep 6 months of data on the client. At the end of the day, you can decide all aspects of synchronization. Customize the synchronization to fit your business needs.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rekounas.org/2010/03/09/gaining-performance-out-of-queue-based-refresh/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How to create an auto increment field in Oracle Lite</title>
		<link>http://www.rekounas.org/2009/10/24/how-to-create-an-auto-increment-field-in-oracle-lite/</link>
		<comments>http://www.rekounas.org/2009/10/24/how-to-create-an-auto-increment-field-in-oracle-lite/#comments</comments>
		<pubDate>Sun, 25 Oct 2009 03:47:26 +0000</pubDate>
		<dc:creator>rekounas</dc:creator>
		
		<category><![CDATA[Oracle Lite]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[Stored Procedures]]></category>

		<guid isPermaLink="false">http://www.rekounas.org/?p=98</guid>
		<description><![CDATA[I bet you thought you could make an auto increment field in Oracle Lite the same way you make it in Oracle right?  Well, you can&#8217;t do it the same way because Oracle Lite does not support PL/SQL.  It does however support C, C++, C#, and Java stored procedures.  We will review [...]]]></description>
			<content:encoded><![CDATA[<p>I bet you thought you could make an auto increment field in Oracle Lite the same way you make it in Oracle right?  Well, you can&#8217;t do it the same way because Oracle Lite does not support PL/SQL.  It does however support C, C++, C#, and Java stored procedures.  We will review creating auto-increment fields in both the Enterprise and the Lite databases.</p>
<p>Lets review the way you create a auto-increment field in Oracle:<br />
<code><br />
//Step 1:<br />
CREATE TABLE TEST_TABLE (<br />
COL1 NUMBER,<br />
COL2 VARCHAR2(20),<br />
CONSTRAINT TEST_TABLE_PK PRIMARY KEY (COL1)<br />
);<br />
</code></p>
<p><code><br />
//Step 2:<br />
CREATE SEQUENCE TEST_SEQ<br />
START WITH 1<br />
INCREMENT BY 1;<br />
</code></p>
<p><code><br />
//Step 3:<br />
CREATE TRIGGER TEST_TRIGGER<br />
BEFORE INSERT ON TEST_TABLE<br />
FOR EACH ROW<br />
BEGIN<br />
SELECT TEST_SEQ.NEXTVAL INTO :NEW.COL1 FROM DUAL;<br />
END;<br />
</code></p>
<p>And we are done.</p>
<p>Now here are the steps for doing it in Oracle Lite:</p>
<p><code>
<pre>
//Step 1: Create and Compile the Java Code.  Call the Java file JavaTrigger.java.  You may also have to compile using JDK 1.4 as even Oracle 10g is known not to support 1.5 yet.
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JavaTrigger {
   public static void autoIncrement(Connection conn, int newNum[]) throws SQLException {
      try {
         Statement stmt = null;
         ResultSet rs = null;
         stmt = conn.createStatement();
         rs = stmt.executeQuery(&#8221;SELECT TEST_SEQ.NEXTVAL FROM DUAL&#8221;);
         if (rs.next()) {
            newNum[0] = rs.getInt(1);
         }
      } catch (SQLException e) {
         System.err.println(e.getMessage());
      }
   }
}</pre>
<p></code></p>
<p><code><br />
//Step 2: Load the file into the database<br />
CREATE JAVA CLASS USING BFILE ('C:\OracleLiteJava\StoredProcedure\Sample\classes\','JavaTrigger.class');<br />
</code></p>
<p><code><br />
//Step 3: Create a Stored Procedure in the database<br />
CREATE OR REPLACE PROCEDURE AUTO_INCREMENT(NEW_ID IN OUT INT) AS LANGUAGE JAVA NAME 'JavaTrigger.autoIncrement(java.sql.Connection, int[])&#8217;;<br />
</code></p>
<p><code><br />
//Step 4:<br />
CREATE OR REPLACE TRIGGER TEST_TABLE_INSERT_TRIG BEFORE INSERT ON TEST_TABLE FOR EACH ROW AUTO_INCREMENT( NEW.COL1);<br />
</code></p>
<p><code><br />
//Working Example:<br />
SQL&gt; INSERT INTO TEST_TABLE( COL2) VALUES ('GREG');<br />
1 row(s) created<br />
SQL&gt; DIR TEST_TABLE;<br />
COL1 | COL2<br />
-----+-----<br />
6340 | GREG<br />
</code></p>
<p>For more documentation on Stored Procedures in Oracle Lite, check out the online documentation <a href="http://download.oracle.com/docs/cd/E12095_01/doc.10302/e12548/cjstproc.htm#OLCLI017">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rekounas.org/2009/10/24/how-to-create-an-auto-increment-field-in-oracle-lite/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Oracle OpenWorld 2009 Live Stream</title>
		<link>http://www.rekounas.org/2009/10/13/oracle-openworld-2009-live-stream/</link>
		<comments>http://www.rekounas.org/2009/10/13/oracle-openworld-2009-live-stream/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 10:12:34 +0000</pubDate>
		<dc:creator>rekounas</dc:creator>
		
		<category><![CDATA[Oracle OpenWorld]]></category>

		<guid isPermaLink="false">http://www.rekounas.org/?p=93</guid>
		<description><![CDATA[I couldn&#8217;t get to San Fransisco this year for OpenWorld&#8230; but I can always watch it via video stream.

]]></description>
			<content:encoded><![CDATA[<p>I couldn&#8217;t get to San Fransisco this year for OpenWorld&#8230; but I can always watch it via video stream.</p>
<p><script src="http://static.livestream.com/scripts/playerv2.js?channel=openworldlive&#038;layout=playerEmbedDefault&#038;backgroundColor=0xffffff&#038;backgroundAlpha=1&#038;backgroundGradientStrength=0&#038;chromeColor=0x000000&#038;headerBarGlossEnabled=false&#038;controlBarGlossEnabled=false&#038;chatInputGlossEnabled=false&#038;uiWhite=true&#038;uiAlpha=0.5&#038;uiSelectedAlpha=0.8&#038;dropShadowEnabled=false&#038;dropShadowHorizontalDistance=10&#038;dropShadowVerticalDistance=10&#038;paddingLeft=0&#038;paddingRight=0&#038;paddingTop=0&#038;paddingBottom=0&#038;cornerRadius=0&#038;backToDirectoryURL=null&#038;bannerURL=null&#038;bannerText=null&#038;bannerWidth=320&#038;bannerHeight=50&#038;showViewers=true&#038;embedEnabled=true&#038;chatEnabled=false&#038;onDemandEnabled=true&#038;programGuideEnabled=false&#038;fullScreenEnabled=true&#038;reportAbuseEnabled=false&#038;gridEnabled=false&#038;initialIsOn=false&#038;initialIsMute=false&#038;initialVolume=10&#038;contentId=null&#038;initThumbUrl=null&#038;playeraspectwidth=16&#038;playeraspectheight=9&#038;mogulusLogoEnabled=true&#038;width=400&#038;height=400&#038;wmode=window" type="text/javascript"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.rekounas.org/2009/10/13/oracle-openworld-2009-live-stream/feed/</wfw:commentRss>
		</item>
		<item>
		<title>What is a Oracle Lite developer made of?</title>
		<link>http://www.rekounas.org/2009/09/21/what-is-a-oracle-lite-developer-made-of/</link>
		<comments>http://www.rekounas.org/2009/09/21/what-is-a-oracle-lite-developer-made-of/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 17:14:03 +0000</pubDate>
		<dc:creator>rekounas</dc:creator>
		
		<category><![CDATA[Oracle Lite]]></category>

		<guid isPermaLink="false">http://www.rekounas.org/?p=91</guid>
		<description><![CDATA[So, you are starting an IT project and there is a need for a disconnected component and you require Oracle Lite for your project.  What do you do?  Most people seem to dump the responsibility on the DBA.  Probably not the best move.  Not because they can&#8217;t handle the technology, but because they are often [...]]]></description>
			<content:encoded><![CDATA[<p>So, you are starting an IT project and there is a need for a disconnected component and you require Oracle Lite for your project.  What do you do?  Most people seem to dump the responsibility on the DBA.  Probably not the best move.  Not because they can&#8217;t handle the technology, but because they are often far too busy on their day-to-day responsibilities to deal with learning Oracle Lite and properly implementing it into your project.  How about the .Net or Java guy/gal?  Maybe, if they have extensive Oracle SQL tuning experience.  As a project lead you head to your recruiting department and you ask for them to find someone with Oracle Lite experience.  Don&#8217;t be surprised they don&#8217;t find a lot of people with Oracle Lite skills or to the level of experience your project may require.  Then, how do you go about interviewing this person and identifying if they are the right candidate.</p>
<p>How do you find the right person.</p>
<ul>
<li>Obviously ask them how many projects they have worked on with Oracle Lite or how many years they have working with the product.  Standard question for any technology.</li>
<li>Ask them the size and scope of the project (users/publications/publication items).</li>
<li>What technologies within Oracle Lite did they use?  Win32, WinCE, OC4J, Webtogo, Symbian, etc.</li>
<li>For the more advanced questions, you could ask them about the polite.ini and the webtogo.ora files and what are their functions.</li>
<li>Asked them if they have used Partition Maps, Shared Maps, Cached Publication Items.  If they have used these, then there is a good chance that they have worked on a system with considerable amounts of data and that they probably have performed query tuning.</li>
<li>Ask them if they have used CONSPERF and what is it&#8217;s function.</li>
<li>If they have used Oracle Application Server (OAS), then ask them if they have set up a farm and to describe the process.  You may want to ask them what is the function of OPMN, but it&#8217;s not as important if they don&#8217;t know.  This question will demonstrate their expertise with OAS (But I think Oracle Lite will be using Weblogic starting 10.3.0.3 release for the server).</li>
</ul>
<p>If you do have an IT project that requires Oracle Lite as your solution, finding a good Oracle Lite resource with experience will be difficult but rewarding.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rekounas.org/2009/09/21/what-is-a-oracle-lite-developer-made-of/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Testing Concurrent Synchronization in Oracle Lite</title>
		<link>http://www.rekounas.org/2009/05/11/90/</link>
		<comments>http://www.rekounas.org/2009/05/11/90/#comments</comments>
		<pubDate>Mon, 11 May 2009 18:03:39 +0000</pubDate>
		<dc:creator>rekounas</dc:creator>
		
		<category><![CDATA[Oracle Lite]]></category>

		<guid isPermaLink="false">http://www.rekounas.org/?p=90</guid>
		<description><![CDATA[So, you are all ready to go. Your application has gone through some final testing and all that is really left is to perform some minor performance tweaks here and there and clean up some bugs. Then someone in the rooms asks a question, &#8220;How will performance be during concurrent synchronizations? How will it affect [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">So, you are all ready to go. Your application has gone through some final testing and all that is really left is to perform some minor performance tweaks here and there and clean up some bugs. Then someone in the rooms asks a question, &#8220;How will performance be during concurrent synchronizations? How will it affect the rest of the database?&#8221; So now you are probably sweating a bit because you really haven&#8217;t thought about it. An individual synchronizing isn&#8217;t too bad, but have you thought about 5, 10, 15, 50? Maybe not. And even if you have thought about it, how do you test this? I have been involved in many releases and this is always a bit of a challenge. You may be thinking of using something like LoadRunner, but this doesn&#8217;t work well. The next thing to do is to grab 10 - 20 devices, install the Mobile Client and rapidly click sync on each device to get the number of concurrent syncs your are testing your system for. Not the sexiest solution in the world, but it works. The other solution I use is a Java/perl solution Oracle development passed along to me a few years ago. You install the software on one machine. You create the users TEST(1&#8230;N) on the server and assign them to the application and set their data subset paraments. You then run a perl script to set up the TEST users on your machine. Finally you just the Java code to simulate the concurrent syncs. This worked very well, but for some reason, all syncs were Complete Refresh. So the test was worst case scenario.</p>
<p>Here is a picture of a test scenario we had set up. We had 10 laptops and they were synchronizing Webtgo-OC4J and Win32. They were all going through the same router and I think 10 out of 10 succeeded.</p>
<p><center><a href="http://www.rekounas.org/wp-content/uploads/2009/05/concurrent.jpg"><img class="alignnone size-medium wp-image-89" title="Concurrent Synchronization Oracle Lite" src="http://www.rekounas.org/wp-content/uploads/2009/05/concurrent-300x225.jpg" alt="10 Laptops performing concurrent synchronization." width="300" height="225" /></a></center></p>
<p>Your third option for testing concurrency is by contacting an Oracle Lite guru <img src='http://www.rekounas.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> He might be able to give you a hand with your performance testing.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rekounas.org/2009/05/11/90/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Patching Oracle Lite in Unix</title>
		<link>http://www.rekounas.org/2009/03/31/patching-oracle-lite-in-unix/</link>
		<comments>http://www.rekounas.org/2009/03/31/patching-oracle-lite-in-unix/#comments</comments>
		<pubDate>Tue, 31 Mar 2009 17:25:50 +0000</pubDate>
		<dc:creator>rekounas</dc:creator>
		
		<category><![CDATA[Oracle Lite]]></category>

		<guid isPermaLink="false">http://www.rekounas.org/?p=87</guid>
		<description><![CDATA[Ran into an issue today that I almost forgot about. It was during patching an Mobile Server on a Unix platform. The issue that I ran into was the following:
1. Stopped the server
2. Installed the patch
3. Tried to log into mobile manager
4. Got the following error:
WTG-10118: Mobile Server is not connected to the Repository
WTG-10117: Please [...]]]></description>
			<content:encoded><![CDATA[<p>Ran into an issue today that I almost forgot about. It was during patching an Mobile Server on a Unix platform. The issue that I ran into was the following:</p>
<p>1. Stopped the server<br />
2. Installed the patch<br />
3. Tried to log into mobile manager<br />
4. Got the following error:<br />
WTG-10118: Mobile Server is not connected to the Repository<br />
WTG-10117: Please contact your system administrator</p>
<p>To find the problem I went to the readme of the patch that stated that the web.xml file might get changed during the install. So, I opened the file and the fix is the following:</p>
<p>Find your web.xml file</p>
<pre>
<code>
&lt;ORACLE_HOME&gt;/mobile/server/admin/repository/webtogo/WEB-INF/web.xml
or
&lt;ORACLE_HOME&gt;/j2ee/mobileserver/applications/mobileserver/webtogo/WEB-INF/web.xml
or
&lt;ORACLE_HOME&gt;/mobile_oc4j/j2ee/mobileserver/applications/mobileserver/webtogo/WEB-INF/web.xml
</code>
</pre>
<p>Modify the line in the file from:</p>
<pre>
<code>
&lt;param-value&gt;%ORACLE_HOME%\mobile\server\bin\webtogo.ora&lt;/param-value&gt;

to

&lt;param-value&gt;/export/home/oramobile/mobile/server/bin/webtogo.ora&lt;/param-value&gt;
</code>
</pre>
<p>The README.TXT tells me to go into my ./patch_storage/6630384/&#8230;.. directory.  But I couldn&#8217;t find it.  So, if you find yourself in the same situation that I was in, the solution has been posted.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rekounas.org/2009/03/31/patching-oracle-lite-in-unix/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Setting up a Mobile Server for size and performance</title>
		<link>http://www.rekounas.org/2008/12/15/setting-up-a-mobile-server-for-size-and-performance/</link>
		<comments>http://www.rekounas.org/2008/12/15/setting-up-a-mobile-server-for-size-and-performance/#comments</comments>
		<pubDate>Tue, 16 Dec 2008 02:11:24 +0000</pubDate>
		<dc:creator>rekounas</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[Oracle Lite]]></category>

		<guid isPermaLink="false">http://www.rekounas.org/?p=85</guid>
		<description><![CDATA[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:
[WEBTOGO]
DISPLAY_CLIENT_DATA_SIZE=NO
ADMIN_JDBC_URL={changed this to use a RAC URL.  Not required in 10.3.0.2 of the product as the installer handles this}
THIN_JDBC_URL={ditto for this URL}
The DISPLAY_CLIENT_DATA_SIZE is [...]]]></description>
			<content:encoded><![CDATA[<p>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.</p>
<p><strong>In the webtogo.ora file:</strong><br />
[WEBTOGO]<br />
DISPLAY_CLIENT_DATA_SIZE=NO<br />
ADMIN_JDBC_URL={changed this to use a RAC URL.  Not required in 10.3.0.2 of the product as the installer handles this}<br />
THIN_JDBC_URL={ditto for this URL}</p>
<p>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.</p>
<p>[CONSOLIDATOR]<br />
RESUME_CLIENT_TIMEOUT=900<br />
MAX_THREADS=8</p>
<p>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.</p>
<p>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.</p>
<p><strong>Over to device configuration for Win32, Webtogo, and OC4J:</strong><br />
[SYNC]<br />
TIMEOUT_MAX=900<br />
DEBUG=1<br />
AUTO_COMMIT_COUNT=3000</p>
<p>[All Databases]<br />
MaxSharedMemSize=256</p>
<p>I am not sure if TIMEOUT_MAX is in 10.3.0.2 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.</p>
<p>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.</p>
<p>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&#8217;t want to set this too low and you don&#8217;t want to set it too high.  I usually play with 1000, 3000, or 5000.</p>
<p>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.</p>
<p><strong>Oracle Application Server configuration:</strong><br />
Not too many things here other than changing ports in httpd.conf and changing the following in opmn.xml<br />
&lt; data id=&#8221;java-options&#8221; value=&#8221;<br />
-server -Djava.security.policy=$ORACLE_HOME/j2ee/mobileserver/config/java2.policy -Djava.awt.headless=true<br />
<strong>-Xms2048M -Xmx2048M</strong>&#8220;/&gt;</p>
<p>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.</p>
<p>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.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rekounas.org/2008/12/15/setting-up-a-mobile-server-for-size-and-performance/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Mentioned in Oracle Magazine Peer-to-Peer</title>
		<link>http://www.rekounas.org/2008/11/05/mentioned-in-oracle-magazine-peer-to-peer/</link>
		<comments>http://www.rekounas.org/2008/11/05/mentioned-in-oracle-magazine-peer-to-peer/#comments</comments>
		<pubDate>Wed, 05 Nov 2008 19:50:47 +0000</pubDate>
		<dc:creator>rekounas</dc:creator>
		
		<category><![CDATA[Oracle]]></category>

		<category><![CDATA[Oracle Lite]]></category>

		<category><![CDATA[Oracle Magazine]]></category>

		<guid isPermaLink="false">http://www.rekounas.org/?p=84</guid>
		<description><![CDATA[If you have picked up your November/December 2008 issue of Oracle Magazine, turn to page 28 and there is a brief interview with me.  Here is the interview if you don&#8217;t have the magazine:
Which new features in Oracle technologies are you currently finding most valuable? Oracle Database Lite’s automatic sync allows high reliability in [...]]]></description>
			<content:encoded><![CDATA[<p>If you have picked up your <a href="http://www.oracle.com/technology/oramag/oracle/08-nov/index.html">November/December 2008 issue of Oracle Magazine</a>, turn to page 28 and there is a brief interview with me.  Here is the interview if you don&#8217;t have the magazine:</p>
<p><strong>Which new features in Oracle technologies are you currently finding most valuable?</strong> Oracle Database Lite’s automatic sync allows high reliability in mobile applications, while at the same time keeping users working instead of interrupting their current applications to retrieve new applications. Prior releases relied on manual synchronization, and for an organization this caused issues because users’ data could be stale if they waited too long between syncs. Now, an organization can set thresholds around data modified, network connectivity, and even low battery power to sync information.</p>
<p><strong>Name one unique use of Oracle products at your company.</strong> We’ve created one of the largest implementations of Oracle Database Lite. We’re synchronizing more than 350 tables, 700 indexes, 60 sequences, and a full-blown OC4J application to field users’ laptop.</p>
<p><strong>What would you like to see Oracle, as a company, do more of?</strong> Oracle has many great technologies. What I find most customers have a hard time with is visualizing the integration of those technologies into their businesses. More in-depth case studies of solutions requiring multiple products would help. </p>
<p><a href="http://www.oracle.com/technology/oramag/oracle/08-nov/o68peer.html">Here</a> is a link to the article.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rekounas.org/2008/11/05/mentioned-in-oracle-magazine-peer-to-peer/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Think NB 2008</title>
		<link>http://www.rekounas.org/2008/10/24/think-nb-2008/</link>
		<comments>http://www.rekounas.org/2008/10/24/think-nb-2008/#comments</comments>
		<pubDate>Fri, 24 Oct 2008 14:08:23 +0000</pubDate>
		<dc:creator>rekounas</dc:creator>
		
		<category><![CDATA[Oracle Lite]]></category>

		<category><![CDATA[Think NB]]></category>

		<guid isPermaLink="false">http://www.rekounas.org/?p=83</guid>
		<description><![CDATA[I will be attending Think NB again this year with OAOT as an exhibitor. I will be stationed at booth #122. 
The event will be at the Saint John Trade and Convention Centre October 29-30.
Visitor schedule is posted here.
If all goes well this week, I will be demoing Oracle Lite on my new Samsung ACE [...]]]></description>
			<content:encoded><![CDATA[<p>I will be attending <a href="http://www.masterpromotions.ca/thinknb.asp">Think NB</a> again this year with <a href="http://www.oaot.com">OAOT</a> as an exhibitor. I will be stationed at booth #122. </p>
<p>The event will be at the Saint John Trade and Convention Centre October 29-30.<br />
Visitor schedule is posted <a href="http://www.masterpromotions.ca/thinknb-schedule.asp?visitor">here</a>.</p>
<p>If all goes well this week, I will be demoing Oracle Lite on my new Samsung ACE SmartPhone.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rekounas.org/2008/10/24/think-nb-2008/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Oracle Lite on a Smartphone</title>
		<link>http://www.rekounas.org/2008/10/12/oracle-lite-on-a-smartphone/</link>
		<comments>http://www.rekounas.org/2008/10/12/oracle-lite-on-a-smartphone/#comments</comments>
		<pubDate>Sun, 12 Oct 2008 10:27:18 +0000</pubDate>
		<dc:creator>rekounas</dc:creator>
		
		<category><![CDATA[Oracle Lite]]></category>

		<category><![CDATA[Oracle Lite Smartphone Samsung ACE]]></category>

		<guid isPermaLink="false">http://www.rekounas.org/?p=81</guid>
		<description><![CDATA[Ever since I started working with Oracle Lite, I have worked with Win32, Webtogo, or OC4J applications. This week, I am picking up a Samsung ACE World Edition Smartphone and I plan on putting some demo and sample applications on the phone to get my feet wet from a different perspective. Working on a small [...]]]></description>
			<content:encoded><![CDATA[<p><img title="Samsung ACE World" src="http://www.rekounas.org/wp-content/uploads/2008/10/66636.jpg" alt="" width="225" height="375" align="left"/>Ever since I started working with Oracle Lite, I have worked with Win32, Webtogo, or OC4J applications. This week, I am picking up a <a href="http://www.bell.ca/shopping/en_CA_NB.Samsung-Ace-World-Edition/66636.details">Samsung ACE World Edition</a> Smartphone and I plan on putting some demo and sample applications on the phone to get my feet wet from a different perspective. Working on a small device is obviously different from a resource rich laptop, so I want to get the feel for working with different constraints. Also, need to freshen up my .Net skills. So, in the end, I will be killing 3 birds with one stone. I will keep my progress posted.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rekounas.org/2008/10/12/oracle-lite-on-a-smartphone/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
