Oracle.lite.sync.Consolidator.PubItemProps = isLogBased ?
Hi All,
I am a little confuse about isLogBased.
Doc said:
isLogBased
If true, log based (automatic) publication item will be created
Does it mean that if isLogBased = true, then Oracle Lite does not use trigger process, but capture data
in redo logs (like streams) ?
Of course this does not work whith Standard Edition main db , only with enterpriseEdition ?
If it is clear for you, thak you for your clarification.
All the best.
Fabrice
Hi all,
I was completely lost.
Setting "isLogBased" to True enables automatic sync for a pub item.
The following example uses the automatic synchronization version of createPublicationItem method, which uses the PubItemProps class to define all publication item definitions, including automatic synchronization, as follows:
PubItemProps pi_props = new PubItemProps();
pi_props.owner = "MASTER"; // owner schema
pi_props.store = STORES[0]; // store
pi_props.refresh_mode = "F"; //default // uses fast refresh
pi_props.select_stmt = // specify select statement for snapshot
"SELECT * FROM "+"MASTER"+"."+STORES[i][0]+ " WHERE C1 =:CLIENTID";
pi_props.cl2log_rec_stmt = "SELECT base.C1 FROM " // client sub-query to
+ "MASTER"+"."+STORES[i][0] + " base," // return unique clientids
+ "MASTER"+".CLG$"+STORES[i][0] + " log"
+ " WHERE base.ID = log.ID";
// Setting "isLogBased" to True enables automatic sync for this pub item.
pi_props.isLogBased = true;
// If doChangeNtf is true, automatic publication item sends notifications
// from server about new/modified records
pi_props.doChangeNtf = true;
cm.createPublicationItem(PUBITEMS[i], pi_props);
cm.addPublicationItem(PUB,PUBITEMS[i],null,null,"S",null,null);
Regards.
Fabrice
Similar Messages
-
Im getting the following error when sync. ???? Cant trace it please help
Sync session exception stack trace:
java.sql.SQLException: ORA-00932: inconsistent datatypes: expected DATE got NUMBER
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:189)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:242)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:554)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1478)
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:888)
at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2077)
at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1987)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2704)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:458)
at oracle.lite.sync.Subscription.execPrepUpdate(Unknown Source)
at oracle.lite.sync.DmlProcessorM.executeInsertUpdate(Unknown Source)
at oracle.lite.sync.DmlProcessorM.executeInsertUpdate(Unknown Source)
at oracle.lite.sync.DmlProcessorDB.reExecuteDml(Unknown Source)
at oracle.lite.sync.DmlProcessorDB.flushIs(Unknown Source)
at oracle.lite.sync.HeliosSession.startSession(Unknown Source)
at oracle.lite.sync.resume.Client$1.run(Unknown Source)
at oracle.lite.sync.resume.ThreadPool$PoolTask.run(Unknown Source)I know the Database Mobile Server (inc. legacy Database Lite) forum doesn't get a lot of traffic but it really is the best place to ask Lite questions. It is an entirely different product from the real database and as such requires specialist knowledge.
At the very least you should cross-post these questions there. I'm not normally a fan of duplicate postings but I make exceptions for these cases.
Good luck, APC -
How to cancel a transaction in Oracle Lite 10g R3
Hi,
I have a publication with 7 publication items (updatables), Server wins in any conclict.
I made some changes in some records of the 7 tables of my oracle lite database.
I synchronize the changes, without any error messages, But I cannot find those changes in the tables in my oracle database (9i).
So, I check in the Mobile Manager, in the Data Synchronization/Repository/Input Queue.
I find the transaction #203 with all the publication items.
I also find an error in the "Error queue", It seems like there was a conclict in one of my publication items. So I choose the option "Take value from server", then the error disapear from the "Error queue". However, the transaction stay in the "Input queue".
I made other changes to the tables in the database lite, and then synchronize. But It seems like nothing happens, there isn´t any other transaction in the "input queue", and I cannot fin all the changes I made in my database (9i).
Can anyone help me????
Regards, SantiagoI found this messagein the MGP History User
Applied Record Counts:
Insert Count = 3
Update Count = 6
Delete Count = 0
Applied PubItems:
TECNICO
SUSCRIPTOR
LISTA_MATERIALES
LIQCLI
VALORAC_ACTIVIDADES_OPE
CARGA_DEMANDADA
DESCSOL
TECNICO
SUSCRIPTOR
LISTA_MATERIALES
LIQCLI
VALORAC_ACTIVIDADES_OPE
CARGA_DEMANDADA
DESCSOL
TECNICO
SUSCRIPTOR
LISTA_MATERIALES
LIQCLI
VALORAC_ACTIVIDADES_OPE
CARGA_DEMANDADA
DESCSOL
Compose Error:
java.lang.Exception: MGP apply_before_compose aborted and compose postponed for SGARCIA as apply will generate sync errors
at oracle.lite.sync.Consolidator$O8Server.fastPush(Unknown Source)
at oracle.lite.sync.MGP$MGPG.run(Unknown Source)
at java.lang.Thread.run(Thread.java:534)
/*********************************************/ -
Definitely I can't make it to work.
I get allways this error : ORA-12537 (TNS Connection closed) with SQL Plus.
I use Login "system", password "system", host "webtogo.world"
I tried also login "system", password nothing; or password "master", or "change_on_install"
When I start webtogo at I get this info :
H:\Ora9i\Mobile\Server\bin>webtogo
log1: Translated JDK:'Cp1252' to IANA: 'WINDOWS-1252'
log1: desktop 1521
And hangs, doesn't go to the command prompt
What's wrong ? I don't understand nothing about Oracle Administration, I'm just a developer, help me
my configuration is this :
My computer IP : 192.168.0.104
My computer name : desktop
Oracle Home : H:\Ora9i
TNSNAMES.ORA
WEBTOGO.WORLD =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(COMMUNITY = tcp)
(PROTOCOL = TCP)
(Host = 192.168.0.104)
(Port = 1521)
(CONNECT_DATA = (SID = WEBTOGO)
LISTENER.ORA
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = desktop)(PORT = 1521))
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = webtogo.world)
(ORACLE_HOME = H:\Ora9i)
(SID_NAME = webtogo)
SQLNET.ORA
NAMES.DEFAULT_DOMAIN = 192.168.0.104
USE_DEDICATED_SERVER = on
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
WEBTOGO.ORA
[WEBTOGO]
USE_SYSTEM_CLASSPATH = YES
MODE = SERVER
PORT = 1521
#IAS_MODE=NO
ORACLE_HOME=H:\Ora9i
BASE_URL=/webtogo
ADMIN_TNS_NAME=WEBTOGO.WORLD
ADMIN_JDBC_URL=jdbc:oracle:oci8:@WEBTOGO.WORLD
APPLET_USE_THIN_JDBC = YES
THIN_JDBC_URL=jdbc:oracle:thin:@::
SITE_OFFLINE_PERIOD=0
CUSTOM_WORKSPACE=no
CUSTOM_DIRECTORY=myworkspace
DEFAULT_PAGE=myfirstpage.html
ROWS_PER_PAGE_IN_ADMIN_TOOL = 25
[EXTERNAL_AUTHENTICATION]
#CLASS=com.acme.SampleAuthenticator
# Web-to-go workspace's font
FONT_NAME=Arial
[FILESYSTEM]
TYPE=OS
ROOT_DIR=H:\Ora9i\mobile\server\repository
#TYPE=O8
#TYPE=OL
#TYPE=OS
# Cache size in MBs
#CACHE_SIZE=10
MAX_CONNECTIONS=4
[DEBUG]
TRACE_ENABLE=Yes
# There are 3 trace levels: basic (1), sql (2), java method (4)
# The TRACE_LEVEL value will be used to do "Bitwise AND" against these
# 3 levels to decide if trace of any particular level should be printed.
# For example, 1 for only basic level, 7 for all levels, 3 for basic and sql
# but not java methods.
TRACE_LEVEL=1
# This is comma seperated list of valid user names. Empty string indicates
# tracing all users, "TRACE_NO_USER" indicates tracing no user.
TRACE_USERS=
# The trace output can be FILE, CONSOLE, or REMOTE.
TRACE_DESTINATION=CONSOLE
# Value to be used if trace destination is FILE.
# The base name for the trace file
TRACE_FILE_NAME=trace.log
# Maximum file size in MB
TRACE_FILE_SIZE=10
# Maximum number of trace file to be used.
TRACE_FILE_POOL_SIZE=5
# Does every user have her own file pool?
TRACE_FILE_PER_USER=No
# Value to be used if trace destination is REMOTE.
# Machine name and port where wsh.exe -m is running. Web-to-go
# will send debug output to that machine.
#TRACE_REMOTE_MACHINE=
TRACE_REMOTE_PORT=2000
[APPLICATIONS]
XMLFILE = ws1.xml
PACK_HELP=H:\Ora9i\mobile\doc\wtg\html\wtgdep.htm
[PUBLIC]
oracle.lite.sync.ConsolidatorServlet=/Consolidator
[CONSOLIDATOR]
# Installer will change these values
SERVER_VERSION=8.1.7
# 8.1.7
# Installer won't change these values
MAX_THREADS=3
JDBC_DRIVER=oracle.jdbc.driver.OracleDriver
CREATE_USER_OPTIONS_O8I=PROFILE CONSOLIDATOR_CLIENT_P DEFAULT TABLESPACE USERS QUOTA UNLIMITED ON USERS TEMPORARY TABLESPACE INDX QUOTA UNLIMITED ON INDX
CREATE_USER_OPTIONS_O8=PROFILE CONSOLIDATOR_CLIENT_P DEFAULT TABLESPACE USR QUOTA UNLIMITED ON USR
TEMPORARY TABLESPACE TEMPORARY QUOTA UNLIMITED ON TEMPORARY
TEMP=H:\Ora9i\mobile\server\bin
WTG_PROXY_PORT=80
TRACE_ENABLE=Yes
# There are 3 trace levels: basic (1), sql (2), java method (4)
# The TRACE_LEVEL value will be used to do "Bitwise AND" against these
# 3 levels to decide if trace of any particular level should be printed.
# For example, 1 for only basic level, 7 for all levels, 3 for basic and sql
# but not java methods.
TRACE_LEVEL=1
# This is comma seperated list of valid user names. Empty string indicates
# tracing all users, "TRACE_NO_USER" indicates tracing no user.
TRACE_USERS=
# The trace output can be FILE, CONSOLE. Note REMOTE is not valid.
TRACE_DESTINATION=CONSOLE
# Value to be used if trace destination is FILE.
# The base name for the trace file
TRACE_FILE_NAME=mgptrace.log
# Maximum file size in MB
TRACE_FILE_SIZE=10
# Maximum number of trace file to be used.
TRACE_FILE_POOL_SIZE=5
# Does every user have her own file pool?
TRACE_FILE_PER_USER=NoHi
There could be two reasons.
1) You may be having classesXX.zip where XX can be 111 or 12 in the classpath.
Remove this from your system classpath
2) Check the symjit.dll and rename it to some other name in your system. This file belongs to XP and has some problems in running Java programs in P4.
regards
Yugandhar -
Starting with Oracle Lite, help needed
Hi everybody,
I have a desktop application written in Java which connects to a Oracle 10g database and I want to use the same application on ultramobile devices under WinXP. These devices will use the application offline and then will synchronize with the DB.
As far as I know, I need Oracle Database Lite on mobile devices for getting database snapshots and track offline changes. I want to know if I need to install the Mobile Server for managing data synchronization between mobile devices and DB.
Do I need to develop a web-app for managing data synchronization or there is a easier way to sinchronize in this case using only the desktop application?
Thanks in advance for your help and sorry for my poor English.You want to look at Win32 applications. There are APIs in multiple programming languages that utilize the Oracle Lite Sync API to sync, or you can just use the mSync tool.
-
Data not arriving in oracle lite using qbased syncing
Hi,
I am currently having difficulty adding new publication Items to our current queue based syncing in Oracle lite.
I have set up the Queue using : createQueuePublicationItem
I have set up the Index using : createPublicationItemIndex
I have added the publication item using : addPublicationItem(
I have added the user to the new PI using the screen. This I think should be everything. Unfortunately what happens is that the data gets as far as the out queue tables ie mobileadmin.ctm$ppec_pi for my new PI of ppec_pi. But when I go onto the olite database on the client device, the new table is created, but there is no data.
Is there something I am missing,
Thanks,
Justin.I did redefine the table, so all columns that are part of PK index and used in my SQL statement are data type NUMBER.
My unique index is (dc_nbr, company_nbr, offering_group_id, offering_id), the same columns are used in my WHERE clause.
Still Oracle Lite always builds the large temporary table before it goes to this temp table and sequentially reads and returns first 19 records.
Trace File:
Tid=060c, Statement Text:select dc_nbr, company_nbr, offering_group_id, offering_id
from uoc.ship_dc_offering
where dc_nbr = 6
and company_nbr = 1
and offering_group_id = '00001'
and offering_id > '100129'
and rownum < 20
Table Order: UOCDB.UOC.SHIP_DC_OFFERING
Tid=060c, Compilation Time: 0 (mil. sec.)
Temporary Table Created: POL_WS_1_1
Table Name: UOC.SHIP_DC_OFFERING
Access Method:
Term[0], Index No: 903266475, IndexName: UOC.POL_SYS_CONS20030
Table Name: POL_WS_1_1
Access Method: Sequential
Tid=060c, First Fetch Time: 2323 (mil. sec.) -
Views in Oracle Lite on Win32 Client
Hi,
I've created an Oracle Forms application to work with Oracle Lite on the Win32 Client. When creating the application using wtgpack on the Mobile Server, I successfully created snapshots for the 7 tables in the database. After synchronization (msync), all 7 tables are created in the client's Lite database and all data are available. The Oracle Forms application works perfectly.
BUT: I have to add a view now, a very simple one, joining 2 of the 7 tables. I created this view in the Server database, and tried to use wtgpack to force the view creation on the client's Lite database. When selecting Web-to-Go in wtgpack's "Available Platform" window, a "DDL" tab appears. But my application isn't Web-to-Go platform, but Win32 only. The "DLL" tab is not available when selecting Win32 as platform. How can I force wtgpack to add my view to the application?
I tried to add the view definition to the "dlls.sql" file in the \repository\app\sql directory .. but the client doesn't get it.
I tried to create a snapshot in wtgpack (because when using "import" it only shows tables, not views) and type the view definition there .. but the client doesn't get it too.
Any ideas how the view can be created on the client's Lite database?
Thanks in advance!
DirkDirk
You dont need to do anything on the lite database.
Here are the steps for pulling the data from enterprise database.
1. Install the client -win32 sdk on the client machine. This is used to access lite database because it installs msql, lite drivers etc.
2. Create snapshots using wtgpack. You can create all the Enterprise database snapshots, views, sequences etc.
3. Generate the Jar file using wtgpack
4. Publish the jar file in the mobile server.
5. Create some users and give access to this application.
6. Access the server from ur machine: http://[mobileserveripaddress]/setup
7. Download the Mobile Client for Web-to-Go
8. Run the setup.exe
9. Enter using the username, password given to access this application.
10. Click sync on the menu
It automatically creates the database and pulls all the data.
You dont need to do anything.
Access the database from msql like this:
msql system/[password]@polite:[urdatabase]
or
msql system/[password]@polite:[DSN]
DSN gets created automatically. check ur ODBC settings.(enter odbcad32 on ur command prompt to see these settings)
Refer the documentation..sometimes its hazy but its easy once we do it...
happy weekend....
Yugandhar -
I looks to me like Oracle Lite doesn't support the UTF8 character set for storing data. Is this correct?
I have an Oracle 8.1.7 database using UTF8 to store English, Thai, Chinese and Philippino data, and I want to synchronise that with Oracle Lite on Windows 2000 clients. The sync seems to work ok, but any non-english characters are lost in a characterset conversion (display as "?").
Regards
SteveI'm a bit confused by your reply. Can Oracle Lite store data in a unicode characterset such as UTF8? It looks to me like the "UTF-8 support" is limited to the drivers, so that it can load and extract utf-8 data, but not store it. From section 2.2.1 of the release notes:
"Oracle Lite Database is NOT a NLS component. In order to reduce the kernel size, it is built for each language which supports native character sets for Windows. Which means, each language has each kernel. Here are the character sets supported by this release:
- Chinese: MS936 CodePage (Simplified Chinese GBK, ZHS)
- Taiwanese: MS950 CodePage (Traditional Chinese BIG5, ZHT)
- Japanese: MS932 CodePage (Japanese Shift-JIS, JA)
- Korean: MS949 CodePage (Korean, Ko)
The database kernel for each language in this list only supports its corresponding character set. Other multibyte character sets are not supported."
Also the documentation on the DBCharEncoding parameter you mention suggests that it only affects the UTF translation for java programs. Section A.2.3:
"... Specifies the UTF translation performed by Oracle Lite. If set to NATIVE, no UTF translation is performed. If set to UTF8, UTF translation is performed. If this parameter is not specified, the default is UTF8. This applies to Java programs only."
I've tried playing with these parameters, as well as changing the NLS_LANG parameter on the client, and for the mobile server, for the Oracle Lite home, all to no avail. I'm still losing the non-english data during synchronisation and it does look like it's being lost in a character set conversion rather than just being garbled, as each Thai characters is being replaced by the correct number of "?"s. As an example the Thai string "บริษัท บราเดอร์ คอมเมอร์เชี่ยล (ประเทศไทย) จำกัด" on the 8.1.7 database sever appears as "?????? ???????? ?????????????? (?????????) ?????" on the oracle lite database.
Am I missing something here? If I can get this data syncronising correctly then Oracle Lite looks like it will support all our requirments so any assistance would be greatly appreciated. (Should I post this to the globilization forum or does that focus only on Oracle's enterprise editions?)
BTW, thanks for the info on the sorting. Obviously the characterset issue is more a fundamental problem at this stage, but if we can fix this then it's good to know about the sorting abilities. -
Oracle Lite 4.01 cannot work??
I've installed Oracle lite 4.0.1 with JDK 1.1.8,but it seems cannot work.
When i connect to my consolidator from my consolitor admin,it get conencted my my oracle 8i but with
oca -30021 :error preparing/executing sql statement
pol -8035:no such attribute or method
Can somebody tell me y??
Please help.You require olite40.jar
Here is a page on how to connect Jdeveloper to Oracle Lite:
http://www.rekounas.org/olite/2007/02/01/how-to-setup-jdeveloper-to-connect-oracle-lite/ -
On JDBC statement, there is the method 'cancel' to instruct the database to cancel an executing statement. This works fine on Oracle server database, but not on Oracle lite database. The method call 'cancel' just blocks and the running statement is never interrupted.
The example I tried is very simple. There is a thread started which executes a long running statement. I noticed, that when moving the cursor forward by calling rs.next(), it just blocks. That would be ok, if the statement could be canceled from within the main thread by stmt.cancel. But this call blocks as well with no implact on the running statement. Why is that? Do I miss something or is it not possible to cancel a long running statements in Oracle Lite?
In the following my code snipped:
public class CancelStatement {
private static final String PATH_DB = "XX";
private static final String PATH_LIB = "XX";
private static final String CON_STRING = "jdbc:polite:whatever;DataDirectory=" + PATH_DB + ";Database=XX;IsolationLevel=Read Committed;Autocommit=Off;CursorType=Forward Only";
private static final String USER = "XX";
private static final String PASSWORD = "XX";
public static void main(String args[]) throws Exception {
System.setProperty("java.library.path", PATH_LIB);
Class.forName("oracle.lite.poljdbc.POLJDBCDriver");
Connection con = DriverManager.getConnection(CON_STRING, USER, PASSWORD);
Statement stmt = con.createStatement();
Thread thread = new Thread(new LongStatementRunnable(con, stmt));
thread.start();
Thread.sleep(3000);
// stop long running statement
System.out.println("cancel long running statement");
stmt.cancel(); // XXX does not work, as call is blocked until out of memory
System.out.println("statement canceled");
private static class LongStatementRunnable implements Runnable {
private Connection con;
private Statement stmt;
public LongStatementRunnable(Connection con, Statement stmt) {
this.con = con;
this.stmt = stmt;
@Override
public void run() {
try {
System.out.println("start long running statement...");
// execute long running statement
ResultSet rs = stmt.executeQuery("SELECT * FROM PERSON P1, PERSON P2");
while (rs.next()) { // here the execution gets blocked
System.out.println("row"); // is never entered
rs.close();
stmt.close();
con.close();
System.out.println("long running statement finished...");
} catch (Exception e) {
e.printStackTrace();
}I would be very glad if you could help me.
Thanks a lot
Daniel
Edited by: 861793 on 26.05.2011 14:29Unfortunately Oracle Lite doesn't have this option. You can call your statement from a second thread as you have done, but you won't be able to kill or cancel this operation. The only way to get fix this is by rebooting. You can use process explorer to find the dll process that is executing the SQL, but the tables will be locked and sync would be locked as well until the process is finished running in shared memory.
-
Help: Oracle lite 10.3.0.1.0 and symbian 9 s60
Greetings,
I installed the oracle litle server, I have a client installed windows 32, and synchronizes works, the problem is when I want to install a client for symbian,
first how to enable the client for Oracle Lite Symbian OS v7 and OS v7/UIQ2.1 in mobile server, to make install from the client gives me an internal error (http://serverlite:8080/webtogo/admin/console/setup/),
download the patch from the metalink and downloads from oracle downloads area (the same, Oracle Database Lite 10g Release 2 (10.2.0.1.8) Mobile Client for Symbian 9 ), I installed olite_core.sis Successfully
and there is where I do not run in phone nokiea E61, and install msync other utilities on the phone nokia E61, but is not doing as synchronization
the question is:
-exist patch for oracle lite 10.3.0.1.0 and symbian 9 s60
-how to enable client for symbian 9 s60 in oracle lite server 10.3.0.1.0
-how to sync from client nokia E61i, with msync and others tool in the oracle lite server
-where install olite_epoc.zip (in the phone or the IDE developer and SDK nokia)
my plattform:
server: Windows XP and Oracle lite 10.3.0.1.0 Server
Client1: windows xp client windows 32
Clientn: Phone Nokia E61i with symbian 9 s60
Roy Ayala Galvis
java developer - mobile developerHi Roy,
For symbian 9 you have downloaded the correct binaries,there is no other patch for symbian.You should be able to sync symbian client database with 10.3.0.1 server.
Make sure that server is in the public network otherwise GPRS based synchronize does not work.
Use the example application user as s11u1 to get the syn examples working with mobile server.
Synchronization from E61i will also work , but dialogues messages in the UI will not displayed properly
Olite_epoc.zip should be installed in IDE/SDK, not in the phone .
Please read the documents for symbian in the meta-link.
If you have any question or doubts, please contact us (oracle lite team)
Arjun kumar
email id - [email protected] -
Oracle lite mobile cliet setup
hi
i have installed java 1.5 update 15 in windows xp service pack 2 system. Then installed Fresh client set up and data download of oracle lite 10g R3,after installing i got a shortcut in my deskstop of web-to-go.This web-to-go is not opening and showing an error "cannot display the content".
but i went to E:\mobileclient\bin in command prompt and typed "webtogo -d"... now it works but when i close the command prompt again my we-to-go is not working...then i started the service od webtogo. now it is working fine. what does the "webtogo -d" command is doing??? plz anyone tell me.....
Thanks in advance
Edited by: 793097 on Sep 8, 2010 12:50 AMcurrently only the client 5.0.2.10 database runs on Linux Advanced Server 3.0, but not sync tools. What runs on Lunix is the Mobile Server. In future releases the full Lite stack will run on Lunix.
-
Jsf application with oracle lite webtogo
hello...
i have developed an application using jsf-adf bc technology in jdeveloper and then deployed it on mobile server.During development connected it to a oracle database .Before deployment changed the database connection to oracle lite using jdbc:polite:webtogo in application module configurations.But this application when opened in oracle lite client OC4J is not showing up.Please tell me how the connection has to be made to oracle lite database before deployment in jdeveloper so that the application works on the oracle lite OC4J client.Could u please tell me where to give the code u have mentioned.I have developed using jsf adf/bc and before deployment changed the application module configurations to oracle lite database connections.After i synced,i have got the application to the client.when i click on the link,Its giving me the following errors:
500 Internal Server Error
JBO-30003: The application pool (model.AppModuleLocal) failed to checkout an application module due to the following exception:oracle.jbo.JboException: JBO-29000: Unexpected exception caught: oracle.jbo.JboException, msg=JBO-29000: Unexpected exception caught: oracle.jbo.JboException, msg=JBO-29000: Unexpected exception caught: oracle.jbo.DMLException, msg=JBO-26061: Error while opening JDBC connection. at oracle.jbo.common.ampool.ApplicationPoolImpl.doCheckout(ApplicationPoolImpl.java:1954) at oracle.jbo.common.ampool.ApplicationPoolImpl.useApplicationModule(ApplicationPoolImpl.java:2756) at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:426) at oracle.jbo.http.HttpSessionCookieImpl.useApplicationModule(HttpSessionCookieImpl.java:258) at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:397) at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:392) at oracle.adf.model.bc4j.DCJboDataControl.rebuildApplicationModule(DCJboDataControl.java:1550) at oracle.adf.model.bc4j.DCJboDataControl.beginRequest(DCJboDataControl.java:1408) at oracle.adf.model.binding.DCDataControlReference.getDataControl(DCDataControlReference.java:99) at oracle.adf.model.BindingContext.get(BindingContext.java:465) at oracle.adf.model.binding.DCUtil.findSpelObject(DCUtil.java:280) at oracle.adf.model.binding.DCUtil.findSpelObject(DCUtil.java:248) at oracle.adf.model.binding.DCUtil.findContextObject(DCUtil.java:383) at oracle.adf.model.binding.DCIteratorBinding.<init>(DCIteratorBinding.java:127) at oracle.jbo.uicli.binding.JUIteratorBinding.<init>(JUIteratorBinding.java:60) at oracle.jbo.uicli.binding.JUIteratorDef.createIterBinding(JUIteratorDef.java:87) at oracle.jbo.uicli.binding.JUIteratorDef.createIterBinding(JUIteratorDef.java:51) at oracle.adf.model.binding.DCIteratorBindingDef.createExecutableBinding(DCIteratorBindingDef.java:277) at oracle.adf.model.binding.DCBindingContainerDef.createExecutables(DCBindingContainerDef.java:296) at oracle.adf.model.binding.DCBindingContainerDef.createBindingContainer(DCBindingContainerDef.java:425) at oracle.adf.model.binding.DCBindingContainerReference.createBindingContainer(DCBindingContainerReference.java:54) at oracle.adf.model.binding.DCBindingContainerReference.getBindingContainer(DCBindingContainerReference.java:44) at oracle.adf.model.BindingContext.get(BindingContext.java:491) at oracle.adf.model.BindingContext.findBindingContainer(BindingContext.java:327) at oracle.adf.model.BindingContext.findBindingContainerByPath(BindingContext.java:641) at oracle.adf.model.servlet.ADFBindingFilter.isPageViewable(ADFBindingFilter.java:532) at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:301) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:17) at oracle.lite.web.CheckSessionFilter.doFilter(Unknown Source) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:627) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:376) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:870) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:451) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:218) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:119) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:112) at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303) at java.lang.Thread.run(Unknown Source) -
Conflicts resolution methods in Oracle Lite
Can anyone please provide the answers of the following questions?
1_What Methods are used for Conflict detection and resolution for concurrent updates by multiple clients in Oracle lite databases?
2_ Is there any method that extract semantic relation from the concurrent update transactions and create a global update schedule?
3_ Does oracle lite use conflict avoidance mechanism?
4_ What replication method is used by Oracle Lite Database?In terms of conflict resolution with oracle lite, which end do you mean? conflict resolution in the client database (ie: oracle lite) or on the server side when processing client uploads (this is just a standard oracle database), also not sure what you are trying to achieve
*1_What Methods are used for Conflict detection and resolution for concurrent updates by multiple clients in Oracle lite databases?*
I assume in the following that you are talking about dealing with uploads
Depending on how the publication items are defined, the process is quite different.
a) fast refresh publication items
When the client synchronises, the upload data is uploaded as a packed binary file which is then unpacked and inserted into in queue tables in the mobileadmin repsitory (table names begin CFM$ followed by the publication item name). This is the only action that happens during the actual sync process.
A second and independent process, not linked to the actual synchronisation - the MGP process, runs on the mobile server, and this has three phases - apply, process logs and compose that run one after the other. You can set the MGP to only do the apply phase, or all three.
during the apply phase the data in the in queue tables for a particular user/transaction will be applied to the server database. Normally the MGP process is set to have three threads (this can be changed, but three is the default), and therefore three client uploads will be processed in parallel, but each of these threads is independant of the others and therefore should be seen as seperate transactions.
It should be noted that even if you have 50 or 100 users synchronising concurrently, only three upload sets will be processed at any one time, and almost certainly a period of time after the synchronisation has completed (may be many hours depending on the MGP cycle time)
As each of the apply threads is a seperate transaction, there is no concept of concurrency built in, and the only conflict resolution by default is based on the server wins/client wins setting of the publication item. where multiple users are updating the the same server record with 'client wins', the first user will update the data, and then the next user will update the data (just a repeat of the previous one). NOTE also that in the case of an update, ALL columns in the record are updated, there is no column level update.
There are customisation options available to provide finer grained control over the apply process, look at the PLSQL callback packages registered against each publication item for beforeapply, afterapply, beforetranapply and aftertranapply, Apply DML procedures against the publication items and also the CUSTOMIZE package at the MGP level
b) complete refresh publication items
where the publication as a whole has a mixture of fast and complete refresh publication items, these normally work in the same way as the fast refresh described above. Where however you just have complete refresh items the data MAY be written directly to the server table on upload
c) queue based publication items
These work in realtime, rather than with a delay for the MGP process to pick up the data.
When the user synchronises, the uploaded data is is written to the in queue tables in the same way, but when this is completed, a package (defined as part of the publication definition) is called, and the procedure upload_complete is run passing in the user and transaction identifiers. This package needs to be hand crafted, but you have full control over what and how all of the uploaded data is processed, but again this is a single transaction for that user. If you want to look at other sessions running, you need to find a way to implement this.
*2_ Is there any method that extract semantic relation from the concurrent update transactions and create a global update schedule?*
As noted above, the uploads may be processed in parallel, but they are seperate transactions, so no built ins
*3_ Does oracle lite use conflict avoidance mechanism?*
Only the basic oracle stuff, unless you use the customisation options to write your own
*4_ What replication method is used by Oracle Lite Database?*
The different types of publication items select data from the server database for download in different ways
a) fast refresh
change logging tables and triggers are created in the server database. These are scanned during the MGP process logs phase to determine what changes have happened since the last MGP compose, and what publication items they affect. The MGP compose then runs and this uses the same three threads to process the users in alphabetical order using the change keys to populate data in out queue tables (prefixed CMP$) in the repository. These have the PK values for the data, plus a transaction types (insert/update/delete). All the MGP process does is populate these out queue tables.
When the user synchronises, the data in the out queue tables is used as a key list to extract the data from the actual server tables into a packed binary file, and this is sent to the client.
b) complete refresh
there is no pre-preparation in this case, the data is streamed directly from the server database into the packed binary download file
c) queue based items
in real time when the user is synchronising after the apply has been done by the uploade_complete procedure, a second procedure download_init is called. Within this you have to code the data extract, and MUST populate tables (you also need to create them) CTM$<publication item name> these are effectively out queue tables, but contain all of the data, not just the PK values. At the end of the procedure, the data is streamed from these into the binary file for download.
Depending on the definition of your apublication, you could have one or more of the above types (VERY bad idea to mix queue based and fast refresh unless you are very sure about what you are doing) and therefore there may be a mix of different actions happening at different times
In conclusion i would say that try and send seperate data to clients so that they do not interfere with each other, and for inserts use uniqueue keys or sequences. If you MUST send the same data to different clients for update, then the queue based approach provides the best control, but as it is real time is not as scalable for large data sets. -
Is it possible use Oracle XE as back-end Oracle database for Oracle Lite clients?
And how about java support?Technically it would depend on what dependencies the sync server that Oracle Lite uses. I believe that it has java dependencies, so probably not. I will check with the Oracle Lite developers.
From a license point of view, we will have to decide. Given that we don't see XE as suitable for a master in a replication environment, I doubt that we will see it as suitable for the equivalent functionality in an Oracle Lite environment
Maybe you are looking for
-
Hi, Version : 10.1.3.4 Scenario : Extracting data from Oracle apps using DBAdapter and insert the same to a 3rd party application I am tring to use XMLtype.create function in a stored procedure to get the XML.The out parameter for the procedure is XM
-
Synchronous start event for a BPM process??
Hi, If I trigger a BPM Process from say a BSP Application(Shld be able to do this as all I need is a Service Interface (Start Event) related to the BPM), If for some reason the process fails to start -- Is there a way of having a response that would
-
I am trying to change my primary email for my apple id - when I change it the error reads, this is your rescue email. How do I change my rescue email so that I can then change my primary id ?
-
Lumia 800 Cannot Download a single App from Market...
Hello, I've just bought a Lumia 800 on July 20, 2012 from a retailer in the Philippines and am using it in the same. I downloaded Zune for Windows 7 on my dual boot mac. I downloaded all updates till Zune said there was no more available on the Windo
-
When trying to play my music my phone wont stay on one song
I went to play my music and when i clicked on one of the songs it was switching constantly to the other songs in my library. It wouldn't stop on any of the songs or play any of them. I layed it down and tried playing and took off shuffle and the same