JBO-28020
The JBO-28020 error is thrown when I try to insert 10.000 rows in a ViewObject. The code is:
do{
ViewObject inserir = am.findViewObject(DISPONIVEL);
Row inserirRow = inserir.createRow();
inserirRow.setAttribute(CODIGO_TABELA,cdTabela);
inserirRow.setAttribute(ID_DISPONIVEL,new Number(i));
inserir.insertRow(inserirRow);
quantidade++;
} while (quantidade < 10000);
Are there anything wrong?
Thanks
Rafael
I got the exception, but the error is not my, I do not have any date fields. I only have a hard processing over my entity objects. The exception with the before lines is here:
[14199] Getting a connection for internal use...
[14200] Creating internal connection...
[14201] Oracle SQLBuilder: Registered driver: oracle.jdbc.driver.OracleDriver
[14202] JBO-28020: Passivation error on collection DisponivelVO, collection id 5, persistent id 46
[14203] *** Stack trace for detail exception ***
[14204] java.lang.ClassCastException: java.sql.Date
boolean oracle.jbo.pcoll.OraclePersistManager.holdTableName(java.lang.String, boolean)
OraclePersistManager.java:1096
void oracle.jbo.pcoll.PCollManager.resolveName()
PCollManager.java:324
void oracle.jbo.pcoll.OraclePersistManager.createControlTable()
OraclePersistManager.java:268
void oracle.jbo.pcoll.OraclePersistManager.createTable()
OraclePersistManager.java:672
void oracle.jbo.pcoll.OraclePersistManager.insert(long, long, int, oracle.jbo.pcoll.PCollKeyInfo[], byte[])
OraclePersistManager.java:1538
boolean oracle.jbo.pcoll.PCollNode.passivateElem(oracle.jbo.pcoll.PCollPersistable, oracle.jbo.pcoll.PCollNode, oracle.jbo.pcoll.PCollection, long)
PCollNode.java:543
boolean oracle.jbo.pcoll.PCollNode.passivate()
PCollNode.java:658
boolean oracle.jbo.pcoll.PCollection.passivateLRULeafNode()
PCollection.java:351
void oracle.jbo.pcoll.PCollection.checkActiveLeafLimit()
PCollection.java:404
void oracle.jbo.pcoll.PCollection.nodeRecentlyUsed(oracle.jbo.pcoll.PCollNode)
PCollection.java:252
void oracle.jbo.pcoll.PCollNode.<init>(oracle.jbo.pcoll.PCollection, oracle.jbo.pcoll.PCollNode, boolean)
PCollNode.java:74
oracle.jbo.pcoll.PCollNode oracle.jbo.pcoll.PCollNode.checkForSplit()
PCollNode.java:1554
void oracle.jbo.pcoll.PCollNode.insertObjectAt(oracle.jbo.pcoll.PCollPersistable, long)
PCollNode.java:1779
void oracle.jbo.pcoll.PCollNode.insertObjectAt(oracle.jbo.pcoll.PCollPersistable, long)
PCollNode.java:1759
void oracle.jbo.pcoll.PCollection.insertElementAt(oracle.jbo.pcoll.PCollPersistable, long)
PCollection.java:809
void oracle.jbo.server.QueryCollection.add(int, java.lang.Object, boolean, boolean)
QueryCollection.java:990
oracle.jbo.Row oracle.jbo.server.ViewRowSetImpl.insertRowAtInternal(int, oracle.jbo.Row, boolean)
ViewRowSetImpl.java:1266
int oracle.jbo.server.ViewRowSetImpl.insertViewRowAt(int, oracle.jbo.server.ViewRowImpl)
ViewRowSetImpl.java:1225
void oracle.jbo.server.ViewRowSetIteratorImpl.insertRow(oracle.jbo.Row)
ViewRowSetIteratorImpl.java:1872
void oracle.jbo.server.ViewRowSetImpl.insertRow(oracle.jbo.Row)
ViewRowSetImpl.java:1877
void oracle.jbo.server.ViewObjectImpl.insertRow(oracle.jbo.Row)
ViewObjectImpl.java:5158
void com.parceria.comum.web.Tabela.gerar(oracle.jbo.ApplicationModule, oracle.jbo.ApplicationModule, oracle.jbo.domain.Number, java.lang.String, oracle.jbo.domain.Number)
Tabela.java:92
oracle.cabo.servlet.event.EventResult com.parceria.comum.web.Tabela.handleGerar(oracle.cabo.servlet.BajaContext, oracle.cabo.servlet.Page, oracle.cabo.servlet.event.PageEvent)
Tabela.java:56
java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[])
native code
oracle.cabo.servlet.event.EventResult oracle.cabo.servlet.event.MethodEventHandler.handleEvent(oracle.cabo.servlet.BajaContext, oracle.cabo.servlet.Page, oracle.cabo.servlet.event.PageEvent)
oracle.cabo.servlet.event.EventResult oracle.cabo.data.jbo.servlet.event.ChainingEventHandler.handleEventImpl(oracle.cabo.servlet.BajaContext, oracle.cabo.servlet.Page, oracle.cabo.servlet.event.PageEvent)
oracle.cabo.servlet.event.EventResult oracle.cabo.data.jbo.servlet.event.FindRowSetIteratorEventHandler.handleEventImpl(oracle.cabo.servlet.BajaContext, oracle.cabo.servlet.Page, oracle.cabo.servlet.event.PageEvent)
oracle.cabo.servlet.event.EventResult oracle.cabo.data.jbo.servlet.event.BaseEventHandler.handleEvent(oracle.cabo.servlet.BajaContext, oracle.cabo.servlet.Page, oracle.cabo.servlet.event.PageEvent)
oracle.cabo.servlet.event.EventResult oracle.cabo.data.jbo.servlet.event.ChainingEventHandler.handleEventImpl(oracle.cabo.servlet.BajaContext, oracle.cabo.servlet.Page, oracle.cabo.servlet.event.PageEvent)
oracle.cabo.servlet.event.EventResult oracle.cabo.data.jbo.servlet.event.FindRowSetEventHandler.handleEventImpl(oracle.cabo.servlet.BajaContext, oracle.cabo.servlet.Page, oracle.cabo.servlet.event.PageEvent)
oracle.cabo.servlet.event.EventResult oracle.cabo.data.jbo.servlet.event.BaseEventHandler.handleEvent(oracle.cabo.servlet.BajaContext, oracle.cabo.servlet.Page, oracle.cabo.servlet.event.PageEvent)
oracle.cabo.servlet.event.EventResult oracle.cabo.data.jbo.servlet.event.ChainingEventHandler.handleEventImpl(oracle.cabo.servlet.BajaContext, oracle.cabo.servlet.Page, oracle.cabo.servlet.event.PageEvent)
oracle.cabo.servlet.event.EventResult oracle.cabo.data.jbo.servlet.event.FindViewObjectEventHandler.handleEventImpl(oracle.cabo.servlet.BajaContext, oracle.cabo.servlet.Page, oracle.cabo.servlet.event.PageEvent)
oracle.cabo.servlet.event.EventResult oracle.cabo.data.jbo.servlet.event.BaseEventHandler.handleEvent(oracle.cabo.servlet.BajaContext, oracle.cabo.servlet.Page, oracle.cabo.servlet.event.PageEvent)
oracle.cabo.servlet.event.EventResult oracle.cabo.data.jbo.servlet.event.ChainingEventHandler.handleEventImpl(oracle.cabo.servlet.BajaContext, oracle.cabo.servlet.Page, oracle.cabo.servlet.event.PageEvent)
oracle.cabo.servlet.event.EventResult oracle.cabo.data.jbo.servlet.event.FindRootAppModuleEventHandler.handleEventImpl(oracle.cabo.servlet.BajaContext, oracle.cabo.servlet.Page, oracle.cabo.servlet.event.PageEvent)
oracle.cabo.servlet.event.EventResult oracle.cabo.data.jbo.servlet.event.BaseEventHandler.handleEvent(oracle.cabo.servlet.BajaContext, oracle.cabo.servlet.Page, oracle.cabo.servlet.event.PageEvent)
oracle.cabo.servlet.event.EventResult oracle.cabo.servlet.event.TableEventHandler.handleEvent(oracle.cabo.servlet.BajaContext, oracle.cabo.servlet.Page, oracle.cabo.servlet.event.PageEvent)
oracle.cabo.servlet.event.EventResult oracle.cabo.servlet.event.TableEventHandler.handleEvent(oracle.cabo.servlet.BajaContext, oracle.cabo.servlet.Page, oracle.cabo.servlet.event.PageEvent)
oracle.cabo.servlet.Page oracle.cabo.servlet.event.BasePageFlowEngine.handleRequest(oracle.cabo.servlet.BajaContext, oracle.cabo.servlet.Page, oracle.cabo.servlet.event.PageEvent, oracle.cabo.servlet.event.EventHandler)
oracle.cabo.servlet.Page oracle.cabo.servlet.AbstractPageBroker.handleRequest(oracle.cabo.servlet.BajaContext, oracle.cabo.servlet.Page, oracle.cabo.servlet.event.PageEvent)
oracle.cabo.servlet.Page oracle.cabo.servlet.ui.BaseUIPageBroker.handleRequest(oracle.cabo.servlet.BajaContext, oracle.cabo.servlet.Page, oracle.cabo.servlet.event.PageEvent)
oracle.cabo.servlet.Page oracle.cabo.servlet.PageBrokerHandler.handleRequest(oracle.cabo.servlet.BajaContext)
void oracle.cabo.servlet.UIXServlet.doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
void oracle.cabo.servlet.UIXServlet.doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
void javax.servlet.http.HttpServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
HttpServlet.java:760
void javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
HttpServlet.java:853
void com.evermind.server.http.ResourceFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
ResourceFilterChain.java:65
void com.parceria.menu.web.LoginFiltro.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)
LoginFiltro.java:41
void com.evermind.server.http.EvermindFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
EvermindFilterChain.java:16
void com.parceria.menu.web.EmpresaFiltro.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)
EmpresaFiltro.java:38
void com.evermind.server.http.ServletRequestDispatcher.invoke(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
ServletRequestDispatcher.java:556
void com.evermind.server.http.ServletRequestDispatcher.forwardInternal(javax.servlet.ServletRequest, javax.servlet.http.HttpServletResponse)
ServletRequestDispatcher.java:306
boolean com.evermind.server.http.HttpRequestHandler.processRequest(com.evermind.server.ApplicationServerThread, com.evermind.server.http.EvermindHttpServletRequest, com.evermind.server.http.EvermindHttpServletResponse, java.io.InputStream, java.io.OutputStream, boolean)
HttpRequestHandler.java:767
void com.evermind.server.http.HttpRequestHandler.run(java.lang.Thread)
HttpRequestHandler.java:259
void com.evermind.server.http.HttpRequestHandler.run()
HttpRequestHandler.java:106
void EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run()
PooledExecutor.java:803
void java.lang.Thread.run()
Thread.java:484
The code performs a iteration. It runs fine with 1000 iterations but with more...
What is wrong and what I must to do?
Thanks
Rafael
Similar Messages
-
Error Message: JBO-28020: Passivation error on collection TXN, node id -1
Hi all!
I've got this error when I try to run my BC4J Application:
Error Message: JBO-28020: Passivation error on collection TXN, node id -1
Error Message: JBO-28030: Could not insert row into table PCST_TXN, id -1
on this env:
SUN SOLARIS 2.7
OC4J DEV Preview (9.0.2.0.0A)
DB 9i + patchset 9.0.2
The SAME APPLICATION works right when deployed on this env:
W2k
OC4J part of JDEV9iRC2 (9.0.2.0.0)
remote DB 9i + patchset 9.0.2 on SUN SOLARIS
The Application Module is deployed as a Session Bean (BMT),
and I have a jdbc Datasource called jdbc/DeployDBDS.
I have also modified jbo.ejb.txntype from "global" to "local"
because with "global" it doesn't work...
Anyone can help me?
regards
FelixFirst you'll want to read this BC4J "HowTo" article on how our persistent collection functionality works so you can decide whether you not you really want to be using it.
http://otn.oracle.com/products/jdev/htdocs/bc4j/bc4j_temp_tables.html
Likely you don't want to be, so this article explains how to avoid having its being used. It's typically a "last resort" feature that saves appserver memory by writing extra query results rows out to persistent storage if you query thousands of rows into memory and start scrolling around.
Down in your stack trace there is the error:
ORA-600: [19942]
This is a database internal error related to handling CLOB's and BLOB's. I see a few bugs that were reported in versions 8.0.5 but fixed in 8.1.6.
What version of the Oracle database are you using? -
Error Message: JBO-28020: Passivation error on collection TXN
I deployed my BC4J application. i fixed the jbo.server.internal_connection properties to point another
Oracle schema (bc4jpers) by creating the user like :
create user bc4jpers identified by password
default tablespace users
temporary tablespace temp
and after i gived this user the following grants;
grant connect, resource to bc4jpers
but during the execution of my BC4J web application i received the following error :
Error Message: JBO-28020: Passivation error on collection TXN, collection id 6,023, persistent id 1
Error Message: JBO-28030: Could not insert row into table PS_TXN, collection id 6,023, persistent id 1
oracle.jbo.PCollException: JBO-28020: Passivation error on collection TXN, collection id 6,023, persistent id 1
void oracle.jbo.PCollException.throwException(java.lang.Class, java.lang.String, java.lang.Object[], java.lang.Exception)
boolean oracle.jbo.pcoll.PCollNode.passivateElem(oracle.jbo.pcoll.PCollPersistable, oracle.jbo.pcoll.PCollNode, oracle.jbo.pcoll.PCollection, long)
boolean oracle.jbo.pcoll.PCollNode.passivate()
boolean oracle.jbo.pcoll.PCollNode.passivateBranch()
long oracle.jbo.pcoll.PCollection.passivate()
int oracle.jbo.server.DBSerializer.passivateRootAM(int, byte[])
int oracle.jbo.server.ApplicationModuleImpl.passivateState(int, byte[])
void oracle.jbo.common.ampool.ApplicationPoolImpl.doFailover(oracle.jbo.ApplicationModule, oracle.jbo.common.ampool.SessionCookie)
void oracle.jbo.common.ampool.ApplicationPoolImpl.doManagedCheckin(oracle.jbo.common.ampool.SessionCookie)
void oracle.jbo.common.ampool.ApplicationPoolImpl.releaseApplicationModule(oracle.jbo.common.ampool.SessionCookie, boolean)
void oracle.jbo.common.ampool.SessionCookieImpl.releaseApplicationModule(boolean, boolean, long)
void oracle.jbo.common.ampool.SessionCookieImpl.releaseApplicationModule(boolean, boolean)
void oracle.jbo.html.jsp.datatags.ReleasePageResourcesTag.releaseApplicationModule(oracle.jbo.common.ampool.SessionCookie)
int oracle.jbo.html.jsp.datatags.ReleasePageResourcesTag.doEndTag()
void secur.RegistreEditOctroi._jspService(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
void oracle.jsp.runtime.HttpJsp.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
void oracle.jsp.runtimev2.JspPageTable.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.String)
void oracle.jsp.runtimev2.JspServlet.internalService(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
void oracle.jsp.runtimev2.JspServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
void javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
void com.evermind.server.http.ServletRequestDispatcher.invoke(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
void com.evermind.server.http.ServletRequestDispatcher.forwardInternal(javax.servlet.ServletRequest, javax.servlet.http.HttpServletResponse)
boolean com.evermind.server.http.HttpRequestHandler.processRequest(com.evermind.server.ApplicationServerThread, com.evermind.server.http.EvermindHttpServletRequest, com.evermind.server.http.EvermindHttpServletResponse, java.io.InputStream, java.io.OutputStream, boolean)
void com.evermind.server.http.HttpRequestHandler.run(java.lang.Thread)
void com.evermind.util.ThreadPoolThread.run()
## Detail 0 ##
oracle.jbo.PCollException: JBO-28030: Could not insert row into table PS_TXN, collection id 6,023, persistent id 1
void oracle.jbo.PCollException.throwException(java.lang.Class, java.lang.String, java.lang.Object[], java.lang.Exception)
void oracle.jbo.pcoll.OraclePersistManager.insert(long, long, int, oracle.jbo.pcoll.PCollKeyInfo[], byte[])
boolean oracle.jbo.pcoll.PCollNode.passivateElem(oracle.jbo.pcoll.PCollPersistable, oracle.jbo.pcoll.PCollNode, oracle.jbo.pcoll.PCollection, long)
boolean oracle.jbo.pcoll.PCollNode.passivate()
boolean oracle.jbo.pcoll.PCollNode.passivateBranch()
long oracle.jbo.pcoll.PCollection.passivate()
int oracle.jbo.server.DBSerializer.passivateRootAM(int, byte[])
int oracle.jbo.server.ApplicationModuleImpl.passivateState(int, byte[])
void oracle.jbo.common.ampool.ApplicationPoolImpl.doFailover(oracle.jbo.ApplicationModule, oracle.jbo.common.ampool.SessionCookie)
void oracle.jbo.common.ampool.ApplicationPoolImpl.doManagedCheckin(oracle.jbo.common.ampool.SessionCookie)
void oracle.jbo.common.ampool.ApplicationPoolImpl.releaseApplicationModule(oracle.jbo.common.ampool.SessionCookie, boolean)
void oracle.jbo.common.ampool.SessionCookieImpl.releaseApplicationModule(boolean, boolean, long)
void oracle.jbo.common.ampool.SessionCookieImpl.releaseApplicationModule(boolean, boolean)
void oracle.jbo.html.jsp.datatags.ReleasePageResourcesTag.releaseApplicationModule(oracle.jbo.common.ampool.SessionCookie)
int oracle.jbo.html.jsp.datatags.ReleasePageResourcesTag.doEndTag()
void secur.RegistreEditOctroi._jspService(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
void oracle.jsp.runtime.HttpJsp.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
void oracle.jsp.runtimev2.JspPageTable.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.String)
void oracle.jsp.runtimev2.JspServlet.internalService(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
void oracle.jsp.runtimev2.JspServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
void javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
void com.evermind.server.http.ServletRequestDispatcher.invoke(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
void com.evermind.server.http.ServletRequestDispatcher.forwardInternal(javax.servlet.ServletRequest, javax.servlet.http.HttpServletResponse)
boolean com.evermind.server.http.HttpRequestHandler.processRequest(com.evermind.server.ApplicationServerThread, com.evermind.server.http.EvermindHttpServletRequest, com.evermind.server.http.EvermindHttpServletResponse, java.io.InputStream, java.io.OutputStream, boolean)
void com.evermind.server.http.HttpRequestHandler.run(java.lang.Thread)
void com.evermind.util.ThreadPoolThread.run()
## Detail 0 ##
java.sql.SQLException: ORA-00600: internal error code, arguments: [19942], [], [], [], [], [], [], []
void oracle.jdbc.dbaccess.DBError.throwSqlException(java.lang.String, java.lang.String, int)
void oracle.jdbc.ttc7.TTIoer.processError()
void oracle.jdbc.ttc7.Oall7.receive()
void oracle.jdbc.ttc7.TTC7Protocol.doOall7(byte, byte, int, byte[], oracle.jdbc.dbaccess.DBType[], oracle.jdbc.dbaccess.DBData[], int, oracle.jdbc.dbaccess.DBType[], oracle.jdbc.dbaccess.DBData[], int)
int oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(oracle.jdbc.dbaccess.DBStatement, byte, byte[], oracle.jdbc.dbaccess.DBDataSet, int, oracle.jdbc.dbaccess.DBDataSet, int)
void oracle.jdbc.driver.OracleStatement.executeNonQuery(boolean)
void oracle.jdbc.driver.OracleStatement.doExecuteOther(boolean)
void oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout()
int oracle.jdbc.driver.OraclePreparedStatement.executeUpdate()
boolean oracle.jdbc.driver.OraclePreparedStatement.execute()
void oracle.jbo.pcoll.OraclePersistManager.updateBlobs(long, int, oracle.jbo.pcoll.PCollKeyInfo[], byte[], int, oracle.jdbc.OracleCallableStatement)
void oracle.jbo.pcoll.OraclePersistManager.insert(long, long, int, oracle.jbo.pcoll.PCollKeyInfo[], byte[])
boolean oracle.jbo.pcoll.PCollNode.passivateElem(oracle.jbo.pcoll.PCollPersistable, oracle.jbo.pcoll.PCollNode, oracle.jbo.pcoll.PCollection, long)
boolean oracle.jbo.pcoll.PCollNode.passivate()
boolean oracle.jbo.pcoll.PCollNode.passivateBranch()
long oracle.jbo.pcoll.PCollection.passivate()
int oracle.jbo.server.DBSerializer.passivateRootAM(int, byte[])
int oracle.jbo.server.ApplicationModuleImpl.passivateState(int, byte[])
void oracle.jbo.common.ampool.ApplicationPoolImpl.doFailover(oracle.jbo.ApplicationModule, oracle.jbo.common.ampool.SessionCookie)
void oracle.jbo.common.ampool.ApplicationPoolImpl.doManagedCheckin(oracle.jbo.common.ampool.SessionCookie)
void oracle.jbo.common.ampool.ApplicationPoolImpl.releaseApplicationModule(oracle.jbo.common.ampool.SessionCookie, boolean)
void oracle.jbo.common.ampool.SessionCookieImpl.releaseApplicationModule(boolean, boolean, long)
void oracle.jbo.common.ampool.SessionCookieImpl.releaseApplicationModule(boolean, boolean)
void oracle.jbo.html.jsp.datatags.ReleasePageResourcesTag.releaseApplicationModule(oracle.jbo.common.ampool.SessionCookie)
int oracle.jbo.html.jsp.datatags.ReleasePageResourcesTag.doEndTag()
void secur.RegistreEditOctroi._jspService(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
void oracle.jsp.runtime.HttpJsp.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
void oracle.jsp.runtimev2.JspPageTable.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.String)
void oracle.jsp.runtimev2.JspServlet.internalService(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
void oracle.jsp.runtimev2.JspServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
void javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
void com.evermind.server.http.ServletRequestDispatcher.invoke(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
void com.evermind.server.http.ServletRequestDispatcher.forwardInternal(javax.servlet.ServletRequest, javax.servlet.http.HttpServletResponse)
boolean com.evermind.server.http.HttpRequestHandler.processRequest(com.evermind.server.ApplicationServerThread, com.evermind.server.http.EvermindHttpServletRequest, com.evermind.server.http.EvermindHttpServletResponse, java.io.InputStream, java.io.OutputStream, boolean)
void com.evermind.server.http.HttpRequestHandler.run(java.lang.Thread)
void com.evermind.util.ThreadPoolThread.run()
Thank you very mutch for your tips.First you'll want to read this BC4J "HowTo" article on how our persistent collection functionality works so you can decide whether you not you really want to be using it.
http://otn.oracle.com/products/jdev/htdocs/bc4j/bc4j_temp_tables.html
Likely you don't want to be, so this article explains how to avoid having its being used. It's typically a "last resort" feature that saves appserver memory by writing extra query results rows out to persistent storage if you query thousands of rows into memory and start scrolling around.
Down in your stack trace there is the error:
ORA-600: [19942]
This is a database internal error related to handling CLOB's and BLOB's. I see a few bugs that were reported in versions 8.0.5 but fixed in 8.1.6.
What version of the Oracle database are you using? -
How can I deal with JBOError JBO-28020?
When I use JDeveloper 9.0.3.1 to execute a query of a whole table with more than 1000 rows,it returns an error JBO-28020.That would take place when I used the methods like Datasource.getRowSet().getRowCount() or Datasource.getRowSet().next(), and so on.This error would appear when I ran applications deployed on server but not Embedded OC4J environment.Why it took place?How should I do?
Because you result set has many rows, spill-to-disk is kicking in. Please read the following article (and search for the word "spill") to get further info on spill-to-disk.
http://radio.weblogs.com/0118231/stories/2003/03/26/viewObjectTuningTipsForBestPerformance.html
You can also read
http://otn.oracle.com/products/jdev/htdocs/bc4j/bc4j_temp_tables.html
Thanks.
Sung -
TO JDEV TEAM: JBO-28020/JBO-28006 ERRORS
Hi,
I deploy a BC4J application (made with Jdev official) on an OC4J container 9.0.2. the application use a 9i data base.
frequently, when we try to insert or update rows in viewObject, we have the following error :
Application Error
Return
Error Message: JBO-28020: Erreur de passivation pour l'objet collection GrandeurView, ID de noeud 45
Error Message: JBO-28006: Criation impossible de la table de persistance PS_Bdcorrel_BC4JModule_1
oracle.jbo.PCollException: JBO-28020: Erreur de passivation pour l'objet collection GrandeurView, ID de noeud 45
<>
## Detail 0 ##
oracle.jbo.PCollException: JBO-28006: Criation impossible de la table de persistance PS_Bdcorrel_BC4JModule_1
<>
## Detail 0 ##
java.sql.SQLException: ORA-00955: Ce nom d'objet existe dij`
<>
This is a pressing issue, and I'd need an answer asap. Could anyone from the JDEV team please help me on this?
Thanks a lot!Stephane:
Could you send me the entire stack trace?
It would also help if you can translate some of the "important" exception messages into English for me (sorry).
Thanks.
Sung -
JBO-28020 / JBO-28006 ERRORS
Hello,
I deploy a BC4J application (made with Jdev official) on an OC4J container 9.0.2. the application use a 9i data base.
frequently, when we try to insert or update rows in viewObject, we have the following error :
Application Error
Return
Error Message: JBO-28020: Erreur de passivation pour l'objet collection GrandeurView, ID de noeud 45
Error Message: JBO-28006: Criation impossible de la table de persistance PS_Bdcorrel_BC4JModule_1
oracle.jbo.PCollException: JBO-28020: Erreur de passivation pour l'objet collection GrandeurView, ID de noeud 45
<>
## Detail 0 ##
oracle.jbo.PCollException: JBO-28006: Criation impossible de la table de persistance PS_Bdcorrel_BC4JModule_1
<>
## Detail 0 ##
java.sql.SQLException: ORA-00955: Ce nom d'objet existe dij`
<>
Can someone help me ?This is a pressing issue, and I'd need an answer asap. Could anyone from the JDEV team please help me on this?
Thanks a lot! http://otn.oracle.com/products/jdev/htdocs/bc4j/bc4j_temp_tables.html
This is a document describing the tables which is causing this error. It looks like you might want to change the location where these tables get created.
Hope this helps,
Rob -
Any body familiar with this error:
Error Message: oracle.jbo.PCollException: JBO-28020: Passivation
error on collection WorkOrderView1, node id 1 void
More info: WorkOrderView1 is a master view which has five
details view jointed. Application Module tested fine. All the
pages included Application Module tag, failed with the above
exception. When i take out the Application Module tag from the
page, then page loads fine.I have exactly the same problem....
My application is a simple BC4J (and JSP) application created in
jDev 3.2.3 (evereting work perfectly in 3.2.3 ???)
But I got this error when i insert a record in a master detail
relation... ???
Where could i set some parameter about the pool...
Thanks
Benoit
Note: i don't use any EJB or J2EE element (it's on the to do
list...) -
Hi all,
Apologies if this is the second time round; first time didn't appear to post.
I'm trying to get a BC4J app working. I'm using a brand-spankin' new 9.0.2.822 JDeveloper connecting to a less-than-new 8.1.7 database.
To test, I'm just trying to browse / query a small table, Languages, which contains the ISO codes for various languages. I did the following:
- created a new workspace
- created a new project with business components
- created a new business web application
- selected LANGUAGES from the table menu
and a horde of jsp and whatnot pages were created. I then attempt to "run main.html" and get mozilla to pop open
a browser that says "This is a Business Components JSP Application." Yay! I then click on the left under Languages for either Browse or Query, and get the following stack track. I have never seen this work in a browser, and the table itself is small, so I don't think this is hte row issue I saw elsewhere on the forum. Furthermore, I am seeing the PCOLL_CONTROL table, but not the PS_TXN table in the database.
Any ideas?
-e
Application Error
Return
Error Message: JBO-28020: Passivation error on collection TXN, collection id 262, persistent id -1
Error Message: JBO-28030: Could not insert row into table PS_TXN, collection id 262, persistent id -1
oracle.jbo.PCollException: JBO-28020: Passivation error on collection TXN, collection id 262, persistent id -1
at oracle.jbo.PCollException.throwException(PCollException.java:25)
at oracle.jbo.pcoll.PCollNode.passivateElem(PCollNode.java:583)
at oracle.jbo.pcoll.PCollNode.passivate(PCollNode.java:668)
at oracle.jbo.pcoll.PCollNode.passivateBranch(PCollNode.java:611)
at oracle.jbo.pcoll.PCollection.passivate(PCollection.java:422)
at oracle.jbo.server.DBSerializer.reservePassivationId(DBSerializer.java:181)
at oracle.jbo.server.ApplicationModuleImpl.reservePassivationId(ApplicationModuleImpl.java:3597)
at oracle.jbo.common.ampool.SessionCookieImpl.reservePassivationId(SessionCookieImpl.java:497)
at oracle.jbo.html.jsp.datatags.ApplicationModuleTag.doStartTag(ApplicationModuleTag.java:224)
at LanguagesTlView_Browse._jspService(LanguagesTlView_Browse.jsp:10)
at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:119)
at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:302)
at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:407)
at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:330)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:336)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:684)
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:269)
at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:735)
at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:243)
at com.evermind.util.ThreadPoolThread.run(ThreadPoolThread.java:64)
## Detail 0 ##
oracle.jbo.PCollException: JBO-28030: Could not insert row into table PS_TXN, collection id 262, persistent id -1
at oracle.jbo.PCollException.throwException(PCollException.java:25)
at oracle.jbo.pcoll.OraclePersistManager.insert(OraclePersistManager.java:1482)
at oracle.jbo.pcoll.PCollNode.passivateElem(PCollNode.java:537)
at oracle.jbo.pcoll.PCollNode.passivate(PCollNode.java:668)
at oracle.jbo.pcoll.PCollNode.passivateBranch(PCollNode.java:611)
at oracle.jbo.pcoll.PCollection.passivate(PCollection.java:422)
at oracle.jbo.server.DBSerializer.reservePassivationId(DBSerializer.java:181)
at oracle.jbo.server.ApplicationModuleImpl.reservePassivationId(ApplicationModuleImpl.java:3597)
at oracle.jbo.common.ampool.SessionCookieImpl.reservePassivationId(SessionCookieImpl.java:497)
at oracle.jbo.html.jsp.datatags.ApplicationModuleTag.doStartTag(ApplicationModuleTag.java:224)
at LanguagesTlView_Browse._jspService(LanguagesTlView_Browse.jsp:10)
at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:119)
at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:302)
at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:407)
at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:330)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:336)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:684)
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:269)
at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:735)
at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:243)
at com.evermind.util.ThreadPoolThread.run(ThreadPoolThread.java:64)
## Detail 0 ##
java.sql.SQLException: ORA-06550: line 1, column 19:
PLS-00201: identifier 'PS_TXN' must be declared
ORA-06550: line 1, column 7:
PL/SQL: SQL Statement ignored
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:185)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:241)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:543)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1476)
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:887)
at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:1959)
at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1879)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2489)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:435)
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:500)
at oracle.jbo.pcoll.OraclePersistManager.insert(OraclePersistManager.java:1464)
at oracle.jbo.pcoll.PCollNode.passivateElem(PCollNode.java:537)
at oracle.jbo.pcoll.PCollNode.passivate(PCollNode.java:668)
at oracle.jbo.pcoll.PCollNode.passivateBranch(PCollNode.java:611)
at oracle.jbo.pcoll.PCollection.passivate(PCollection.java:422)
at oracle.jbo.server.DBSerializer.reservePassivationId(DBSerializer.java:181)
at oracle.jbo.server.ApplicationModuleImpl.reservePassivationId(ApplicationModuleImpl.java:3597)
at oracle.jbo.common.ampool.SessionCookieImpl.reservePassivationId(SessionCookieImpl.java:497)
at oracle.jbo.html.jsp.datatags.ApplicationModuleTag.doStartTag(ApplicationModuleTag.java:224)
at LanguagesTlView_Browse._jspService(LanguagesTlView_Browse.jsp:10)
at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:119)
at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:302)
at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:407)
at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:330)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:336)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:684)
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:269)
at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:735)
at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:243)
at com.evermind.util.ThreadPoolThread.run(ThreadPoolThread.java:64)Ah, excellent, this is quite helpful.
Now, it looks to me that the problem is quite simple: whatever BC4J is doing, it is NOT creating the PS_TXN table (or the PS_TXN_SEQ sequence). Line 160 down there clearly shows PCOLL_CONTROL table being created, but the PS_TXN table isn't.
Is there some way to kick-start its creation? Or can somebody ship me the schema and I'll just enter it by hand?
Cheers,
-e
Here's the trailing output:
[149] Oracle SQLBuilder: Registered driver: oracle.jdbc.driver.OracleDriver
[150] Creating a new pool resource
[151] Trying connection/2: url='jdbc:oracle:thin:@d01.consys.prognet.com:1637:cdd01' info='{user=cds, password=cds}' ...
[152] Successfully logged in
[153] JDBCDriverVersion: 9.0.1.2.0
[154] DatabaseProductName: Oracle
[155] DatabaseProductVersion: Oracle8i Enterprise Edition Release 8.1.6.1.0 - 64bit Production With the Partitioning option JServer Release 8.1.6.1.0 - 64bit Production
[156] Getting a connection for internal use...
[157] Creating internal connection...
[158] Creating a new pool resource
[159] Trying connection/2: url='jdbc:oracle:thin:@d01.consys.prognet.com:1637:cdd01' info='{user=<snip>, password=<snip>, dll=ocijdbc9, protocol=thin}' ...
[160] **createControlTable** tabname=PCOLL_CONTROL created
[161] **PCollManager.resolveName** tabName=PS_TXN
[162] **commit** #pending ops=0
[163] **insert** id=-1, parid=0, collid=361, keyArr.len=-1, cont.len=571
[164] stmt: begin insert into "PS_TXN" values (:1, :2, :3, empty_blob(), sysdate) returning content into :4; end;
[165] **insert** error, sqlStmt=begin insert into "PS_TXN" values (:1, :2, :3, empty_blob(), sysdate) returning content into :4; end;
[166] java.sql.SQLException: ORA-06550: line 1, column 19:
PLS-00201: identifier 'PS_TXN' must be declared
ORA-06550: line 1, column 7:
PL/SQL: SQL Statement ignored
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:185)8��nq -
PASSIVATION ERROR ...
hi !
i obtained this error message :
Error Message: JBO-28020: Passivation error on collection SEMListeCritereVO, collection id 3, persistent id 9
Error Message: JBO-28006: Could not create persistence table PS_SEM1SuiviMarcheAM
void com.evermind.util.ThreadPoolThread.run()
## Detail 0 ##
java.sql.SQLException: ORA-00955: name is already used by an existing object
so i did a "desc PS_SEM1SuiviMarcheAM" with SQLPLUS and i have the message "Objet inexistant"
when i look in the system table "ALL_TABLES", i find a line corresponding to the table "PS_SEM1SuiviMarcheAM" !!!
i don t understand the origin of this table and why it remains in the table "ALL_TABLES" and how we can rectify this passivation error ????
THANKS FOR HELP !
Cordialy
PierrotThese two article contain info on our spill-to-disk functionality:
http://radio.weblogs.com/0118231/stories/2003/03/26/viewObjectTuningTipsForBestPerformance.html
http://otn.oracle.com/products/jdev/htdocs/bc4j/bc4j_temp_tables.html
Also, when a table name contains lower-case letters, to perform a DESC (describe) command, you need to quote it in double quotes like:
DESC "MyTableName" -
Passivation Error with 9.0.3 Release
I am getting a passivation error with the new 9.0.3 Release Jdeveloper. I have a page-by-page iteration set up and am selecting out of a table that has 9000 rows in it. When I first query the table I do not have any problems, but when I go towards the end I start throwing passivation errors. I run the following chunk of code:
DcAddressView dav = (DcAddressView)this.getDcAddressView1();
dav.setWhereClause(whereClause);
dav.setRangeSize(pageSize);
dav.setRangeStart(startPos);
Row[] rows = dav.getAllRowsInRange();
where whereClause = "1 = 1 and source_ind = '9'"; pageSize = 20; startPos = 5900
With the whereClause used there is 5948 records in the recordset. When I debug this section of code I throw an exception as I try to setRangeStart(5900) as follows:
oracle.jbo.PCollException: JBO-28020: Passivation error on collection DcAddressView1, collection id 0, persistent id 1
void oracle.jbo.PCollException.throwException(java.lang.Class, java.lang.String, java.lang.Object[], java.lang.Exception)
PCollException.java:39
boolean oracle.jbo.pcoll.PCollNode.passivateElem(oracle.jbo.pcoll.PCollPersistable, oracle.jbo.pcoll.PCollNode, oracle.jbo.pcoll.PCollection, long)
PCollNode.java:589
boolean oracle.jbo.pcoll.PCollNode.passivate()
PCollNode.java:658
boolean oracle.jbo.pcoll.PCollection.passivateLRULeafNode()
PCollection.java:351
void oracle.jbo.pcoll.PCollection.checkActiveLeafLimit()
PCollection.java:404
void oracle.jbo.pcoll.PCollection.nodeRecentlyUsed(oracle.jbo.pcoll.PCollNode)
PCollection.java:252
void oracle.jbo.pcoll.PCollNode.<init>(oracle.jbo.pcoll.PCollection, oracle.jbo.pcoll.PCollNode, boolean)
PCollNode.java:74
oracle.jbo.pcoll.PCollNode oracle.jbo.pcoll.PCollNode.checkForSplit()
PCollNode.java:1554
void oracle.jbo.pcoll.PCollNode.addObject(oracle.jbo.pcoll.PCollPersistable)
PCollNode.java:1623
void oracle.jbo.pcoll.PCollNode.addObject(oracle.jbo.pcoll.PCollPersistable)
PCollNode.java:1611
void oracle.jbo.pcoll.PCollection.addElement(oracle.jbo.pcoll.PCollPersistable)
PCollection.java:753
boolean oracle.jbo.server.QueryCollection.fetch(int)
QueryCollection.java:1295
java.lang.Object oracle.jbo.server.QueryCollection.get(int)
QueryCollection.java:831
oracle.jbo.Row oracle.jbo.server.ViewRowSetImpl.getRow(int)
ViewRowSetImpl.java:2619
int oracle.jbo.server.ViewRowSetIteratorImpl.scrollRange(int)
ViewRowSetIteratorImpl.java:945
int oracle.jbo.server.ViewRowSetIteratorImpl.setRangeStart(int)
ViewRowSetIteratorImpl.java:2161
int oracle.jbo.server.ViewRowSetImpl.setRangeStart(int)
ViewRowSetImpl.java:1726
int oracle.jbo.server.ViewObjectImpl.setRangeStart(int)
ViewObjectImpl.java:4718
org.act.dcact.PageList org.act.dcact.bc.AddressModuleImpl.getAddressList(int, int, java.lang.String)
AddressModuleImpl.java:84
org.apache.struts.action.ActionForward org.act.dcact.SearchAction.execute(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
SearchAction.java:42
org.apache.struts.action.ActionForward org.apache.struts.action.RequestProcessor.processActionPerform(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, org.apache.struts.action.Action, org.apache.struts.action.ActionForm, org.apache.struts.action.ActionMapping)
RequestProcessor.java:446
void org.apache.struts.action.RequestProcessor.process(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
RequestProcessor.java:266
void org.apache.struts.action.ActionServlet.process(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
ActionServlet.java:1292
void org.apache.struts.action.ActionServlet.doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
ActionServlet.java:492
void javax.servlet.http.HttpServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
HttpServlet.java:740
void javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
HttpServlet.java:853
void com.evermind.server.http.ServletRequestDispatcher.invoke(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
ServletRequestDispatcher.java:721
void com.evermind.server.http.ServletRequestDispatcher.forwardInternal(javax.servlet.ServletRequest, javax.servlet.http.HttpServletResponse)
ServletRequestDispatcher.java:306
boolean com.evermind.server.http.HttpRequestHandler.processRequest(com.evermind.server.ApplicationServerThread, com.evermind.server.http.EvermindHttpServletRequest, com.evermind.server.http.EvermindHttpServletResponse, java.io.InputStream, java.io.OutputStream, boolean)
HttpRequestHandler.java:767
void com.evermind.server.http.HttpRequestHandler.run(java.lang.Thread)
HttpRequestHandler.java:259
void com.evermind.server.http.HttpRequestHandler.run()
HttpRequestHandler.java:106
void EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run()
PooledExecutor.java:803
void java.lang.Thread.run()
Thread.java:484
## Detail 0 ##
java.lang.ClassCastException: java.sql.Date
boolean oracle.jbo.pcoll.OraclePersistManager.holdTableName(java.lang.String, boolean)
OraclePersistManager.java:1096
void oracle.jbo.pcoll.PCollManager.resolveName()
PCollManager.java:324
void oracle.jbo.pcoll.OraclePersistManager.createControlTable()
OraclePersistManager.java:268
void oracle.jbo.pcoll.OraclePersistManager.createTable()
OraclePersistManager.java:672
void oracle.jbo.pcoll.OraclePersistManager.insert(long, long, int, oracle.jbo.pcoll.PCollKeyInfo[], byte[])
OraclePersistManager.java:1538
boolean oracle.jbo.pcoll.PCollNode.passivateElem(oracle.jbo.pcoll.PCollPersistable, oracle.jbo.pcoll.PCollNode, oracle.jbo.pcoll.PCollection, long)
PCollNode.java:543
boolean oracle.jbo.pcoll.PCollNode.passivate()
PCollNode.java:658
boolean oracle.jbo.pcoll.PCollection.passivateLRULeafNode()
PCollection.java:351
void oracle.jbo.pcoll.PCollection.checkActiveLeafLimit()
PCollection.java:404
void oracle.jbo.pcoll.PCollection.nodeRecentlyUsed(oracle.jbo.pcoll.PCollNode)
PCollection.java:252
void oracle.jbo.pcoll.PCollNode.<init>(oracle.jbo.pcoll.PCollection, oracle.jbo.pcoll.PCollNode, boolean)
PCollNode.java:74
oracle.jbo.pcoll.PCollNode oracle.jbo.pcoll.PCollNode.checkForSplit()
PCollNode.java:1554
void oracle.jbo.pcoll.PCollNode.addObject(oracle.jbo.pcoll.PCollPersistable)
PCollNode.java:1623
void oracle.jbo.pcoll.PCollNode.addObject(oracle.jbo.pcoll.PCollPersistable)
PCollNode.java:1611
void oracle.jbo.pcoll.PCollection.addElement(oracle.jbo.pcoll.PCollPersistable)
PCollection.java:753
boolean oracle.jbo.server.QueryCollection.fetch(int)
QueryCollection.java:1295
java.lang.Object oracle.jbo.server.QueryCollection.get(int)
QueryCollection.java:831
oracle.jbo.Row oracle.jbo.server.ViewRowSetImpl.getRow(int)
ViewRowSetImpl.java:2619
int oracle.jbo.server.ViewRowSetIteratorImpl.scrollRange(int)
ViewRowSetIteratorImpl.java:945
int oracle.jbo.server.ViewRowSetIteratorImpl.setRangeStart(int)
ViewRowSetIteratorImpl.java:2161
int oracle.jbo.server.ViewRowSetImpl.setRangeStart(int)
ViewRowSetImpl.java:1726
int oracle.jbo.server.ViewObjectImpl.setRangeStart(int)
ViewObjectImpl.java:4718
org.act.dcact.PageList org.act.dcact.bc.AddressModuleImpl.getAddressList(int, int, java.lang.String)
AddressModuleImpl.java:84
org.apache.struts.action.ActionForward org.act.dcact.SearchAction.execute(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
SearchAction.java:42
org.apache.struts.action.ActionForward org.apache.struts.action.RequestProcessor.processActionPerform(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, org.apache.struts.action.Action, org.apache.struts.action.ActionForm, org.apache.struts.action.ActionMapping)
RequestProcessor.java:446
void org.apache.struts.action.RequestProcessor.process(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
RequestProcessor.java:266
void org.apache.struts.action.ActionServlet.process(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
ActionServlet.java:1292
void org.apache.struts.action.ActionServlet.doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
ActionServlet.java:492
void javax.servlet.http.HttpServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
HttpServlet.java:740
void javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
HttpServlet.java:853
void com.evermind.server.http.ServletRequestDispatcher.invoke(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
ServletRequestDispatcher.java:721
void com.evermind.server.http.ServletRequestDispatcher.forwardInternal(javax.servlet.ServletRequest, javax.servlet.http.HttpServletResponse)
ServletRequestDispatcher.java:306
boolean com.evermind.server.http.HttpRequestHandler.processRequest(com.evermind.server.ApplicationServerThread, com.evermind.server.http.EvermindHttpServletRequest, com.evermind.server.http.EvermindHttpServletResponse, java.io.InputStream, java.io.OutputStream, boolean)
HttpRequestHandler.java:767
void com.evermind.server.http.HttpRequestHandler.run(java.lang.Thread)
HttpRequestHandler.java:259
void com.evermind.server.http.HttpRequestHandler.run()
HttpRequestHandler.java:106
void EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run()
PooledExecutor.java:803
void java.lang.Thread.run()
Thread.java:484
Any help would be appreciated. BTW-- I have repeatedly deleted all bc4j tables from my database.Eric,
We're tracking this problem as Bug#2646690. Thanks for reporting it.
The problem is related to a change in the JDBC driver when the oracle.jdbc.J2EE13Compliant Java system property is set to the value true. When this flag is set to true, JDBC returns a DATE column from the database as a java.sql.Date object. When the flag is not set or set to false, it returns the java.sql.Timestamp type that it has always returned before.
The workaround until we are able to fix this on our side to work with either Timestamp or Date in our code, is to add the line:
System.setProperty("oracle.jdbc.J2EE13Compliant","false");Into the constructor of your root application module's *Impl.java class. -
Application Module Configuration Properties file?
Hi,
Any body knows where could i find the Application Module Configuration Properties file on the disk.
(This properties on wizard are appeared when we right click on application module and select configuration...)Curt,
Thanks for your direction. That link is vary useful to be familiar with the AM configuration setting.
Frankly, during last few months I was extremely busy to develop JSP pages. And didnt study much about AM But now that we are close to move the application to production I faced unacceptable problems. Recently I started to read your/and other folks treads to get more familiar with AM.
Here is some of the problem i faced, which i think are AM related:
1-The application speed goes down as soon as more than 2-3 browser(user) work with the same application(most probably I have memory leak).
2-Some times I received following error when tried to load a JSP page in the application:
Error Message: oracle.jbo.PCollException: JBO-28020: Passivation error on collection TXN, node id -1 void
3-I faced following error when I tried to work with two applications in one or even two browsers:
Error Message: JBO 30004: An application module that was not checked out was checked in...
So, please let me know your idea on those and/or any point that I have to check.
By the way, I am still on JDev9i-Beta and I accepted all default setting at the time I created AM . but the state of each page explicitly defined at the page level(mostly stateful, but on some of the pages i didn't mentioned the state which by default is stateless).
Thanks. -
To JDev Team. PCOL_CONTROL table bug in JDev9i
I have an application that I developed in 3.2 using BC4J. When I open my workspace in 9i, It upgrades BC4J, but I can navigate through the records of my larger BC4J View Objects. The smaller ones with less than 100 total rows work fine, but the ones with more rows (this one has 836) don't work. Here are the errors I get:-
JBO-28020: Passivation error on collection AllWauView, node id 146
BO-28030: Could not insert row into table null, id 146: ORA-00001: unique constraint (PGAT490.NULL_PK) violated
ORA-06512: at line 1
When I look at the database, looks like the BC4J engine is attempting to insert nulls into the primary key column. I had no problems in the Jdev 3.2. AllWauView is a view I built in expert mode, and all it does is a simple SELECT from a group of tables for a list of values. Please let me know if I am missing something here. I attempted to bump the prefetch count to 1000 but it doesn't help.Weird as this may sound, the problem has re-curred again. This time even after running the clean-up procedure that Steven posted seems to have no effect. I get the same exact error. I also notice a table called 'null' has been created in my schema, besides the PCST_* and PCOL_* tables. What is this null table? Is it supposed to have a different name and Jdeveloper gives null as the name? Anyway, now I am back to square one. The spill-over behaviour also seems to be random. Is it possible that running the clean up procedure (I installed the PL\SQL package into my schema) from SQL PLUS doesn't really fix anything, and that there is another reason for the problem? I even got a weird error message that said that an insert into the table null has failled, leading me to think this table was actually valid, but isn't null a reserved word that we can't use to name a table in Oracle? Sure it is a spill over problem as it only occurs with my larger view object, and interestingly enough, not when I navigate the rows one at a time, but when I attempt to scroll all the way to the last row while populating my LOV. This doesn't happen with 3.2, so I think there is actually a bug in the 9i implementation. Any comments on that?
-
JBO:33001 bc4j.xcfg file not found in class path
Hi,
I am yet another victim of the age-old error JBO:33001 bc4j.xcfg file not found in class path, When i have my BC4JApp.jar in Tomcat Web-inf/lib directory. All the other jar files and class files in my webserver-application web-inf classes and lib directory works.
But Tomcat server is not able to read this bc4j.xcfg file. I can see in my jar file that this bc4j.xcfg exists and in the specified package directory. still the problem persists. My BC4JApp.jar is perfectly working when i use JDeveloper. but not when i use tomcat4.0 and call a JSP using BC4JApp.jar from browser (My environment is Jdeveloper3.2, Tomcat4.0+IIS in middle tier and oracle 8i as DB, everything on windows2k)
I have gone through almost all the threads possible that relates to this error in this form. None of them have a answer except to say "put the file in classpath". and last reply is "will fix in jDeveloper 9i. So what happens to us who are working in Jdeveloper 3.2?
1. I have this file in my jar file.
2. I also tried creating a seperate directory manually, with the same name as my package under web-inf/classes, web-inf/lib , just under web-inf directory and atlast under approot directory also. I tried having my package directory containing bc4j.xcfg in these folders one at a time and also tried having this directory in all these folders at the same time.
Still no solution.
Itz frustrating that neither proper documentation nor a right url page nor i am aware of available addressing this. page links given in above threads only gives me the wonderful page of ie's "Page cannot be displayed".
Is there a answer to this error and my problem. If this doesn't work, then i have to all the way develop from scratch creating my jsp using JDBC calls and Stored packages etc.
I don't want to give up on this Jdeveloper at this final moment because if this bc4j.xcfg file is found, my application will work perfectly. on these final moments, if this doesn't work, i am frightened to imagine to develop my application in standard way. Atlast, if thatz the option left,we have to do that bcos our production date is close by.
Please can some one in this forum or Jdeveloper help me to solve this problem. I am desperate and very urgent.
Waiting for a reply from Jdev team very much...
( I just posted in the other thread which is pretty old, dated backto May 2001, which was relevant to this error. Just to make sure it is noticed, I am posting it seperately too)
Thanks
Hari(2/3/02)Hi All,
For those who are following this thread, I got a solution for this error with the help of Jdev Team.
This solution may work, if you have deployed your application in Tomcat4.0.1. This is the environment in which I work and tested.
As you may be aware, Tomcat ignores value in CLASSPATH variable.
To see any files that are existing or newly deployed, it has it own way of detecting it.
Addition information on Tomcat working, you can follow this link,
http://jakarta.apache.org/tomcat/tomcat-4.0-doc/index.html
Coming to point, Tomcat has got five classloaders and each classloader invoked, looks in their related directories for files in following order.
1. /WEB-INF/classes of your web-application
2. /WEB-INF/lib/*.jar of your web application
3. BootStrap classes of your JVM (Tomcat's $JAVA_HOME/jre/lib/ext)
4. System class loader classes($CATALINA_HOME/bin/bootstrap.jar,CATALINA_HOME/lib/tools.jar)
5. $CATALINA_HOME/common/classes
6. $CATALINA_HOME/common/lib/*.jar
7. $CATALINA_HOME//classes
8. $CATALINA_HOME/lib/*.jar
So All your individual application related files should be deployed in your application's WEB-INF/classes or WEB-INF/lib directory accordingly.
If your application files are unpacked, they should be deployed or copied under WEB-INF/classes directory
if the files are within a jar, they should be under WEB-INF/lib directory.
If your Jar-files contains bc4j components, then those jar files should be deployed under WEB-INF/lib directory. Also,do the next step to copy all relavant BC4J runtime libraries under lib directory.
IMPORTANT: Please remember to copy and paste all the required BC4j runtime libraries in the Same WEB-INF/lib directory along with your application jar files. This is the real reason which can solve this JBO:33001 to disappear. It worked for me.
To configure your directory for tag-lib uri's, use web.xml to set the taglib-uri attribute.
Put your web.xml and DataTags.tld in the WEB-INF directory.
Your simple web.xml may look like as follows.
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<taglib>
<taglib-uri>
/webapp/DataTags.tld
</taglib-uri>
<taglib-location>
/WEB-INF/DataTags.tld
</taglib-location>
</taglib>
</web-app>
You may then modify this web.xml to suit further requirements of your application.
Remember to stop and restart the Tomcat Server (service) by using shutdown and startup scripts after updating any jar files/class files/ JSP or source files deployed in Tomcat.
Sometimes, only this helps even though your context's reloadable attribute is set to true in Tomcat Server's server.xml file.
Hope this above information helps you to solve this error in Tomcat environment. My Sincere thanks once again to Juan and Jdev team for their help and efforts to solve this problem.
Thanks
Hari -
Error while creating a new entity row for LoginPageEO.jbo.RowCreateExceptio
hi all, i am new to OAF i have created a login page and trying to validate to a custom table which had two columns username and password, i am calling function from controller class which is in AM and from AM in turn i am calling function in VOimpl.java file where i am executing my query with whereClause, i am passing two parametere username and password to this function.
if ((uname != null) && (!("".equals(uname.trim()))))
whereClause.append(" UNAME = :");
whereClause.append(bindCount++);
parameters.addElement(uname);
clauseCount++;
if ((pass!= null) && (!("".equals(pass.trim()))))
if (clauseCount > 0)
whereClause.append(" AND ");
whereClause.append(" PASSWORD = :");
whereClause.append(bindCount++);
parameters.addElement(pass);
clauseCount++;
setWhereClause(whereClause.toString());
if (bindCount > 0)
Object[] params = new Object[bindCount];
// the copyInto() is 1.1.8 compliant which is required by ARU
parameters.copyInto(params);
setWhereClauseParams(params);
//System.out.println(getQuery());
executeQuery();
//System.out.println(getRowCount())
when i call this from login page i am getting
Error - oracle.jbo.RowCreateException: JBO-25017: Error while creating a new entity row for LoginPageEO.
Can any one help me out.If your requirement is not to update any DB Table then don't use an EO. I would suggest the following for your requirement of validating the username and password.
- Create a VO that has the following query. Do not select any EO during the VO creation.
SELECT 'x'
FROM <CUSTOM TABLE>
WHERE <USERNAME COL> = :1
AND <PASSWORD COL> = :2
- Have the initQuery(..) Method in your VOImpl, that takes the username and password. Binds them to the VO and executes the query.
- Have a method in your AM to take the username and password as parameters. Make a call to the above VO::initQuery(..)
- In your controller's processFormRequest(..) call this AM Method upon the submit button action.
This should work smoothly.
The following is just for triaging the error that you have. The above steps, should help you achieve your requirement by itself, the below steps would not be required.
Coming back to your issue. Any custom table should have the standard WHO Columns.
- Modify the custom table to have these who columns.
- In the EO Wizard, synchronize the EO to reflect the DB Structure.
- Make sure the EO Attributes are marked updatable.
Cause of your issue: Through you are not creating EO rows programatically, whenever a VO is based on an EO, upon execution of the VO query, EO's are automatically created, based on the number of rows returned by the VO Query. So internally its failing to created the EO Rows. On of the common reason would be that it creates the EO row, but cannot set the attributes from the VO, because the EO Attribute is readonly.
Hope this clarifies. -
Hi i wanted to create new row in table when page to create new row loads i get this error. In table i have 3 field srno which is primary and 2 more columns.
I have created AM,EO and VO.
In AM i have created a method named createDepartment. Code for which is
public void createDepartment()
OAViewObject vo = (OAViewObject)getCreateVO1();
if(!vo.isPreparedForExecution())
vo.executeQuery();
Row row = vo.createRow();
vo.insertRow(row);
row.setNewRowState(Row.STATUS_INITIALIZED);
and a controller class in whose processRequest method i am calling createDeparment method of AM
public void processRequest(OAPageContext pageContext, OAWebBean webBean)
super.processRequest(pageContext, webBean);
OAApplicationModule am = pageContext.getApplicationModule(webBean);
am.invokeMethod("createDepartment");
Can anyone please help me with this problem. It is very urgent.
ThanksDid you check this thread ?
I had suggested some checks to be performed, please do these and revert if the problem persists
getting error oracle.jbo.RowCreateException: JBO-25017:
Thanks
Tapash
Maybe you are looking for
-
Help needed restricting users admin access to devices using ACS 4.2
I have users that access the network via a VPN client to a PIX 515 which authenticates to the ACS (using the default group for unknown users) which uses an external Active Directory Database. The problem I have is that as the ACS authenticates these
-
Custom infotype - issues with conversion class - making fields display only
Hi, I created the custom infotype 9008 using t-code PM01, created conversion class ZCL_HRPA_UI_CONVERT_9008_XX and assigned it to screen structure ZHCMT_BSP_PA_XX_R9008 in the view V_T588UICONVCLAS. Coded the methods IF_HRPA_UI_CONVERT_STANDARDOUTPUT
-
Sneaking Behind the JDBC ConnectionPools
Hi, this is Kinan - This case happend with me: - the (application2) on (server2) got a remote (weblogic.jdbc.common.internal.RmiDataSource) instance which defined in the (server1) - When the (application2) tries to get a connection from this DataSour
-
Exporting to pdf results in humungus sized file!
I wrote a thesis and want to export it to pdf for webb use. I do so in good quality, not better or best. The result is a 120 Mb sized file. I do not have many pictures in it. Why the big size? Some pictures are inserted in the layout as pdf. Does th
-
Remote connect to an apple...
I know how to do this via windows, I had it setup such that I could remotely, over a internet connection, connect to and control my desktop on my palm. I was wondering if this is possible to do on a mac? Any tutorials or step by step instructions and